)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"7c72c7450dc4d87b34c64955457360ccc18c3048","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Parent:     0cf24bd5 (Merge \"Add API to retrieve default quotas\")"},{"line_number":2,"context_line":"Author:     Carl Baldwin \u003ccarl.baldwin@hpe.com\u003e"},{"line_number":3,"context_line":"AuthorDate: 2016-05-04 12:42:14 -0600"},{"line_number":4,"context_line":"Commit:     James Anziano \u003cjanzian@us.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-05-11 21:53:32 +0000"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"dab17558_17402a06","line":2,"range":{"start_line":2,"start_character":12,"end_line":2,"end_character":47},"updated":"2016-05-11 22:10:11.000000000","message":"At this point, you might as well to \"git commit --reset-author\" and change the author to you and get rid of the co-author.","commit_id":"7fcee9a532d824f20c867c2fb3fdcd55994b9de3"},{"author":{"_account_id":20277,"name":"James Anziano","email":"janzian@us.ibm.com","username":"janzian"},"change_message_id":"71fdcb904aa9968c7df34afe53666026e6ada9d0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Parent:     0cf24bd5 (Merge \"Add API to retrieve default quotas\")"},{"line_number":2,"context_line":"Author:     Carl Baldwin \u003ccarl.baldwin@hpe.com\u003e"},{"line_number":3,"context_line":"AuthorDate: 2016-05-04 12:42:14 -0600"},{"line_number":4,"context_line":"Commit:     James Anziano \u003cjanzian@us.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-05-11 21:53:32 +0000"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"dab17558_eb92baf5","line":2,"range":{"start_line":2,"start_character":12,"end_line":2,"end_character":47},"in_reply_to":"dab17558_17402a06","updated":"2016-05-12 14:11:35.000000000","message":"Done","commit_id":"7fcee9a532d824f20c867c2fb3fdcd55994b9de3"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"7c72c7450dc4d87b34c64955457360ccc18c3048","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     James Anziano \u003cjanzian@us.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-05-11 21:53:32 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"WIP Allow the service plugin to import the extension"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"I hit this circular import which made it so that I couldn\u0027t import the"},{"line_number":10,"context_line":"extension from db.py within the service plugin because the extension"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"dab17558_17dcaa44","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":3},"updated":"2016-05-11 22:10:11.000000000","message":"Remember to remove this when its no longer a WIP.","commit_id":"7fcee9a532d824f20c867c2fb3fdcd55994b9de3"},{"author":{"_account_id":20277,"name":"James Anziano","email":"janzian@us.ibm.com","username":"janzian"},"change_message_id":"71fdcb904aa9968c7df34afe53666026e6ada9d0","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     James Anziano \u003cjanzian@us.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-05-11 21:53:32 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"WIP Allow the service plugin to import the extension"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"I hit this circular import which made it so that I couldn\u0027t import the"},{"line_number":10,"context_line":"extension from db.py within the service plugin because the extension"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"dab17558_cb8ff6ca","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":3},"in_reply_to":"dab17558_17dcaa44","updated":"2016-05-12 14:11:35.000000000","message":"Done","commit_id":"7fcee9a532d824f20c867c2fb3fdcd55994b9de3"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"7c72c7450dc4d87b34c64955457360ccc18c3048","unresolved":false,"context_lines":[{"line_number":13,"context_line":"service plugin is the implementation and should be free to import it"},{"line_number":14,"context_line":"at will."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"This patch fixes the circular import issue."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Co-Author: James Anziano \u003cjanzian@us.ibm.com\u003e"},{"line_number":19,"context_line":"Change-Id: I3b84496bf65578b02b43bbffb227db9bb9879288"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"dab17558_77c25654","line":16,"updated":"2016-05-11 22:10:11.000000000","message":"Is there some feedback from this page [1] that could be rolled in to this patch?  Specifically, I\u0027m thinking that the plugin should inherit from SegmentPluginBase as pointed out by blogan.\n\n [1] https://review.openstack.org/#/c/296603/18/neutron/services/segments/plugin.py","commit_id":"7fcee9a532d824f20c867c2fb3fdcd55994b9de3"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"78d5d6311b611599fa143bdbc30dfb816ef68a74","unresolved":false,"context_lines":[{"line_number":13,"context_line":"service plugin is the implementation and should be free to import it"},{"line_number":14,"context_line":"at will."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"This patch fixes the circular import issue."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Co-Author: James Anziano \u003cjanzian@us.ibm.com\u003e"},{"line_number":19,"context_line":"Change-Id: I3b84496bf65578b02b43bbffb227db9bb9879288"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"dab17558_113d1a8f","line":16,"in_reply_to":"dab17558_4bbae66f","updated":"2016-05-16 18:38:49.000000000","message":"I meant that neutron/services/segments/plugin.py:Plugin should inherit from SegmentPluginBase.","commit_id":"7fcee9a532d824f20c867c2fb3fdcd55994b9de3"},{"author":{"_account_id":20277,"name":"James Anziano","email":"janzian@us.ibm.com","username":"janzian"},"change_message_id":"71fdcb904aa9968c7df34afe53666026e6ada9d0","unresolved":false,"context_lines":[{"line_number":13,"context_line":"service plugin is the implementation and should be free to import it"},{"line_number":14,"context_line":"at will."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"This patch fixes the circular import issue."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Co-Author: James Anziano \u003cjanzian@us.ibm.com\u003e"},{"line_number":19,"context_line":"Change-Id: I3b84496bf65578b02b43bbffb227db9bb9879288"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"dab17558_4bbae66f","line":16,"in_reply_to":"dab17558_77c25654","updated":"2016-05-12 14:11:35.000000000","message":"As per your other comment, that plugin is no longer being used.","commit_id":"7fcee9a532d824f20c867c2fb3fdcd55994b9de3"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"249379e9abd42bbe3bcd953836b2d70f94bbdc34","unresolved":false,"context_lines":[{"line_number":13,"context_line":"service plugin is the implementation and should be free to import it"},{"line_number":14,"context_line":"at will."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"This patch fixes the circular import issue."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I3b84496bf65578b02b43bbffb227db9bb9879288"},{"line_number":19,"context_line":"Partially-implements: bp/routed-networks"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"dab17558_7196263f","line":16,"updated":"2016-05-16 18:40:41.000000000","message":"See PS5 for continued discussion.","commit_id":"c761c4632232e2e683fa3902bad9fc3c3fdfe0f9"}],"neutron/extensions/segment.py":[{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"0b9927c866793197dba5113c4305a2a96aa3f561","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from neutron.api.v2 import attributes"},{"line_number":20,"context_line":"from neutron.api.v2 import base"},{"line_number":21,"context_line":"from neutron.extensions import providernet"},{"line_number":22,"context_line":"from neutron.services.segments import plugin"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"SEGMENT \u003d \u0027segment\u0027"},{"line_number":25,"context_line":"SEGMENTS \u003d \u0027%ss\u0027 % SEGMENT"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_dfec78bd","line":22,"updated":"2016-05-04 18:55:37.000000000","message":"I think this is the real problem.  This is akin to an interface importing an implementation.","commit_id":"651bc26b92cdb46937c9308afc493cb856bd2b24"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"f8d40700ffa990d437e90ca1cc3952ae9cbafbd3","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        controller \u003d base.create_resource("},{"line_number":94,"context_line":"            SEGMENTS,"},{"line_number":95,"context_line":"            SEGMENT,"},{"line_number":96,"context_line":"            # FIXME One thought is to use stevedore to break the cycle"},{"line_number":97,"context_line":"            plugin.Plugin.get_instance(),"},{"line_number":98,"context_line":"            resource_attributes)"},{"line_number":99,"context_line":"        return [extensions.ResourceExtension(SEGMENTS,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_0fc5185b","line":96,"updated":"2016-05-04 23:15:07.000000000","message":"See here [1] for another good thought from blogan.\n\n [1] https://review.openstack.org/#/c/296603/18/neutron/extensions/segment.py@96","commit_id":"651bc26b92cdb46937c9308afc493cb856bd2b24"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"9ccc95e90446753e68aa039bcb87dd896287a907","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        controller \u003d base.create_resource("},{"line_number":94,"context_line":"            SEGMENTS,"},{"line_number":95,"context_line":"            SEGMENT,"},{"line_number":96,"context_line":"            # FIXME One thought is to use stevedore to break the cycle"},{"line_number":97,"context_line":"            plugin.Plugin.get_instance(),"},{"line_number":98,"context_line":"            resource_attributes)"},{"line_number":99,"context_line":"        return [extensions.ResourceExtension(SEGMENTS,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_af922455","line":96,"in_reply_to":"1a122d0e_0fc5185b","updated":"2016-05-04 23:17:17.000000000","message":"The same solution could probably be applied to the auto allocated topology extension because it basically does the same thing.","commit_id":"651bc26b92cdb46937c9308afc493cb856bd2b24"},{"author":{"_account_id":20277,"name":"James Anziano","email":"janzian@us.ibm.com","username":"janzian"},"change_message_id":"3d6d152f29cf49dd6d406414c0409e23fe466a72","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        controller \u003d base.create_resource("},{"line_number":94,"context_line":"            SEGMENTS,"},{"line_number":95,"context_line":"            SEGMENT,"},{"line_number":96,"context_line":"            # FIXME One thought is to use stevedore to break the cycle"},{"line_number":97,"context_line":"            plugin.Plugin.get_instance(),"},{"line_number":98,"context_line":"            resource_attributes)"},{"line_number":99,"context_line":"        return [extensions.ResourceExtension(SEGMENTS,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_f651acd9","line":96,"in_reply_to":"1a122d0e_0fc5185b","updated":"2016-05-09 20:14:59.000000000","message":"Yep, simple fix with blogan\u0027s suggestion.","commit_id":"651bc26b92cdb46937c9308afc493cb856bd2b24"},{"author":{"_account_id":20277,"name":"James Anziano","email":"janzian@us.ibm.com","username":"janzian"},"change_message_id":"3d6d152f29cf49dd6d406414c0409e23fe466a72","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        controller \u003d base.create_resource("},{"line_number":94,"context_line":"            SEGMENTS,"},{"line_number":95,"context_line":"            SEGMENT,"},{"line_number":96,"context_line":"            # FIXME One thought is to use stevedore to break the cycle"},{"line_number":97,"context_line":"            plugin.Plugin.get_instance(),"},{"line_number":98,"context_line":"            resource_attributes)"},{"line_number":99,"context_line":"        return [extensions.ResourceExtension(SEGMENTS,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_765c9ced","line":96,"in_reply_to":"1a122d0e_af922455","updated":"2016-05-09 20:14:59.000000000","message":"Is there an existing patch for the auto allocated topology, or does a new one need to be started?","commit_id":"651bc26b92cdb46937c9308afc493cb856bd2b24"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"8b7db3a6bd2bdbf79b3419de0c5ddf1f063f88ef","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        controller \u003d base.create_resource("},{"line_number":94,"context_line":"            SEGMENTS,"},{"line_number":95,"context_line":"            SEGMENT,"},{"line_number":96,"context_line":"            # FIXME One thought is to use stevedore to break the cycle"},{"line_number":97,"context_line":"            plugin.Plugin.get_instance(),"},{"line_number":98,"context_line":"            resource_attributes)"},{"line_number":99,"context_line":"        return [extensions.ResourceExtension(SEGMENTS,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_8c8a4d62","line":96,"in_reply_to":"dab17558_765c9ced","updated":"2016-05-16 18:37:56.000000000","message":"auto allocated doesn\u0027t have an existing patch.","commit_id":"651bc26b92cdb46937c9308afc493cb856bd2b24"}],"neutron/services/segments/db.py":[{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"608ab0a41661c6a21ca37d9f4a6126eb9d4a6171","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import functools"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from neutron_lib import constants"},{"line_number":21,"context_line":"from oslo_log import helpers as log_helpers"},{"line_number":22,"context_line":"from oslo_utils import uuidutils"},{"line_number":23,"context_line":"from sqlalchemy.orm import exc"}],"source_content_type":"text/x-python","patch_set":6,"id":"dab17558_ea73b9e5","side":"PARENT","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":33},"updated":"2016-05-13 01:46:32.000000000","message":"Why did you change it? We should use constants defined in neutron_lib rather than v2.attributes.","commit_id":"3347da8b054e7a97f3ad97da6da85c44018f75d5"},{"author":{"_account_id":20277,"name":"James Anziano","email":"janzian@us.ibm.com","username":"janzian"},"change_message_id":"101cb4f071716149fc5e3306d30ff7a701354bf8","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import functools"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from neutron_lib import constants"},{"line_number":21,"context_line":"from oslo_log import helpers as log_helpers"},{"line_number":22,"context_line":"from oslo_utils import uuidutils"},{"line_number":23,"context_line":"from sqlalchemy.orm import exc"}],"source_content_type":"text/x-python","patch_set":6,"id":"dab17558_c69b3265","side":"PARENT","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":33},"in_reply_to":"dab17558_ea73b9e5","updated":"2016-05-13 14:38:34.000000000","message":"Done. I must have picked the wrong version to accept when resolving a merge conflict. Good catch!","commit_id":"3347da8b054e7a97f3ad97da6da85c44018f75d5"}],"neutron/services/segments/plugin.py":[{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"58ca3e1cd3939a85e9a11ce254447d159e3b814c","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from neutron.services.segments import db"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class Plugin(db.SegmentDbMixin, segment.SegmentPluginBase):"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    _instance \u003d None"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_fd302558","line":22,"range":{"start_line":22,"start_character":32,"end_line":22,"end_character":57},"updated":"2016-05-26 16:54:45.000000000","message":"While it would be nice to not to have to worry about the order of inheritance here, it is kind of the python way with the MRO and all.  It is pretty common practice to always put absract or virtual classes last.  I think this should work.  The unit tests had no problem with it.","commit_id":"e48f25338a4f684a44f8e524cc2f0510307cd339"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"25f77d6ca88f736d1d20b5d239387c9fa885e88d","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        return \"Network Segments\""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def get_plugin_type(self):"},{"line_number":38,"context_line":"        return \"segments\""}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_c8d5a1e5","line":38,"range":{"start_line":38,"start_character":15,"end_line":38,"end_character":25},"updated":"2016-05-26 17:03:36.000000000","message":"this should be the constant from the extension as this is what the NeutronManager uses as the key to get service plugins.  I also think this method should be moved to the SegmentPluginBase too because this type should be the same for any implementation of the SegmentPluginBase.","commit_id":"e48f25338a4f684a44f8e524cc2f0510307cd339"},{"author":{"_account_id":20277,"name":"James Anziano","email":"janzian@us.ibm.com","username":"janzian"},"change_message_id":"8bbd61c841975cde565838cfdc49c181c5653170","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        return \"Network Segments\""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def get_plugin_type(self):"},{"line_number":38,"context_line":"        return \"segments\""}],"source_content_type":"text/x-python","patch_set":10,"id":"9abb7d3a_ae6a7b18","line":38,"range":{"start_line":38,"start_character":15,"end_line":38,"end_character":25},"in_reply_to":"bab6814e_c8d5a1e5","updated":"2016-05-27 17:18:22.000000000","message":"Done and done.","commit_id":"e48f25338a4f684a44f8e524cc2f0510307cd339"}],"neutron/tests/unit/extensions/test_segment.py":[{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"7c72c7450dc4d87b34c64955457360ccc18c3048","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from neutron.services.segments import db"},{"line_number":21,"context_line":"from neutron.tests.unit.db import test_db_base_plugin_v2"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"DB_PLUGIN_KLASS \u003d (\u0027neutron.tests.unit.extensions.test_segment.\u0027"},{"line_number":24,"context_line":"                   \u0027SegmentTestPlugin\u0027)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_ec1af97b","line":23,"range":{"start_line":23,"start_character":0,"end_line":23,"end_character":15},"updated":"2016-05-11 22:10:11.000000000","message":"This is no longer used.","commit_id":"7fcee9a532d824f20c867c2fb3fdcd55994b9de3"},{"author":{"_account_id":20277,"name":"James Anziano","email":"janzian@us.ibm.com","username":"janzian"},"change_message_id":"71fdcb904aa9968c7df34afe53666026e6ada9d0","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from neutron.services.segments import db"},{"line_number":21,"context_line":"from neutron.tests.unit.db import test_db_base_plugin_v2"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"DB_PLUGIN_KLASS \u003d (\u0027neutron.tests.unit.extensions.test_segment.\u0027"},{"line_number":24,"context_line":"                   \u0027SegmentTestPlugin\u0027)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_eb80fa8d","line":23,"range":{"start_line":23,"start_character":0,"end_line":23,"end_character":15},"in_reply_to":"dab17558_ec1af97b","updated":"2016-05-12 14:11:35.000000000","message":"Whoops, missed that. Done","commit_id":"7fcee9a532d824f20c867c2fb3fdcd55994b9de3"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"7c72c7450dc4d87b34c64955457360ccc18c3048","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def setUp(self):"},{"line_number":48,"context_line":"        plugin \u003d \u0027neutron.db.db_base_plugin_v2.NeutronDbPluginV2\u0027"},{"line_number":49,"context_line":"        segments_plugin \u003d (\u0027neutron.tests.unit.extensions.test_segment.\u0027"},{"line_number":50,"context_line":"                           \u0027SegmentTestPlugin\u0027)"},{"line_number":51,"context_line":"        service_plugins \u003d {\u0027segments_plugin_name\u0027: segments_plugin}"},{"line_number":52,"context_line":"        ext_mgr \u003d SegmentTestExtensionManager()"},{"line_number":53,"context_line":"        super(SegmentTestCase, self).setUp(plugin\u003dplugin, ext_mgr\u003dext_mgr,"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_f721269f","line":50,"range":{"start_line":49,"start_character":27,"end_line":50,"end_character":46},"updated":"2016-05-11 22:10:11.000000000","message":"There\u0027s a constant for this.  Don\u0027t need a new local variable for it.","commit_id":"7fcee9a532d824f20c867c2fb3fdcd55994b9de3"},{"author":{"_account_id":20277,"name":"James Anziano","email":"janzian@us.ibm.com","username":"janzian"},"change_message_id":"71fdcb904aa9968c7df34afe53666026e6ada9d0","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def setUp(self):"},{"line_number":48,"context_line":"        plugin \u003d \u0027neutron.db.db_base_plugin_v2.NeutronDbPluginV2\u0027"},{"line_number":49,"context_line":"        segments_plugin \u003d (\u0027neutron.tests.unit.extensions.test_segment.\u0027"},{"line_number":50,"context_line":"                           \u0027SegmentTestPlugin\u0027)"},{"line_number":51,"context_line":"        service_plugins \u003d {\u0027segments_plugin_name\u0027: segments_plugin}"},{"line_number":52,"context_line":"        ext_mgr \u003d SegmentTestExtensionManager()"},{"line_number":53,"context_line":"        super(SegmentTestCase, self).setUp(plugin\u003dplugin, ext_mgr\u003dext_mgr,"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_ab2432c6","line":50,"range":{"start_line":49,"start_character":27,"end_line":50,"end_character":46},"in_reply_to":"dab17558_f721269f","updated":"2016-05-12 14:11:35.000000000","message":"As per your other comment, this is no longer being used. If there\u0027s a constant for the new plugin as well, I didn\u0027t find it with a cursory grep, but I\u0027m happy to be proven wrong :)","commit_id":"7fcee9a532d824f20c867c2fb3fdcd55994b9de3"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"7c72c7450dc4d87b34c64955457360ccc18c3048","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        return segment"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"class SegmentTestPlugin(db_base_plugin_v2.NeutronDbPluginV2,"},{"line_number":91,"context_line":"                        db.SegmentDbMixin):"},{"line_number":92,"context_line":"    __native_pagination_support \u003d True"},{"line_number":93,"context_line":"    __native_sorting_support \u003d True"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_176dcacb","line":90,"range":{"start_line":90,"start_character":6,"end_line":90,"end_character":23},"updated":"2016-05-11 22:10:11.000000000","message":"At this point, is this even needed anymore?  Couldn\u0027t we just use the one out of the segments service plugin?","commit_id":"7fcee9a532d824f20c867c2fb3fdcd55994b9de3"},{"author":{"_account_id":20277,"name":"James Anziano","email":"janzian@us.ibm.com","username":"janzian"},"change_message_id":"71fdcb904aa9968c7df34afe53666026e6ada9d0","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        return segment"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"class SegmentTestPlugin(db_base_plugin_v2.NeutronDbPluginV2,"},{"line_number":91,"context_line":"                        db.SegmentDbMixin):"},{"line_number":92,"context_line":"    __native_pagination_support \u003d True"},{"line_number":93,"context_line":"    __native_sorting_support \u003d True"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_3e2402ae","line":90,"range":{"start_line":90,"start_character":6,"end_line":90,"end_character":23},"in_reply_to":"dab17558_176dcacb","updated":"2016-05-12 14:11:35.000000000","message":"Apparently not. The tests still pass with the plugin you suggested, so I\u0027ve removed this for now and am using the new one. Done","commit_id":"7fcee9a532d824f20c867c2fb3fdcd55994b9de3"},{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"608ab0a41661c6a21ca37d9f4a6126eb9d4a6171","unresolved":false,"context_lines":[{"line_number":44,"context_line":"class SegmentTestCase(test_db_base_plugin_v2.NeutronDbPluginV2TestCase):"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def setUp(self):"},{"line_number":47,"context_line":"        plugin \u003d \u0027neutron.db.db_base_plugin_v2.NeutronDbPluginV2\u0027"},{"line_number":48,"context_line":"        segments_plugin \u003d (\u0027neutron.services.segments.plugin.Plugin\u0027)"},{"line_number":49,"context_line":"        service_plugins \u003d {\u0027segments_plugin_name\u0027: segments_plugin}"},{"line_number":50,"context_line":"        ext_mgr \u003d SegmentTestExtensionManager()"}],"source_content_type":"text/x-python","patch_set":6,"id":"dab17558_9504d2c6","line":47,"range":{"start_line":47,"start_character":8,"end_line":47,"end_character":65},"updated":"2016-05-13 01:46:32.000000000","message":"This is unnecessary because it\u0027s defined in NeutronDbPluginV2TestCase().","commit_id":"2b583e876860763189786407adfe569451874e61"},{"author":{"_account_id":20277,"name":"James Anziano","email":"janzian@us.ibm.com","username":"janzian"},"change_message_id":"101cb4f071716149fc5e3306d30ff7a701354bf8","unresolved":false,"context_lines":[{"line_number":44,"context_line":"class SegmentTestCase(test_db_base_plugin_v2.NeutronDbPluginV2TestCase):"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def setUp(self):"},{"line_number":47,"context_line":"        plugin \u003d \u0027neutron.db.db_base_plugin_v2.NeutronDbPluginV2\u0027"},{"line_number":48,"context_line":"        segments_plugin \u003d (\u0027neutron.services.segments.plugin.Plugin\u0027)"},{"line_number":49,"context_line":"        service_plugins \u003d {\u0027segments_plugin_name\u0027: segments_plugin}"},{"line_number":50,"context_line":"        ext_mgr \u003d SegmentTestExtensionManager()"}],"source_content_type":"text/x-python","patch_set":6,"id":"dab17558_86600aa6","line":47,"range":{"start_line":47,"start_character":8,"end_line":47,"end_character":65},"in_reply_to":"dab17558_9504d2c6","updated":"2016-05-13 14:38:34.000000000","message":"Ah, thanks for letting me know. Done","commit_id":"2b583e876860763189786407adfe569451874e61"},{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"4a895a96881783824a29076a67fbbaf50746a198","unresolved":false,"context_lines":[{"line_number":44,"context_line":"class SegmentTestCase(test_db_base_plugin_v2.NeutronDbPluginV2TestCase):"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def setUp(self):"},{"line_number":47,"context_line":"        plugin \u003d test_db_base_plugin_v2.DB_PLUGIN_KLASS"},{"line_number":48,"context_line":"        segments_plugin \u003d (\u0027neutron.services.segments.plugin.Plugin\u0027)"},{"line_number":49,"context_line":"        service_plugins \u003d {\u0027segments_plugin_name\u0027: segments_plugin}"},{"line_number":50,"context_line":"        ext_mgr \u003d SegmentTestExtensionManager()"}],"source_content_type":"text/x-python","patch_set":7,"id":"dab17558_8c0789c8","line":47,"range":{"start_line":47,"start_character":8,"end_line":47,"end_character":55},"updated":"2016-05-13 14:58:27.000000000","message":"I meant that this class doesn\u0027t need to prepare plugin because DB_PLUGIN_KLASS is set to plugin if plugin is None[1]. So L51 will be super(SegmentTestCase, self).setUp(ext_mgr\u003dext_mgr, service_plugins\u003dservice_plugins).\n\n[1]: https://github.com/openstack/neutron/blob/master/neutron/tests/unit/db/test_db_base_plugin_v2.py#L110-L111","commit_id":"fdb45d414e3117c5a7c2798de7ad417b8c26ac0e"},{"author":{"_account_id":20277,"name":"James Anziano","email":"janzian@us.ibm.com","username":"janzian"},"change_message_id":"947a9b779a7f61de40f4ceb908c3257ed4479cb5","unresolved":false,"context_lines":[{"line_number":44,"context_line":"class SegmentTestCase(test_db_base_plugin_v2.NeutronDbPluginV2TestCase):"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def setUp(self):"},{"line_number":47,"context_line":"        plugin \u003d test_db_base_plugin_v2.DB_PLUGIN_KLASS"},{"line_number":48,"context_line":"        segments_plugin \u003d (\u0027neutron.services.segments.plugin.Plugin\u0027)"},{"line_number":49,"context_line":"        service_plugins \u003d {\u0027segments_plugin_name\u0027: segments_plugin}"},{"line_number":50,"context_line":"        ext_mgr \u003d SegmentTestExtensionManager()"}],"source_content_type":"text/x-python","patch_set":7,"id":"dab17558_a03411de","line":47,"range":{"start_line":47,"start_character":8,"end_line":47,"end_character":55},"in_reply_to":"dab17558_8c0789c8","updated":"2016-05-13 15:11:08.000000000","message":"Done","commit_id":"fdb45d414e3117c5a7c2798de7ad417b8c26ac0e"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"e0f095e0965d4238a12b023a0f82ff4e41c29e5c","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        return segment"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"class SegmentTestPlugin(db_base_plugin_v2.NeutronDbPluginV2,"},{"line_number":91,"context_line":"                        db.SegmentDbMixin):"},{"line_number":92,"context_line":"    __native_pagination_support \u003d True"},{"line_number":93,"context_line":"    __native_sorting_support \u003d True"}],"source_content_type":"text/x-python","patch_set":8,"id":"bab6814e_77ad7483","side":"PARENT","line":90,"range":{"start_line":90,"start_character":6,"end_line":90,"end_character":23},"updated":"2016-05-26 16:32:40.000000000","message":"I think I\u0027m going to want to keep this plugin.  I\u0027ve found differences between the way this plugin behaves and the way ML2 behaves [1].  I\u0027d rather keep this here to expose those differences.\n\n [1] https://review.openstack.org/#/c/320657/","commit_id":"3347da8b054e7a97f3ad97da6da85c44018f75d5"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"58ca3e1cd3939a85e9a11ce254447d159e3b814c","unresolved":false,"context_lines":[{"line_number":285,"context_line":"                                     group\u003d\u0027ml2\u0027)"},{"line_number":286,"context_line":"        if not plugin:"},{"line_number":287,"context_line":"            plugin \u003d \u0027neutron.plugins.ml2.plugin.Ml2Plugin\u0027"},{"line_number":288,"context_line":"        segments_plugin \u003d (\u0027neutron.tests.unit.extensions.test_segment.\u0027"},{"line_number":289,"context_line":"                           \u0027SegmentTestPlugin\u0027)"},{"line_number":290,"context_line":"        service_plugins \u003d {\u0027segments_plugin_name\u0027: segments_plugin}"},{"line_number":291,"context_line":"        super(HostSegmentMappingTestCase, self).setUp("},{"line_number":292,"context_line":"              plugin\u003dplugin, service_plugins\u003dservice_plugins)"}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_bd1a1dc4","side":"PARENT","line":289,"range":{"start_line":288,"start_character":27,"end_line":289,"end_character":46},"updated":"2016-05-26 16:54:45.000000000","message":"With the change to the real Plugin class, I wanted to be sure that the real plugin was getting tested as the service plugin instead of this fake one.  So, I changed that here.  I did want to keep the test plugin instead of using ML2 everywhere.  That way, I see where ML2 has an issue as compared with a strip-down basic plugin.","commit_id":"1ce8ce9546479c0ce6055c0c205a8885699e3051"}]}
