)]}'
{"quantum/db/migration/alembic_migrations/versions/2de049d0fb29_remove_external_id.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2013 OpenStack LLC"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2BqYQ%3D","line":1,"updated":"2013-02-22 12:47:35.000000000","message":"db migration is prepared to migrate from the previous release to the new release. I am not sure which is better to update security_groups db migration script itself or to add this migration script.","commit_id":"8f8b299a9d51926dfdb201f87c3371db152ba20e"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"e042ce0efe8f8b850cd9fae7e9fbaa7a132984a1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2013 OpenStack LLC"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Bp0g%3D","line":1,"in_reply_to":"AAAAM3%2F%2BqYQ%3D","updated":"2013-02-22 18:19:28.000000000","message":"Hopefully markmcclain will set us straight here.","commit_id":"8f8b299a9d51926dfdb201f87c3371db152ba20e"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":18,"context_line":"\"\"\"remove external_id"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Revision ID: 2de049d0fb29"},{"line_number":21,"context_line":"Revises: 54c2c487e913"},{"line_number":22,"context_line":"Create Date: 2013-02-13 15:56:11.563458"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2BqY0%3D","line":21,"updated":"2013-02-22 12:47:35.000000000","message":"down_revision needs to be update.","commit_id":"8f8b299a9d51926dfdb201f87c3371db152ba20e"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"e042ce0efe8f8b850cd9fae7e9fbaa7a132984a1","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\"\"\"remove external_id"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Revision ID: 2de049d0fb29"},{"line_number":21,"context_line":"Revises: 54c2c487e913"},{"line_number":22,"context_line":"Create Date: 2013-02-13 15:56:11.563458"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Bp1o%3D","line":21,"in_reply_to":"AAAAM3%2F%2BqY0%3D","updated":"2013-02-22 18:19:28.000000000","message":"Hopefully I did this right I changed it to 3cb5d900c5de","commit_id":"8f8b299a9d51926dfdb201f87c3371db152ba20e"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"# revision identifiers, used by Alembic."},{"line_number":27,"context_line":"revision \u003d \u00272de049d0fb29\u0027"},{"line_number":28,"context_line":"down_revision \u003d \u002754c2c487e913\u0027"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"# Change to [\u0027*\u0027] if this migration applies to all plugins"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2BqY4%3D","line":28,"updated":"2013-02-22 12:47:35.000000000","message":"down_revision needs to be update.","commit_id":"8f8b299a9d51926dfdb201f87c3371db152ba20e"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"e042ce0efe8f8b850cd9fae7e9fbaa7a132984a1","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"# revision identifiers, used by Alembic."},{"line_number":27,"context_line":"revision \u003d \u00272de049d0fb29\u0027"},{"line_number":28,"context_line":"down_revision \u003d \u002754c2c487e913\u0027"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"# Change to [\u0027*\u0027] if this migration applies to all plugins"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Bp1k%3D","line":28,"in_reply_to":"AAAAM3%2F%2BqY4%3D","updated":"2013-02-22 18:19:28.000000000","message":"ditto","commit_id":"8f8b299a9d51926dfdb201f87c3371db152ba20e"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":32,"context_line":"migration_for_plugins \u003d ["},{"line_number":33,"context_line":"    \u0027quantum.plugins.nicira.nicira_nvp_plugin.QuantumPlugin.NvpPluginV2\u0027,"},{"line_number":34,"context_line":"    \u0027quantum.plugins.linuxbridge.lb_quantum_plugin.LinuxBridgePluginV2\u0027,"},{"line_number":35,"context_line":"    \u0027quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2\u0027"},{"line_number":36,"context_line":"]"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"from alembic import op"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2BqYs%3D","line":35,"updated":"2013-02-22 12:47:35.000000000","message":"nec plugin and ryu plugin have security group support and they need to be added.","commit_id":"8f8b299a9d51926dfdb201f87c3371db152ba20e"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"e042ce0efe8f8b850cd9fae7e9fbaa7a132984a1","unresolved":false,"context_lines":[{"line_number":32,"context_line":"migration_for_plugins \u003d ["},{"line_number":33,"context_line":"    \u0027quantum.plugins.nicira.nicira_nvp_plugin.QuantumPlugin.NvpPluginV2\u0027,"},{"line_number":34,"context_line":"    \u0027quantum.plugins.linuxbridge.lb_quantum_plugin.LinuxBridgePluginV2\u0027,"},{"line_number":35,"context_line":"    \u0027quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2\u0027"},{"line_number":36,"context_line":"]"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"from alembic import op"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Bp1U%3D","line":35,"in_reply_to":"AAAAM3%2F%2BqYs%3D","updated":"2013-02-22 18:19:28.000000000","message":"Done","commit_id":"8f8b299a9d51926dfdb201f87c3371db152ba20e"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":45,"context_line":"    if not migration.should_run(active_plugin, migration_for_plugins):"},{"line_number":46,"context_line":"        return"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    ### commands auto generated by Alembic - please adjust! ###"},{"line_number":49,"context_line":"    op.drop_column(\u0027securitygrouprules\u0027, u\u0027external_id\u0027)"},{"line_number":50,"context_line":"    op.drop_column(\u0027securitygroups\u0027, u\u0027external_id\u0027)"},{"line_number":51,"context_line":"    ### end Alembic commands ###"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2BqYM%3D","line":48,"updated":"2013-02-22 12:47:35.000000000","message":"It is better to remove this comment since you have checked the contents.","commit_id":"8f8b299a9d51926dfdb201f87c3371db152ba20e"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"e042ce0efe8f8b850cd9fae7e9fbaa7a132984a1","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    if not migration.should_run(active_plugin, migration_for_plugins):"},{"line_number":46,"context_line":"        return"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    ### commands auto generated by Alembic - please adjust! ###"},{"line_number":49,"context_line":"    op.drop_column(\u0027securitygrouprules\u0027, u\u0027external_id\u0027)"},{"line_number":50,"context_line":"    op.drop_column(\u0027securitygroups\u0027, u\u0027external_id\u0027)"},{"line_number":51,"context_line":"    ### end Alembic commands ###"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Bp1I%3D","line":48,"in_reply_to":"AAAAM3%2F%2BqYM%3D","updated":"2013-02-22 18:19:28.000000000","message":"Done","commit_id":"8f8b299a9d51926dfdb201f87c3371db152ba20e"}],"quantum/extensions/securitygroup.py":[{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"e303152874052c709ec6a778ff92d37aa6f4de40","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"class SecurityGroupProxyModeNotAdmin(qexception.NotAuthorized):"},{"line_number":97,"context_line":"    message \u003d _(\"In Proxy Mode and not from admin\")"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"def convert_protocol_to_case_insensitive(value):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B7nE%3D","line":97,"updated":"2013-02-14 00:52:54.000000000","message":"not sure I follow why there\u0027s still a reference to proxy mode here.","commit_id":"3c4b0a45106b72cf95f5aa3ef68a5b5db8cbe236"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"e042ce0efe8f8b850cd9fae7e9fbaa7a132984a1","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"class SecurityGroupProxyModeNotAdmin(qexception.NotAuthorized):"},{"line_number":97,"context_line":"    message \u003d _(\"In Proxy Mode and not from admin\")"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"def convert_protocol_to_case_insensitive(value):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B7m0%3D","line":97,"in_reply_to":"AAAAM3%2F%2B7nE%3D","updated":"2013-02-14 00:54:04.000000000","message":"oops good catch... This can be removed too.","commit_id":"3c4b0a45106b72cf95f5aa3ef68a5b5db8cbe236"}],"quantum/tests/unit/test_extension_security_group.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":973,"context_line":"        self.deserialize(self.fmt, res)"},{"line_number":974,"context_line":"        self.assertEqual(res.status_int, 400)"},{"line_number":975,"context_line":""},{"line_number":976,"context_line":"    def test_create_port_with_non_uuid_or_int(self):"},{"line_number":977,"context_line":"        with self.network() as n:"},{"line_number":978,"context_line":"            with self.subnet(n):"},{"line_number":979,"context_line":"                res \u003d self._create_port(self.fmt, n[\u0027network\u0027][\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2BqXY%3D","line":976,"updated":"2013-02-22 12:47:35.000000000","message":"After removing external_id, int is not a valid type for security group id. It is better to rename the test name (e.g., test_create_port_with_invalid_id).","commit_id":"8f8b299a9d51926dfdb201f87c3371db152ba20e"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"e042ce0efe8f8b850cd9fae7e9fbaa7a132984a1","unresolved":false,"context_lines":[{"line_number":973,"context_line":"        self.deserialize(self.fmt, res)"},{"line_number":974,"context_line":"        self.assertEqual(res.status_int, 400)"},{"line_number":975,"context_line":""},{"line_number":976,"context_line":"    def test_create_port_with_non_uuid_or_int(self):"},{"line_number":977,"context_line":"        with self.network() as n:"},{"line_number":978,"context_line":"            with self.subnet(n):"},{"line_number":979,"context_line":"                res \u003d self._create_port(self.fmt, n[\u0027network\u0027][\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Bp08%3D","line":976,"in_reply_to":"AAAAM3%2F%2BqXY%3D","updated":"2013-02-22 18:19:28.000000000","message":"Done","commit_id":"8f8b299a9d51926dfdb201f87c3371db152ba20e"}]}
