)]}'
{"etc/neutron/plugins/nuage/nuage_plugin.ini":[{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"change_message_id":"85fc14732aaa895c50456b2b73b2bb1a2fd16b2d","unresolved":false,"context_lines":[{"line_number":9,"context_line":"#server \u003d ip:port"},{"line_number":10,"context_line":"#organization \u003d org"},{"line_number":11,"context_line":"#serverauth \u003d uname:pass"},{"line_number":12,"context_line":"#serverssl \u003d True/False"},{"line_number":13,"context_line":"#base_uri \u003d /base"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-properties","patch_set":5,"id":"AAAAUH%2F9t7o%3D","line":12,"updated":"2014-02-04 22:13:37.000000000","message":"not terribly important or technical, but as a convention we generally put the default value here, so it\u0027s easy to just uncomment the whole like","commit_id":"f3ee4a6f62a2f35ae99de0b95e88d7943bb50898"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"5aaca15fb72b6debc0e3ba214f4e5d7361d3089c","unresolved":false,"context_lines":[{"line_number":9,"context_line":"#server \u003d ip:port"},{"line_number":10,"context_line":"#organization \u003d org"},{"line_number":11,"context_line":"#serverauth \u003d uname:pass"},{"line_number":12,"context_line":"#serverssl \u003d True/False"},{"line_number":13,"context_line":"#base_uri \u003d /base"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-properties","patch_set":5,"id":"AAAAUH%2F9sUc%3D","line":12,"in_reply_to":"AAAAUH%2F9t7o%3D","updated":"2014-02-04 23:20:10.000000000","message":"Sure. not a problem.","commit_id":"f3ee4a6f62a2f35ae99de0b95e88d7943bb50898"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"change_message_id":"85fc14732aaa895c50456b2b73b2bb1a2fd16b2d","unresolved":false,"context_lines":[{"line_number":11,"context_line":"#serverauth \u003d uname:pass"},{"line_number":12,"context_line":"#serverssl \u003d True/False"},{"line_number":13,"context_line":"#base_uri \u003d /base"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-properties","patch_set":5,"id":"AAAAUH%2F9t6M%3D","line":14,"updated":"2014-02-04 22:13:37.000000000","message":"you probably want to add servertimeout here as well?","commit_id":"f3ee4a6f62a2f35ae99de0b95e88d7943bb50898"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"5aaca15fb72b6debc0e3ba214f4e5d7361d3089c","unresolved":false,"context_lines":[{"line_number":11,"context_line":"#serverauth \u003d uname:pass"},{"line_number":12,"context_line":"#serverssl \u003d True/False"},{"line_number":13,"context_line":"#base_uri \u003d /base"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-properties","patch_set":5,"id":"AAAAUH%2F9sUY%3D","line":14,"in_reply_to":"AAAAUH%2F9t6M%3D","updated":"2014-02-04 23:20:10.000000000","message":"For me its not configurable, atleast for now.","commit_id":"f3ee4a6f62a2f35ae99de0b95e88d7943bb50898"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"45dceb3fc68e8483eb6cbf80a319183905184d3d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Please fill in the correct data for all the keys below and uncomment key-value pairs"},{"line_number":2,"context_line":"[DATABASE]"},{"line_number":3,"context_line":"#sql_connection \u003d mysql://\u003cuname\u003e:\u003cpassword\u003e@localhost/nuage_neutron?charset\u003dutf8"},{"line_number":4,"context_line":"#reconnect_interval \u003d 2"},{"line_number":5,"context_line":""}],"source_content_type":"text/x-properties","patch_set":10,"id":"AAAAUX%2F%2Bp40%3D","line":2,"updated":"2014-02-20 04:45:56.000000000","message":"It has been agreed to change all these name to lower case","commit_id":"4045348e5df418ac8f90ca6aafe57aa80ea8aea5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"14cd1a4e2ca3a2d0f2ccde496be8edfefc40e6e1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Please fill in the correct data for all the keys below and uncomment key-value pairs"},{"line_number":2,"context_line":"[DATABASE]"},{"line_number":3,"context_line":"#sql_connection \u003d mysql://\u003cuname\u003e:\u003cpassword\u003e@localhost/nuage_neutron?charset\u003dutf8"},{"line_number":4,"context_line":"#reconnect_interval \u003d 2"},{"line_number":5,"context_line":""}],"source_content_type":"text/x-properties","patch_set":10,"id":"AAAAUX%2F%2BoDc%3D","line":2,"in_reply_to":"AAAAUX%2F%2Bp40%3D","updated":"2014-02-20 06:44:02.000000000","message":"Will take care of it in next patch.","commit_id":"4045348e5df418ac8f90ca6aafe57aa80ea8aea5"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"45dceb3fc68e8483eb6cbf80a319183905184d3d","unresolved":false,"context_lines":[{"line_number":3,"context_line":"#sql_connection \u003d mysql://\u003cuname\u003e:\u003cpassword\u003e@localhost/nuage_neutron?charset\u003dutf8"},{"line_number":4,"context_line":"#reconnect_interval \u003d 2"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"[RESTPROXY]"},{"line_number":7,"context_line":"#default_net_partition_name \u003d \u003cdefault-net-partition-name\u003e"},{"line_number":8,"context_line":"#auth_resource \u003d /auth"},{"line_number":9,"context_line":"#server \u003d ip:port"}],"source_content_type":"text/x-properties","patch_set":10,"id":"AAAAUX%2F%2Bp4o%3D","line":6,"updated":"2014-02-20 04:45:56.000000000","message":"ditto","commit_id":"4045348e5df418ac8f90ca6aafe57aa80ea8aea5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"14cd1a4e2ca3a2d0f2ccde496be8edfefc40e6e1","unresolved":false,"context_lines":[{"line_number":3,"context_line":"#sql_connection \u003d mysql://\u003cuname\u003e:\u003cpassword\u003e@localhost/nuage_neutron?charset\u003dutf8"},{"line_number":4,"context_line":"#reconnect_interval \u003d 2"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"[RESTPROXY]"},{"line_number":7,"context_line":"#default_net_partition_name \u003d \u003cdefault-net-partition-name\u003e"},{"line_number":8,"context_line":"#auth_resource \u003d /auth"},{"line_number":9,"context_line":"#server \u003d ip:port"}],"source_content_type":"text/x-properties","patch_set":10,"id":"AAAAUX%2F%2BoDU%3D","line":6,"in_reply_to":"AAAAUX%2F%2Bp4o%3D","updated":"2014-02-20 06:44:02.000000000","message":"ditto","commit_id":"4045348e5df418ac8f90ca6aafe57aa80ea8aea5"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"df1b67cf032daea92e13475415022aa01709fa1a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Please fill in the correct data for all the keys below and uncomment key-value pairs"},{"line_number":2,"context_line":"[database]"},{"line_number":3,"context_line":"#sql_connection \u003d mysql://\u003cuname\u003e:\u003cpassword\u003e@localhost/nuage_neutron?charset\u003dutf8"},{"line_number":4,"context_line":"#reconnect_interval \u003d 2"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"[restproxy]"}],"source_content_type":"text/x-properties","patch_set":16,"id":"AAAAU3%2F%2Fjvg%3D","line":3,"updated":"2014-02-25 23:09:19.000000000","message":"database configuration has been moved for all plugins to the neutron.conf file, please do teh same","commit_id":"77bbdbb7e281cbde67c5920cdcc8b1d9af5b8b46"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"e0af5afdb031b1ece107d3b0a9f9a392ad29ffc2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Please fill in the correct data for all the keys below and uncomment key-value pairs"},{"line_number":2,"context_line":"[database]"},{"line_number":3,"context_line":"#sql_connection \u003d mysql://\u003cuname\u003e:\u003cpassword\u003e@localhost/nuage_neutron?charset\u003dutf8"},{"line_number":4,"context_line":"#reconnect_interval \u003d 2"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"[restproxy]"}],"source_content_type":"text/x-properties","patch_set":16,"id":"AAAAU3%2F%2FjrU%3D","line":3,"in_reply_to":"AAAAU3%2F%2Fjvg%3D","updated":"2014-02-26 00:51:45.000000000","message":"Done","commit_id":"77bbdbb7e281cbde67c5920cdcc8b1d9af5b8b46"}],"neutron/db/migration/alembic_migrations/versions/e766b19a3bb_nuage_initial.py":[{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"change_message_id":"4d03e9e91fd33027cb8b130b6580f3c4ec400ea3","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    if not migration.should_run(active_plugins, migration_for_plugins):"},{"line_number":44,"context_line":"        return"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    ### commands auto generated by Alembic - please adjust! ###"},{"line_number":47,"context_line":"    op.create_table("},{"line_number":48,"context_line":"        \u0027quotas\u0027,"},{"line_number":49,"context_line":"        sa.Column(\u0027id\u0027, sa.String(length\u003d36), nullable\u003dFalse),"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUX%2F%2FJSI%3D","line":46,"updated":"2014-02-16 06:05:54.000000000","message":"You can remove some of the auto generated comments in this module.","commit_id":"6a326382246de96c689f5b6706d4682cada75d3e"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"change_message_id":"4d03e9e91fd33027cb8b130b6580f3c4ec400ea3","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        sa.PrimaryKeyConstraint(\u0027id\u0027),"},{"line_number":62,"context_line":"    )"},{"line_number":63,"context_line":"    op.create_table("},{"line_number":64,"context_line":"        \u0027routers\u0027,"},{"line_number":65,"context_line":"        sa.Column(\u0027tenant_id\u0027, sa.String(length\u003d255), nullable\u003dTrue),"},{"line_number":66,"context_line":"        sa.Column(\u0027id\u0027, sa.String(length\u003d36), nullable\u003dFalse),"},{"line_number":67,"context_line":"        sa.Column(\u0027name\u0027, sa.String(length\u003d255), nullable\u003dTrue),"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUX%2F%2FJNQ%3D","line":64,"updated":"2014-02-16 06:05:54.000000000","message":"For adding the L3 related tables I believe you want to do something like in:\nhttps://github.com/openstack/neutron/blob/master/neutron/db/migration/alembic_migrations/versions/2c4af419145b_l3_support.py","commit_id":"6a326382246de96c689f5b6706d4682cada75d3e"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","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 2014 OpenStack Foundation"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1NA%3D","line":1,"updated":"2014-02-24 15:53:40.000000000","message":"vim modelines should not be included in new code.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","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 2014 OpenStack Foundation"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2Fz4E%3D","line":1,"in_reply_to":"AAAAU3%2F%2F1NA%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"change_message_id":"03554d0b280683410eff6417e8456b946d1b9b0a","unresolved":false,"context_lines":[{"line_number":16,"context_line":"\"\"\"nuage_initial"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Revision ID: e766b19a3bb"},{"line_number":19,"context_line":"Revises: 4ca36cfc898c"},{"line_number":20,"context_line":"Create Date: 2014-02-14 18:03:14.841064"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"\"\"\""}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAU3%2F%2Ft1A%3D","line":19,"updated":"2014-02-25 05:16:45.000000000","message":"nit: this should be 50d5ba354c23","commit_id":"7d4c49236b95fae2e5b8eebdd68cfa7429b0a65a"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"af8fa9ad0f66108d39a5c826fa85b0f87ef91c1b","unresolved":false,"context_lines":[{"line_number":16,"context_line":"\"\"\"nuage_initial"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Revision ID: e766b19a3bb"},{"line_number":19,"context_line":"Revises: 4ca36cfc898c"},{"line_number":20,"context_line":"Create Date: 2014-02-14 18:03:14.841064"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"\"\"\""}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAU3%2F%2FtTo%3D","line":19,"in_reply_to":"AAAAU3%2F%2Ft1A%3D","updated":"2014-02-25 06:10:34.000000000","message":"Done","commit_id":"7d4c49236b95fae2e5b8eebdd68cfa7429b0a65a"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"df1b67cf032daea92e13475415022aa01709fa1a","unresolved":false,"context_lines":[{"line_number":16,"context_line":"\"\"\"nuage_initial"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Revision ID: e766b19a3bb"},{"line_number":19,"context_line":"Revises: 3d2585038b95"},{"line_number":20,"context_line":"Create Date: 2014-02-14 18:03:14.841064"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"\"\"\""}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAU3%2F%2Fju4%3D","line":19,"updated":"2014-02-25 23:09:19.000000000","message":"I noticed a comment from Sumit: \"nit: this should be 50d5ba354c23\"\nI don\u0027t see this number but there could be other migrations between them, please double check","commit_id":"77bbdbb7e281cbde67c5920cdcc8b1d9af5b8b46"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"e0af5afdb031b1ece107d3b0a9f9a392ad29ffc2","unresolved":false,"context_lines":[{"line_number":16,"context_line":"\"\"\"nuage_initial"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Revision ID: e766b19a3bb"},{"line_number":19,"context_line":"Revises: 3d2585038b95"},{"line_number":20,"context_line":"Create Date: 2014-02-14 18:03:14.841064"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"\"\"\""}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAU3%2F%2Fjq4%3D","line":19,"in_reply_to":"AAAAU3%2F%2Fju4%3D","updated":"2014-02-26 00:51:45.000000000","message":"I think he meant to match with down_revision.","commit_id":"77bbdbb7e281cbde67c5920cdcc8b1d9af5b8b46"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"change_message_id":"09ce01fc08de58c2df50207df61d5be4cb07714b","unresolved":false,"context_lines":[{"line_number":24,"context_line":"# revision identifiers, used by Alembic."},{"line_number":25,"context_line":"revision \u003d \u0027e766b19a3bb\u0027"},{"line_number":26,"context_line":"down_revision \u003d \u00273d2585038b95\u0027"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"migration_for_plugins \u003d ["},{"line_number":29,"context_line":"    \u0027neutron.plugins.nuage.plugin.NuagePlugin\u0027"},{"line_number":30,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAAVX%2F%2F8mk%3D","line":27,"updated":"2014-02-27 07:45:13.000000000","message":"i know this is painful, but the down revision has changed...","commit_id":"32e8c1b19e58ab9cfcd92a26a2e34b9e790b85c8"}],"neutron/plugins/nuage/__init__.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","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 2014 Alcatel-Lucent USA Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99KQ%3D","line":1,"updated":"2014-01-31 18:08:51.000000000","message":"License headers are not required for file without code.  Also not a blocker, but vim headers are not necessary either.","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"a9fca2be8f48213eeca0cdfdbb361cc4934f672a","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 2014 Alcatel-Lucent USA Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F98lI%3D","line":1,"in_reply_to":"AAAAUH%2F99KQ%3D","updated":"2014-02-03 22:27:27.000000000","message":"Done","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"}],"neutron/plugins/nuage/common/__init__.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","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 2014 Alcatel-Lucent USA Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99KI%3D","line":1,"updated":"2014-01-31 18:08:51.000000000","message":"License headers are not required for file without code.  Also not a blocker, but vim headers are not necessary either.","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"a9fca2be8f48213eeca0cdfdbb361cc4934f672a","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 2014 Alcatel-Lucent USA Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F98lY%3D","line":1,"in_reply_to":"AAAAUH%2F99KI%3D","updated":"2014-02-03 22:27:27.000000000","message":"Done","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"}],"neutron/plugins/nuage/common/config.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"restproxy_opts \u003d ["},{"line_number":23,"context_line":"    cfg.StrOpt(\u0027server\u0027, default\u003d\u0027localhost:8800\u0027),"},{"line_number":24,"context_line":"    cfg.StrOpt(\u0027serverauth\u0027, default\u003d\u0027username:password\u0027),"},{"line_number":25,"context_line":"    cfg.BoolOpt(\u0027serverssl\u0027, default\u003dFalse),"},{"line_number":26,"context_line":"    cfg.BoolOpt(\u0027syncdata\u0027, default\u003dFalse),"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99Jw%3D","line":23,"updated":"2014-01-31 18:08:51.000000000","message":"Seems like some help text would be useful for some of these options.","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"a9fca2be8f48213eeca0cdfdbb361cc4934f672a","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"restproxy_opts \u003d ["},{"line_number":23,"context_line":"    cfg.StrOpt(\u0027server\u0027, default\u003d\u0027localhost:8800\u0027),"},{"line_number":24,"context_line":"    cfg.StrOpt(\u0027serverauth\u0027, default\u003d\u0027username:password\u0027),"},{"line_number":25,"context_line":"    cfg.BoolOpt(\u0027serverssl\u0027, default\u003dFalse),"},{"line_number":26,"context_line":"    cfg.BoolOpt(\u0027syncdata\u0027, default\u003dFalse),"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F98ZI%3D","line":23,"in_reply_to":"AAAAUH%2F99Jw%3D","updated":"2014-02-03 22:27:27.000000000","message":"Removed syncdata and default_router_gateway_limit for now as its not require with this set of code change. Rest of the options have help now.","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"change_message_id":"85fc14732aaa895c50456b2b73b2bb1a2fd16b2d","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    cfg.BoolOpt(\u0027serverssl\u0027, default\u003dFalse,"},{"line_number":28,"context_line":"                help\u003d_(\"Boolean for SSL connection with VSD server\")),"},{"line_number":29,"context_line":"    cfg.IntOpt(\u0027servertimeout\u0027, default\u003d10,"},{"line_number":30,"context_line":"               help\u003d_(\"VSD server timeout\")),"},{"line_number":31,"context_line":"    cfg.StrOpt(\u0027base_uri\u0027, default\u003d\u0027/\u0027,"},{"line_number":32,"context_line":"               help\u003d_(\"Nuage provided base uri to reach out to VSD\")),"},{"line_number":33,"context_line":"    cfg.StrOpt(\u0027organization\u0027, default\u003d\u0027system\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F9t6o%3D","line":30,"updated":"2014-02-04 22:13:37.000000000","message":"perhaps want to mention that this timeout is in seconds","commit_id":"f3ee4a6f62a2f35ae99de0b95e88d7943bb50898"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"5aaca15fb72b6debc0e3ba214f4e5d7361d3089c","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    cfg.BoolOpt(\u0027serverssl\u0027, default\u003dFalse,"},{"line_number":28,"context_line":"                help\u003d_(\"Boolean for SSL connection with VSD server\")),"},{"line_number":29,"context_line":"    cfg.IntOpt(\u0027servertimeout\u0027, default\u003d10,"},{"line_number":30,"context_line":"               help\u003d_(\"VSD server timeout\")),"},{"line_number":31,"context_line":"    cfg.StrOpt(\u0027base_uri\u0027, default\u003d\u0027/\u0027,"},{"line_number":32,"context_line":"               help\u003d_(\"Nuage provided base uri to reach out to VSD\")),"},{"line_number":33,"context_line":"    cfg.StrOpt(\u0027organization\u0027, default\u003d\u0027system\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F9sTQ%3D","line":30,"in_reply_to":"AAAAUH%2F9t6o%3D","updated":"2014-02-04 23:20:10.000000000","message":"Getting rid of it as its not configurable, atleast as of now","commit_id":"f3ee4a6f62a2f35ae99de0b95e88d7943bb50898"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"change_message_id":"85fc14732aaa895c50456b2b73b2bb1a2fd16b2d","unresolved":false,"context_lines":[{"line_number":41,"context_line":"               help\u003d_(\"Default Network partition in which VSD will \""},{"line_number":42,"context_line":"                      \"orchestrate network resources using openstack\")),"},{"line_number":43,"context_line":"    cfg.StrOpt(\u0027default_floatingip_quota\u0027,"},{"line_number":44,"context_line":"               default\u003d256,"},{"line_number":45,"context_line":"               help\u003d_(\"Per Net Partition quota of floating ips\")),"},{"line_number":46,"context_line":"]"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F9ty0%3D","line":44,"updated":"2014-02-04 22:13:37.000000000","message":"if you have /24 in mind, should this be 254 maybe?","commit_id":"f3ee4a6f62a2f35ae99de0b95e88d7943bb50898"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"5aaca15fb72b6debc0e3ba214f4e5d7361d3089c","unresolved":false,"context_lines":[{"line_number":41,"context_line":"               help\u003d_(\"Default Network partition in which VSD will \""},{"line_number":42,"context_line":"                      \"orchestrate network resources using openstack\")),"},{"line_number":43,"context_line":"    cfg.StrOpt(\u0027default_floatingip_quota\u0027,"},{"line_number":44,"context_line":"               default\u003d256,"},{"line_number":45,"context_line":"               help\u003d_(\"Per Net Partition quota of floating ips\")),"},{"line_number":46,"context_line":"]"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F9sL0%3D","line":44,"in_reply_to":"AAAAUH%2F9ty0%3D","updated":"2014-02-04 23:20:10.000000000","message":"hmm. Ya I can change that as well.\nThough one can allocate .0, .1 and may be .255 as well in fip space.\nIts just a configurable value so I will change that to 254 to avoid confusion.","commit_id":"f3ee4a6f62a2f35ae99de0b95e88d7943bb50898"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","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 2014 Alcatel-Lucent USA Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1Mg%3D","line":1,"updated":"2014-02-24 15:53:40.000000000","message":"vim modelines should not be included in new code.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","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 2014 Alcatel-Lucent USA Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2Fz3Q%3D","line":1,"in_reply_to":"AAAAU3%2F%2F1Mg%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"25506fd2308f84cd2021b875f33d28f72ed850b1","unresolved":false,"context_lines":[{"line_number":20,"context_line":"restproxy_opts \u003d ["},{"line_number":21,"context_line":"    cfg.StrOpt(\u0027server\u0027, default\u003d\u0027localhost:8800\u0027,"},{"line_number":22,"context_line":"               help\u003d_(\"IP Address and Port of Nuage\u0027s VSD server\")),"},{"line_number":23,"context_line":"    cfg.StrOpt(\u0027serverauth\u0027, default\u003d\u0027username:password\u0027,"},{"line_number":24,"context_line":"               help\u003d_(\"Username and password for authentication\")),"},{"line_number":25,"context_line":"    cfg.BoolOpt(\u0027serverssl\u0027, default\u003dFalse,"},{"line_number":26,"context_line":"                help\u003d_(\"Boolean for SSL connection with VSD server\")),"}],"source_content_type":"text/x-python","patch_set":20,"id":"AAAAVX%2F%2Fy%2Fg%3D","line":23,"updated":"2014-02-28 08:09:24.000000000","message":"nit: secret\u003dTrue to prevent password from leaking to logs.","commit_id":"f2106b6fb4101f8068124dcc3fcad06759da90db"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"07aa13c42405474fa00d4c6affc98ffb5e8349f7","unresolved":false,"context_lines":[{"line_number":20,"context_line":"restproxy_opts \u003d ["},{"line_number":21,"context_line":"    cfg.StrOpt(\u0027server\u0027, default\u003d\u0027localhost:8800\u0027,"},{"line_number":22,"context_line":"               help\u003d_(\"IP Address and Port of Nuage\u0027s VSD server\")),"},{"line_number":23,"context_line":"    cfg.StrOpt(\u0027serverauth\u0027, default\u003d\u0027username:password\u0027,"},{"line_number":24,"context_line":"               help\u003d_(\"Username and password for authentication\")),"},{"line_number":25,"context_line":"    cfg.BoolOpt(\u0027serverssl\u0027, default\u003dFalse,"},{"line_number":26,"context_line":"                help\u003d_(\"Boolean for SSL connection with VSD server\")),"}],"source_content_type":"text/x-python","patch_set":20,"id":"AAAAVX%2F%2FyhY%3D","line":23,"in_reply_to":"AAAAVX%2F%2Fy%2Fg%3D","updated":"2014-02-28 09:12:24.000000000","message":"Done","commit_id":"f2106b6fb4101f8068124dcc3fcad06759da90db"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"25506fd2308f84cd2021b875f33d28f72ed850b1","unresolved":false,"context_lines":[{"line_number":36,"context_line":"               default\u003d\u0027OpenStackDefaultNetPartition\u0027,"},{"line_number":37,"context_line":"               help\u003d_(\"Default Network partition in which VSD will \""},{"line_number":38,"context_line":"                      \"orchestrate network resources using openstack\")),"},{"line_number":39,"context_line":"    cfg.StrOpt(\u0027default_floatingip_quota\u0027,"},{"line_number":40,"context_line":"               default\u003d254,"},{"line_number":41,"context_line":"               help\u003d_(\"Per Net Partition quota of floating ips\")),"},{"line_number":42,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":20,"id":"AAAAVX%2F%2FzBc%3D","line":39,"updated":"2014-02-28 08:09:24.000000000","message":"nit: cfg.IntOpt()","commit_id":"f2106b6fb4101f8068124dcc3fcad06759da90db"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"07aa13c42405474fa00d4c6affc98ffb5e8349f7","unresolved":false,"context_lines":[{"line_number":36,"context_line":"               default\u003d\u0027OpenStackDefaultNetPartition\u0027,"},{"line_number":37,"context_line":"               help\u003d_(\"Default Network partition in which VSD will \""},{"line_number":38,"context_line":"                      \"orchestrate network resources using openstack\")),"},{"line_number":39,"context_line":"    cfg.StrOpt(\u0027default_floatingip_quota\u0027,"},{"line_number":40,"context_line":"               default\u003d254,"},{"line_number":41,"context_line":"               help\u003d_(\"Per Net Partition quota of floating ips\")),"},{"line_number":42,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":20,"id":"AAAAVX%2F%2FyhU%3D","line":39,"in_reply_to":"AAAAVX%2F%2FzBc%3D","updated":"2014-02-28 09:12:24.000000000","message":"Done","commit_id":"f2106b6fb4101f8068124dcc3fcad06759da90db"}],"neutron/plugins/nuage/common/constants.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","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 2014 Alcatel-Lucent USA Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1LY%3D","line":1,"updated":"2014-02-24 15:53:40.000000000","message":"vim modelines shoulnot be included in new code","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","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 2014 Alcatel-Lucent USA Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2Fz2o%3D","line":1,"in_reply_to":"AAAAU3%2F%2F1LY%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"}],"neutron/plugins/nuage/extensions/__init__.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","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 2014 Alcatel-Lucent USA Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99JA%3D","line":1,"updated":"2014-01-31 18:08:51.000000000","message":"License headers are not required for file without code.  Also not a blocker, but vim headers are not necessary either.","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"a9fca2be8f48213eeca0cdfdbb361cc4934f672a","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 2014 Alcatel-Lucent USA Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F98ZA%3D","line":1,"in_reply_to":"AAAAUH%2F99JA%3D","updated":"2014-02-03 22:27:27.000000000","message":"Done","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"}],"neutron/plugins/nuage/extensions/net_partition.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","unresolved":false,"context_lines":[{"line_number":42,"context_line":"}"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"class Net_partition(object):"},{"line_number":46,"context_line":"    \"\"\"Extension class supporting net_partition."},{"line_number":47,"context_line":"    \"\"\""},{"line_number":48,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99I4%3D","line":45,"updated":"2014-01-31 18:08:51.000000000","message":"Hacking guidelines say this should be:\n\nclass NetPartition(object):","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"a9fca2be8f48213eeca0cdfdbb361cc4934f672a","unresolved":false,"context_lines":[{"line_number":42,"context_line":"}"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"class Net_partition(object):"},{"line_number":46,"context_line":"    \"\"\"Extension class supporting net_partition."},{"line_number":47,"context_line":"    \"\"\""},{"line_number":48,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F97bc%3D","line":45,"in_reply_to":"AAAAUH%2F99I4%3D","updated":"2014-02-03 22:27:27.000000000","message":"Hmm. There are other extensions such as external_net and l3_ext_gw_mode which follows similar syntax like this.\n\nBut I will change it anyways. I would assume that you meant Netpartition with a small letter \"p\" of partition.  Because else the extension will fail to load as it needs to match the file name.","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"}],"neutron/plugins/nuage/extensions/netpartition.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","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 2014 Alcatel-Lucent USA Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1LQ%3D","line":1,"updated":"2014-02-24 15:53:40.000000000","message":"vim modelines should not be included in new code.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","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 2014 Alcatel-Lucent USA Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2Fz0o%3D","line":1,"in_reply_to":"AAAAU3%2F%2F1LQ%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"change_message_id":"03554d0b280683410eff6417e8456b946d1b9b0a","unresolved":false,"context_lines":[{"line_number":32,"context_line":"                 \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027,"},{"line_number":33,"context_line":"                 \u0027validate\u0027: {\u0027type:name_not_default\u0027: None}},"},{"line_number":34,"context_line":"        \u0027description\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":35,"context_line":"                        \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027},"},{"line_number":36,"context_line":"        \u0027tenant_id\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":37,"context_line":"                      \u0027required_by_policy\u0027: True,"},{"line_number":38,"context_line":"                      \u0027is_visible\u0027: True},"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAU3%2F%2Ftzw%3D","line":35,"updated":"2014-02-25 05:16:45.000000000","message":"no string validation for this?","commit_id":"7d4c49236b95fae2e5b8eebdd68cfa7429b0a65a"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"af8fa9ad0f66108d39a5c826fa85b0f87ef91c1b","unresolved":false,"context_lines":[{"line_number":32,"context_line":"                 \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027,"},{"line_number":33,"context_line":"                 \u0027validate\u0027: {\u0027type:name_not_default\u0027: None}},"},{"line_number":34,"context_line":"        \u0027description\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":35,"context_line":"                        \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027},"},{"line_number":36,"context_line":"        \u0027tenant_id\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":37,"context_line":"                      \u0027required_by_policy\u0027: True,"},{"line_number":38,"context_line":"                      \u0027is_visible\u0027: True},"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAU3%2F%2FtTc%3D","line":35,"in_reply_to":"AAAAU3%2F%2Ftzw%3D","updated":"2014-02-25 06:10:34.000000000","message":"Done","commit_id":"7d4c49236b95fae2e5b8eebdd68cfa7429b0a65a"}],"neutron/plugins/nuage/extensions/nuage_router.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","unresolved":false,"context_lines":[{"line_number":26,"context_line":"            \u0027allow_post\u0027: True,"},{"line_number":27,"context_line":"            \u0027allow_put\u0027: True,"},{"line_number":28,"context_line":"            \u0027is_visible\u0027: True,"},{"line_number":29,"context_line":"            \u0027default\u0027: None"},{"line_number":30,"context_line":"        },"},{"line_number":31,"context_line":"        \u0027rd\u0027: {"},{"line_number":32,"context_line":"            \u0027allow_post\u0027: True,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99Io%3D","line":29,"updated":"2014-01-31 18:08:51.000000000","message":"Seems like some validators should be included for these attributes.","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"a9fca2be8f48213eeca0cdfdbb361cc4934f672a","unresolved":false,"context_lines":[{"line_number":26,"context_line":"            \u0027allow_post\u0027: True,"},{"line_number":27,"context_line":"            \u0027allow_put\u0027: True,"},{"line_number":28,"context_line":"            \u0027is_visible\u0027: True,"},{"line_number":29,"context_line":"            \u0027default\u0027: None"},{"line_number":30,"context_line":"        },"},{"line_number":31,"context_line":"        \u0027rd\u0027: {"},{"line_number":32,"context_line":"            \u0027allow_post\u0027: True,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F90Jo%3D","line":29,"in_reply_to":"AAAAUH%2F99Io%3D","updated":"2014-02-03 22:27:27.000000000","message":"Done.","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","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 2014 Alcatel-Lucent USA Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1K8%3D","line":1,"updated":"2014-02-24 15:53:40.000000000","message":"vim modelines should not be included in new code.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","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 2014 Alcatel-Lucent USA Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2Fz0k%3D","line":1,"in_reply_to":"AAAAU3%2F%2F1K8%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"}],"neutron/plugins/nuage/extensions/nuage_subnet.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","unresolved":false,"context_lines":[{"line_number":23,"context_line":"            \u0027allow_post\u0027: True,"},{"line_number":24,"context_line":"            \u0027allow_put\u0027: True,"},{"line_number":25,"context_line":"            \u0027is_visible\u0027: True,"},{"line_number":26,"context_line":"            \u0027default\u0027: None"},{"line_number":27,"context_line":"        },"},{"line_number":28,"context_line":"    },"},{"line_number":29,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99Ig%3D","line":26,"updated":"2014-01-31 18:08:51.000000000","message":"validator?","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"a9fca2be8f48213eeca0cdfdbb361cc4934f672a","unresolved":false,"context_lines":[{"line_number":23,"context_line":"            \u0027allow_post\u0027: True,"},{"line_number":24,"context_line":"            \u0027allow_put\u0027: True,"},{"line_number":25,"context_line":"            \u0027is_visible\u0027: True,"},{"line_number":26,"context_line":"            \u0027default\u0027: None"},{"line_number":27,"context_line":"        },"},{"line_number":28,"context_line":"    },"},{"line_number":29,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F90JU%3D","line":26,"in_reply_to":"AAAAUH%2F99Ig%3D","updated":"2014-02-03 22:27:27.000000000","message":"Done","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","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 2014 Alcatel-Lucent USA Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1Kg%3D","line":1,"updated":"2014-02-24 15:53:40.000000000","message":"vim modelines should not be included in new code","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","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 2014 Alcatel-Lucent USA Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2Fz0M%3D","line":1,"in_reply_to":"AAAAU3%2F%2F1Kg%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"}],"neutron/plugins/nuage/nuage_models.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class NetPartition(model_base.BASEV2, models_v2.HasId):"},{"line_number":27,"context_line":"    __tablename__ \u003d \u0027net_partitions\u0027"},{"line_number":28,"context_line":"    name \u003d Column(String(64))"},{"line_number":29,"context_line":"    l3dom_tmplt_id \u003d Column(String(36))"},{"line_number":30,"context_line":"    l2dom_tmplt_id \u003d Column(String(36))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99IM%3D","line":27,"updated":"2014-01-31 18:08:51.000000000","message":"Why are you overriding every table name here?  Ideally the model names and table names should be the same to be consistent with other code in Neutron.","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"a9fca2be8f48213eeca0cdfdbb361cc4934f672a","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class NetPartition(model_base.BASEV2, models_v2.HasId):"},{"line_number":27,"context_line":"    __tablename__ \u003d \u0027net_partitions\u0027"},{"line_number":28,"context_line":"    name \u003d Column(String(64))"},{"line_number":29,"context_line":"    l3dom_tmplt_id \u003d Column(String(36))"},{"line_number":30,"context_line":"    l2dom_tmplt_id \u003d Column(String(36))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F90Gs%3D","line":27,"in_reply_to":"AAAAUH%2F99IM%3D","updated":"2014-02-03 22:27:27.000000000","message":"base model will convert class name to lower and append \u0027s\u0027 to it. In SQL I want to add \"mapping\" in the name of most of the tables here. Thus I am overriding it across this file. Unless its an absolute \"NO\", I would like to keep this change for better readability in SQL.","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    l3dom_tmplt_id \u003d Column(String(36))"},{"line_number":30,"context_line":"    l2dom_tmplt_id \u003d Column(String(36))"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def __init__(self, id, template_id,"},{"line_number":33,"context_line":"                 l2dom_tmplt_id, name):"},{"line_number":34,"context_line":"        self.id \u003d id"},{"line_number":35,"context_line":"        self.l3dom_tmplt_id \u003d template_id"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99H0%3D","line":32,"updated":"2014-01-31 18:08:51.000000000","message":"The init is not needed here since SQLAlchemy takes care of it for you.","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","unresolved":false,"context_lines":[{"line_number":48,"context_line":"                       primary_key\u003dTrue)"},{"line_number":49,"context_line":"    nuage_router_id \u003d Column(String(36))"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def __init__(self, e_id, r_id, nuage_id):"},{"line_number":52,"context_line":"        self.net_partition_id \u003d e_id"},{"line_number":53,"context_line":"        self.router_id \u003d r_id"},{"line_number":54,"context_line":"        self.nuage_router_id \u003d nuage_id"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99Hs%3D","line":51,"updated":"2014-01-31 18:08:51.000000000","message":"Same as above","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    nuage_user_id \u003d Column(String(36))"},{"line_number":64,"context_line":"    nuage_group_id \u003d Column(String(36))"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def __init__(self, r_id, nuage_zone_id,"},{"line_number":67,"context_line":"                 nuage_user_id\u003dNone, nuage_group_id\u003dNone):"},{"line_number":68,"context_line":"        self.router_id \u003d r_id"},{"line_number":69,"context_line":"        self.nuage_zone_id \u003d nuage_zone_id"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99Hk%3D","line":66,"updated":"2014-01-31 18:08:51.000000000","message":"same as above","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    nuage_user_id \u003d Column(String(36))"},{"line_number":85,"context_line":"    nuage_group_id \u003d Column(String(36))"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def __init__(self, subnet_id, nuage_id, netpart_id,"},{"line_number":88,"context_line":"                 l2dom_id\u003dNone, nuage_user_id\u003dNone, nuage_group_id\u003dNone):"},{"line_number":89,"context_line":"        self.subnet_id \u003d subnet_id"},{"line_number":90,"context_line":"        self.nuage_subnet_id \u003d nuage_id"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99Hg%3D","line":87,"updated":"2014-01-31 18:08:51.000000000","message":"same as above","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","unresolved":false,"context_lines":[{"line_number":103,"context_line":"    nuage_vif_id \u003d Column(String(36))"},{"line_number":104,"context_line":"    static_ip \u003d Column(Boolean())"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    def __init__(self, port_id, nuage_vport_id, nuage_vif_id,"},{"line_number":107,"context_line":"                 static_ip):"},{"line_number":108,"context_line":"        self.port_id \u003d port_id"},{"line_number":109,"context_line":"        self.nuage_vport_id \u003d nuage_vport_id"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99Hc%3D","line":106,"updated":"2014-01-31 18:08:51.000000000","message":"same as above","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"a9fca2be8f48213eeca0cdfdbb361cc4934f672a","unresolved":false,"context_lines":[{"line_number":103,"context_line":"    nuage_vif_id \u003d Column(String(36))"},{"line_number":104,"context_line":"    static_ip \u003d Column(Boolean())"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    def __init__(self, port_id, nuage_vport_id, nuage_vif_id,"},{"line_number":107,"context_line":"                 static_ip):"},{"line_number":108,"context_line":"        self.port_id \u003d port_id"},{"line_number":109,"context_line":"        self.nuage_vport_id \u003d nuage_vport_id"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F9z60%3D","line":106,"in_reply_to":"AAAAUH%2F99Hc%3D","updated":"2014-02-03 22:27:27.000000000","message":"Done for all above.","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","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 2014 Alcatel-Lucent USA Inc."},{"line_number":4,"context_line":"# All Rights Reserved."}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1KQ%3D","line":1,"updated":"2014-02-24 15:53:40.000000000","message":"vim modelines should not be included in new code","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","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 2014 Alcatel-Lucent USA Inc."},{"line_number":4,"context_line":"# All Rights Reserved."}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2Fzzw%3D","line":1,"in_reply_to":"AAAAU3%2F%2F1KQ%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"}],"neutron/plugins/nuage/nuagedb.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"def get_subnet_l2dom_by_id(session, id):"},{"line_number":107,"context_line":"    try:"},{"line_number":108,"context_line":"        query \u003d session.query(nuage_models.SubnetL2Domain)"},{"line_number":109,"context_line":"        subnet_l2dom \u003d query.filter_by(subnet_id\u003did).one()"},{"line_number":110,"context_line":"    except exc.NoResultFound:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99HE%3D","line":107,"updated":"2014-01-31 18:08:51.000000000","message":"replace 107-112 with:\n\nquery \u003d session.query(nuage_models.SubnetL2Domain)\n\nreturn query.filter_by(subnet_net\u003did).first()","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","unresolved":false,"context_lines":[{"line_number":132,"context_line":"    try:"},{"line_number":133,"context_line":"        query \u003d session.query(nuage_models.NetPartitionRouter)"},{"line_number":134,"context_line":"        ent_rtr_mapping \u003d query.filter_by(net_partition_id\u003dentid).all()"},{"line_number":135,"context_line":"    except exc.NoResultFound:"},{"line_number":136,"context_line":"        ent_rtr_mapping \u003d None"},{"line_number":137,"context_line":"    return ent_rtr_mapping"},{"line_number":138,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99G4%3D","line":135,"updated":"2014-01-31 18:08:51.000000000","message":".all() will return an empty list, so this will never get executed.","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"a9fca2be8f48213eeca0cdfdbb361cc4934f672a","unresolved":false,"context_lines":[{"line_number":132,"context_line":"    try:"},{"line_number":133,"context_line":"        query \u003d session.query(nuage_models.NetPartitionRouter)"},{"line_number":134,"context_line":"        ent_rtr_mapping \u003d query.filter_by(net_partition_id\u003dentid).all()"},{"line_number":135,"context_line":"    except exc.NoResultFound:"},{"line_number":136,"context_line":"        ent_rtr_mapping \u003d None"},{"line_number":137,"context_line":"    return ent_rtr_mapping"},{"line_number":138,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F9zvc%3D","line":135,"in_reply_to":"AAAAUH%2F99G4%3D","updated":"2014-02-03 22:27:27.000000000","message":"Done","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"def get_net_partition_by_name(session, name):"},{"line_number":141,"context_line":"    try:"},{"line_number":142,"context_line":"        query \u003d session.query(nuage_models.NetPartition)"},{"line_number":143,"context_line":"        net_partition \u003d query.filter_by(name\u003dname).one()"},{"line_number":144,"context_line":"    except exc.NoResultFound:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99Go%3D","line":141,"updated":"2014-01-31 18:08:51.000000000","message":"Please use .first() as described in the comments above.","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"def get_net_partition_by_id(session, id):"},{"line_number":150,"context_line":"    try:"},{"line_number":151,"context_line":"        query \u003d session.query(nuage_models.NetPartition)"},{"line_number":152,"context_line":"        net_partition \u003d query.filter_by(id\u003did).one()"},{"line_number":153,"context_line":"    except exc.NoResultFound:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99Gk%3D","line":150,"updated":"2014-01-31 18:08:51.000000000","message":"Please use .first()","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"a9fca2be8f48213eeca0cdfdbb361cc4934f672a","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"def get_net_partition_by_id(session, id):"},{"line_number":150,"context_line":"    try:"},{"line_number":151,"context_line":"        query \u003d session.query(nuage_models.NetPartition)"},{"line_number":152,"context_line":"        net_partition \u003d query.filter_by(id\u003did).one()"},{"line_number":153,"context_line":"    except exc.NoResultFound:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F9zvM%3D","line":150,"in_reply_to":"AAAAUH%2F99Gk%3D","updated":"2014-02-03 22:27:27.000000000","message":"Done for all above.","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","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 2014 Alcatel-Lucent USA Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1J4%3D","line":1,"updated":"2014-02-24 15:53:40.000000000","message":"vim modelines should not be included in new code.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","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 2014 Alcatel-Lucent USA Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2Fzzo%3D","line":1,"in_reply_to":"AAAAU3%2F%2F1J4%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":156,"name":"Ryu Ishimoto","email":"ryu@midokura.com","username":"ryu-midokura"},"change_message_id":"95fea20b1b0764ad395a11ad45eddabfc469c453","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"def get_net_partitions(session, filters\u003dNone, fields\u003dNone):"},{"line_number":128,"context_line":"        query \u003d session.query(nuage_models.NetPartition)"},{"line_number":129,"context_line":"        common_db \u003d db_base_plugin_v2.CommonDbMixin()"},{"line_number":130,"context_line":"        query \u003d common_db._apply_filters_to_query(query,"},{"line_number":131,"context_line":"                                                  nuage_models.NetPartition,"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAVX%2F%2F0p4%3D","line":128,"updated":"2014-02-28 02:22:08.000000000","message":"Sorry I missed this in the last review, but indentation in this method is incorrect.","commit_id":"e74971bc20cd96c3b9964b1fee4e98f15a59d78b"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"ad35ef360349b1d49aa6f98e457dc7bd34c15cea","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"def get_net_partitions(session, filters\u003dNone, fields\u003dNone):"},{"line_number":128,"context_line":"        query \u003d session.query(nuage_models.NetPartition)"},{"line_number":129,"context_line":"        common_db \u003d db_base_plugin_v2.CommonDbMixin()"},{"line_number":130,"context_line":"        query \u003d common_db._apply_filters_to_query(query,"},{"line_number":131,"context_line":"                                                  nuage_models.NetPartition,"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAVX%2F%2F0mc%3D","line":128,"in_reply_to":"AAAAVX%2F%2F0p4%3D","updated":"2014-02-28 02:29:43.000000000","message":"Done","commit_id":"e74971bc20cd96c3b9964b1fee4e98f15a59d78b"}],"neutron/plugins/nuage/plugin.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","unresolved":false,"context_lines":[{"line_number":21,"context_line":"import re"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from sqlalchemy.orm import exc"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from oslo.config import cfg"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from neutron.api import extensions as neutron_extensions"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99GU%3D","line":24,"updated":"2014-01-31 18:08:51.000000000","message":"remove this empty line","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"a9fca2be8f48213eeca0cdfdbb361cc4934f672a","unresolved":false,"context_lines":[{"line_number":21,"context_line":"import re"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from sqlalchemy.orm import exc"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from oslo.config import cfg"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from neutron.api import extensions as neutron_extensions"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F9ztM%3D","line":24,"in_reply_to":"AAAAUH%2F99GU%3D","updated":"2014-02-03 22:27:27.000000000","message":"Done","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                msg \u003d (\"More than one entry found for %s %s. \""},{"line_number":94,"context_line":"                       \"Use id instead\" % (resource, user_req[resource]))"},{"line_number":95,"context_line":"                raise q_exc.BadRequest(resource\u003dfor_resource, msg\u003dmsg)"},{"line_number":96,"context_line":"            if len(found_resource) \u003d\u003d 0:"},{"line_number":97,"context_line":"                msg \u003d (\"Either %s %s not found or you dont have credential \""},{"line_number":98,"context_line":"                       \"to access it\" % (resource, user_req[resource]))"},{"line_number":99,"context_line":"                raise q_exc.BadRequest(resource\u003dfor_resource, msg\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99GM%3D","line":96,"updated":"2014-01-31 18:08:51.000000000","message":"if not found_resource:","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"a9fca2be8f48213eeca0cdfdbb361cc4934f672a","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                msg \u003d (\"More than one entry found for %s %s. \""},{"line_number":94,"context_line":"                       \"Use id instead\" % (resource, user_req[resource]))"},{"line_number":95,"context_line":"                raise q_exc.BadRequest(resource\u003dfor_resource, msg\u003dmsg)"},{"line_number":96,"context_line":"            if len(found_resource) \u003d\u003d 0:"},{"line_number":97,"context_line":"                msg \u003d (\"Either %s %s not found or you dont have credential \""},{"line_number":98,"context_line":"                       \"to access it\" % (resource, user_req[resource]))"},{"line_number":99,"context_line":"                raise q_exc.BadRequest(resource\u003dfor_resource, msg\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F9ztI%3D","line":96,"in_reply_to":"AAAAUH%2F99GM%3D","updated":"2014-02-03 22:27:27.000000000","message":"Done","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        new_port_dict \u003d {}"},{"line_number":105,"context_line":"        new_port_dict[\u0027fixed_ips\u0027] \u003d [{}]"},{"line_number":106,"context_line":"        subid \u003d port[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027]"},{"line_number":107,"context_line":"        new_port_dict[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027] \u003d subid"},{"line_number":108,"context_line":"        new_port_dict[\u0027fixed_ips\u0027][0][\u0027ip_address\u0027] \u003d new_ip"},{"line_number":109,"context_line":"        ips, prev_ips \u003d self._update_ips_for_port(context,"},{"line_number":110,"context_line":"                                                  port[\"network_id\"],"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99FU%3D","line":107,"updated":"2014-01-31 18:08:51.000000000","message":"Instead of deeply nesting the lookups here, why not build the fixed_ip dict and then just pass [new_fixed_ip] as the last param in 109?","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"a9fca2be8f48213eeca0cdfdbb361cc4934f672a","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        new_port_dict \u003d {}"},{"line_number":105,"context_line":"        new_port_dict[\u0027fixed_ips\u0027] \u003d [{}]"},{"line_number":106,"context_line":"        subid \u003d port[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027]"},{"line_number":107,"context_line":"        new_port_dict[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027] \u003d subid"},{"line_number":108,"context_line":"        new_port_dict[\u0027fixed_ips\u0027][0][\u0027ip_address\u0027] \u003d new_ip"},{"line_number":109,"context_line":"        ips, prev_ips \u003d self._update_ips_for_port(context,"},{"line_number":110,"context_line":"                                                  port[\"network_id\"],"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F9zb4%3D","line":107,"in_reply_to":"AAAAUH%2F99FU%3D","updated":"2014-02-03 22:27:27.000000000","message":"Done","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        with session.begin(subtransactions\u003dTrue):"},{"line_number":155,"context_line":"            p \u003d port[\u0027port\u0027]"},{"line_number":156,"context_line":"            port \u003d super(NuagePlugin, self).create_port(context, port)"},{"line_number":157,"context_line":"            if \u0027device_owner\u0027 in port and \\"},{"line_number":158,"context_line":"                port[\u0027device_owner\u0027] not in constants.AUTO_CREATE_PORT_OWNERS:"},{"line_number":159,"context_line":"                if \u0027fixed_ips\u0027 not in port or len(port[\u0027fixed_ips\u0027]) \u003d\u003d 0:"},{"line_number":160,"context_line":"                    return self._extend_port_dict_binding(context, port)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99Es%3D","line":157,"updated":"2014-01-31 18:08:51.000000000","message":"Can be simplified:\n\nif port.get(\u0027device_owner\u0027, DHCP_OWNER) not in constants.AUTO_CREATE_PORT_OWNERS:\n\nAlso \\ are not allowed in Neutron per our hacking guidelines.","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"a9fca2be8f48213eeca0cdfdbb361cc4934f672a","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        with session.begin(subtransactions\u003dTrue):"},{"line_number":155,"context_line":"            p \u003d port[\u0027port\u0027]"},{"line_number":156,"context_line":"            port \u003d super(NuagePlugin, self).create_port(context, port)"},{"line_number":157,"context_line":"            if \u0027device_owner\u0027 in port and \\"},{"line_number":158,"context_line":"                port[\u0027device_owner\u0027] not in constants.AUTO_CREATE_PORT_OWNERS:"},{"line_number":159,"context_line":"                if \u0027fixed_ips\u0027 not in port or len(port[\u0027fixed_ips\u0027]) \u003d\u003d 0:"},{"line_number":160,"context_line":"                    return self._extend_port_dict_binding(context, port)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F9zZQ%3D","line":157,"in_reply_to":"AAAAUH%2F99Es%3D","updated":"2014-02-03 22:27:27.000000000","message":"Done","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","unresolved":false,"context_lines":[{"line_number":169,"context_line":"                                                      subnet_id))"},{"line_number":170,"context_line":"                        super(NuagePlugin, self).delete_port(context,"},{"line_number":171,"context_line":"                                                             port[\u0027id\u0027])"},{"line_number":172,"context_line":"                        raise q_exc.BadRequest(resource\u003d\u0027port\u0027, msg\u003dmsg)"},{"line_number":173,"context_line":"                \u0027\u0027\u0027"},{"line_number":174,"context_line":"                subnet_mapping \u003d nuagedb.get_subnet_l2dom_by_id(session,"},{"line_number":175,"context_line":"                                                                subnet_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99Eo%3D","line":172,"updated":"2014-01-31 18:08:51.000000000","message":"Please wrap this in parenthesis vs using line continuation.","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"a9fca2be8f48213eeca0cdfdbb361cc4934f672a","unresolved":false,"context_lines":[{"line_number":169,"context_line":"                                                      subnet_id))"},{"line_number":170,"context_line":"                        super(NuagePlugin, self).delete_port(context,"},{"line_number":171,"context_line":"                                                             port[\u0027id\u0027])"},{"line_number":172,"context_line":"                        raise q_exc.BadRequest(resource\u003d\u0027port\u0027, msg\u003dmsg)"},{"line_number":173,"context_line":"                \u0027\u0027\u0027"},{"line_number":174,"context_line":"                subnet_mapping \u003d nuagedb.get_subnet_l2dom_by_id(session,"},{"line_number":175,"context_line":"                                                                subnet_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F9zXw%3D","line":172,"in_reply_to":"AAAAUH%2F99Eo%3D","updated":"2014-02-03 22:27:27.000000000","message":"Removed the commented line as its not needed for now","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","unresolved":false,"context_lines":[{"line_number":180,"context_line":"                        static_ip \u003d True"},{"line_number":181,"context_line":"                    nuage_vport_id \u003d None"},{"line_number":182,"context_line":"                    nuage_vif_id \u003d None"},{"line_number":183,"context_line":"                    port_mapping \u003d \\"},{"line_number":184,"context_line":"                        nuagedb.add_port_vport_mapping(session,"},{"line_number":185,"context_line":"                                                       port[\u0027id\u0027],"},{"line_number":186,"context_line":"                                                       nuage_vport_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99EY%3D","line":183,"updated":"2014-01-31 18:08:51.000000000","message":"Please reformat:\n\nport_mapping \u003d nuagedb.add_port_vport_mapping(\n    session,\n    port[\u0027id\u0027],\n    nuage_vport_id,\n    nuage_vif_id,\n    static_ip\n)","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"a9fca2be8f48213eeca0cdfdbb361cc4934f672a","unresolved":false,"context_lines":[{"line_number":180,"context_line":"                        static_ip \u003d True"},{"line_number":181,"context_line":"                    nuage_vport_id \u003d None"},{"line_number":182,"context_line":"                    nuage_vif_id \u003d None"},{"line_number":183,"context_line":"                    port_mapping \u003d \\"},{"line_number":184,"context_line":"                        nuagedb.add_port_vport_mapping(session,"},{"line_number":185,"context_line":"                                                       port[\u0027id\u0027],"},{"line_number":186,"context_line":"                                                       nuage_vport_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F9zX8%3D","line":183,"in_reply_to":"AAAAUH%2F99EY%3D","updated":"2014-02-03 22:27:27.000000000","message":"Done","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","unresolved":false,"context_lines":[{"line_number":193,"context_line":"                            self._create_update_port(context, port,"},{"line_number":194,"context_line":"                                                     port_mapping,"},{"line_number":195,"context_line":"                                                     subnet_mapping)"},{"line_number":196,"context_line":"                        except Exception:"},{"line_number":197,"context_line":"                            super(NuagePlugin, self).delete_port(context,"},{"line_number":198,"context_line":"                                                                 port[\u0027id\u0027])"},{"line_number":199,"context_line":"                            raise"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99D8%3D","line":196,"updated":"2014-01-31 18:08:51.000000000","message":"you need to use save_and_reraise_exception() from the openstack.common.excutils otherwise the context of the raise is not guaranteed to still be correct on the raise in 199.","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"a9fca2be8f48213eeca0cdfdbb361cc4934f672a","unresolved":false,"context_lines":[{"line_number":193,"context_line":"                            self._create_update_port(context, port,"},{"line_number":194,"context_line":"                                                     port_mapping,"},{"line_number":195,"context_line":"                                                     subnet_mapping)"},{"line_number":196,"context_line":"                        except Exception:"},{"line_number":197,"context_line":"                            super(NuagePlugin, self).delete_port(context,"},{"line_number":198,"context_line":"                                                                 port[\u0027id\u0027])"},{"line_number":199,"context_line":"                            raise"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F9zUg%3D","line":196,"in_reply_to":"AAAAUH%2F99D8%3D","updated":"2014-02-03 22:27:27.000000000","message":"Done","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","unresolved":false,"context_lines":[{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    def update_port(self, context, id, port):"},{"line_number":203,"context_line":"        p \u003d port[\u0027port\u0027]"},{"line_number":204,"context_line":"        if \u0027device_owner\u0027 in p.keys() and \\"},{"line_number":205,"context_line":"            p[\u0027device_owner\u0027].startswith(constants.NOVA_PORT_OWNER_PREF):"},{"line_number":206,"context_line":"            session \u003d context.session"},{"line_number":207,"context_line":"            with session.begin(subtransactions\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99D4%3D","line":204,"updated":"2014-01-31 18:08:51.000000000","message":"if p.get(\u0027device_owner\u0027, \u0027\u0027).startswith(constants.NOVA_PORT_OWNER_PREF):","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"a9fca2be8f48213eeca0cdfdbb361cc4934f672a","unresolved":false,"context_lines":[{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    def update_port(self, context, id, port):"},{"line_number":203,"context_line":"        p \u003d port[\u0027port\u0027]"},{"line_number":204,"context_line":"        if \u0027device_owner\u0027 in p.keys() and \\"},{"line_number":205,"context_line":"            p[\u0027device_owner\u0027].startswith(constants.NOVA_PORT_OWNER_PREF):"},{"line_number":206,"context_line":"            session \u003d context.session"},{"line_number":207,"context_line":"            with session.begin(subtransactions\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F9zT8%3D","line":204,"in_reply_to":"AAAAUH%2F99D4%3D","updated":"2014-02-03 22:27:27.000000000","message":"Done","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","unresolved":false,"context_lines":[{"line_number":468,"context_line":"            try:"},{"line_number":469,"context_line":"                nuage_subnet \u003d self.nuageclient.create_domain_subnet(subn,"},{"line_number":470,"context_line":"                                                                     params)"},{"line_number":471,"context_line":"            except Exception:"},{"line_number":472,"context_line":"                super(NuagePlugin,"},{"line_number":473,"context_line":"                      self).remove_router_interface(context,"},{"line_number":474,"context_line":"                                                    router_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99Dw%3D","line":471,"updated":"2014-01-31 18:08:51.000000000","message":"save_and_reraise_exception()","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"a9fca2be8f48213eeca0cdfdbb361cc4934f672a","unresolved":false,"context_lines":[{"line_number":468,"context_line":"            try:"},{"line_number":469,"context_line":"                nuage_subnet \u003d self.nuageclient.create_domain_subnet(subn,"},{"line_number":470,"context_line":"                                                                     params)"},{"line_number":471,"context_line":"            except Exception:"},{"line_number":472,"context_line":"                super(NuagePlugin,"},{"line_number":473,"context_line":"                      self).remove_router_interface(context,"},{"line_number":474,"context_line":"                                                    router_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F9zSc%3D","line":471,"in_reply_to":"AAAAUH%2F99Dw%3D","updated":"2014-02-03 22:27:27.000000000","message":"Done","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","unresolved":false,"context_lines":[{"line_number":546,"context_line":"            try:"},{"line_number":547,"context_line":"                nuage_subnet \u003d self.nuageclient.create_subnet(neutron_subnet,"},{"line_number":548,"context_line":"                                                              params)"},{"line_number":549,"context_line":"            except Exception:"},{"line_number":550,"context_line":"                raise"},{"line_number":551,"context_line":""},{"line_number":552,"context_line":"            self.nuageclient.delete_domain_subnet(nuage_subn_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99Dg%3D","line":549,"updated":"2014-01-31 18:08:51.000000000","message":"Why try/except block if you\u0027re not handling anything? I\u0027d suggest removing 546,549 \u0026 550","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"a9fca2be8f48213eeca0cdfdbb361cc4934f672a","unresolved":false,"context_lines":[{"line_number":546,"context_line":"            try:"},{"line_number":547,"context_line":"                nuage_subnet \u003d self.nuageclient.create_subnet(neutron_subnet,"},{"line_number":548,"context_line":"                                                              params)"},{"line_number":549,"context_line":"            except Exception:"},{"line_number":550,"context_line":"                raise"},{"line_number":551,"context_line":""},{"line_number":552,"context_line":"            self.nuageclient.delete_domain_subnet(nuage_subn_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F9zRw%3D","line":549,"in_reply_to":"AAAAUH%2F99Dg%3D","updated":"2014-02-03 22:27:27.000000000","message":"Done","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","unresolved":false,"context_lines":[{"line_number":591,"context_line":"                                                          router[\u0027router\u0027],"},{"line_number":592,"context_line":"                                                          params)"},{"line_number":593,"context_line":"        except Exception:"},{"line_number":594,"context_line":"            super(NuagePlugin, self).delete_router(context,"},{"line_number":595,"context_line":"                                                   neutron_router[\u0027id\u0027])"},{"line_number":596,"context_line":"            raise"},{"line_number":597,"context_line":"        if nuage_router:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99Dc%3D","line":594,"updated":"2014-01-31 18:08:51.000000000","message":"save_and_reraise_exception()","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"a9fca2be8f48213eeca0cdfdbb361cc4934f672a","unresolved":false,"context_lines":[{"line_number":591,"context_line":"                                                          router[\u0027router\u0027],"},{"line_number":592,"context_line":"                                                          params)"},{"line_number":593,"context_line":"        except Exception:"},{"line_number":594,"context_line":"            super(NuagePlugin, self).delete_router(context,"},{"line_number":595,"context_line":"                                                   neutron_router[\u0027id\u0027])"},{"line_number":596,"context_line":"            raise"},{"line_number":597,"context_line":"        if nuage_router:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F9zRY%3D","line":594,"in_reply_to":"AAAAUH%2F99Dc%3D","updated":"2014-02-03 22:27:27.000000000","message":"Done","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","unresolved":false,"context_lines":[{"line_number":617,"context_line":"            try:"},{"line_number":618,"context_line":"                nuage_router_id \u003d ent_rtr_mapping[\u0027nuage_router_id\u0027]"},{"line_number":619,"context_line":"                self.nuageclient.delete_router(nuage_router_id)"},{"line_number":620,"context_line":"            except Exception:"},{"line_number":621,"context_line":"                raise"},{"line_number":622,"context_line":"        router_zone \u003d nuagedb.get_rtr_zone_mapping(session, id)"},{"line_number":623,"context_line":"        super(NuagePlugin, self).delete_router(context, id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99DM%3D","line":620,"updated":"2014-01-31 18:08:51.000000000","message":"Remove try/except here since it does not add value.","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"a9fca2be8f48213eeca0cdfdbb361cc4934f672a","unresolved":false,"context_lines":[{"line_number":617,"context_line":"            try:"},{"line_number":618,"context_line":"                nuage_router_id \u003d ent_rtr_mapping[\u0027nuage_router_id\u0027]"},{"line_number":619,"context_line":"                self.nuageclient.delete_router(nuage_router_id)"},{"line_number":620,"context_line":"            except Exception:"},{"line_number":621,"context_line":"                raise"},{"line_number":622,"context_line":"        router_zone \u003d nuagedb.get_rtr_zone_mapping(session, id)"},{"line_number":623,"context_line":"        super(NuagePlugin, self).delete_router(context, id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F9zRE%3D","line":620,"in_reply_to":"AAAAUH%2F99DM%3D","updated":"2014-02-03 22:27:27.000000000","message":"Done","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","unresolved":false,"context_lines":[{"line_number":691,"context_line":"            self.nuageclient.delete_net_partition(net_partition[\u0027id\u0027],"},{"line_number":692,"context_line":"                                                  l3dom_id\u003dl3dom_tmplt_id,"},{"line_number":693,"context_line":"                                                  l2dom_id\u003dl2dom_tmplt_id)"},{"line_number":694,"context_line":"        except Exception:"},{"line_number":695,"context_line":"            raise"},{"line_number":696,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":697,"context_line":"            nuagedb.delete_net_partition(context.session,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99C8%3D","line":694,"updated":"2014-01-31 18:08:51.000000000","message":"try/except can be removed here.","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"a9fca2be8f48213eeca0cdfdbb361cc4934f672a","unresolved":false,"context_lines":[{"line_number":691,"context_line":"            self.nuageclient.delete_net_partition(net_partition[\u0027id\u0027],"},{"line_number":692,"context_line":"                                                  l3dom_id\u003dl3dom_tmplt_id,"},{"line_number":693,"context_line":"                                                  l2dom_id\u003dl2dom_tmplt_id)"},{"line_number":694,"context_line":"        except Exception:"},{"line_number":695,"context_line":"            raise"},{"line_number":696,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":697,"context_line":"            nuagedb.delete_net_partition(context.session,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F9y6M%3D","line":694,"in_reply_to":"AAAAUH%2F99C8%3D","updated":"2014-02-03 22:27:27.000000000","message":"Done","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"change_message_id":"85fc14732aaa895c50456b2b73b2bb1a2fd16b2d","unresolved":false,"context_lines":[{"line_number":430,"context_line":"                       \"Router-IF add failed\" % subnet_id)"},{"line_number":431,"context_line":"                raise q_exc.BadRequest(resource\u003d\u0027subnet\u0027, msg\u003dmsg)"},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"            if subnet_l2dom[\u0027net_partition_id\u0027] !\u003d \\"},{"line_number":434,"context_line":"                ent_rtr_mapping[\u0027net_partition_id\u0027]:"},{"line_number":435,"context_line":"                super(NuagePlugin,"},{"line_number":436,"context_line":"                      self).remove_router_interface(context,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F9sec%3D","line":433,"updated":"2014-02-04 22:13:37.000000000","message":"remove \\","commit_id":"f3ee4a6f62a2f35ae99de0b95e88d7943bb50898"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"5aaca15fb72b6debc0e3ba214f4e5d7361d3089c","unresolved":false,"context_lines":[{"line_number":430,"context_line":"                       \"Router-IF add failed\" % subnet_id)"},{"line_number":431,"context_line":"                raise q_exc.BadRequest(resource\u003d\u0027subnet\u0027, msg\u003dmsg)"},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"            if subnet_l2dom[\u0027net_partition_id\u0027] !\u003d \\"},{"line_number":434,"context_line":"                ent_rtr_mapping[\u0027net_partition_id\u0027]:"},{"line_number":435,"context_line":"                super(NuagePlugin,"},{"line_number":436,"context_line":"                      self).remove_router_interface(context,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F9sLM%3D","line":433,"in_reply_to":"AAAAUH%2F9sec%3D","updated":"2014-02-04 23:20:10.000000000","message":"Done. Removing all occurrences of \\ from this file.","commit_id":"f3ee4a6f62a2f35ae99de0b95e88d7943bb50898"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"change_message_id":"85fc14732aaa895c50456b2b73b2bb1a2fd16b2d","unresolved":false,"context_lines":[{"line_number":563,"context_line":"            net_partition \u003d self._resource_finder(context, \u0027router\u0027,"},{"line_number":564,"context_line":"                                                  \u0027net_partition\u0027, rtr)"},{"line_number":565,"context_line":"        if not net_partition:"},{"line_number":566,"context_line":"            msg \u003d \u0027Either net_partition is not provided with router OR \\"},{"line_number":567,"context_line":"                default net_partition is not created at the start\u0027"},{"line_number":568,"context_line":"            raise q_exc.BadRequest(resource\u003d\u0027router\u0027, msg\u003dmsg)"},{"line_number":569,"context_line":"        return net_partition"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F9seQ%3D","line":566,"updated":"2014-02-04 22:13:37.000000000","message":"remove \\","commit_id":"f3ee4a6f62a2f35ae99de0b95e88d7943bb50898"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"5aaca15fb72b6debc0e3ba214f4e5d7361d3089c","unresolved":false,"context_lines":[{"line_number":563,"context_line":"            net_partition \u003d self._resource_finder(context, \u0027router\u0027,"},{"line_number":564,"context_line":"                                                  \u0027net_partition\u0027, rtr)"},{"line_number":565,"context_line":"        if not net_partition:"},{"line_number":566,"context_line":"            msg \u003d \u0027Either net_partition is not provided with router OR \\"},{"line_number":567,"context_line":"                default net_partition is not created at the start\u0027"},{"line_number":568,"context_line":"            raise q_exc.BadRequest(resource\u003d\u0027router\u0027, msg\u003dmsg)"},{"line_number":569,"context_line":"        return net_partition"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F9sLI%3D","line":566,"in_reply_to":"AAAAUH%2F9seQ%3D","updated":"2014-02-04 23:20:10.000000000","message":"Done","commit_id":"f3ee4a6f62a2f35ae99de0b95e88d7943bb50898"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"change_message_id":"85fc14732aaa895c50456b2b73b2bb1a2fd16b2d","unresolved":false,"context_lines":[{"line_number":663,"context_line":"        return self._create_net_partition(session, ent[\"name\"])"},{"line_number":664,"context_line":""},{"line_number":665,"context_line":"    def delete_net_partition(self, context, id):"},{"line_number":666,"context_line":"        ent_rtr_mapping \u003d \\"},{"line_number":667,"context_line":"            nuagedb.get_ent_rtr_mapping_by_entid(context.session, id)"},{"line_number":668,"context_line":"        if ent_rtr_mapping:"},{"line_number":669,"context_line":"            msg \u003d \"One or more router still attached to net_partition %s.\" % id"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F9seI%3D","line":666,"updated":"2014-02-04 22:13:37.000000000","message":"remove \\","commit_id":"f3ee4a6f62a2f35ae99de0b95e88d7943bb50898"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"5aaca15fb72b6debc0e3ba214f4e5d7361d3089c","unresolved":false,"context_lines":[{"line_number":663,"context_line":"        return self._create_net_partition(session, ent[\"name\"])"},{"line_number":664,"context_line":""},{"line_number":665,"context_line":"    def delete_net_partition(self, context, id):"},{"line_number":666,"context_line":"        ent_rtr_mapping \u003d \\"},{"line_number":667,"context_line":"            nuagedb.get_ent_rtr_mapping_by_entid(context.session, id)"},{"line_number":668,"context_line":"        if ent_rtr_mapping:"},{"line_number":669,"context_line":"            msg \u003d \"One or more router still attached to net_partition %s.\" % id"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F9sLA%3D","line":666,"in_reply_to":"AAAAUH%2F9seI%3D","updated":"2014-02-04 23:20:10.000000000","message":"Done","commit_id":"f3ee4a6f62a2f35ae99de0b95e88d7943bb50898"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"45dceb3fc68e8483eb6cbf80a319183905184d3d","unresolved":false,"context_lines":[{"line_number":305,"context_line":"        subnets \u003d self.get_subnets(context, filters\u003dfilter)"},{"line_number":306,"context_line":"        for subnet in subnets:"},{"line_number":307,"context_line":"            self.delete_subnet(context, subnet[\u0027id\u0027])"},{"line_number":308,"context_line":"        super(NuagePlugin, self).delete_network(context, id)"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"    def _get_net_partition_for_subnet(self, context, subnet):"},{"line_number":311,"context_line":"        subn \u003d subnet[\u0027subnet\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUX%2F%2Bp28%3D","line":308,"updated":"2014-02-20 04:45:56.000000000","message":"Lines 306-307 are extra, delete_network will take care of delete subnets","commit_id":"4045348e5df418ac8f90ca6aafe57aa80ea8aea5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"14cd1a4e2ca3a2d0f2ccde496be8edfefc40e6e1","unresolved":false,"context_lines":[{"line_number":305,"context_line":"        subnets \u003d self.get_subnets(context, filters\u003dfilter)"},{"line_number":306,"context_line":"        for subnet in subnets:"},{"line_number":307,"context_line":"            self.delete_subnet(context, subnet[\u0027id\u0027])"},{"line_number":308,"context_line":"        super(NuagePlugin, self).delete_network(context, id)"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"    def _get_net_partition_for_subnet(self, context, subnet):"},{"line_number":311,"context_line":"        subn \u003d subnet[\u0027subnet\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUX%2F%2BoOY%3D","line":308,"in_reply_to":"AAAAUX%2F%2Bp28%3D","updated":"2014-02-20 06:44:02.000000000","message":"I want to explicitly call plugin\u0027s delete_subnet method. Super\u0027s delete_network just delete\u0027s the local subnet database entries. I need to take out entries from Nuage VSD as well.","commit_id":"4045348e5df418ac8f90ca6aafe57aa80ea8aea5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","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 2014 Alcatel-Lucent USA Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1Js%3D","line":1,"updated":"2014-02-24 15:53:40.000000000","message":"vim modelines should not be included in new code","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","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 2014 Alcatel-Lucent USA Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2Fzvo%3D","line":1,"in_reply_to":"AAAAU3%2F%2F1Js%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","unresolved":false,"context_lines":[{"line_number":17,"context_line":"# @author: Ronak Shah, Nuage Networks, Alcatel-Lucent USA Inc."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import netaddr"},{"line_number":21,"context_line":"import re"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from oslo.config import cfg"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1JQ%3D","line":20,"updated":"2014-02-24 15:53:40.000000000","message":"netaddr should be 2nd group of imports since it is a 3rd party library and not stdlib.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","unresolved":false,"context_lines":[{"line_number":17,"context_line":"# @author: Ronak Shah, Nuage Networks, Alcatel-Lucent USA Inc."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import netaddr"},{"line_number":21,"context_line":"import re"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from oslo.config import cfg"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2Fzu0%3D","line":20,"in_reply_to":"AAAAU3%2F%2F1JQ%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    binding_view \u003d \"extension:port_binding:view\""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def __init__(self):"},{"line_number":59,"context_line":"        db.configure_db()"},{"line_number":60,"context_line":"        neutron_extensions.append_api_extensions_path(extensions.__path__)"},{"line_number":61,"context_line":"        config.nuage_register_cfg_opts()"},{"line_number":62,"context_line":"        self.nuageclient_init()"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1I8%3D","line":59,"updated":"2014-02-24 15:53:40.000000000","message":"Recent changes to the base plugin not configure the db for you.  This should be removed.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    binding_view \u003d \"extension:port_binding:view\""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def __init__(self):"},{"line_number":59,"context_line":"        db.configure_db()"},{"line_number":60,"context_line":"        neutron_extensions.append_api_extensions_path(extensions.__path__)"},{"line_number":61,"context_line":"        config.nuage_register_cfg_opts()"},{"line_number":62,"context_line":"        self.nuageclient_init()"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2Fzns%3D","line":59,"in_reply_to":"AAAAU3%2F%2F1I8%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            obj_lister \u003d getattr(self, \"get_%s\" % resource)"},{"line_number":83,"context_line":"            found_resource \u003d obj_lister(context, user_req[resource])"},{"line_number":84,"context_line":"            if not found_resource:"},{"line_number":85,"context_line":"                msg \u003d \"%s with id %s does not exist\" % (resource,"},{"line_number":86,"context_line":"                                                        user_req[resource])"},{"line_number":87,"context_line":"                raise q_exc.BadRequest(resource\u003dfor_resource, msg\u003dmsg)"},{"line_number":88,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1W4%3D","line":85,"updated":"2014-02-24 15:53:40.000000000","message":"This string needs to be wrapped for translation.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            obj_lister \u003d getattr(self, \"get_%s\" % resource)"},{"line_number":83,"context_line":"            found_resource \u003d obj_lister(context, user_req[resource])"},{"line_number":84,"context_line":"            if not found_resource:"},{"line_number":85,"context_line":"                msg \u003d \"%s with id %s does not exist\" % (resource,"},{"line_number":86,"context_line":"                                                        user_req[resource])"},{"line_number":87,"context_line":"                raise q_exc.BadRequest(resource\u003dfor_resource, msg\u003dmsg)"},{"line_number":88,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2Fze0%3D","line":85,"in_reply_to":"AAAAU3%2F%2F1W4%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","unresolved":false,"context_lines":[{"line_number":90,"context_line":"            obj_lister \u003d getattr(self, \"get_%ss\" % resource)"},{"line_number":91,"context_line":"            found_resource \u003d obj_lister(context, filters\u003dfilter)"},{"line_number":92,"context_line":"            if not found_resource:"},{"line_number":93,"context_line":"                msg \u003d (\"Either %s %s not found or you dont have credential \""},{"line_number":94,"context_line":"                       \"to access it\" % (resource, user_req[resource]))"},{"line_number":95,"context_line":"                raise q_exc.BadRequest(resource\u003dfor_resource, msg\u003dmsg)"},{"line_number":96,"context_line":"            if len(found_resource) \u003e 1:"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1Ww%3D","line":93,"updated":"2014-02-24 15:53:40.000000000","message":"This string needs to be wrapped for translation.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","unresolved":false,"context_lines":[{"line_number":90,"context_line":"            obj_lister \u003d getattr(self, \"get_%ss\" % resource)"},{"line_number":91,"context_line":"            found_resource \u003d obj_lister(context, filters\u003dfilter)"},{"line_number":92,"context_line":"            if not found_resource:"},{"line_number":93,"context_line":"                msg \u003d (\"Either %s %s not found or you dont have credential \""},{"line_number":94,"context_line":"                       \"to access it\" % (resource, user_req[resource]))"},{"line_number":95,"context_line":"                raise q_exc.BadRequest(resource\u003dfor_resource, msg\u003dmsg)"},{"line_number":96,"context_line":"            if len(found_resource) \u003e 1:"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2Fzd8%3D","line":93,"in_reply_to":"AAAAU3%2F%2F1Ww%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                       \"to access it\" % (resource, user_req[resource]))"},{"line_number":95,"context_line":"                raise q_exc.BadRequest(resource\u003dfor_resource, msg\u003dmsg)"},{"line_number":96,"context_line":"            if len(found_resource) \u003e 1:"},{"line_number":97,"context_line":"                msg \u003d (\"More than one entry found for %s %s. \""},{"line_number":98,"context_line":"                       \"Use id instead\" % (resource, user_req[resource]))"},{"line_number":99,"context_line":"                raise q_exc.BadRequest(resource\u003dfor_resource, msg\u003dmsg)"},{"line_number":100,"context_line":"            found_resource \u003d found_resource[0]"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1WY%3D","line":97,"updated":"2014-02-24 15:53:40.000000000","message":"This string needs to be wrapped for translation.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                       \"to access it\" % (resource, user_req[resource]))"},{"line_number":95,"context_line":"                raise q_exc.BadRequest(resource\u003dfor_resource, msg\u003dmsg)"},{"line_number":96,"context_line":"            if len(found_resource) \u003e 1:"},{"line_number":97,"context_line":"                msg \u003d (\"More than one entry found for %s %s. \""},{"line_number":98,"context_line":"                       \"Use id instead\" % (resource, user_req[resource]))"},{"line_number":99,"context_line":"                raise q_exc.BadRequest(resource\u003dfor_resource, msg\u003dmsg)"},{"line_number":100,"context_line":"            found_resource \u003d found_resource[0]"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2Fzd4%3D","line":97,"in_reply_to":"AAAAU3%2F%2F1WY%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","unresolved":false,"context_lines":[{"line_number":154,"context_line":"            p \u003d port[\u0027port\u0027]"},{"line_number":155,"context_line":"            port \u003d super(NuagePlugin, self).create_port(context, port)"},{"line_number":156,"context_line":"            device_owner \u003d port.get(\u0027device_owner\u0027, None)"},{"line_number":157,"context_line":"            if (device_owner and"},{"line_number":158,"context_line":"                device_owner not in constants.AUTO_CREATE_PORT_OWNERS):"},{"line_number":159,"context_line":"                if \u0027fixed_ips\u0027 not in port or len(port[\u0027fixed_ips\u0027]) \u003d\u003d 0:"},{"line_number":160,"context_line":"                    return self._extend_port_dict_binding(context, port)"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1VY%3D","line":157,"updated":"2014-02-24 15:53:40.000000000","message":"\"device_owner and\" can be removed the in constant does not contain none.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","unresolved":false,"context_lines":[{"line_number":154,"context_line":"            p \u003d port[\u0027port\u0027]"},{"line_number":155,"context_line":"            port \u003d super(NuagePlugin, self).create_port(context, port)"},{"line_number":156,"context_line":"            device_owner \u003d port.get(\u0027device_owner\u0027, None)"},{"line_number":157,"context_line":"            if (device_owner and"},{"line_number":158,"context_line":"                device_owner not in constants.AUTO_CREATE_PORT_OWNERS):"},{"line_number":159,"context_line":"                if \u0027fixed_ips\u0027 not in port or len(port[\u0027fixed_ips\u0027]) \u003d\u003d 0:"},{"line_number":160,"context_line":"                    return self._extend_port_dict_binding(context, port)"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2Fzag%3D","line":157,"in_reply_to":"AAAAU3%2F%2F1VY%3D","updated":"2014-02-24 19:00:01.000000000","message":"I need this. As I dont want to go inside \"if\" block if device_owner is none.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","unresolved":false,"context_lines":[{"line_number":202,"context_line":"                subnet_mapping \u003d nuagedb.get_subnet_l2dom_by_id(session,"},{"line_number":203,"context_line":"                                                                subnet_id)"},{"line_number":204,"context_line":"                if not subnet_mapping:"},{"line_number":205,"context_line":"                    msg \u003d \u0027Subnet %s not found on VSD\u0027 % subnet_id"},{"line_number":206,"context_line":"                    raise q_exc.BadRequest(resource\u003d\u0027port\u0027, msg\u003dmsg)"},{"line_number":207,"context_line":"                port_mapping \u003d nuagedb.get_port_mapping_by_id(session,"},{"line_number":208,"context_line":"                                                              id)"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1VM%3D","line":205,"updated":"2014-02-24 15:53:40.000000000","message":"This string needs to be wrapped for translation.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","unresolved":false,"context_lines":[{"line_number":202,"context_line":"                subnet_mapping \u003d nuagedb.get_subnet_l2dom_by_id(session,"},{"line_number":203,"context_line":"                                                                subnet_id)"},{"line_number":204,"context_line":"                if not subnet_mapping:"},{"line_number":205,"context_line":"                    msg \u003d \u0027Subnet %s not found on VSD\u0027 % subnet_id"},{"line_number":206,"context_line":"                    raise q_exc.BadRequest(resource\u003d\u0027port\u0027, msg\u003dmsg)"},{"line_number":207,"context_line":"                port_mapping \u003d nuagedb.get_port_mapping_by_id(session,"},{"line_number":208,"context_line":"                                                              id)"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2FzYo%3D","line":205,"in_reply_to":"AAAAU3%2F%2F1VM%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","unresolved":false,"context_lines":[{"line_number":207,"context_line":"                port_mapping \u003d nuagedb.get_port_mapping_by_id(session,"},{"line_number":208,"context_line":"                                                              id)"},{"line_number":209,"context_line":"                if not port_mapping:"},{"line_number":210,"context_line":"                    msg \u003d \u0027Port-Mapping for port %s not found on VSD\u0027 % id"},{"line_number":211,"context_line":"                    raise q_exc.BadRequest(resource\u003d\u0027port\u0027, msg\u003dmsg)"},{"line_number":212,"context_line":"                if not port_mapping[\u0027nuage_vport_id\u0027]:"},{"line_number":213,"context_line":"                    try:"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1VI%3D","line":210,"updated":"2014-02-24 15:53:40.000000000","message":"This string needs to be wrapped for translation.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","unresolved":false,"context_lines":[{"line_number":207,"context_line":"                port_mapping \u003d nuagedb.get_port_mapping_by_id(session,"},{"line_number":208,"context_line":"                                                              id)"},{"line_number":209,"context_line":"                if not port_mapping:"},{"line_number":210,"context_line":"                    msg \u003d \u0027Port-Mapping for port %s not found on VSD\u0027 % id"},{"line_number":211,"context_line":"                    raise q_exc.BadRequest(resource\u003d\u0027port\u0027, msg\u003dmsg)"},{"line_number":212,"context_line":"                if not port_mapping[\u0027nuage_vport_id\u0027]:"},{"line_number":213,"context_line":"                    try:"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2FzYk%3D","line":210,"in_reply_to":"AAAAU3%2F%2F1VI%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        port \u003d self._get_port(context, id)"},{"line_number":228,"context_line":"        port_mapping \u003d nuagedb.get_port_mapping_by_id(context.session,"},{"line_number":229,"context_line":"                                                      id)"},{"line_number":230,"context_line":"        if len(port[\u0027fixed_ips\u0027]) \u003d\u003d 0:"},{"line_number":231,"context_line":"            return super(NuagePlugin, self).delete_port(context, id)"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        sub_id \u003d port[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027]"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1U4%3D","line":230,"updated":"2014-02-24 15:53:40.000000000","message":"if not port[\u0027fixed_ips\u0027]:","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        port \u003d self._get_port(context, id)"},{"line_number":228,"context_line":"        port_mapping \u003d nuagedb.get_port_mapping_by_id(context.session,"},{"line_number":229,"context_line":"                                                      id)"},{"line_number":230,"context_line":"        if len(port[\u0027fixed_ips\u0027]) \u003d\u003d 0:"},{"line_number":231,"context_line":"            return super(NuagePlugin, self).delete_port(context, id)"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        sub_id \u003d port[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027]"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2FzX4%3D","line":230,"in_reply_to":"AAAAU3%2F%2F1U4%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","unresolved":false,"context_lines":[{"line_number":241,"context_line":"                                                        netpart_id)"},{"line_number":242,"context_line":"        # Need to call this explicitly to delete vport_vporttag_mapping"},{"line_number":243,"context_line":"        if constants.NOVA_PORT_OWNER_PREF in port[\u0027device_owner\u0027]:"},{"line_number":244,"context_line":"            \u0027\u0027\u0027 This was a VM Port \u0027\u0027\u0027"},{"line_number":245,"context_line":"            filters \u003d {\u0027device_id\u0027: [port[\u0027device_id\u0027]]}"},{"line_number":246,"context_line":"            ports \u003d self.get_ports(context, filters)"},{"line_number":247,"context_line":"            params \u003d {"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1VA%3D","line":244,"updated":"2014-02-24 15:53:40.000000000","message":"Not a proper comment.\n\n# This was a VM Port","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","unresolved":false,"context_lines":[{"line_number":241,"context_line":"                                                        netpart_id)"},{"line_number":242,"context_line":"        # Need to call this explicitly to delete vport_vporttag_mapping"},{"line_number":243,"context_line":"        if constants.NOVA_PORT_OWNER_PREF in port[\u0027device_owner\u0027]:"},{"line_number":244,"context_line":"            \u0027\u0027\u0027 This was a VM Port \u0027\u0027\u0027"},{"line_number":245,"context_line":"            filters \u003d {\u0027device_id\u0027: [port[\u0027device_id\u0027]]}"},{"line_number":246,"context_line":"            ports \u003d self.get_ports(context, filters)"},{"line_number":247,"context_line":"            params \u003d {"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2FzXg%3D","line":244,"in_reply_to":"AAAAU3%2F%2F1VA%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","unresolved":false,"context_lines":[{"line_number":277,"context_line":"        # Search router and subnet tables."},{"line_number":278,"context_line":"        # If no entry left delete user and group from VSD"},{"line_number":279,"context_line":"        filters \u003d {\u0027tenant_id\u0027: [context.tenant]}"},{"line_number":280,"context_line":"        routers \u003d self.get_routers(context, filters\u003dfilters)"},{"line_number":281,"context_line":"        if routers:"},{"line_number":282,"context_line":"            return True"},{"line_number":283,"context_line":"        subnets \u003d self.get_subnets(context, filters\u003dfilters)"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1S4%3D","line":280,"updated":"2014-02-24 15:53:40.000000000","message":"replace 280-286\n\nreturn bool(\n    self.get_routers(context, filters\u003dfilters) or\n    self.get_subnets(context, filters\u003dfilters)\n)","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","unresolved":false,"context_lines":[{"line_number":277,"context_line":"        # Search router and subnet tables."},{"line_number":278,"context_line":"        # If no entry left delete user and group from VSD"},{"line_number":279,"context_line":"        filters \u003d {\u0027tenant_id\u0027: [context.tenant]}"},{"line_number":280,"context_line":"        routers \u003d self.get_routers(context, filters\u003dfilters)"},{"line_number":281,"context_line":"        if routers:"},{"line_number":282,"context_line":"            return True"},{"line_number":283,"context_line":"        subnets \u003d self.get_subnets(context, filters\u003dfilters)"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2FzVs%3D","line":280,"in_reply_to":"AAAAU3%2F%2F1S4%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","unresolved":false,"context_lines":[{"line_number":318,"context_line":"            net_partition \u003d self._resource_finder(context, \u0027subnet\u0027,"},{"line_number":319,"context_line":"                                                  \u0027net_partition\u0027, subn)"},{"line_number":320,"context_line":"        if not net_partition:"},{"line_number":321,"context_line":"            msg \u003d (\u0027Either net_partition is not provided with subnet OR \u0027"},{"line_number":322,"context_line":"                   \u0027default net_partition is not created at the start\u0027)"},{"line_number":323,"context_line":"            raise q_exc.BadRequest(resource\u003d\u0027subnet\u0027, msg\u003dmsg)"},{"line_number":324,"context_line":"        return net_partition"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1Sg%3D","line":321,"updated":"2014-02-24 15:53:40.000000000","message":"This string needs to be wrapped for translation.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","unresolved":false,"context_lines":[{"line_number":318,"context_line":"            net_partition \u003d self._resource_finder(context, \u0027subnet\u0027,"},{"line_number":319,"context_line":"                                                  \u0027net_partition\u0027, subn)"},{"line_number":320,"context_line":"        if not net_partition:"},{"line_number":321,"context_line":"            msg \u003d (\u0027Either net_partition is not provided with subnet OR \u0027"},{"line_number":322,"context_line":"                   \u0027default net_partition is not created at the start\u0027)"},{"line_number":323,"context_line":"            raise q_exc.BadRequest(resource\u003d\u0027subnet\u0027, msg\u003dmsg)"},{"line_number":324,"context_line":"        return net_partition"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2FzVc%3D","line":321,"in_reply_to":"AAAAU3%2F%2F1Sg%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","unresolved":false,"context_lines":[{"line_number":386,"context_line":"                self.nuageclient.delete_subnet(subnet_l2dom[\u0027nuage_subnet_id\u0027],"},{"line_number":387,"context_line":"                                               template_id)"},{"line_number":388,"context_line":"            except Exception:"},{"line_number":389,"context_line":"                msg \u003d (\u0027Unable to complete operation on subnet %s.\u0027"},{"line_number":390,"context_line":"                       \u0027One or more ports have an IP allocation \u0027"},{"line_number":391,"context_line":"                       \u0027from this subnet.\u0027 % id)"},{"line_number":392,"context_line":"                raise q_exc.BadRequest(resource\u003d\u0027subnet\u0027, msg\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1SY%3D","line":389,"updated":"2014-02-24 15:53:40.000000000","message":"This string needs to be wrapped for translation.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","unresolved":false,"context_lines":[{"line_number":386,"context_line":"                self.nuageclient.delete_subnet(subnet_l2dom[\u0027nuage_subnet_id\u0027],"},{"line_number":387,"context_line":"                                               template_id)"},{"line_number":388,"context_line":"            except Exception:"},{"line_number":389,"context_line":"                msg \u003d (\u0027Unable to complete operation on subnet %s.\u0027"},{"line_number":390,"context_line":"                       \u0027One or more ports have an IP allocation \u0027"},{"line_number":391,"context_line":"                       \u0027from this subnet.\u0027 % id)"},{"line_number":392,"context_line":"                raise q_exc.BadRequest(resource\u003d\u0027subnet\u0027, msg\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2FzVI%3D","line":389,"in_reply_to":"AAAAU3%2F%2F1SY%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","unresolved":false,"context_lines":[{"line_number":415,"context_line":"                super(NuagePlugin,"},{"line_number":416,"context_line":"                      self).remove_router_interface(context,"},{"line_number":417,"context_line":"                                                    router_id,"},{"line_number":418,"context_line":"                                                    interface_info)"},{"line_number":419,"context_line":"                msg \u003d (\"Router %s does not hold default zone OR \""},{"line_number":420,"context_line":"                       \"net_partition mapping. Router-IF add failed\""},{"line_number":421,"context_line":"                       % router_id)"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1SM%3D","line":418,"updated":"2014-02-24 15:53:40.000000000","message":"This string needs to be wrapped for translation.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","unresolved":false,"context_lines":[{"line_number":415,"context_line":"                super(NuagePlugin,"},{"line_number":416,"context_line":"                      self).remove_router_interface(context,"},{"line_number":417,"context_line":"                                                    router_id,"},{"line_number":418,"context_line":"                                                    interface_info)"},{"line_number":419,"context_line":"                msg \u003d (\"Router %s does not hold default zone OR \""},{"line_number":420,"context_line":"                       \"net_partition mapping. Router-IF add failed\""},{"line_number":421,"context_line":"                       % router_id)"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2FzUY%3D","line":418,"in_reply_to":"AAAAU3%2F%2F1SM%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","unresolved":false,"context_lines":[{"line_number":426,"context_line":"                      self).remove_router_interface(context,"},{"line_number":427,"context_line":"                                                    router_id,"},{"line_number":428,"context_line":"                                                    interface_info)"},{"line_number":429,"context_line":"                msg \u003d (\"Subnet %s does not hold Nuage VSD reference. \""},{"line_number":430,"context_line":"                       \"Router-IF add failed\" % subnet_id)"},{"line_number":431,"context_line":"                raise q_exc.BadRequest(resource\u003d\u0027subnet\u0027, msg\u003dmsg)"},{"line_number":432,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1R4%3D","line":429,"updated":"2014-02-24 15:53:40.000000000","message":"This string needs to be wrapped for translation.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","unresolved":false,"context_lines":[{"line_number":426,"context_line":"                      self).remove_router_interface(context,"},{"line_number":427,"context_line":"                                                    router_id,"},{"line_number":428,"context_line":"                                                    interface_info)"},{"line_number":429,"context_line":"                msg \u003d (\"Subnet %s does not hold Nuage VSD reference. \""},{"line_number":430,"context_line":"                       \"Router-IF add failed\" % subnet_id)"},{"line_number":431,"context_line":"                raise q_exc.BadRequest(resource\u003d\u0027subnet\u0027, msg\u003dmsg)"},{"line_number":432,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2FzUU%3D","line":429,"in_reply_to":"AAAAU3%2F%2F1R4%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","unresolved":false,"context_lines":[{"line_number":436,"context_line":"                      self).remove_router_interface(context,"},{"line_number":437,"context_line":"                                                    router_id,"},{"line_number":438,"context_line":"                                                    interface_info)"},{"line_number":439,"context_line":"                msg \u003d (\"Subnet %s and Router %s belong to \""},{"line_number":440,"context_line":"                       \"different net_partition Router-IF add not permitted\" %"},{"line_number":441,"context_line":"                       (subnet_id, router_id))"},{"line_number":442,"context_line":"                raise q_exc.BadRequest(resource\u003d\u0027subnet\u0027, msg\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1Rk%3D","line":439,"updated":"2014-02-24 15:53:40.000000000","message":"This string needs to be wrapped for translation.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","unresolved":false,"context_lines":[{"line_number":436,"context_line":"                      self).remove_router_interface(context,"},{"line_number":437,"context_line":"                                                    router_id,"},{"line_number":438,"context_line":"                                                    interface_info)"},{"line_number":439,"context_line":"                msg \u003d (\"Subnet %s and Router %s belong to \""},{"line_number":440,"context_line":"                       \"different net_partition Router-IF add not permitted\" %"},{"line_number":441,"context_line":"                       (subnet_id, router_id))"},{"line_number":442,"context_line":"                raise q_exc.BadRequest(resource\u003d\u0027subnet\u0027, msg\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2FzTQ%3D","line":439,"in_reply_to":"AAAAU3%2F%2F1Rk%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","unresolved":false,"context_lines":[{"line_number":447,"context_line":"                      self).remove_router_interface(context,"},{"line_number":448,"context_line":"                                                    router_id,"},{"line_number":449,"context_line":"                                                    interface_info)"},{"line_number":450,"context_line":"                msg \u003d (\"Subnet %s has one or more active VMs \""},{"line_number":451,"context_line":"                       \"Router-IF add not permitted\" % subnet_id)"},{"line_number":452,"context_line":"                raise q_exc.BadRequest(resource\u003d\u0027subnet\u0027, msg\u003dmsg)"},{"line_number":453,"context_line":"            self.nuageclient.delete_subnet(nuage_subnet_id,"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1RM%3D","line":450,"updated":"2014-02-24 15:53:40.000000000","message":"This string needs to be wrapped for translation.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","unresolved":false,"context_lines":[{"line_number":447,"context_line":"                      self).remove_router_interface(context,"},{"line_number":448,"context_line":"                                                    router_id,"},{"line_number":449,"context_line":"                                                    interface_info)"},{"line_number":450,"context_line":"                msg \u003d (\"Subnet %s has one or more active VMs \""},{"line_number":451,"context_line":"                       \"Router-IF add not permitted\" % subnet_id)"},{"line_number":452,"context_line":"                raise q_exc.BadRequest(resource\u003d\u0027subnet\u0027, msg\u003dmsg)"},{"line_number":453,"context_line":"            self.nuageclient.delete_subnet(nuage_subnet_id,"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2FzTI%3D","line":450,"in_reply_to":"AAAAU3%2F%2F1RM%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","unresolved":false,"context_lines":[{"line_number":493,"context_line":"                        found \u003d True"},{"line_number":494,"context_line":"                        break"},{"line_number":495,"context_line":"            except exc.NoResultFound:"},{"line_number":496,"context_line":"                msg \u003d (\"No router interface found for Router %s. \""},{"line_number":497,"context_line":"                       \"Router-IF delete failed\" % router_id)"},{"line_number":498,"context_line":"                raise q_exc.BadRequest(resource\u003d\u0027router\u0027, msg\u003dmsg)"},{"line_number":499,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1RA%3D","line":496,"updated":"2014-02-24 15:53:40.000000000","message":"This string needs to be wrapped for translation.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","unresolved":false,"context_lines":[{"line_number":493,"context_line":"                        found \u003d True"},{"line_number":494,"context_line":"                        break"},{"line_number":495,"context_line":"            except exc.NoResultFound:"},{"line_number":496,"context_line":"                msg \u003d (\"No router interface found for Router %s. \""},{"line_number":497,"context_line":"                       \"Router-IF delete failed\" % router_id)"},{"line_number":498,"context_line":"                raise q_exc.BadRequest(resource\u003d\u0027router\u0027, msg\u003dmsg)"},{"line_number":499,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2FzR0%3D","line":496,"in_reply_to":"AAAAU3%2F%2F1RA%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","unresolved":false,"context_lines":[{"line_number":498,"context_line":"                raise q_exc.BadRequest(resource\u003d\u0027router\u0027, msg\u003dmsg)"},{"line_number":499,"context_line":""},{"line_number":500,"context_line":"            if not found:"},{"line_number":501,"context_line":"                msg \u003d (\"No router interface found for Router %s. \""},{"line_number":502,"context_line":"                       \"Router-IF delete failed\" % router_id)"},{"line_number":503,"context_line":"                raise q_exc.BadRequest(resource\u003d\u0027router\u0027, msg\u003dmsg)"},{"line_number":504,"context_line":"        elif \u0027port_id\u0027 in interface_info:"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1Q4%3D","line":501,"updated":"2014-02-24 15:53:40.000000000","message":"This string needs to be wrapped for translation.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","unresolved":false,"context_lines":[{"line_number":498,"context_line":"                raise q_exc.BadRequest(resource\u003d\u0027router\u0027, msg\u003dmsg)"},{"line_number":499,"context_line":""},{"line_number":500,"context_line":"            if not found:"},{"line_number":501,"context_line":"                msg \u003d (\"No router interface found for Router %s. \""},{"line_number":502,"context_line":"                       \"Router-IF delete failed\" % router_id)"},{"line_number":503,"context_line":"                raise q_exc.BadRequest(resource\u003d\u0027router\u0027, msg\u003dmsg)"},{"line_number":504,"context_line":"        elif \u0027port_id\u0027 in interface_info:"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2FzRw%3D","line":501,"in_reply_to":"AAAAU3%2F%2F1Q4%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","unresolved":false,"context_lines":[{"line_number":504,"context_line":"        elif \u0027port_id\u0027 in interface_info:"},{"line_number":505,"context_line":"            port_db \u003d self._get_port(context, interface_info[\u0027port_id\u0027])"},{"line_number":506,"context_line":"            if not port_db:"},{"line_number":507,"context_line":"                msg \u003d (\"No router interface found for Router %s. \""},{"line_number":508,"context_line":"                       \"Router-IF delete failed\" % router_id)"},{"line_number":509,"context_line":"                raise q_exc.BadRequest(resource\u003d\u0027router\u0027, msg\u003dmsg)"},{"line_number":510,"context_line":"            subnet_id \u003d port_db[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027]"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1Qk%3D","line":507,"updated":"2014-02-24 15:53:40.000000000","message":"This string needs to be wrapped for translation.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","unresolved":false,"context_lines":[{"line_number":504,"context_line":"        elif \u0027port_id\u0027 in interface_info:"},{"line_number":505,"context_line":"            port_db \u003d self._get_port(context, interface_info[\u0027port_id\u0027])"},{"line_number":506,"context_line":"            if not port_db:"},{"line_number":507,"context_line":"                msg \u003d (\"No router interface found for Router %s. \""},{"line_number":508,"context_line":"                       \"Router-IF delete failed\" % router_id)"},{"line_number":509,"context_line":"                raise q_exc.BadRequest(resource\u003d\u0027router\u0027, msg\u003dmsg)"},{"line_number":510,"context_line":"            subnet_id \u003d port_db[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027]"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2FzRs%3D","line":507,"in_reply_to":"AAAAU3%2F%2F1Qk%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","unresolved":false,"context_lines":[{"line_number":515,"context_line":"                                                          subnet_id)"},{"line_number":516,"context_line":"            nuage_subn_id \u003d subnet_l2dom[\u0027nuage_subnet_id\u0027]"},{"line_number":517,"context_line":"            if self.nuageclient.vms_on_l2domain(nuage_subn_id):"},{"line_number":518,"context_line":"                msg \u003d (\"Subnet %s has one or more active VMs \""},{"line_number":519,"context_line":"                       \"Router-IF delete not permitted\" % subnet_id)"},{"line_number":520,"context_line":"                raise q_exc.BadRequest(resource\u003d\u0027subnet\u0027, msg\u003dmsg)"},{"line_number":521,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1QY%3D","line":518,"updated":"2014-02-24 15:53:40.000000000","message":"This string needs to be wrapped for translation.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","unresolved":false,"context_lines":[{"line_number":515,"context_line":"                                                          subnet_id)"},{"line_number":516,"context_line":"            nuage_subn_id \u003d subnet_l2dom[\u0027nuage_subnet_id\u0027]"},{"line_number":517,"context_line":"            if self.nuageclient.vms_on_l2domain(nuage_subn_id):"},{"line_number":518,"context_line":"                msg \u003d (\"Subnet %s has one or more active VMs \""},{"line_number":519,"context_line":"                       \"Router-IF delete not permitted\" % subnet_id)"},{"line_number":520,"context_line":"                raise q_exc.BadRequest(resource\u003d\u0027subnet\u0027, msg\u003dmsg)"},{"line_number":521,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2FzRo%3D","line":518,"in_reply_to":"AAAAU3%2F%2F1QY%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","unresolved":false,"context_lines":[{"line_number":524,"context_line":"                context.session,"},{"line_number":525,"context_line":"                router_id)"},{"line_number":526,"context_line":"            if not ent_rtr_mapping:"},{"line_number":527,"context_line":"                msg \u003d (\"Router %s does not hold net_partition \""},{"line_number":528,"context_line":"                       \"assoc on Nuage VSD. Router-IF delete failed\""},{"line_number":529,"context_line":"                       % router_id)"},{"line_number":530,"context_line":"                raise q_exc.BadRequest(resource\u003d\u0027router\u0027, msg\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1QI%3D","line":527,"updated":"2014-02-24 15:53:40.000000000","message":"This string needs to be wrapped for translation.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","unresolved":false,"context_lines":[{"line_number":524,"context_line":"                context.session,"},{"line_number":525,"context_line":"                router_id)"},{"line_number":526,"context_line":"            if not ent_rtr_mapping:"},{"line_number":527,"context_line":"                msg \u003d (\"Router %s does not hold net_partition \""},{"line_number":528,"context_line":"                       \"assoc on Nuage VSD. Router-IF delete failed\""},{"line_number":529,"context_line":"                       % router_id)"},{"line_number":530,"context_line":"                raise q_exc.BadRequest(resource\u003d\u0027router\u0027, msg\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2FzRk%3D","line":527,"in_reply_to":"AAAAU3%2F%2F1QI%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","unresolved":false,"context_lines":[{"line_number":563,"context_line":"            net_partition \u003d self._resource_finder(context, \u0027router\u0027,"},{"line_number":564,"context_line":"                                                  \u0027net_partition\u0027, rtr)"},{"line_number":565,"context_line":"        if not net_partition:"},{"line_number":566,"context_line":"            msg \u003d (\u0027Either net_partition is not provided with router OR \u0027"},{"line_number":567,"context_line":"                   \u0027default net_partition is not created at the start\u0027)"},{"line_number":568,"context_line":"            raise q_exc.BadRequest(resource\u003d\u0027router\u0027, msg\u003dmsg)"},{"line_number":569,"context_line":"        return net_partition"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1P4%3D","line":566,"updated":"2014-02-24 15:53:40.000000000","message":"This string needs to be wrapped for translation.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","unresolved":false,"context_lines":[{"line_number":563,"context_line":"            net_partition \u003d self._resource_finder(context, \u0027router\u0027,"},{"line_number":564,"context_line":"                                                  \u0027net_partition\u0027, rtr)"},{"line_number":565,"context_line":"        if not net_partition:"},{"line_number":566,"context_line":"            msg \u003d (\u0027Either net_partition is not provided with router OR \u0027"},{"line_number":567,"context_line":"                   \u0027default net_partition is not created at the start\u0027)"},{"line_number":568,"context_line":"            raise q_exc.BadRequest(resource\u003d\u0027router\u0027, msg\u003dmsg)"},{"line_number":569,"context_line":"        return net_partition"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2FzQ8%3D","line":566,"in_reply_to":"AAAAU3%2F%2F1P4%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","unresolved":false,"context_lines":[{"line_number":667,"context_line":"            context.session,"},{"line_number":668,"context_line":"            id)"},{"line_number":669,"context_line":"        if ent_rtr_mapping:"},{"line_number":670,"context_line":"            msg \u003d \"One or more router still attached to net_partition %s.\" % id"},{"line_number":671,"context_line":"            raise q_exc.BadRequest(resource\u003d\u0027net_partition\u0027, msg\u003dmsg)"},{"line_number":672,"context_line":"        net_partition \u003d nuagedb.get_net_partition_by_id(context.session, id)"},{"line_number":673,"context_line":"        if not net_partition:"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1Pw%3D","line":670,"updated":"2014-02-24 15:53:40.000000000","message":"This string needs to be wrapped for translation.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","unresolved":false,"context_lines":[{"line_number":667,"context_line":"            context.session,"},{"line_number":668,"context_line":"            id)"},{"line_number":669,"context_line":"        if ent_rtr_mapping:"},{"line_number":670,"context_line":"            msg \u003d \"One or more router still attached to net_partition %s.\" % id"},{"line_number":671,"context_line":"            raise q_exc.BadRequest(resource\u003d\u0027net_partition\u0027, msg\u003dmsg)"},{"line_number":672,"context_line":"        net_partition \u003d nuagedb.get_net_partition_by_id(context.session, id)"},{"line_number":673,"context_line":"        if not net_partition:"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2FzPo%3D","line":670,"in_reply_to":"AAAAU3%2F%2F1Pw%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","unresolved":false,"context_lines":[{"line_number":671,"context_line":"            raise q_exc.BadRequest(resource\u003d\u0027net_partition\u0027, msg\u003dmsg)"},{"line_number":672,"context_line":"        net_partition \u003d nuagedb.get_net_partition_by_id(context.session, id)"},{"line_number":673,"context_line":"        if not net_partition:"},{"line_number":674,"context_line":"            msg \u003d \"NetPartition with %s does not exist\" % id"},{"line_number":675,"context_line":"            raise q_exc.BadRequest(resource\u003d\u0027net_partition\u0027, msg\u003dmsg)"},{"line_number":676,"context_line":"        l3dom_tmplt_id \u003d net_partition[\u0027l3dom_tmplt_id\u0027]"},{"line_number":677,"context_line":"        l2dom_tmplt_id \u003d net_partition[\u0027l2dom_tmplt_id\u0027]"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1Ps%3D","line":674,"updated":"2014-02-24 15:53:40.000000000","message":"This string needs to be wrapped for translation.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","unresolved":false,"context_lines":[{"line_number":671,"context_line":"            raise q_exc.BadRequest(resource\u003d\u0027net_partition\u0027, msg\u003dmsg)"},{"line_number":672,"context_line":"        net_partition \u003d nuagedb.get_net_partition_by_id(context.session, id)"},{"line_number":673,"context_line":"        if not net_partition:"},{"line_number":674,"context_line":"            msg \u003d \"NetPartition with %s does not exist\" % id"},{"line_number":675,"context_line":"            raise q_exc.BadRequest(resource\u003d\u0027net_partition\u0027, msg\u003dmsg)"},{"line_number":676,"context_line":"        l3dom_tmplt_id \u003d net_partition[\u0027l3dom_tmplt_id\u0027]"},{"line_number":677,"context_line":"        l2dom_tmplt_id \u003d net_partition[\u0027l2dom_tmplt_id\u0027]"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2FzPk%3D","line":674,"in_reply_to":"AAAAU3%2F%2F1Ps%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"change_message_id":"03554d0b280683410eff6417e8456b946d1b9b0a","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                                                                subnet_id)"},{"line_number":167,"context_line":"                if subnet_mapping:"},{"line_number":168,"context_line":"                    static_ip \u003d False"},{"line_number":169,"context_line":"                    if ((p[\u0027fixed_ips\u0027] !\u003d attributes.ATTR_NOT_SPECIFIED) and"},{"line_number":170,"context_line":"                        \u0027ip_address\u0027 in p[\u0027fixed_ips\u0027][0]):"},{"line_number":171,"context_line":"                        static_ip \u003d True"},{"line_number":172,"context_line":"                    nuage_vport_id \u003d None"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAU3%2F%2Ftxs%3D","line":169,"updated":"2014-02-25 05:16:45.000000000","message":"It is recommended that you use:\n\n    api.v2.attributes.is_attr_set()\n\nto determine the attribute is set.","commit_id":"7d4c49236b95fae2e5b8eebdd68cfa7429b0a65a"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"af8fa9ad0f66108d39a5c826fa85b0f87ef91c1b","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                                                                subnet_id)"},{"line_number":167,"context_line":"                if subnet_mapping:"},{"line_number":168,"context_line":"                    static_ip \u003d False"},{"line_number":169,"context_line":"                    if ((p[\u0027fixed_ips\u0027] !\u003d attributes.ATTR_NOT_SPECIFIED) and"},{"line_number":170,"context_line":"                        \u0027ip_address\u0027 in p[\u0027fixed_ips\u0027][0]):"},{"line_number":171,"context_line":"                        static_ip \u003d True"},{"line_number":172,"context_line":"                    nuage_vport_id \u003d None"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAU3%2F%2FtTU%3D","line":169,"in_reply_to":"AAAAU3%2F%2Ftxs%3D","updated":"2014-02-25 06:10:34.000000000","message":"Done","commit_id":"7d4c49236b95fae2e5b8eebdd68cfa7429b0a65a"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"change_message_id":"03554d0b280683410eff6417e8456b946d1b9b0a","unresolved":false,"context_lines":[{"line_number":217,"context_line":"                    try:"},{"line_number":218,"context_line":"                        self._create_update_port(context, port,"},{"line_number":219,"context_line":"                                                 port_mapping, subnet_mapping)"},{"line_number":220,"context_line":"                    except Exception:"},{"line_number":221,"context_line":"                        raise"},{"line_number":222,"context_line":"                updated_port \u003d self._make_port_dict(port)"},{"line_number":223,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAU3%2F%2FtwY%3D","line":220,"updated":"2014-02-25 05:16:45.000000000","message":"Nothing is being done in this except block?","commit_id":"7d4c49236b95fae2e5b8eebdd68cfa7429b0a65a"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"af8fa9ad0f66108d39a5c826fa85b0f87ef91c1b","unresolved":false,"context_lines":[{"line_number":217,"context_line":"                    try:"},{"line_number":218,"context_line":"                        self._create_update_port(context, port,"},{"line_number":219,"context_line":"                                                 port_mapping, subnet_mapping)"},{"line_number":220,"context_line":"                    except Exception:"},{"line_number":221,"context_line":"                        raise"},{"line_number":222,"context_line":"                updated_port \u003d self._make_port_dict(port)"},{"line_number":223,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAU3%2F%2FtR8%3D","line":220,"in_reply_to":"AAAAU3%2F%2FtwY%3D","updated":"2014-02-25 06:10:34.000000000","message":"Yes for now.","commit_id":"7d4c49236b95fae2e5b8eebdd68cfa7429b0a65a"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"change_message_id":"03554d0b280683410eff6417e8456b946d1b9b0a","unresolved":false,"context_lines":[{"line_number":325,"context_line":""},{"line_number":326,"context_line":"    def _validate_create_subnet(self, subnet):"},{"line_number":327,"context_line":"        if (\u0027host_routes\u0027 in subnet and"},{"line_number":328,"context_line":"            subnet[\u0027host_routes\u0027] !\u003d attributes.ATTR_NOT_SPECIFIED):"},{"line_number":329,"context_line":"            msg \u003d \u0027host_routes extensions not supported for subnets\u0027"},{"line_number":330,"context_line":"            raise q_exc.BadRequest(resource\u003d\u0027subnet\u0027, msg\u003dmsg)"},{"line_number":331,"context_line":"        if subnet[\u0027gateway_ip\u0027] is None:"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAU3%2F%2Ftxk%3D","line":328,"updated":"2014-02-25 05:16:45.000000000","message":"ditto","commit_id":"7d4c49236b95fae2e5b8eebdd68cfa7429b0a65a"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"af8fa9ad0f66108d39a5c826fa85b0f87ef91c1b","unresolved":false,"context_lines":[{"line_number":325,"context_line":""},{"line_number":326,"context_line":"    def _validate_create_subnet(self, subnet):"},{"line_number":327,"context_line":"        if (\u0027host_routes\u0027 in subnet and"},{"line_number":328,"context_line":"            subnet[\u0027host_routes\u0027] !\u003d attributes.ATTR_NOT_SPECIFIED):"},{"line_number":329,"context_line":"            msg \u003d \u0027host_routes extensions not supported for subnets\u0027"},{"line_number":330,"context_line":"            raise q_exc.BadRequest(resource\u003d\u0027subnet\u0027, msg\u003dmsg)"},{"line_number":331,"context_line":"        if subnet[\u0027gateway_ip\u0027] is None:"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAU3%2F%2FtR0%3D","line":328,"in_reply_to":"AAAAU3%2F%2Ftxk%3D","updated":"2014-02-25 06:10:34.000000000","message":"Done","commit_id":"7d4c49236b95fae2e5b8eebdd68cfa7429b0a65a"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"change_message_id":"03554d0b280683410eff6417e8456b946d1b9b0a","unresolved":false,"context_lines":[{"line_number":458,"context_line":"                \u0027net\u0027: net,"},{"line_number":459,"context_line":"                \u0027zone_id\u0027: rtr_zone_mapping[\u0027nuage_zone_id\u0027]"},{"line_number":460,"context_line":"            }"},{"line_number":461,"context_line":"            if subn[\u0027gateway_ip\u0027] \u003d\u003d attributes.ATTR_NOT_SPECIFIED:"},{"line_number":462,"context_line":"                subn[\u0027gateway_ip\u0027] \u003d str(netaddr.IPAddress(net.first + 1))"},{"line_number":463,"context_line":"            try:"},{"line_number":464,"context_line":"                nuage_subnet \u003d self.nuageclient.create_domain_subnet(subn,"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAU3%2F%2Ftxc%3D","line":461,"updated":"2014-02-25 05:16:45.000000000","message":"ditto","commit_id":"7d4c49236b95fae2e5b8eebdd68cfa7429b0a65a"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"af8fa9ad0f66108d39a5c826fa85b0f87ef91c1b","unresolved":false,"context_lines":[{"line_number":458,"context_line":"                \u0027net\u0027: net,"},{"line_number":459,"context_line":"                \u0027zone_id\u0027: rtr_zone_mapping[\u0027nuage_zone_id\u0027]"},{"line_number":460,"context_line":"            }"},{"line_number":461,"context_line":"            if subn[\u0027gateway_ip\u0027] \u003d\u003d attributes.ATTR_NOT_SPECIFIED:"},{"line_number":462,"context_line":"                subn[\u0027gateway_ip\u0027] \u003d str(netaddr.IPAddress(net.first + 1))"},{"line_number":463,"context_line":"            try:"},{"line_number":464,"context_line":"                nuage_subnet \u003d self.nuageclient.create_domain_subnet(subn,"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAU3%2F%2FtRw%3D","line":461,"in_reply_to":"AAAAU3%2F%2Ftxc%3D","updated":"2014-02-25 06:10:34.000000000","message":"Done","commit_id":"7d4c49236b95fae2e5b8eebdd68cfa7429b0a65a"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"change_message_id":"03554d0b280683410eff6417e8456b946d1b9b0a","unresolved":false,"context_lines":[{"line_number":630,"context_line":"        }"},{"line_number":631,"context_line":"        try:"},{"line_number":632,"context_line":"            nuage_net_partition \u003d self.nuageclient.create_net_partition(params)"},{"line_number":633,"context_line":"        except Exception:"},{"line_number":634,"context_line":"            raise"},{"line_number":635,"context_line":"        net_partitioninst \u003d None"},{"line_number":636,"context_line":"        if nuage_net_partition:"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAU3%2F%2FtwA%3D","line":633,"updated":"2014-02-25 05:16:45.000000000","message":"ditto","commit_id":"7d4c49236b95fae2e5b8eebdd68cfa7429b0a65a"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"af8fa9ad0f66108d39a5c826fa85b0f87ef91c1b","unresolved":false,"context_lines":[{"line_number":630,"context_line":"        }"},{"line_number":631,"context_line":"        try:"},{"line_number":632,"context_line":"            nuage_net_partition \u003d self.nuageclient.create_net_partition(params)"},{"line_number":633,"context_line":"        except Exception:"},{"line_number":634,"context_line":"            raise"},{"line_number":635,"context_line":"        net_partitioninst \u003d None"},{"line_number":636,"context_line":"        if nuage_net_partition:"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAU3%2F%2FtRc%3D","line":633,"in_reply_to":"AAAAU3%2F%2FtwA%3D","updated":"2014-02-25 06:10:34.000000000","message":"Yes for now.","commit_id":"7d4c49236b95fae2e5b8eebdd68cfa7429b0a65a"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"df1b67cf032daea92e13475415022aa01709fa1a","unresolved":false,"context_lines":[{"line_number":179,"context_line":"                        static_ip)"},{"line_number":180,"context_line":"                    port_prefix \u003d constants.NOVA_PORT_OWNER_PREF"},{"line_number":181,"context_line":"                    if port[\u0027device_owner\u0027].startswith(port_prefix):"},{"line_number":182,"context_line":"                        #This request is coming from nova"},{"line_number":183,"context_line":"                        try:"},{"line_number":184,"context_line":"                            self._create_update_port(context, port,"},{"line_number":185,"context_line":"                                                     port_mapping,"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAU3%2F%2Fjt4%3D","line":182,"updated":"2014-02-25 23:09:19.000000000","message":"basically, create port can be call by anyone, this comment is not valid at all","commit_id":"77bbdbb7e281cbde67c5920cdcc8b1d9af5b8b46"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"e0af5afdb031b1ece107d3b0a9f9a392ad29ffc2","unresolved":false,"context_lines":[{"line_number":179,"context_line":"                        static_ip)"},{"line_number":180,"context_line":"                    port_prefix \u003d constants.NOVA_PORT_OWNER_PREF"},{"line_number":181,"context_line":"                    if port[\u0027device_owner\u0027].startswith(port_prefix):"},{"line_number":182,"context_line":"                        #This request is coming from nova"},{"line_number":183,"context_line":"                        try:"},{"line_number":184,"context_line":"                            self._create_update_port(context, port,"},{"line_number":185,"context_line":"                                                     port_mapping,"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAU3%2F%2FjqA%3D","line":182,"in_reply_to":"AAAAU3%2F%2Fjt4%3D","updated":"2014-02-26 00:51:45.000000000","message":"There is an if condition above where I am checking that device_owner has NOVA_PORT_OWNER_PREF.","commit_id":"77bbdbb7e281cbde67c5920cdcc8b1d9af5b8b46"},{"author":{"_account_id":156,"name":"Ryu Ishimoto","email":"ryu@midokura.com","username":"ryu-midokura"},"change_message_id":"48d796b22b841756838a0bb710b77a81db5a0f47","unresolved":false,"context_lines":[{"line_number":386,"context_line":"        if subnet_l2dom:"},{"line_number":387,"context_line":"            template_id \u003d subnet_l2dom[\u0027nuage_l2dom_tmplt_id\u0027]"},{"line_number":388,"context_line":"            try:"},{"line_number":389,"context_line":"                self.nuageclient.delete_subnet(subnet_l2dom[\u0027nuage_subnet_id\u0027],"},{"line_number":390,"context_line":"                                               template_id)"},{"line_number":391,"context_line":"            except Exception:"},{"line_number":392,"context_line":"                msg \u003d (_(\u0027Unable to complete operation on subnet %s.\u0027"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAAU3%2F%2Fhhw%3D","line":389,"updated":"2014-02-26 06:31:44.000000000","message":"delete_subnet in NeutronDbPluginV2 may fail due to validations.  SubnetInUse is raised if there are still active ports.  In that case, is it your intention to still call nuageclient.delete_subnet?  I\u0027m leaving this as a question since I don\u0027t know what nauageclient.delete_subnet does or if you have other mechanism to handle data inconsistency.","commit_id":"a742e582b4e57a0c5ec359e61d62216520348cdc"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"1b93ce1e703cfb9e0872e454b587df0575aab873","unresolved":false,"context_lines":[{"line_number":386,"context_line":"        if subnet_l2dom:"},{"line_number":387,"context_line":"            template_id \u003d subnet_l2dom[\u0027nuage_l2dom_tmplt_id\u0027]"},{"line_number":388,"context_line":"            try:"},{"line_number":389,"context_line":"                self.nuageclient.delete_subnet(subnet_l2dom[\u0027nuage_subnet_id\u0027],"},{"line_number":390,"context_line":"                                               template_id)"},{"line_number":391,"context_line":"            except Exception:"},{"line_number":392,"context_line":"                msg \u003d (_(\u0027Unable to complete operation on subnet %s.\u0027"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAAU3%2F%2FgwU%3D","line":389,"in_reply_to":"AAAAU3%2F%2Fhhw%3D","updated":"2014-02-26 09:11:14.000000000","message":"Valid concern Ryu. I have made sure so far that client fails on all the validations as neutron. So this is intentional.\n\nIdeally, I would want to decouple validation check in neutron\u0027s delete_subnet from actual db transactions. But thats not the case in icehouse at least.","commit_id":"a742e582b4e57a0c5ec359e61d62216520348cdc"},{"author":{"_account_id":156,"name":"Ryu Ishimoto","email":"ryu@midokura.com","username":"ryu-midokura"},"change_message_id":"48d796b22b841756838a0bb710b77a81db5a0f47","unresolved":false,"context_lines":[{"line_number":609,"context_line":"                                                               id)"},{"line_number":610,"context_line":"        if ent_rtr_mapping:"},{"line_number":611,"context_line":"            nuage_router_id \u003d ent_rtr_mapping[\u0027nuage_router_id\u0027]"},{"line_number":612,"context_line":"            self.nuageclient.delete_router(nuage_router_id)"},{"line_number":613,"context_line":"        router_zone \u003d nuagedb.get_rtr_zone_mapping(session, id)"},{"line_number":614,"context_line":"        super(NuagePlugin, self).delete_router(context, id)"},{"line_number":615,"context_line":"        if router_zone and not self._check_router_subnet_for_tenant(context):"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAAU3%2F%2Fhl4%3D","line":612,"updated":"2014-02-26 06:31:44.000000000","message":"Same as my comment on delete_subnet.  I don\u0027t know what delete_router does in nuageclient, but delete_router() call made in line 614 may fail correctly due to validations.  For example, RouterInUse exception is thrown if there are any fips associated with this router.  In that scenario, would you still want nuagecilent.delete_router to be called?","commit_id":"a742e582b4e57a0c5ec359e61d62216520348cdc"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"1b93ce1e703cfb9e0872e454b587df0575aab873","unresolved":false,"context_lines":[{"line_number":609,"context_line":"                                                               id)"},{"line_number":610,"context_line":"        if ent_rtr_mapping:"},{"line_number":611,"context_line":"            nuage_router_id \u003d ent_rtr_mapping[\u0027nuage_router_id\u0027]"},{"line_number":612,"context_line":"            self.nuageclient.delete_router(nuage_router_id)"},{"line_number":613,"context_line":"        router_zone \u003d nuagedb.get_rtr_zone_mapping(session, id)"},{"line_number":614,"context_line":"        super(NuagePlugin, self).delete_router(context, id)"},{"line_number":615,"context_line":"        if router_zone and not self._check_router_subnet_for_tenant(context):"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAAU3%2F%2Fgvw%3D","line":612,"in_reply_to":"AAAAU3%2F%2Fhl4%3D","updated":"2014-02-26 09:11:14.000000000","message":"Same comment as in delete_subnet. Thx.","commit_id":"a742e582b4e57a0c5ec359e61d62216520348cdc"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"25506fd2308f84cd2021b875f33d28f72ed850b1","unresolved":false,"context_lines":[{"line_number":178,"context_line":"                        nuage_vif_id,"},{"line_number":179,"context_line":"                        static_ip)"},{"line_number":180,"context_line":"                    port_prefix \u003d constants.NOVA_PORT_OWNER_PREF"},{"line_number":181,"context_line":"                    if port[\u0027device_owner\u0027].startswith(port_prefix):"},{"line_number":182,"context_line":"                        #This request is coming from nova"},{"line_number":183,"context_line":"                        try:"},{"line_number":184,"context_line":"                            self._create_update_port(context, port,"}],"source_content_type":"text/x-python","patch_set":20,"id":"AAAAVX%2F%2Fy74%3D","line":181,"updated":"2014-02-28 08:09:24.000000000","message":"Do you really need to explicit filter with ports with device_owner that start with compute?","commit_id":"f2106b6fb4101f8068124dcc3fcad06759da90db"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"07aa13c42405474fa00d4c6affc98ffb5e8349f7","unresolved":false,"context_lines":[{"line_number":178,"context_line":"                        nuage_vif_id,"},{"line_number":179,"context_line":"                        static_ip)"},{"line_number":180,"context_line":"                    port_prefix \u003d constants.NOVA_PORT_OWNER_PREF"},{"line_number":181,"context_line":"                    if port[\u0027device_owner\u0027].startswith(port_prefix):"},{"line_number":182,"context_line":"                        #This request is coming from nova"},{"line_number":183,"context_line":"                        try:"},{"line_number":184,"context_line":"                            self._create_update_port(context, port,"}],"source_content_type":"text/x-python","patch_set":20,"id":"AAAAVX%2F%2FyhM%3D","line":181,"in_reply_to":"AAAAVX%2F%2Fy74%3D","updated":"2014-02-28 09:12:24.000000000","message":"Yes. absolutely atleast for now.","commit_id":"f2106b6fb4101f8068124dcc3fcad06759da90db"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"25506fd2308f84cd2021b875f33d28f72ed850b1","unresolved":false,"context_lines":[{"line_number":214,"context_line":"                             \" found on VSD\") % id)"},{"line_number":215,"context_line":"                    raise q_exc.BadRequest(resource\u003d\u0027port\u0027, msg\u003dmsg)"},{"line_number":216,"context_line":"                if not port_mapping[\u0027nuage_vport_id\u0027]:"},{"line_number":217,"context_line":"                    try:"},{"line_number":218,"context_line":"                        self._create_update_port(context, port,"},{"line_number":219,"context_line":"                                                 port_mapping, subnet_mapping)"},{"line_number":220,"context_line":"                    except Exception:"}],"source_content_type":"text/x-python","patch_set":20,"id":"AAAAVX%2F%2Fy7o%3D","line":217,"updated":"2014-02-28 08:09:24.000000000","message":"unneeded try/except","commit_id":"f2106b6fb4101f8068124dcc3fcad06759da90db"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"07aa13c42405474fa00d4c6affc98ffb5e8349f7","unresolved":false,"context_lines":[{"line_number":214,"context_line":"                             \" found on VSD\") % id)"},{"line_number":215,"context_line":"                    raise q_exc.BadRequest(resource\u003d\u0027port\u0027, msg\u003dmsg)"},{"line_number":216,"context_line":"                if not port_mapping[\u0027nuage_vport_id\u0027]:"},{"line_number":217,"context_line":"                    try:"},{"line_number":218,"context_line":"                        self._create_update_port(context, port,"},{"line_number":219,"context_line":"                                                 port_mapping, subnet_mapping)"},{"line_number":220,"context_line":"                    except Exception:"}],"source_content_type":"text/x-python","patch_set":20,"id":"AAAAVX%2F%2FyhI%3D","line":217,"in_reply_to":"AAAAVX%2F%2Fy7o%3D","updated":"2014-02-28 09:12:24.000000000","message":"removed","commit_id":"f2106b6fb4101f8068124dcc3fcad06759da90db"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"25506fd2308f84cd2021b875f33d28f72ed850b1","unresolved":false,"context_lines":[{"line_number":352,"context_line":"        net \u003d netaddr.IPNetwork(neutron_subnet[\u0027cidr\u0027])"},{"line_number":353,"context_line":"        params \u003d {"},{"line_number":354,"context_line":"            \u0027net_partition\u0027: net_partition,"},{"line_number":355,"context_line":"            \u0027tenant_id\u0027: context.tenant,"},{"line_number":356,"context_line":"            \u0027net\u0027: net"},{"line_number":357,"context_line":"        }"},{"line_number":358,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":20,"id":"AAAAVX%2F%2Fy5c%3D","line":355,"updated":"2014-02-28 08:09:24.000000000","message":"note: context.tenant isn\u0027t always the tenant who is the owner. Probably best to use:         tenant_id \u003d self._get_tenant_id_for_create(context, subn)","commit_id":"f2106b6fb4101f8068124dcc3fcad06759da90db"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"07aa13c42405474fa00d4c6affc98ffb5e8349f7","unresolved":false,"context_lines":[{"line_number":352,"context_line":"        net \u003d netaddr.IPNetwork(neutron_subnet[\u0027cidr\u0027])"},{"line_number":353,"context_line":"        params \u003d {"},{"line_number":354,"context_line":"            \u0027net_partition\u0027: net_partition,"},{"line_number":355,"context_line":"            \u0027tenant_id\u0027: context.tenant,"},{"line_number":356,"context_line":"            \u0027net\u0027: net"},{"line_number":357,"context_line":"        }"},{"line_number":358,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":20,"id":"AAAAVX%2F%2Fygg%3D","line":355,"in_reply_to":"AAAAVX%2F%2Fy5c%3D","updated":"2014-02-28 09:12:24.000000000","message":"Hmm.. Never run into an error with subnet but yes could happen. Made the change here and couple of other places.","commit_id":"f2106b6fb4101f8068124dcc3fcad06759da90db"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"25506fd2308f84cd2021b875f33d28f72ed850b1","unresolved":false,"context_lines":[{"line_number":392,"context_line":"                                               template_id)"},{"line_number":393,"context_line":"            except Exception:"},{"line_number":394,"context_line":"                msg \u003d (_(\u0027Unable to complete operation on subnet %s.\u0027"},{"line_number":395,"context_line":"                         \u0027One or more ports have an IP allocation \u0027"},{"line_number":396,"context_line":"                         \u0027from this subnet.\u0027) % id)"},{"line_number":397,"context_line":"                raise q_exc.BadRequest(resource\u003d\u0027subnet\u0027, msg\u003dmsg)"},{"line_number":398,"context_line":"        super(NuagePlugin, self).delete_subnet(context, id)"}],"source_content_type":"text/x-python","patch_set":20,"id":"AAAAVX%2F%2Fy6s%3D","line":395,"updated":"2014-02-28 08:09:24.000000000","message":"nit: space","commit_id":"f2106b6fb4101f8068124dcc3fcad06759da90db"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"07aa13c42405474fa00d4c6affc98ffb5e8349f7","unresolved":false,"context_lines":[{"line_number":392,"context_line":"                                               template_id)"},{"line_number":393,"context_line":"            except Exception:"},{"line_number":394,"context_line":"                msg \u003d (_(\u0027Unable to complete operation on subnet %s.\u0027"},{"line_number":395,"context_line":"                         \u0027One or more ports have an IP allocation \u0027"},{"line_number":396,"context_line":"                         \u0027from this subnet.\u0027) % id)"},{"line_number":397,"context_line":"                raise q_exc.BadRequest(resource\u003d\u0027subnet\u0027, msg\u003dmsg)"},{"line_number":398,"context_line":"        super(NuagePlugin, self).delete_subnet(context, id)"}],"source_content_type":"text/x-python","patch_set":20,"id":"AAAAVX%2F%2FygY%3D","line":395,"in_reply_to":"AAAAVX%2F%2Fy6s%3D","updated":"2014-02-28 09:12:24.000000000","message":"Needed.","commit_id":"f2106b6fb4101f8068124dcc3fcad06759da90db"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"25506fd2308f84cd2021b875f33d28f72ed850b1","unresolved":false,"context_lines":[{"line_number":633,"context_line":"            \"name\": net_part_name,"},{"line_number":634,"context_line":"            \"fp_quota\": fip_quota"},{"line_number":635,"context_line":"        }"},{"line_number":636,"context_line":"        try:"},{"line_number":637,"context_line":"            nuage_net_partition \u003d self.nuageclient.create_net_partition(params)"},{"line_number":638,"context_line":"        except Exception:"},{"line_number":639,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":20,"id":"AAAAVX%2F%2Fy%2B4%3D","line":636,"updated":"2014-02-28 08:09:24.000000000","message":"unneeded try/except","commit_id":"f2106b6fb4101f8068124dcc3fcad06759da90db"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"07aa13c42405474fa00d4c6affc98ffb5e8349f7","unresolved":false,"context_lines":[{"line_number":633,"context_line":"            \"name\": net_part_name,"},{"line_number":634,"context_line":"            \"fp_quota\": fip_quota"},{"line_number":635,"context_line":"        }"},{"line_number":636,"context_line":"        try:"},{"line_number":637,"context_line":"            nuage_net_partition \u003d self.nuageclient.create_net_partition(params)"},{"line_number":638,"context_line":"        except Exception:"},{"line_number":639,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":20,"id":"AAAAVX%2F%2FygU%3D","line":636,"in_reply_to":"AAAAVX%2F%2Fy%2B4%3D","updated":"2014-02-28 09:12:24.000000000","message":"removed","commit_id":"f2106b6fb4101f8068124dcc3fcad06759da90db"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"50b237f56d3a76bcc3d1b8f10a7c625bafc94386","unresolved":false,"context_lines":[{"line_number":329,"context_line":"        if (\u0027host_routes\u0027 in subnet and"},{"line_number":330,"context_line":"            attributes.is_attr_set(subnet[\u0027host_routes\u0027])):"},{"line_number":331,"context_line":"            msg \u003d \u0027host_routes extensions not supported for subnets\u0027"},{"line_number":332,"context_line":"            raise q_exc.BadRequest(resource\u003d\u0027subnet\u0027, msg\u003dmsg)"},{"line_number":333,"context_line":"        if subnet[\u0027gateway_ip\u0027] is None:"},{"line_number":334,"context_line":"            msg \u003d \"no-gateway option not supported\""},{"line_number":335,"context_line":"            raise q_exc.BadRequest(resource\u003d\u0027subnet\u0027, msg\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAAVX%2F%2Ft7Q%3D","line":332,"updated":"2014-02-28 19:55:12.000000000","message":"If the operation is not supported, then the exception should not be called: BadRequest\nThere should be an Exception for Non-Supported Operations","commit_id":"1c4a50155e27a85ca511c84e150b4f4b3c133705"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"37749715cd9c7ba63f9813ade9d8c6b949046229","unresolved":false,"context_lines":[{"line_number":329,"context_line":"        if (\u0027host_routes\u0027 in subnet and"},{"line_number":330,"context_line":"            attributes.is_attr_set(subnet[\u0027host_routes\u0027])):"},{"line_number":331,"context_line":"            msg \u003d \u0027host_routes extensions not supported for subnets\u0027"},{"line_number":332,"context_line":"            raise q_exc.BadRequest(resource\u003d\u0027subnet\u0027, msg\u003dmsg)"},{"line_number":333,"context_line":"        if subnet[\u0027gateway_ip\u0027] is None:"},{"line_number":334,"context_line":"            msg \u003d \"no-gateway option not supported\""},{"line_number":335,"context_line":"            raise q_exc.BadRequest(resource\u003d\u0027subnet\u0027, msg\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAAVX%2F%2Ftb4%3D","line":332,"in_reply_to":"AAAAVX%2F%2Ft7Q%3D","updated":"2014-02-28 21:06:31.000000000","message":"I am confused with the text. Are you saying to raise exception or not to raise it?\n\nI have seen many other examples and thought this is the best fit exception to let user know that Nuage plugin does not support this particular operation with appropriate msg given back.","commit_id":"1c4a50155e27a85ca511c84e150b4f4b3c133705"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"bbdf9c48e0a2e9d2e2399e106afd7817e15a8620","unresolved":false,"context_lines":[{"line_number":329,"context_line":"        if (\u0027host_routes\u0027 in subnet and"},{"line_number":330,"context_line":"            attributes.is_attr_set(subnet[\u0027host_routes\u0027])):"},{"line_number":331,"context_line":"            msg \u003d \u0027host_routes extensions not supported for subnets\u0027"},{"line_number":332,"context_line":"            raise q_exc.BadRequest(resource\u003d\u0027subnet\u0027, msg\u003dmsg)"},{"line_number":333,"context_line":"        if subnet[\u0027gateway_ip\u0027] is None:"},{"line_number":334,"context_line":"            msg \u003d \"no-gateway option not supported\""},{"line_number":335,"context_line":"            raise q_exc.BadRequest(resource\u003d\u0027subnet\u0027, msg\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAAVX%2F%2FtVs%3D","line":332,"in_reply_to":"AAAAVX%2F%2FtXw%3D","updated":"2014-02-28 21:21:02.000000000","message":"Done","commit_id":"1c4a50155e27a85ca511c84e150b4f4b3c133705"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"4c21d27bf7834639f08d7ed18df361e6d9c9966f","unresolved":false,"context_lines":[{"line_number":329,"context_line":"        if (\u0027host_routes\u0027 in subnet and"},{"line_number":330,"context_line":"            attributes.is_attr_set(subnet[\u0027host_routes\u0027])):"},{"line_number":331,"context_line":"            msg \u003d \u0027host_routes extensions not supported for subnets\u0027"},{"line_number":332,"context_line":"            raise q_exc.BadRequest(resource\u003d\u0027subnet\u0027, msg\u003dmsg)"},{"line_number":333,"context_line":"        if subnet[\u0027gateway_ip\u0027] is None:"},{"line_number":334,"context_line":"            msg \u003d \"no-gateway option not supported\""},{"line_number":335,"context_line":"            raise q_exc.BadRequest(resource\u003d\u0027subnet\u0027, msg\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAAVX%2F%2FtXw%3D","line":332,"in_reply_to":"AAAAVX%2F%2Ftb4%3D","updated":"2014-02-28 21:18:32.000000000","message":"I am just saying that having an exception indicating a \"BadRequest\" where the request is totally fine is a bad strategy. Please change it to \"operationNot SupportedbyPluggin\" you may need to add that Exception explicitly","commit_id":"1c4a50155e27a85ca511c84e150b4f4b3c133705"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"50b237f56d3a76bcc3d1b8f10a7c625bafc94386","unresolved":false,"context_lines":[{"line_number":341,"context_line":"        if self._network_is_external(context, net_id):"},{"line_number":342,"context_line":"            return super(NuagePlugin, self).create_subnet(context, subnet)"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"        self._validate_create_subnet(subn)"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"        net_partition \u003d self._get_net_partition_for_subnet(context, subnet)"},{"line_number":347,"context_line":"        neutron_subnet \u003d super(NuagePlugin, self).create_subnet(context,"}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAAVX%2F%2Ft78%3D","line":344,"updated":"2014-02-28 19:55:12.000000000","message":"I am little bit confused here. Basically, this plugin will not let you create a non-external network is the client does not specify a GW and/or if the host_routers is specified. \nWhat is wrong with letting Neutron DB to automatically specify the GW value?\nI could understand that the plugin does not support the host_routers extension but the GW is basic..","commit_id":"1c4a50155e27a85ca511c84e150b4f4b3c133705"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"37749715cd9c7ba63f9813ade9d8c6b949046229","unresolved":false,"context_lines":[{"line_number":341,"context_line":"        if self._network_is_external(context, net_id):"},{"line_number":342,"context_line":"            return super(NuagePlugin, self).create_subnet(context, subnet)"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"        self._validate_create_subnet(subn)"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"        net_partition \u003d self._get_net_partition_for_subnet(context, subnet)"},{"line_number":347,"context_line":"        neutron_subnet \u003d super(NuagePlugin, self).create_subnet(context,"}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAAVX%2F%2FtcM%3D","line":344,"in_reply_to":"AAAAVX%2F%2Ft78%3D","updated":"2014-02-28 21:06:31.000000000","message":"What I am trying to via _validate_create_subnet is to see if \u0027host_routes\u0027 and \u0027no-gateway\u0027 options (which are available via neutron cli) are not supported via nuage plugin.\n\n1) \u0027host_routes\u0027: Back-end restriction for now. So not supported.\n\n2) GW:\nIt is fine if neutron db automatically creates GW (Default). But that will not happen if you explicitly say in CLI subnet-create --no-gateway.\nSnippet from db_base_plugin_v2.py:\n        if s[\u0027gateway_ip\u0027] is attributes.ATTR_NOT_SPECIFIED:\n            s[\u0027gateway_ip\u0027] \u003d str(netaddr.IPAddress(net.first + 1))\nBut in case of \u0027no-gateway\u0027 s[\u0027gateway_ip\u0027] is going to be None.\n\nSnippet from attributes.py\n        \u0027gateway_ip\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: True,\n                       \u0027default\u0027: ATTR_NOT_SPECIFIED,\n                       \u0027validate\u0027: {\u0027type:ip_address_or_none\u0027: None},\n                       \u0027is_visible\u0027: True},\n\nSo None is what I am not supporting.","commit_id":"1c4a50155e27a85ca511c84e150b4f4b3c133705"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"bbdf9c48e0a2e9d2e2399e106afd7817e15a8620","unresolved":false,"context_lines":[{"line_number":341,"context_line":"        if self._network_is_external(context, net_id):"},{"line_number":342,"context_line":"            return super(NuagePlugin, self).create_subnet(context, subnet)"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"        self._validate_create_subnet(subn)"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"        net_partition \u003d self._get_net_partition_for_subnet(context, subnet)"},{"line_number":347,"context_line":"        neutron_subnet \u003d super(NuagePlugin, self).create_subnet(context,"}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAAVX%2F%2FtVw%3D","line":344,"in_reply_to":"AAAAVX%2F%2FtWU%3D","updated":"2014-02-28 21:21:02.000000000","message":"Done","commit_id":"1c4a50155e27a85ca511c84e150b4f4b3c133705"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"4c21d27bf7834639f08d7ed18df361e6d9c9966f","unresolved":false,"context_lines":[{"line_number":341,"context_line":"        if self._network_is_external(context, net_id):"},{"line_number":342,"context_line":"            return super(NuagePlugin, self).create_subnet(context, subnet)"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"        self._validate_create_subnet(subn)"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"        net_partition \u003d self._get_net_partition_for_subnet(context, subnet)"},{"line_number":347,"context_line":"        neutron_subnet \u003d super(NuagePlugin, self).create_subnet(context,"}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAAVX%2F%2FtWU%3D","line":344,"in_reply_to":"AAAAVX%2F%2FtcM%3D","updated":"2014-02-28 21:18:32.000000000","message":"Understood! It make sense now, so basically just change the exception as commented before and instead of checking twice (no-gateway and hosts), just check once with an or operation and it will reduce your code  :)","commit_id":"1c4a50155e27a85ca511c84e150b4f4b3c133705"}],"neutron/tests/unit/nuage/__init__.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4816bade642162cdb4990a3e8fe671a29181373b","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 2014 Alcatel-Lucent USA Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F99Cw%3D","line":1,"updated":"2014-01-31 18:08:51.000000000","message":"This header and vim info is not needed here.","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"a9fca2be8f48213eeca0cdfdbb361cc4934f672a","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 2014 Alcatel-Lucent USA Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F98T8%3D","line":1,"in_reply_to":"AAAAUH%2F99Cw%3D","updated":"2014-02-03 22:27:27.000000000","message":"Done","commit_id":"85adbcc8188dc54300957fb61954facde33e19b3"}],"neutron/tests/unit/nuage/fake_nuageclient.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","unresolved":false,"context_lines":[{"line_number":19,"context_line":"import uuid"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class FakeNuageClient(object):"},{"line_number":23,"context_line":"    def __init__(self, server, base_uri, serverssl,"},{"line_number":24,"context_line":"                 serverauth, auth_resource, organization):"},{"line_number":25,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1O8%3D","line":22,"updated":"2014-02-24 15:53:40.000000000","message":"In general you should be using a proper mock vs a fake client.  The mock will enable you to validate that the arguments passed are expected.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","unresolved":false,"context_lines":[{"line_number":19,"context_line":"import uuid"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class FakeNuageClient(object):"},{"line_number":23,"context_line":"    def __init__(self, server, base_uri, serverssl,"},{"line_number":24,"context_line":"                 serverauth, auth_resource, organization):"},{"line_number":25,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2FzE8%3D","line":22,"in_reply_to":"AAAAU3%2F%2F1O8%3D","updated":"2014-02-24 19:00:01.000000000","message":"Understood. Will work on this later if its not a blocker for me to check-in.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"}],"neutron/tests/unit/nuage/test_netpartition.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","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 2014 Alcatel-Lucent USA Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1Ow%3D","line":1,"updated":"2014-02-24 15:53:40.000000000","message":"vim modelines should not be included in new code","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","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 2014 Alcatel-Lucent USA Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2Fzyk%3D","line":1,"in_reply_to":"AAAAU3%2F%2F1Ow%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"}],"neutron/tests/unit/nuage/test_nuage_plugin.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","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 2014 Alcatel-Lucent USA Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1N4%3D","line":1,"updated":"2014-02-24 15:53:40.000000000","message":"vim modelines should not be included in new code.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","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 2014 Alcatel-Lucent USA Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2FzyY%3D","line":1,"in_reply_to":"AAAAU3%2F%2F1N4%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","unresolved":false,"context_lines":[{"line_number":17,"context_line":"# @author: Ronak Shah, Aniket Dandekar, Nuage Networks, Alcatel-Lucent USA Inc."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"import mock"},{"line_number":20,"context_line":"import os"},{"line_number":21,"context_line":"from oslo.config import cfg"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from neutron.plugins.nuage import extensions"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1OA%3D","line":20,"updated":"2014-02-24 15:53:40.000000000","message":"HACKING rules say this should be in the first import group since this is from the stdlib.","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","unresolved":false,"context_lines":[{"line_number":17,"context_line":"# @author: Ronak Shah, Aniket Dandekar, Nuage Networks, Alcatel-Lucent USA Inc."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"import mock"},{"line_number":20,"context_line":"import os"},{"line_number":21,"context_line":"from oslo.config import cfg"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from neutron.plugins.nuage import extensions"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2FzyM%3D","line":20,"in_reply_to":"AAAAU3%2F%2F1OA%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1765afed5eba3ac7dda269e374355f4d1facb123","unresolved":false,"context_lines":[{"line_number":64,"context_line":"            super(NuagePluginV2TestCase, self).setUp(plugin\u003dplugin,"},{"line_number":65,"context_line":"                                                     ext_mgr\u003dext_mgr)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def tearDown(self):"},{"line_number":68,"context_line":"        super(NuagePluginV2TestCase, self).tearDown()"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2F1Xo%3D","line":67,"updated":"2014-02-24 15:53:40.000000000","message":"This is not necessary and can be removed","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"4850459a8a91b051f515ab1366883935cfeae8ef","unresolved":false,"context_lines":[{"line_number":64,"context_line":"            super(NuagePluginV2TestCase, self).setUp(plugin\u003dplugin,"},{"line_number":65,"context_line":"                                                     ext_mgr\u003dext_mgr)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def tearDown(self):"},{"line_number":68,"context_line":"        super(NuagePluginV2TestCase, self).tearDown()"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2Fzv8%3D","line":67,"in_reply_to":"AAAAU3%2F%2F1Xo%3D","updated":"2014-02-24 19:00:01.000000000","message":"Done","commit_id":"aab4de8382c0b3ad9b85479fab4238460d71e3e5"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"df1b67cf032daea92e13475415022aa01709fa1a","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        self.skipTest(\"Plugin does not support Neutron \""},{"line_number":142,"context_line":"                      \"Subnet no-gateway option\")"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"class TestNuagePortsV2(test_db_plugin.TestPortsV2,"},{"line_number":146,"context_line":"                       NuagePluginV2TestCase):"},{"line_number":147,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAU3%2F%2FjtI%3D","line":144,"updated":"2014-02-25 23:09:19.000000000","message":"I am sorry I missed it before but you are missing the TestXXXXXPluginPortBinding","commit_id":"77bbdbb7e281cbde67c5920cdcc8b1d9af5b8b46"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"e0af5afdb031b1ece107d3b0a9f9a392ad29ffc2","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        self.skipTest(\"Plugin does not support Neutron \""},{"line_number":142,"context_line":"                      \"Subnet no-gateway option\")"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"class TestNuagePortsV2(test_db_plugin.TestPortsV2,"},{"line_number":146,"context_line":"                       NuagePluginV2TestCase):"},{"line_number":147,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAU3%2F%2Fjl0%3D","line":144,"in_reply_to":"AAAAU3%2F%2FjtI%3D","updated":"2014-02-26 00:51:45.000000000","message":"Done","commit_id":"77bbdbb7e281cbde67c5920cdcc8b1d9af5b8b46"},{"author":{"_account_id":156,"name":"Ryu Ishimoto","email":"ryu@midokura.com","username":"ryu-midokura"},"change_message_id":"48d796b22b841756838a0bb710b77a81db5a0f47","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"class TestNuageL3NatTestCase(test_l3_plugin.L3NatDBIntTestCase,"},{"line_number":162,"context_line":"                             NuagePluginV2TestCase):"},{"line_number":163,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAAU3%2F%2FhKs%3D","line":163,"updated":"2014-02-26 06:31:44.000000000","message":"I believe with the method resolution order in Python, because both L3NatDBIntTestCase and NuagePluginV2TestCase extend NeutronDbPluginV2TestCase, setUp gets invoked in the order of L3BaseForIntTests, NuagePluginV2TestCase, and NeutronDbPluginV2TestCase.   If you look at L3BaseForIntTests class, when the plugin argument is not specified, it\u0027s set to \u0027neutron.tests.unit.test_l3_plugin.TestL3NatIntPlugin\u0027.  This means that when NuagePluginV2TestCase\u0027s setUp is invoked, this test plugin is passed in for the plugin argument and the default NuagePlugin never gets set to it.  So I think you need to have NuagePluginV2TestCase before L3NatDBIntTestCase in this case.  \n\nSince you want to make sure to set the plugin properly, I think it\u0027s a good idea to have NuagePluginV2TestCase listed as the first parent class for all the test classes.","commit_id":"a742e582b4e57a0c5ec359e61d62216520348cdc"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"1b93ce1e703cfb9e0872e454b587df0575aab873","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"class TestNuageL3NatTestCase(test_l3_plugin.L3NatDBIntTestCase,"},{"line_number":162,"context_line":"                             NuagePluginV2TestCase):"},{"line_number":163,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAAU3%2F%2FgBo%3D","line":163,"in_reply_to":"AAAAU3%2F%2FhKs%3D","updated":"2014-02-26 09:11:14.000000000","message":"Interesting. Good catch. I have made the change.","commit_id":"a742e582b4e57a0c5ec359e61d62216520348cdc"}]}
