)]}'
{"neutron/db/allowedaddresspairs_db.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"d4d3ca7d3ca82f366a7be596d9082b1378a844f4","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        # will not cause an extra query."},{"line_number":73,"context_line":"        allowed_address_pairs \u003d ["},{"line_number":74,"context_line":"            self._make_allowed_address_pairs_dict(address_pair)"},{"line_number":75,"context_line":"            for address_pair in port_db.allowed_address_pairs"},{"line_number":76,"context_line":"        ]"},{"line_number":77,"context_line":"        port_res[addr_pair.ADDRESS_PAIRS] \u003d allowed_address_pairs"},{"line_number":78,"context_line":"        return port_res"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_4d4c499e","line":75,"updated":"2016-07-29 17:54:52.000000000","message":"not really related, but I could not stand that blasphemy","commit_id":"12c9c50f3f19dffe5220107dd755adc06ec47f59"}],"neutron/db/db_base_plugin_common.py":[{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"4682e2978958aff7f6b1312a76ab4472b37a2867","unresolved":false,"context_lines":[{"line_number":167,"context_line":"               \u0027max_prefixlen\u0027: max_prefixlen,"},{"line_number":168,"context_line":"               \u0027is_default\u0027: subnetpool[\u0027is_default\u0027],"},{"line_number":169,"context_line":"               \u0027shared\u0027: subnetpool[\u0027shared\u0027],"},{"line_number":170,"context_line":"               \u0027prefixes\u0027: [str(prefix.cidr)"},{"line_number":171,"context_line":"                            for prefix in subnetpool[\u0027prefixes\u0027]],"},{"line_number":172,"context_line":"               \u0027ip_version\u0027: subnetpool[\u0027ip_version\u0027],"},{"line_number":173,"context_line":"               \u0027default_quota\u0027: subnetpool[\u0027default_quota\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_7ada2818","line":170,"range":{"start_line":170,"start_character":38,"end_line":170,"end_character":43},"updated":"2016-08-02 12:03:22.000000000","message":"This is not related to this patch.","commit_id":"9ba940338f02c798c7b6df8216c0e2214160f504"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"8340674a249a4e1474deaba538f8972cdcaa5184","unresolved":false,"context_lines":[{"line_number":167,"context_line":"               \u0027max_prefixlen\u0027: max_prefixlen,"},{"line_number":168,"context_line":"               \u0027is_default\u0027: subnetpool[\u0027is_default\u0027],"},{"line_number":169,"context_line":"               \u0027shared\u0027: subnetpool[\u0027shared\u0027],"},{"line_number":170,"context_line":"               \u0027prefixes\u0027: [str(prefix.cidr)"},{"line_number":171,"context_line":"                            for prefix in subnetpool[\u0027prefixes\u0027]],"},{"line_number":172,"context_line":"               \u0027ip_version\u0027: subnetpool[\u0027ip_version\u0027],"},{"line_number":173,"context_line":"               \u0027default_quota\u0027: subnetpool[\u0027default_quota\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_6848a3cd","line":170,"range":{"start_line":170,"start_character":38,"end_line":170,"end_character":43},"in_reply_to":"bacf61ea_7ada2818","updated":"2016-08-02 12:14:28.000000000","message":"It is: now that prefix is the db model and not a IPNetwork, str() does not return the expected value.","commit_id":"9ba940338f02c798c7b6df8216c0e2214160f504"}],"neutron/db/db_base_plugin_v2.py":[{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"4682e2978958aff7f6b1312a76ab4472b37a2867","unresolved":false,"context_lines":[{"line_number":1019,"context_line":"        subnetpool \u003d subnetpool_obj.SubnetPool(context, **pool_args)"},{"line_number":1020,"context_line":"        subnetpool.create()"},{"line_number":1021,"context_line":""},{"line_number":1022,"context_line":"        return self._make_subnetpool_dict(subnetpool.db_obj)"},{"line_number":1023,"context_line":"    def update_subnetpool(self, context, id, subnetpool):"},{"line_number":1024,"context_line":"        new_sp \u003d subnetpool[\u0027subnetpool\u0027]"},{"line_number":1025,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_28122b59","line":1022,"range":{"start_line":1022,"start_character":41,"end_line":1022,"end_character":59},"updated":"2016-08-02 12:03:22.000000000","message":"Hmm, I thought that passing DB models would be done only to extensions not the make_smth_dict function. It should be done in functions like _apply_dict_extend_functions and extend_(port|subnet|network)_dict.\n\nWhy are you passing the db_obj to _make_subnetpool_dict?","commit_id":"9ba940338f02c798c7b6df8216c0e2214160f504"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"8340674a249a4e1474deaba538f8972cdcaa5184","unresolved":false,"context_lines":[{"line_number":1019,"context_line":"        subnetpool \u003d subnetpool_obj.SubnetPool(context, **pool_args)"},{"line_number":1020,"context_line":"        subnetpool.create()"},{"line_number":1021,"context_line":""},{"line_number":1022,"context_line":"        return self._make_subnetpool_dict(subnetpool.db_obj)"},{"line_number":1023,"context_line":"    def update_subnetpool(self, context, id, subnetpool):"},{"line_number":1024,"context_line":"        new_sp \u003d subnetpool[\u0027subnetpool\u0027]"},{"line_number":1025,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_a89f3b64","line":1022,"range":{"start_line":1022,"start_character":41,"end_line":1022,"end_character":59},"in_reply_to":"bacf61ea_28122b59","updated":"2016-08-02 12:14:28.000000000","message":"This is the easiest way to keep the original behaviour intact. Otherwise I would also need to modify _apply_dict_extend_functions too, and it\u0027s still used by code that does not use objects, so I think it\u0027s easier for now to pass the model right away here. Later we can get back to moving the extraction of the model one layer lower.","commit_id":"9ba940338f02c798c7b6df8216c0e2214160f504"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"f0cd108f987b6402e1def7ce7858941e85f0cc28","unresolved":false,"context_lines":[{"line_number":1019,"context_line":"        subnetpool \u003d subnetpool_obj.SubnetPool(context, **pool_args)"},{"line_number":1020,"context_line":"        subnetpool.create()"},{"line_number":1021,"context_line":""},{"line_number":1022,"context_line":"        return self._make_subnetpool_dict(subnetpool.db_obj)"},{"line_number":1023,"context_line":""},{"line_number":1024,"context_line":"    def update_subnetpool(self, context, id, subnetpool):"},{"line_number":1025,"context_line":"        new_sp \u003d subnetpool[\u0027subnetpool\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_918b7e1e","line":1022,"range":{"start_line":1022,"start_character":42,"end_line":1022,"end_character":59},"updated":"2016-08-02 12:59:00.000000000","message":"I would pass the object into _make_subnetpool_dict and then pass subnetpool.db_obj in _apply_dict_extend_functions().\n\nWe would be operating on object in make_\u003cresource\u003e_dict and benefit from it from the beginning, no need to rework it later.","commit_id":"59985552936234a534418a0656f5bc1b0e4b4e6e"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a2429f971c4f5d4e9adc33c7a54c46fe34d1d756","unresolved":false,"context_lines":[{"line_number":1019,"context_line":"        subnetpool \u003d subnetpool_obj.SubnetPool(context, **pool_args)"},{"line_number":1020,"context_line":"        subnetpool.create()"},{"line_number":1021,"context_line":""},{"line_number":1022,"context_line":"        return self._make_subnetpool_dict(subnetpool.db_obj)"},{"line_number":1023,"context_line":""},{"line_number":1024,"context_line":"    def update_subnetpool(self, context, id, subnetpool):"},{"line_number":1025,"context_line":"        new_sp \u003d subnetpool[\u0027subnetpool\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_a488edc7","line":1022,"range":{"start_line":1022,"start_character":42,"end_line":1022,"end_character":59},"in_reply_to":"bacf61ea_918b7e1e","updated":"2016-08-02 18:35:20.000000000","message":"There are different ways to do it. I don\u0027t find what you propose substantially better since the outcome is the same. I also think that for new objects adopted, we should stick to the behaviour proposed here, to avoid (yet) undesired changes in _make_*_dict functions.","commit_id":"59985552936234a534418a0656f5bc1b0e4b4e6e"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"317686cceddcf71af9489d2f304e364a8e36f020","unresolved":false,"context_lines":[{"line_number":1019,"context_line":"        subnetpool \u003d subnetpool_obj.SubnetPool(context, **pool_args)"},{"line_number":1020,"context_line":"        subnetpool.create()"},{"line_number":1021,"context_line":""},{"line_number":1022,"context_line":"        return self._make_subnetpool_dict(subnetpool.db_obj)"},{"line_number":1023,"context_line":""},{"line_number":1024,"context_line":"    def update_subnetpool(self, context, id, subnetpool):"},{"line_number":1025,"context_line":"        new_sp \u003d subnetpool[\u0027subnetpool\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_229329fc","line":1022,"range":{"start_line":1022,"start_character":42,"end_line":1022,"end_character":59},"in_reply_to":"bacf61ea_a488edc7","updated":"2016-08-03 12:18:27.000000000","message":"For subnet, I have reworked the make_subnet_dict to accept both dict and OVO.","commit_id":"59985552936234a534418a0656f5bc1b0e4b4e6e"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"317686cceddcf71af9489d2f304e364a8e36f020","unresolved":false,"context_lines":[{"line_number":1055,"context_line":"        for key in [\u0027min_prefixlen\u0027, \u0027max_prefixlen\u0027, \u0027default_prefixlen\u0027]:"},{"line_number":1056,"context_line":"            updated[\u0027key\u0027] \u003d str(updated[key])"},{"line_number":1057,"context_line":"        self._apply_dict_extend_functions(attributes.SUBNETPOOLS,"},{"line_number":1058,"context_line":"                                          updated, orig_sp)"},{"line_number":1059,"context_line":"        return updated"},{"line_number":1060,"context_line":""},{"line_number":1061,"context_line":"    def get_subnetpool(self, context, id, fields\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_c2d7adbd","line":1058,"range":{"start_line":1058,"start_character":51,"end_line":1058,"end_character":58},"updated":"2016-08-03 12:18:27.000000000","message":"here we should also pass the db_obj, not the OVO","commit_id":"59985552936234a534418a0656f5bc1b0e4b4e6e"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"55f9aa7769a9b288b9a59f35635d795a26857b7b","unresolved":false,"context_lines":[{"line_number":1055,"context_line":"        for key in [\u0027min_prefixlen\u0027, \u0027max_prefixlen\u0027, \u0027default_prefixlen\u0027]:"},{"line_number":1056,"context_line":"            updated[\u0027key\u0027] \u003d str(updated[key])"},{"line_number":1057,"context_line":"        self._apply_dict_extend_functions(attributes.SUBNETPOOLS,"},{"line_number":1058,"context_line":"                                          updated, orig_sp)"},{"line_number":1059,"context_line":"        return updated"},{"line_number":1060,"context_line":""},{"line_number":1061,"context_line":"    def get_subnetpool(self, context, id, fields\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_da34aadf","line":1058,"range":{"start_line":1058,"start_character":51,"end_line":1058,"end_character":58},"in_reply_to":"bacf61ea_c2d7adbd","updated":"2016-08-03 14:42:02.000000000","message":"Great catch.","commit_id":"59985552936234a534418a0656f5bc1b0e4b4e6e"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"e393869fb19b700410a9ddc56f8eb05b5a52a3cd","unresolved":false,"context_lines":[{"line_number":1019,"context_line":"        subnetpool \u003d subnetpool_obj.SubnetPool(context, **pool_args)"},{"line_number":1020,"context_line":"        subnetpool.create()"},{"line_number":1021,"context_line":""},{"line_number":1022,"context_line":"        return self._make_subnetpool_dict(subnetpool.db_obj)"},{"line_number":1023,"context_line":""},{"line_number":1024,"context_line":"    def update_subnetpool(self, context, id, subnetpool):"},{"line_number":1025,"context_line":"        new_sp \u003d subnetpool[\u0027subnetpool\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa7ab95a_65ebce78","line":1022,"updated":"2016-08-29 23:55:32.000000000","message":"Create method populates synthetic fields of the OVO object but doesn\u0027t synchronize with the db model class.","commit_id":"c3fb1c9c6d0e8318f1cb3c1740e1d6e965570018"}]}
