)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"2eaf7351fce4578a1b9e45820b900bca66ca50f9","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Floating IP: Neutron support for \"ip floating create\" command"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch adds --subnet, --port, --floating-ip-address"},{"line_number":10,"context_line":"and --fixed-ip-address options only. project related options"},{"line_number":11,"context_line":"will be added in another patch because it relates to identity"},{"line_number":12,"context_line":"v2 and v3, which will make the unit tests too complicated in"},{"line_number":13,"context_line":"one single patch."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5aef4532_a249dd8d","line":10,"range":{"start_line":10,"start_character":37,"end_line":10,"end_character":38},"updated":"2016-03-08 06:06:50.000000000","message":"nit:Project ( p capitalized)","commit_id":"a1d23acd5b4659602f8795d679843dba8215e977"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"0fd85b32f9f317a9ca15706c8cb8388302aced56","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Floating IP: Neutron support for \"ip floating create\" command"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch adds --subnet, --port, --floating-ip-address"},{"line_number":10,"context_line":"and --fixed-ip-address options only. project related options"},{"line_number":11,"context_line":"will be added in another patch because it relates to identity"},{"line_number":12,"context_line":"v2 and v3, which will make the unit tests too complicated in"},{"line_number":13,"context_line":"one single patch."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5aef4532_d59e64b7","line":10,"range":{"start_line":10,"start_character":37,"end_line":10,"end_character":38},"in_reply_to":"5aef4532_a249dd8d","updated":"2016-03-08 06:39:25.000000000","message":"Done","commit_id":"a1d23acd5b4659602f8795d679843dba8215e977"}],"doc/source/command-objects/ip-floating.rst":[{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"3f2ab09ecb133b97fdf73680f2598e370e210f22","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":".. option:: --floating-ip-address \u003cfloating-ip-address\u003e"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    IP address of the floating IP"},{"line_number":56,"context_line":"    (Network v2 only)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":".. option:: --fixed-ip-address \u003cfixed-ip-address\u003e"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5aef4532_74cd5c84","line":55,"updated":"2016-03-09 23:11:24.000000000","message":"This doesn\u0027t make much sense","commit_id":"c99863ebe604b8d5c08d888e617ac0e9447506c5"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"4993d5c581e10ef1407b631605bf4be0971eb9c4","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":".. option:: --floating-ip-address \u003cfloating-ip-address\u003e"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    IP address of the floating IP"},{"line_number":56,"context_line":"    (Network v2 only)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":".. option:: --fixed-ip-address \u003cfixed-ip-address\u003e"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5aef4532_7e27f6c9","line":55,"in_reply_to":"5aef4532_74cd5c84","updated":"2016-03-10 00:40:13.000000000","message":"Done","commit_id":"c99863ebe604b8d5c08d888e617ac0e9447506c5"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"3f2ab09ecb133b97fdf73680f2598e370e210f22","unresolved":false,"context_lines":[{"line_number":68,"context_line":".. describe:: \u003cpool\u003e"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    Pool to fetch IP address from (name or ID)"},{"line_number":71,"context_line":"    (Compute v2 only)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"ip floating delete"},{"line_number":74,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5aef4532_b4c36456","line":71,"updated":"2016-03-09 23:11:24.000000000","message":"\u003cnetwork\u003e and \u003cpool\u003e are essentially the same thing, the source of the floating IP.  Let\u0027s make them look the same to the user, even in they remain separate under the hood.","commit_id":"c99863ebe604b8d5c08d888e617ac0e9447506c5"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"4993d5c581e10ef1407b631605bf4be0971eb9c4","unresolved":false,"context_lines":[{"line_number":68,"context_line":".. describe:: \u003cpool\u003e"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    Pool to fetch IP address from (name or ID)"},{"line_number":71,"context_line":"    (Compute v2 only)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"ip floating delete"},{"line_number":74,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5aef4532_5e24bac3","line":71,"in_reply_to":"5aef4532_b4c36456","updated":"2016-03-10 00:40:13.000000000","message":"Done","commit_id":"c99863ebe604b8d5c08d888e617ac0e9447506c5"}],"openstackclient/network/v2/floating_ip.py":[{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"b07b5309323ab8ebee0c1e57b3baeb1d3bf98032","unresolved":false,"context_lines":[{"line_number":60,"context_line":"            help\u003d\u0027Network to allocate floating IP from (name or ID)\u0027,"},{"line_number":61,"context_line":"        )"},{"line_number":62,"context_line":"        parser.add_argument("},{"line_number":63,"context_line":"            \u0027--subnet\u0027,"},{"line_number":64,"context_line":"            metavar\u003d\u0027\u003csubnet\u003e\u0027,"},{"line_number":65,"context_line":"            help\u003d\"Subnet on which you want to create the floating IP \""},{"line_number":66,"context_line":"                 \"(name or ID)\""}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_96527533","line":63,"range":{"start_line":63,"start_character":15,"end_line":63,"end_character":21},"updated":"2016-03-04 13:00:20.000000000","message":"One question, \"neutron floatingip-create\" supports specifying subnet id to a floating ip. But the floating ip object returned by neutron has no attr named \"subnet_id\". There is no problem for OSC to implement the command, but I\u0027m not sure if it is a problem in Neutron.","commit_id":"aac183795ed9809e14404ac9e925582e8d0c898d"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"46450ec96a0f71a8aec75d3ae55422f169903d02","unresolved":false,"context_lines":[{"line_number":60,"context_line":"            help\u003d\u0027Network to allocate floating IP from (name or ID)\u0027,"},{"line_number":61,"context_line":"        )"},{"line_number":62,"context_line":"        parser.add_argument("},{"line_number":63,"context_line":"            \u0027--subnet\u0027,"},{"line_number":64,"context_line":"            metavar\u003d\u0027\u003csubnet\u003e\u0027,"},{"line_number":65,"context_line":"            help\u003d\"Subnet on which you want to create the floating IP \""},{"line_number":66,"context_line":"                 \"(name or ID)\""}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_62099595","line":63,"range":{"start_line":63,"start_character":15,"end_line":63,"end_character":21},"in_reply_to":"7af24918_96527533","updated":"2016-03-08 06:04:46.000000000","message":"I think we can continue with the current approach.","commit_id":"aac183795ed9809e14404ac9e925582e8d0c898d"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"46450ec96a0f71a8aec75d3ae55422f169903d02","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        parser.add_argument("},{"line_number":80,"context_line":"            \u0027--fixed-ip-address\u0027,"},{"line_number":81,"context_line":"            metavar\u003d\u0027\u003cfixed_ip_address\u003e\u0027,"},{"line_number":82,"context_line":"            help\u003d\"Fixed IP address mapped to the floating IP\""},{"line_number":83,"context_line":"        )"},{"line_number":84,"context_line":"        return parser"},{"line_number":85,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_c2350947","line":82,"updated":"2016-03-08 06:04:46.000000000","message":"This message seems more useful , as fixed-ip would be used only if there are multiple IPs to be handled","commit_id":"aac183795ed9809e14404ac9e925582e8d0c898d"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"b315230c6c58747c95164b3f07df008d58dd9046","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"def _get_columns(item):"},{"line_number":21,"context_line":"    columns \u003d item.keys()"},{"line_number":22,"context_line":"    if \u0027tenant_id\u0027 in columns:"},{"line_number":23,"context_line":"        columns.remove(\u0027tenant_id\u0027)"},{"line_number":24,"context_line":"        columns.append(\u0027project_id\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5aef4532_d2cd3f67","line":21,"updated":"2016-03-10 14:06:35.000000000","message":"For py27 and py34 compatibility, I think you need to change this to list(item.keys()) due to the differences in objects passed by network and compute.  If FakeFloatingIP had a tenant_id column, I think you would see a test case failure.","commit_id":"35966ff0b95b48afa719bdd7721ea8328f0fad6e"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"04f6232a82476c8b7e4ad32d2f8d57f7dc2f1925","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"def _get_columns(item):"},{"line_number":21,"context_line":"    columns \u003d item.keys()"},{"line_number":22,"context_line":"    if \u0027tenant_id\u0027 in columns:"},{"line_number":23,"context_line":"        columns.remove(\u0027tenant_id\u0027)"},{"line_number":24,"context_line":"        columns.append(\u0027project_id\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5aef4532_66c0c42b","line":21,"in_reply_to":"5aef4532_d2cd3f67","updated":"2016-03-11 07:05:07.000000000","message":"Done","commit_id":"35966ff0b95b48afa719bdd7721ea8328f0fad6e"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"7ee8efc1734b0bd20a1caf6393c5cb7d9e8bf3d6","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"def _get_columns(item):"},{"line_number":21,"context_line":"    columns \u003d item.keys()"},{"line_number":22,"context_line":"    if \u0027tenant_id\u0027 in columns:"},{"line_number":23,"context_line":"        columns.remove(\u0027tenant_id\u0027)"},{"line_number":24,"context_line":"        columns.append(\u0027project_id\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3afc51ec_6abb4473","line":21,"range":{"start_line":21,"start_character":14,"end_line":21,"end_character":25},"updated":"2016-03-12 03:13:25.000000000","message":"Will fix this in https://review.openstack.org/#/c/291973/","commit_id":"4813c9833bcf4e1ba57ea13d62da2959d1652393"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"76adfecd1b535ecd9ef096c6839780343e128e8a","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    network_client \u003d client_manager.network"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    if parsed_args.network is not None:"},{"line_number":33,"context_line":"        network \u003d network_client.find_network(parsed_args.network)"},{"line_number":34,"context_line":"        attrs[\u0027floating_network_id\u0027] \u003d network.id"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    if parsed_args.subnet is not None:"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa0719c6_72b7313a","line":33,"updated":"2016-03-23 18:33:34.000000000","message":"This should set ignore_missing\u003dFalse.","commit_id":"fb1f8d598f2a053e3cbf9eb8dbb2c7a31be94155"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"b050fe644ba15fdfb9bb80a79d3e9d4b91e25bf9","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    network_client \u003d client_manager.network"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    if parsed_args.network is not None:"},{"line_number":33,"context_line":"        network \u003d network_client.find_network(parsed_args.network)"},{"line_number":34,"context_line":"        attrs[\u0027floating_network_id\u0027] \u003d network.id"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    if parsed_args.subnet is not None:"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa0719c6_80537d38","line":33,"in_reply_to":"fa0719c6_72b7313a","updated":"2016-03-24 00:58:01.000000000","message":"Done","commit_id":"fb1f8d598f2a053e3cbf9eb8dbb2c7a31be94155"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"76adfecd1b535ecd9ef096c6839780343e128e8a","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        attrs[\u0027floating_network_id\u0027] \u003d network.id"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    if parsed_args.subnet is not None:"},{"line_number":37,"context_line":"        subnet \u003d network_client.find_subnet(parsed_args.subnet)"},{"line_number":38,"context_line":"        attrs[\u0027subnet_id\u0027] \u003d subnet.id"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    if parsed_args.port is not None:"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa0719c6_b2838955","line":37,"updated":"2016-03-23 18:33:34.000000000","message":"This should set ignore_missing\u003dFalse.","commit_id":"fb1f8d598f2a053e3cbf9eb8dbb2c7a31be94155"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"b050fe644ba15fdfb9bb80a79d3e9d4b91e25bf9","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        attrs[\u0027floating_network_id\u0027] \u003d network.id"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    if parsed_args.subnet is not None:"},{"line_number":37,"context_line":"        subnet \u003d network_client.find_subnet(parsed_args.subnet)"},{"line_number":38,"context_line":"        attrs[\u0027subnet_id\u0027] \u003d subnet.id"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    if parsed_args.port is not None:"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa0719c6_e032390f","line":37,"in_reply_to":"fa0719c6_b2838955","updated":"2016-03-24 00:58:01.000000000","message":"Done","commit_id":"fb1f8d598f2a053e3cbf9eb8dbb2c7a31be94155"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"76adfecd1b535ecd9ef096c6839780343e128e8a","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        attrs[\u0027subnet_id\u0027] \u003d subnet.id"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    if parsed_args.port is not None:"},{"line_number":41,"context_line":"        port \u003d network_client.find_port(parsed_args.port)"},{"line_number":42,"context_line":"        attrs[\u0027port_id\u0027] \u003d port.id"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    if parsed_args.floating_ip_address is not None:"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa0719c6_d27efd68","line":41,"updated":"2016-03-23 18:33:34.000000000","message":"This should set ignore_missing\u003dFalse.","commit_id":"fb1f8d598f2a053e3cbf9eb8dbb2c7a31be94155"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"b050fe644ba15fdfb9bb80a79d3e9d4b91e25bf9","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        attrs[\u0027subnet_id\u0027] \u003d subnet.id"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    if parsed_args.port is not None:"},{"line_number":41,"context_line":"        port \u003d network_client.find_port(parsed_args.port)"},{"line_number":42,"context_line":"        attrs[\u0027port_id\u0027] \u003d port.id"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    if parsed_args.floating_ip_address is not None:"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa0719c6_003e4dd9","line":41,"in_reply_to":"fa0719c6_d27efd68","updated":"2016-03-24 00:58:01.000000000","message":"Done","commit_id":"fb1f8d598f2a053e3cbf9eb8dbb2c7a31be94155"}],"openstackclient/tests/network/v2/test_floating_ip.py":[{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"46450ec96a0f71a8aec75d3ae55422f169903d02","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        floating_ip.fixed_ip_address,"},{"line_number":65,"context_line":"        floating_ip.floating_ip_address,"},{"line_number":66,"context_line":"        floating_ip.floating_network_id,"},{"line_number":67,"context_line":"        floating_ip.id, "},{"line_number":68,"context_line":"        floating_ip.port_id,"},{"line_number":69,"context_line":"        floating_ip.project_id,"},{"line_number":70,"context_line":"        floating_ip.router_id,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_a2a43d57","line":67,"updated":"2016-03-08 06:04:46.000000000","message":"Extra Space","commit_id":"aac183795ed9809e14404ac9e925582e8d0c898d"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"46450ec96a0f71a8aec75d3ae55422f169903d02","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        self.assertRaises(tests_utils.ParserException, self.check_parser,"},{"line_number":92,"context_line":"                          self.cmd, arglist, verifylist)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def test_create_default_options(self):"},{"line_number":95,"context_line":"        arglist \u003d ["},{"line_number":96,"context_line":"            self.floating_ip.floating_network_id,"},{"line_number":97,"context_line":"        ]"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_62c195e4","line":94,"updated":"2016-03-08 06:04:46.000000000","message":"Lets add a test case for all options","commit_id":"aac183795ed9809e14404ac9e925582e8d0c898d"}],"releasenotes/notes/bug-1519502-f72236598d14d350.yaml":[{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"76adfecd1b535ecd9ef096c6839780343e128e8a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Command ``ip floating create`` is now available for neutron network."},{"line_number":4,"context_line":"    [Bug `1519502 \u003chttps://bugs.launchpad.net/python-openstackclient/+bug/1519502\u003e`_]"},{"line_number":5,"context_line":"  - Command ``ip floating delete`` is now available for neutron network."},{"line_number":6,"context_line":"    [Bug `1519502 \u003chttps://bugs.launchpad.net/python-openstackclient/+bug/1519502\u003e`_]"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"fa0719c6_7218d11e","line":3,"updated":"2016-03-23 18:33:34.000000000","message":"Does this need to go into a new release note since this release note was already made available in release 2.2.0?","commit_id":"fb1f8d598f2a053e3cbf9eb8dbb2c7a31be94155"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"b050fe644ba15fdfb9bb80a79d3e9d4b91e25bf9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Command ``ip floating create`` is now available for neutron network."},{"line_number":4,"context_line":"    [Bug `1519502 \u003chttps://bugs.launchpad.net/python-openstackclient/+bug/1519502\u003e`_]"},{"line_number":5,"context_line":"  - Command ``ip floating delete`` is now available for neutron network."},{"line_number":6,"context_line":"    [Bug `1519502 \u003chttps://bugs.launchpad.net/python-openstackclient/+bug/1519502\u003e`_]"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"fa0719c6_405de545","line":3,"in_reply_to":"fa0719c6_7218d11e","updated":"2016-03-24 00:58:01.000000000","message":"Oh, OK, will move it to a new one. Thx.","commit_id":"fb1f8d598f2a053e3cbf9eb8dbb2c7a31be94155"}]}
