)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"debdf1344fea86ffcdf4406fa78ecfabafa329a5","unresolved":false,"context_lines":[{"line_number":10,"context_line":"list of its prefixes, instead of pulling the data from data model"},{"line_number":11,"context_line":"relationship."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Switched prexises field to ListOfObjectsField and utilize automatic"},{"line_number":14,"context_line":"population of synthetic fields from relationships as implemented by"},{"line_number":15,"context_line":"Ie54d9f51642edec1f4533062eb8306b78a1b6f20."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"bacf61ea_174dd799","line":13,"range":{"start_line":13,"start_character":9,"end_line":13,"end_character":17},"updated":"2016-08-02 04:36:10.000000000","message":"prefixes","commit_id":"c6ddcda63fb54f182d1dc5225e6afba8a74ebadd"}],"neutron/objects/common_types.py":[{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"85e0ea3fe8adc592bb51535b71bf749c85b46521","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    AUTO_TYPE \u003d IPNetworkPrefixLen()"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"class ListOfIPNetworksField(obj_fields.AutoTypedField):"},{"line_number":66,"context_line":"    AUTO_TYPE \u003d obj_fields.List(obj_fields.IPNetwork())"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"class IntegerEnum(obj_fields.Integer):"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_15566505","side":"PARENT","line":66,"range":{"start_line":65,"start_character":0,"end_line":66,"end_character":55},"updated":"2016-08-02 10:02:51.000000000","message":"we won\u0027t need this anymore?","commit_id":"2a64fabd5245de2f4e97b439e04cfa27b3a5ded5"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"c5aa56915e4b859a987581ae3e8944ee97f7e837","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    AUTO_TYPE \u003d IPNetworkPrefixLen()"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"class ListOfIPNetworksField(obj_fields.AutoTypedField):"},{"line_number":66,"context_line":"    AUTO_TYPE \u003d obj_fields.List(obj_fields.IPNetwork())"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"class IntegerEnum(obj_fields.Integer):"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_c9f0b869","side":"PARENT","line":66,"range":{"start_line":65,"start_character":0,"end_line":66,"end_character":55},"in_reply_to":"bacf61ea_15566505","updated":"2016-08-02 12:07:17.000000000","message":"No, I don\u0027t think so.","commit_id":"2a64fabd5245de2f4e97b439e04cfa27b3a5ded5"}],"neutron/objects/subnetpool.py":[{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"85e0ea3fe8adc592bb51535b71bf749c85b46521","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    synthetic_fields \u003d [\u0027prefixes\u0027]"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def _get_changed_synthetic_fields(self):"},{"line_number":55,"context_line":"        fields \u003d self.obj_get_changes()"},{"line_number":56,"context_line":"        for field in self._get_changed_persistent_fields():"},{"line_number":57,"context_line":"            if field in fields:"},{"line_number":58,"context_line":"                del fields[field]"},{"line_number":59,"context_line":"        return fields"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def _create_prefixes(self, prefixes):"},{"line_number":62,"context_line":"        result \u003d []"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_75c24154","line":59,"range":{"start_line":54,"start_character":3,"end_line":59,"end_character":21},"updated":"2016-08-02 10:02:51.000000000","message":"we can move this method to base class.","commit_id":"c6ddcda63fb54f182d1dc5225e6afba8a74ebadd"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"c5aa56915e4b859a987581ae3e8944ee97f7e837","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    synthetic_fields \u003d [\u0027prefixes\u0027]"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def _get_changed_synthetic_fields(self):"},{"line_number":55,"context_line":"        fields \u003d self.obj_get_changes()"},{"line_number":56,"context_line":"        for field in self._get_changed_persistent_fields():"},{"line_number":57,"context_line":"            if field in fields:"},{"line_number":58,"context_line":"                del fields[field]"},{"line_number":59,"context_line":"        return fields"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def _create_prefixes(self, prefixes):"},{"line_number":62,"context_line":"        result \u003d []"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_29007433","line":59,"range":{"start_line":54,"start_character":3,"end_line":59,"end_character":21},"in_reply_to":"bacf61ea_75c24154","updated":"2016-08-02 12:07:17.000000000","message":"Not the goal of the patch though.","commit_id":"c6ddcda63fb54f182d1dc5225e6afba8a74ebadd"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"85e0ea3fe8adc592bb51535b71bf749c85b46521","unresolved":false,"context_lines":[{"line_number":86,"context_line":"    # TODO(ihrachys): Consider extending base to trigger registered methods"},{"line_number":87,"context_line":"    def update(self):"},{"line_number":88,"context_line":"        synthetic_changes \u003d self._get_changed_synthetic_fields()"},{"line_number":89,"context_line":"        if \u0027prefixes\u0027 in synthetic_changes:"},{"line_number":90,"context_line":"            prefixes \u003d self.prefixes"},{"line_number":91,"context_line":"        with db_api.autonested_transaction(self.obj_context.session):"},{"line_number":92,"context_line":"            super(SubnetPool, self).update()"},{"line_number":93,"context_line":"            if \u0027prefixes\u0027 in synthetic_changes:"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_b5ccb935","line":90,"range":{"start_line":89,"start_character":8,"end_line":90,"end_character":36},"updated":"2016-08-02 10:02:51.000000000","message":"This can be moved inside transaction, after line 93.","commit_id":"c6ddcda63fb54f182d1dc5225e6afba8a74ebadd"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"c5aa56915e4b859a987581ae3e8944ee97f7e837","unresolved":false,"context_lines":[{"line_number":86,"context_line":"    # TODO(ihrachys): Consider extending base to trigger registered methods"},{"line_number":87,"context_line":"    def update(self):"},{"line_number":88,"context_line":"        synthetic_changes \u003d self._get_changed_synthetic_fields()"},{"line_number":89,"context_line":"        if \u0027prefixes\u0027 in synthetic_changes:"},{"line_number":90,"context_line":"            prefixes \u003d self.prefixes"},{"line_number":91,"context_line":"        with db_api.autonested_transaction(self.obj_context.session):"},{"line_number":92,"context_line":"            super(SubnetPool, self).update()"},{"line_number":93,"context_line":"            if \u0027prefixes\u0027 in synthetic_changes:"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_a452c910","line":90,"range":{"start_line":89,"start_character":8,"end_line":90,"end_character":36},"in_reply_to":"bacf61ea_b5ccb935","updated":"2016-08-02 12:07:17.000000000","message":"Done","commit_id":"c6ddcda63fb54f182d1dc5225e6afba8a74ebadd"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"85e0ea3fe8adc592bb51535b71bf749c85b46521","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        if \u0027prefixes\u0027 in synthetic_changes:"},{"line_number":90,"context_line":"            prefixes \u003d self.prefixes"},{"line_number":91,"context_line":"        with db_api.autonested_transaction(self.obj_context.session):"},{"line_number":92,"context_line":"            super(SubnetPool, self).update()"},{"line_number":93,"context_line":"            if \u0027prefixes\u0027 in synthetic_changes:"},{"line_number":94,"context_line":"                old \u003d SubnetPoolPrefix.get_objects(self.obj_context,"},{"line_number":95,"context_line":"                                                   subnetpool_id\u003dself.id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_b56839f6","line":92,"range":{"start_line":92,"start_character":12,"end_line":92,"end_character":44},"updated":"2016-08-02 10:02:51.000000000","message":"This can be done after removing old prefixes.","commit_id":"c6ddcda63fb54f182d1dc5225e6afba8a74ebadd"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"c5aa56915e4b859a987581ae3e8944ee97f7e837","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        if \u0027prefixes\u0027 in synthetic_changes:"},{"line_number":90,"context_line":"            prefixes \u003d self.prefixes"},{"line_number":91,"context_line":"        with db_api.autonested_transaction(self.obj_context.session):"},{"line_number":92,"context_line":"            super(SubnetPool, self).update()"},{"line_number":93,"context_line":"            if \u0027prefixes\u0027 in synthetic_changes:"},{"line_number":94,"context_line":"                old \u003d SubnetPoolPrefix.get_objects(self.obj_context,"},{"line_number":95,"context_line":"                                                   subnetpool_id\u003dself.id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_04563505","line":92,"range":{"start_line":92,"start_character":12,"end_line":92,"end_character":44},"in_reply_to":"bacf61ea_b56839f6","updated":"2016-08-02 12:07:17.000000000","message":"Done","commit_id":"c6ddcda63fb54f182d1dc5225e6afba8a74ebadd"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"debdf1344fea86ffcdf4406fa78ecfabafa329a5","unresolved":false,"context_lines":[{"line_number":90,"context_line":"            prefixes \u003d self.prefixes"},{"line_number":91,"context_line":"        with db_api.autonested_transaction(self.obj_context.session):"},{"line_number":92,"context_line":"            super(SubnetPool, self).update()"},{"line_number":93,"context_line":"            if \u0027prefixes\u0027 in synthetic_changes:"},{"line_number":94,"context_line":"                old \u003d SubnetPoolPrefix.get_objects(self.obj_context,"},{"line_number":95,"context_line":"                                                   subnetpool_id\u003dself.id)"},{"line_number":96,"context_line":"                for prefix in old:"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_d28fcd72","line":93,"range":{"start_line":93,"start_character":11,"end_line":93,"end_character":47},"updated":"2016-08-02 04:36:10.000000000","message":"can\u0027t this condition be handled once instead of having it twice ?","commit_id":"c6ddcda63fb54f182d1dc5225e6afba8a74ebadd"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"c5aa56915e4b859a987581ae3e8944ee97f7e837","unresolved":false,"context_lines":[{"line_number":90,"context_line":"            prefixes \u003d self.prefixes"},{"line_number":91,"context_line":"        with db_api.autonested_transaction(self.obj_context.session):"},{"line_number":92,"context_line":"            super(SubnetPool, self).update()"},{"line_number":93,"context_line":"            if \u0027prefixes\u0027 in synthetic_changes:"},{"line_number":94,"context_line":"                old \u003d SubnetPoolPrefix.get_objects(self.obj_context,"},{"line_number":95,"context_line":"                                                   subnetpool_id\u003dself.id)"},{"line_number":96,"context_line":"                for prefix in old:"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_297514ca","line":93,"range":{"start_line":93,"start_character":11,"end_line":93,"end_character":47},"in_reply_to":"bacf61ea_d28fcd72","updated":"2016-08-02 12:07:17.000000000","message":"We need to store prefixes before super() resets them. But Artur has a good idea below.","commit_id":"c6ddcda63fb54f182d1dc5225e6afba8a74ebadd"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"debdf1344fea86ffcdf4406fa78ecfabafa329a5","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        with db_api.autonested_transaction(self.obj_context.session):"},{"line_number":92,"context_line":"            super(SubnetPool, self).update()"},{"line_number":93,"context_line":"            if \u0027prefixes\u0027 in synthetic_changes:"},{"line_number":94,"context_line":"                old \u003d SubnetPoolPrefix.get_objects(self.obj_context,"},{"line_number":95,"context_line":"                                                   subnetpool_id\u003dself.id)"},{"line_number":96,"context_line":"                for prefix in old:"},{"line_number":97,"context_line":"                    prefix.delete()"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_b245f943","line":94,"range":{"start_line":94,"start_character":16,"end_line":94,"end_character":19},"updated":"2016-08-02 04:36:10.000000000","message":"to be more specific consider renaming it to old_prefixes. if you re spin this patch","commit_id":"c6ddcda63fb54f182d1dc5225e6afba8a74ebadd"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"c5aa56915e4b859a987581ae3e8944ee97f7e837","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        with db_api.autonested_transaction(self.obj_context.session):"},{"line_number":92,"context_line":"            super(SubnetPool, self).update()"},{"line_number":93,"context_line":"            if \u0027prefixes\u0027 in synthetic_changes:"},{"line_number":94,"context_line":"                old \u003d SubnetPoolPrefix.get_objects(self.obj_context,"},{"line_number":95,"context_line":"                                                   subnetpool_id\u003dself.id)"},{"line_number":96,"context_line":"                for prefix in old:"},{"line_number":97,"context_line":"                    prefix.delete()"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_2466d9ec","line":94,"range":{"start_line":94,"start_character":16,"end_line":94,"end_character":19},"in_reply_to":"bacf61ea_b245f943","updated":"2016-08-02 12:07:17.000000000","message":"Done","commit_id":"c6ddcda63fb54f182d1dc5225e6afba8a74ebadd"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"85e0ea3fe8adc592bb51535b71bf749c85b46521","unresolved":false,"context_lines":[{"line_number":96,"context_line":"                for prefix in old:"},{"line_number":97,"context_line":"                    prefix.delete()"},{"line_number":98,"context_line":"                self.prefixes \u003d self._create_prefixes(prefixes)"},{"line_number":99,"context_line":"                self.obj_reset_changes([\u0027prefixes\u0027])"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"@obj_base.VersionedObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_b8d5d043","line":99,"updated":"2016-08-02 10:02:51.000000000","message":"hmm in my opinion this update function can look like this:\n\ndef update(self):\n    synthetic_changes \u003d self._get_changed_synthetic_fields()\n    with db_api.autonested_transaction(self.obj_context.session):\n        if \u0027prefixes\u0027 in synthetic_changes:\n            prefixes \u003d self.prefixes\n            old \u003d SubnetPoolPrefix.get_objects(self.obj_context,\n                                               subnetpool_id\u003dself.id)\n            for pr in old:\n                pr.delete()\n            self.prefixes \u003d self._create_prefixes(prefixes)\n        super(SubnetPool, self).update()\n\n\nThe last line should load the prefixes automatically.","commit_id":"c6ddcda63fb54f182d1dc5225e6afba8a74ebadd"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"c5aa56915e4b859a987581ae3e8944ee97f7e837","unresolved":false,"context_lines":[{"line_number":96,"context_line":"                for prefix in old:"},{"line_number":97,"context_line":"                    prefix.delete()"},{"line_number":98,"context_line":"                self.prefixes \u003d self._create_prefixes(prefixes)"},{"line_number":99,"context_line":"                self.obj_reset_changes([\u0027prefixes\u0027])"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"@obj_base.VersionedObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_3f754263","line":99,"in_reply_to":"bacf61ea_b8d5d043","updated":"2016-08-02 12:07:17.000000000","message":"Done","commit_id":"c6ddcda63fb54f182d1dc5225e6afba8a74ebadd"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"4b0a7e533ee964a403cc3a24ecaa7a71b3d6546a","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    # TODO(ihrachys): Consider extending base to trigger registered methods"},{"line_number":74,"context_line":"    def create(self):"},{"line_number":75,"context_line":"        synthetic_changes \u003d self._get_changed_synthetic_fields()"},{"line_number":76,"context_line":"        with db_api.autonested_transaction(self.obj_context.session):"},{"line_number":77,"context_line":"            prefixes \u003d self.prefixes"},{"line_number":78,"context_line":"            super(SubnetPool, self).create()"}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_689b7873","line":75,"range":{"start_line":75,"start_character":8,"end_line":75,"end_character":25},"updated":"2016-08-02 14:42:22.000000000","message":"this variable is not used anywhere.","commit_id":"3d3b4183cc2286d6d190c11f11148908a0cd9958"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"101292d2c2b472c499aafadb00a01974f360378f","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    # TODO(ihrachys): Consider extending base to trigger registered methods"},{"line_number":74,"context_line":"    def create(self):"},{"line_number":75,"context_line":"        synthetic_changes \u003d self._get_changed_synthetic_fields()"},{"line_number":76,"context_line":"        with db_api.autonested_transaction(self.obj_context.session):"},{"line_number":77,"context_line":"            prefixes \u003d self.prefixes"},{"line_number":78,"context_line":"            super(SubnetPool, self).create()"}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_a4762dd6","line":75,"range":{"start_line":75,"start_character":8,"end_line":75,"end_character":25},"in_reply_to":"bacf61ea_689b7873","updated":"2016-08-02 18:36:41.000000000","message":"Done","commit_id":"3d3b4183cc2286d6d190c11f11148908a0cd9958"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"2286125d3dcec8dfeedd5b409a533622d5fa20fb","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    fields \u003d {"},{"line_number":34,"context_line":"        \u0027id\u0027: obj_fields.UUIDField(),"},{"line_number":35,"context_line":"        \u0027tenant_id\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":36,"context_line":"        \u0027name\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":37,"context_line":"        \u0027ip_version\u0027: common_types.IPVersionEnumField(),"},{"line_number":38,"context_line":"        \u0027default_prefixlen\u0027: common_types.IPNetworkPrefixLenField(),"}],"source_content_type":"text/x-python","patch_set":5,"id":"bacf61ea_561d4e65","line":35,"range":{"start_line":35,"start_character":8,"end_line":35,"end_character":19},"updated":"2016-08-03 07:27:47.000000000","message":"Is there a patch to change project_id to tenant_id for subnetpool?","commit_id":"44d72e7f0ee30d2d8a826ca69293a8f39c38e18b"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"8291736639742b13fab20eb44208158858228e24","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    fields \u003d {"},{"line_number":34,"context_line":"        \u0027id\u0027: obj_fields.UUIDField(),"},{"line_number":35,"context_line":"        \u0027tenant_id\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":36,"context_line":"        \u0027name\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":37,"context_line":"        \u0027ip_version\u0027: common_types.IPVersionEnumField(),"},{"line_number":38,"context_line":"        \u0027default_prefixlen\u0027: common_types.IPNetworkPrefixLenField(),"}],"source_content_type":"text/x-python","patch_set":5,"id":"bacf61ea_764e9297","line":35,"range":{"start_line":35,"start_character":8,"end_line":35,"end_character":19},"in_reply_to":"bacf61ea_561d4e65","updated":"2016-08-03 07:44:06.000000000","message":"Lemme post one.","commit_id":"44d72e7f0ee30d2d8a826ca69293a8f39c38e18b"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"eff071edfc0acc8b160d3877f3bba951ed256a82","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    fields \u003d {"},{"line_number":34,"context_line":"        \u0027id\u0027: obj_fields.UUIDField(),"},{"line_number":35,"context_line":"        \u0027tenant_id\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":36,"context_line":"        \u0027name\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":37,"context_line":"        \u0027ip_version\u0027: common_types.IPVersionEnumField(),"},{"line_number":38,"context_line":"        \u0027default_prefixlen\u0027: common_types.IPNetworkPrefixLenField(),"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ac06dbe_c7c72c94","line":35,"range":{"start_line":35,"start_character":8,"end_line":35,"end_character":19},"in_reply_to":"bacf61ea_764e9297","updated":"2016-08-23 20:59:41.000000000","message":"https://review.openstack.org/#/c/350452/","commit_id":"44d72e7f0ee30d2d8a826ca69293a8f39c38e18b"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"eff071edfc0acc8b160d3877f3bba951ed256a82","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    # TODO(ihrachys): Consider extending base to trigger registered methods"},{"line_number":74,"context_line":"    def create(self):"},{"line_number":75,"context_line":"        with db_api.autonested_transaction(self.obj_context.session):"},{"line_number":76,"context_line":"            prefixes \u003d self.prefixes"},{"line_number":77,"context_line":"            super(SubnetPool, self).create()"},{"line_number":78,"context_line":"            if prefixes:"},{"line_number":79,"context_line":"                self.prefixes \u003d self._create_prefixes(prefixes)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ac06dbe_870b747c","line":76,"updated":"2016-08-23 20:59:41.000000000","message":"Can you include a similar note like security groups[1]?\n\n[1] https://github.com/openstack/neutron/blob/master/neutron/objects/securitygroup.py#L49","commit_id":"44d72e7f0ee30d2d8a826ca69293a8f39c38e18b"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"eff071edfc0acc8b160d3877f3bba951ed256a82","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        with db_api.autonested_transaction(self.obj_context.session):"},{"line_number":86,"context_line":"            if \u0027prefixes\u0027 in synthetic_changes:"},{"line_number":87,"context_line":"                prefixes \u003d self.prefixes"},{"line_number":88,"context_line":"                old_prefixes \u003d SubnetPoolPrefix.get_objects("},{"line_number":89,"context_line":"                    self.obj_context, subnetpool_id\u003dself.id)"},{"line_number":90,"context_line":"                for prefix in old_prefixes:"},{"line_number":91,"context_line":"                    prefix.delete()"},{"line_number":92,"context_line":"                self.prefixes \u003d self._create_prefixes(prefixes)"},{"line_number":93,"context_line":"            super(SubnetPool, self).update()"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1ac06dbe_2769e0f9","line":92,"range":{"start_line":88,"start_character":0,"end_line":92,"end_character":63},"updated":"2016-08-23 20:59:41.000000000","message":"I\u0027m not sure if those operations are executed in a transaction.  Besides the impact that this could suffer when scales.","commit_id":"44d72e7f0ee30d2d8a826ca69293a8f39c38e18b"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"ae5d187837d9f144b7dd4275bdd3372cc331ebe4","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        \u0027default_quota\u0027: obj_fields.IntegerField(nullable\u003dTrue),"},{"line_number":44,"context_line":"        \u0027hash\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":45,"context_line":"        \u0027address_scope_id\u0027: obj_fields.UUIDField(nullable\u003dTrue),"},{"line_number":46,"context_line":"        \u0027prefixes\u0027: obj_fields.ListOfObjectsField(\u0027SubnetPoolPrefix\u0027,"},{"line_number":47,"context_line":"                                                  nullable\u003dTrue),"},{"line_number":48,"context_line":"    }"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    fields_no_update \u003d [\u0027id\u0027, \u0027tenant_id\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa6399be_70a98623","line":47,"range":{"start_line":46,"start_character":8,"end_line":47,"end_character":65},"updated":"2016-10-17 09:44:08.000000000","message":"I was thinking why change to SubnetPoolPrefix, the sp_prefix is containing only the subnetpool-id and cidr. We could leave the prefixes as ListOfIPNetworksField and load the field from relationship in from_db_object, like here:\n\nhttps://review.openstack.org/#/c/375536/3/neutron/objects/subnet.py@235","commit_id":"bac42131338706ab8fb4608b16517689867b4425"}]}
