)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"20494f3a216fb22207d576dc6aa640cfca8fad40","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add test for assign floating_ip to the VM which have bind floating_ip"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"User create a floating_ip1 and associate to VM1,"},{"line_number":10,"context_line":"and then want to change VM1\u0027s floating_ip to floating_ip2."},{"line_number":11,"context_line":"Naturally,they direct to associate floating_ip2 to VM1."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ia7b49cfb5324a6061ad9be791225eefed5c2d27f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"7ffa3b31_d83279f2","line":11,"range":{"start_line":9,"start_character":0,"end_line":11,"end_character":55},"updated":"2017-04-20 11:59:43.000000000","message":"The commit message is not very clear to me.\nI guess this is the a scenario when the error verified by the test would be triggered?\nCan you include a text about what you\u0027re adding as well?","commit_id":"fb506a9a648a82a72fa6dd0fd841f3e747d2cac3"},{"author":{"_account_id":21897,"name":"lianghao","email":"lianghao@cmss.chinamobile.com","username":"cloud-liang"},"change_message_id":"af5807b3656c8e992a78efc9cf6f2a25c0f5821a","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add test for assign floating_ip to the VM which have bind floating_ip"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"User create a floating_ip1 and associate to VM1,"},{"line_number":10,"context_line":"and then want to change VM1\u0027s floating_ip to floating_ip2."},{"line_number":11,"context_line":"Naturally,they direct to associate floating_ip2 to VM1."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ia7b49cfb5324a6061ad9be791225eefed5c2d27f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"7ffa3b31_f801b539","line":11,"range":{"start_line":9,"start_character":0,"end_line":11,"end_character":55},"in_reply_to":"7ffa3b31_d83279f2","updated":"2017-04-20 12:22:46.000000000","message":"Done","commit_id":"fb506a9a648a82a72fa6dd0fd841f3e747d2cac3"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"e7581b7764ab621100b7fa1e0418294ac98b5693","unresolved":false,"context_lines":[{"line_number":10,"context_line":"associate floating_ip1 to VM1."},{"line_number":11,"context_line":"User create a floating_ip2 which is from same pool with floating_ip1."},{"line_number":12,"context_line":"User want to change VM1\u0027s floating_ip from floating_ip1 to floating_ip2."},{"line_number":13,"context_line":"Naturally,they direct to associate floating_ip2 to VM1."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ia7b49cfb5324a6061ad9be791225eefed5c2d27f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"7ffa3b31_dba6daab","line":13,"updated":"2017-04-21 05:07:01.000000000","message":"So, I guess you want to test \"Only one floating IP address can be allocated to an instance at any given time.\"[1] So, I think it\u0027s good to say it in the commit message, directly.\n\n[1] https://docs.openstack.org/user-guide/cli-manage-ip-addresses.html","commit_id":"ae9ce4db83bbd07737eee1d7b632324e9f3d876a"},{"author":{"_account_id":21897,"name":"lianghao","email":"lianghao@cmss.chinamobile.com","username":"cloud-liang"},"change_message_id":"b84f44abfd78666991fac984ec777b5967021a26","unresolved":false,"context_lines":[{"line_number":10,"context_line":"associate floating_ip1 to VM1."},{"line_number":11,"context_line":"User create a floating_ip2 which is from same pool with floating_ip1."},{"line_number":12,"context_line":"User want to change VM1\u0027s floating_ip from floating_ip1 to floating_ip2."},{"line_number":13,"context_line":"Naturally,they direct to associate floating_ip2 to VM1."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ia7b49cfb5324a6061ad9be791225eefed5c2d27f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"7ffa3b31_5b02ca70","line":13,"in_reply_to":"7ffa3b31_dba6daab","updated":"2017-04-21 05:25:33.000000000","message":"thanks,I\u0027will modify.","commit_id":"ae9ce4db83bbd07737eee1d7b632324e9f3d876a"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"5e0590fe82012629ffb87e0ca6f7183beae32bb8","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add test about associate floating_ip to VM"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Only one floating IP address can be allocated to"},{"line_number":10,"context_line":"an instance which have one port."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ia7b49cfb5324a6061ad9be791225eefed5c2d27f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"7ffa3b31_f6b52b33","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":32},"updated":"2017-04-21 05:42:46.000000000","message":"For reviewers and developers, I think it\u0027s better to add a link URL for this specification like I showed you.","commit_id":"6477d535d54d73276df86e36380949a2e31f7ebc"},{"author":{"_account_id":21897,"name":"lianghao","email":"lianghao@cmss.chinamobile.com","username":"cloud-liang"},"change_message_id":"e00a553ab6183f84564ec3047f8caff9c4dbd06c","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add test about associate floating_ip to VM"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Only one floating IP address can be allocated to"},{"line_number":10,"context_line":"an instance which have one port."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ia7b49cfb5324a6061ad9be791225eefed5c2d27f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"7ffa3b31_763ebb8b","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":32},"in_reply_to":"7ffa3b31_f6b52b33","updated":"2017-04-21 05:50:11.000000000","message":"Done","commit_id":"6477d535d54d73276df86e36380949a2e31f7ebc"}],"tempest/api/compute/floating_ips/test_floating_ips_actions_negative.py":[{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"69ccb6c7493b9e421a9467b9b2f1208304664799","unresolved":false,"context_lines":[{"line_number":106,"context_line":"    @decorators.idempotent_id(\u002758a80596-ffb2-11e6-9393-fa163e4fa634\u0027)"},{"line_number":107,"context_line":"    @test.services(\u0027network\u0027)"},{"line_number":108,"context_line":"    @testtools.skipUnless(CONF.network.public_network_id,"},{"line_number":109,"context_line":"                          \u0027The public_network_id option must be specified.\u0027)"},{"line_number":110,"context_line":"    def test_associate_ip_to_server_with_floating_ip(self):"},{"line_number":111,"context_line":"        # Negative test:Association a floating IP to specific server"},{"line_number":112,"context_line":"        # which has associated a floating IP"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_f7b14e02","line":109,"range":{"start_line":109,"start_character":31,"end_line":109,"end_character":48},"updated":"2017-03-03 08:15:36.000000000","message":"floating_network_name","commit_id":"925b9bae3a7f04336da07962e90475228eba0f2b"},{"author":{"_account_id":21897,"name":"lianghao","email":"lianghao@cmss.chinamobile.com","username":"cloud-liang"},"change_message_id":"921241e111c9c15d3368b57a538d3bf5284acf82","unresolved":false,"context_lines":[{"line_number":106,"context_line":"    @decorators.idempotent_id(\u002758a80596-ffb2-11e6-9393-fa163e4fa634\u0027)"},{"line_number":107,"context_line":"    @test.services(\u0027network\u0027)"},{"line_number":108,"context_line":"    @testtools.skipUnless(CONF.network.public_network_id,"},{"line_number":109,"context_line":"                          \u0027The public_network_id option must be specified.\u0027)"},{"line_number":110,"context_line":"    def test_associate_ip_to_server_with_floating_ip(self):"},{"line_number":111,"context_line":"        # Negative test:Association a floating IP to specific server"},{"line_number":112,"context_line":"        # which has associated a floating IP"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_0e55ebf8","line":109,"range":{"start_line":109,"start_character":31,"end_line":109,"end_character":48},"in_reply_to":"ba2be162_f7b14e02","updated":"2017-03-03 10:10:26.000000000","message":"Done","commit_id":"925b9bae3a7f04336da07962e90475228eba0f2b"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"69ccb6c7493b9e421a9467b9b2f1208304664799","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        # should raise BadRequest exception"},{"line_number":114,"context_line":"        body \u003d self.client.create_floating_ip("},{"line_number":115,"context_line":"            pool\u003dCONF.network.floating_network_name)[\u0027floating_ip\u0027]"},{"line_number":116,"context_line":"        self.floating_ip \u003d body[\u0027ip\u0027]"},{"line_number":117,"context_line":"        self.floating_ip_id \u003d body[\u0027id\u0027]"},{"line_number":118,"context_line":"        self.addCleanup(self.client.delete_floating_ip,"},{"line_number":119,"context_line":"                        self.floating_ip_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_1738a23c","line":116,"range":{"start_line":116,"start_character":8,"end_line":116,"end_character":37},"updated":"2017-03-03 08:15:36.000000000","message":"this can be removed, you can use body[\u0027id\u0027]/body[\u0027ip\u0027] directly in the next line.","commit_id":"925b9bae3a7f04336da07962e90475228eba0f2b"},{"author":{"_account_id":21897,"name":"lianghao","email":"lianghao@cmss.chinamobile.com","username":"cloud-liang"},"change_message_id":"921241e111c9c15d3368b57a538d3bf5284acf82","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        # should raise BadRequest exception"},{"line_number":114,"context_line":"        body \u003d self.client.create_floating_ip("},{"line_number":115,"context_line":"            pool\u003dCONF.network.floating_network_name)[\u0027floating_ip\u0027]"},{"line_number":116,"context_line":"        self.floating_ip \u003d body[\u0027ip\u0027]"},{"line_number":117,"context_line":"        self.floating_ip_id \u003d body[\u0027id\u0027]"},{"line_number":118,"context_line":"        self.addCleanup(self.client.delete_floating_ip,"},{"line_number":119,"context_line":"                        self.floating_ip_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_2e71cfa8","line":116,"range":{"start_line":116,"start_character":8,"end_line":116,"end_character":37},"in_reply_to":"ba2be162_1738a23c","updated":"2017-03-03 10:10:26.000000000","message":"Done","commit_id":"925b9bae3a7f04336da07962e90475228eba0f2b"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"69ccb6c7493b9e421a9467b9b2f1208304664799","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        body \u003d self.client.create_floating_ip("},{"line_number":115,"context_line":"            pool\u003dCONF.network.floating_network_name)[\u0027floating_ip\u0027]"},{"line_number":116,"context_line":"        self.floating_ip \u003d body[\u0027ip\u0027]"},{"line_number":117,"context_line":"        self.floating_ip_id \u003d body[\u0027id\u0027]"},{"line_number":118,"context_line":"        self.addCleanup(self.client.delete_floating_ip,"},{"line_number":119,"context_line":"                        self.floating_ip_id)"},{"line_number":120,"context_line":"        self.client.associate_floating_ip_to_server("}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_17126209","line":117,"range":{"start_line":117,"start_character":8,"end_line":117,"end_character":40},"updated":"2017-03-03 08:15:36.000000000","message":"ditto","commit_id":"925b9bae3a7f04336da07962e90475228eba0f2b"},{"author":{"_account_id":21897,"name":"lianghao","email":"lianghao@cmss.chinamobile.com","username":"cloud-liang"},"change_message_id":"921241e111c9c15d3368b57a538d3bf5284acf82","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        body \u003d self.client.create_floating_ip("},{"line_number":115,"context_line":"            pool\u003dCONF.network.floating_network_name)[\u0027floating_ip\u0027]"},{"line_number":116,"context_line":"        self.floating_ip \u003d body[\u0027ip\u0027]"},{"line_number":117,"context_line":"        self.floating_ip_id \u003d body[\u0027id\u0027]"},{"line_number":118,"context_line":"        self.addCleanup(self.client.delete_floating_ip,"},{"line_number":119,"context_line":"                        self.floating_ip_id)"},{"line_number":120,"context_line":"        self.client.associate_floating_ip_to_server("}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_4e6a83b4","line":117,"range":{"start_line":117,"start_character":8,"end_line":117,"end_character":40},"in_reply_to":"ba2be162_17126209","updated":"2017-03-03 10:10:26.000000000","message":"Done","commit_id":"925b9bae3a7f04336da07962e90475228eba0f2b"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"69ccb6c7493b9e421a9467b9b2f1208304664799","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        self.floating_ip_id \u003d body[\u0027id\u0027]"},{"line_number":118,"context_line":"        self.addCleanup(self.client.delete_floating_ip,"},{"line_number":119,"context_line":"                        self.floating_ip_id)"},{"line_number":120,"context_line":"        self.client.associate_floating_ip_to_server("},{"line_number":121,"context_line":"            self.floating_ip,"},{"line_number":122,"context_line":"            self.server_id)"},{"line_number":123,"context_line":"        body \u003d self.client.create_floating_ip("}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_57f77a8a","line":120,"range":{"start_line":120,"start_character":20,"end_line":120,"end_character":51},"updated":"2017-03-03 08:15:36.000000000","message":"should addCleanup with disassociate_floating_ip_from_server","commit_id":"925b9bae3a7f04336da07962e90475228eba0f2b"},{"author":{"_account_id":21897,"name":"lianghao","email":"lianghao@cmss.chinamobile.com","username":"cloud-liang"},"change_message_id":"921241e111c9c15d3368b57a538d3bf5284acf82","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        self.floating_ip_id \u003d body[\u0027id\u0027]"},{"line_number":118,"context_line":"        self.addCleanup(self.client.delete_floating_ip,"},{"line_number":119,"context_line":"                        self.floating_ip_id)"},{"line_number":120,"context_line":"        self.client.associate_floating_ip_to_server("},{"line_number":121,"context_line":"            self.floating_ip,"},{"line_number":122,"context_line":"            self.server_id)"},{"line_number":123,"context_line":"        body \u003d self.client.create_floating_ip("}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_6e6747e9","line":120,"range":{"start_line":120,"start_character":20,"end_line":120,"end_character":51},"in_reply_to":"ba2be162_57f77a8a","updated":"2017-03-03 10:10:26.000000000","message":"Done","commit_id":"925b9bae3a7f04336da07962e90475228eba0f2b"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"69ccb6c7493b9e421a9467b9b2f1208304664799","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                        self.floating_ip_id)"},{"line_number":120,"context_line":"        self.client.associate_floating_ip_to_server("},{"line_number":121,"context_line":"            self.floating_ip,"},{"line_number":122,"context_line":"            self.server_id)"},{"line_number":123,"context_line":"        body \u003d self.client.create_floating_ip("},{"line_number":124,"context_line":"            pool\u003dCONF.network.floating_network_name)[\u0027floating_ip\u0027]"},{"line_number":125,"context_line":"        self.new_floating_ip \u003d body[\u0027ip\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_77d9de21","line":122,"updated":"2017-03-03 08:15:36.000000000","message":"better to add a blank line to seperate code logic","commit_id":"925b9bae3a7f04336da07962e90475228eba0f2b"},{"author":{"_account_id":21897,"name":"lianghao","email":"lianghao@cmss.chinamobile.com","username":"cloud-liang"},"change_message_id":"921241e111c9c15d3368b57a538d3bf5284acf82","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                        self.floating_ip_id)"},{"line_number":120,"context_line":"        self.client.associate_floating_ip_to_server("},{"line_number":121,"context_line":"            self.floating_ip,"},{"line_number":122,"context_line":"            self.server_id)"},{"line_number":123,"context_line":"        body \u003d self.client.create_floating_ip("},{"line_number":124,"context_line":"            pool\u003dCONF.network.floating_network_name)[\u0027floating_ip\u0027]"},{"line_number":125,"context_line":"        self.new_floating_ip \u003d body[\u0027ip\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_ce9cb3c2","line":122,"in_reply_to":"ba2be162_77d9de21","updated":"2017-03-03 10:10:26.000000000","message":"Done","commit_id":"925b9bae3a7f04336da07962e90475228eba0f2b"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"69ccb6c7493b9e421a9467b9b2f1208304664799","unresolved":false,"context_lines":[{"line_number":122,"context_line":"            self.server_id)"},{"line_number":123,"context_line":"        body \u003d self.client.create_floating_ip("},{"line_number":124,"context_line":"            pool\u003dCONF.network.floating_network_name)[\u0027floating_ip\u0027]"},{"line_number":125,"context_line":"        self.new_floating_ip \u003d body[\u0027ip\u0027]"},{"line_number":126,"context_line":"        self.new_floating_ip_id \u003d body[\u0027id\u0027]"},{"line_number":127,"context_line":"        self.addCleanup(self.client.delete_floating_ip,"},{"line_number":128,"context_line":"                        self.new_floating_ip_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_573e9a28","line":125,"range":{"start_line":125,"start_character":8,"end_line":125,"end_character":41},"updated":"2017-03-03 08:15:36.000000000","message":"ditto","commit_id":"925b9bae3a7f04336da07962e90475228eba0f2b"},{"author":{"_account_id":21897,"name":"lianghao","email":"lianghao@cmss.chinamobile.com","username":"cloud-liang"},"change_message_id":"921241e111c9c15d3368b57a538d3bf5284acf82","unresolved":false,"context_lines":[{"line_number":122,"context_line":"            self.server_id)"},{"line_number":123,"context_line":"        body \u003d self.client.create_floating_ip("},{"line_number":124,"context_line":"            pool\u003dCONF.network.floating_network_name)[\u0027floating_ip\u0027]"},{"line_number":125,"context_line":"        self.new_floating_ip \u003d body[\u0027ip\u0027]"},{"line_number":126,"context_line":"        self.new_floating_ip_id \u003d body[\u0027id\u0027]"},{"line_number":127,"context_line":"        self.addCleanup(self.client.delete_floating_ip,"},{"line_number":128,"context_line":"                        self.new_floating_ip_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_eea177f9","line":125,"range":{"start_line":125,"start_character":8,"end_line":125,"end_character":41},"in_reply_to":"ba2be162_573e9a28","updated":"2017-03-03 10:10:26.000000000","message":"Done","commit_id":"925b9bae3a7f04336da07962e90475228eba0f2b"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"69ccb6c7493b9e421a9467b9b2f1208304664799","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        body \u003d self.client.create_floating_ip("},{"line_number":124,"context_line":"            pool\u003dCONF.network.floating_network_name)[\u0027floating_ip\u0027]"},{"line_number":125,"context_line":"        self.new_floating_ip \u003d body[\u0027ip\u0027]"},{"line_number":126,"context_line":"        self.new_floating_ip_id \u003d body[\u0027id\u0027]"},{"line_number":127,"context_line":"        self.addCleanup(self.client.delete_floating_ip,"},{"line_number":128,"context_line":"                        self.new_floating_ip_id)"},{"line_number":129,"context_line":"        self.assertRaises(lib_exc.BadRequest,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_57f85ac3","line":126,"range":{"start_line":126,"start_character":8,"end_line":126,"end_character":44},"updated":"2017-03-03 08:15:36.000000000","message":"ditto","commit_id":"925b9bae3a7f04336da07962e90475228eba0f2b"},{"author":{"_account_id":21897,"name":"lianghao","email":"lianghao@cmss.chinamobile.com","username":"cloud-liang"},"change_message_id":"921241e111c9c15d3368b57a538d3bf5284acf82","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        body \u003d self.client.create_floating_ip("},{"line_number":124,"context_line":"            pool\u003dCONF.network.floating_network_name)[\u0027floating_ip\u0027]"},{"line_number":125,"context_line":"        self.new_floating_ip \u003d body[\u0027ip\u0027]"},{"line_number":126,"context_line":"        self.new_floating_ip_id \u003d body[\u0027id\u0027]"},{"line_number":127,"context_line":"        self.addCleanup(self.client.delete_floating_ip,"},{"line_number":128,"context_line":"                        self.new_floating_ip_id)"},{"line_number":129,"context_line":"        self.assertRaises(lib_exc.BadRequest,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_0ea32b01","line":126,"range":{"start_line":126,"start_character":8,"end_line":126,"end_character":44},"in_reply_to":"ba2be162_57f85ac3","updated":"2017-03-03 10:10:26.000000000","message":"Done","commit_id":"925b9bae3a7f04336da07962e90475228eba0f2b"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"48bc5bff06e7b0d3dd25208861ce0e9d0e198e41","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027])"},{"line_number":106,"context_line":"    @decorators.idempotent_id(\u002758a80596-ffb2-11e6-9393-fa163e4fa634\u0027)"},{"line_number":107,"context_line":"    @test.services(\u0027network\u0027)"},{"line_number":108,"context_line":"    @testtools.skipUnless(CONF.network.public_network_id,"},{"line_number":109,"context_line":"                          \u0027The floating_network_name option \u0027"},{"line_number":110,"context_line":"                          \u0027must be specified.\u0027)"},{"line_number":111,"context_line":"    def test_associate_ip_to_server_with_floating_ip(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba2be162_f1703642","line":108,"range":{"start_line":108,"start_character":39,"end_line":108,"end_character":56},"updated":"2017-03-06 06:14:07.000000000","message":"floating_network_name","commit_id":"4e42c4763075d0aa84a53ce428814b7034b968ab"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"48bc5bff06e7b0d3dd25208861ce0e9d0e198e41","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        # should raise BadRequest exception"},{"line_number":115,"context_line":"        body \u003d self.client.create_floating_ip("},{"line_number":116,"context_line":"            pool\u003dCONF.network.floating_network_name)[\u0027floating_ip\u0027]"},{"line_number":117,"context_line":"        self.addCleanup(self.client.delete_floating_ip,"},{"line_number":118,"context_line":"                        body[\u0027id\u0027])"},{"line_number":119,"context_line":"        self.client.associate_floating_ip_to_server("},{"line_number":120,"context_line":"            body[\u0027ip\u0027],"},{"line_number":121,"context_line":"            self.server_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba2be162_719b6666","line":118,"range":{"start_line":117,"start_character":0,"end_line":118,"end_character":35},"updated":"2017-03-06 06:14:07.000000000","message":"can be put in one line","commit_id":"4e42c4763075d0aa84a53ce428814b7034b968ab"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"48bc5bff06e7b0d3dd25208861ce0e9d0e198e41","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            pool\u003dCONF.network.floating_network_name)[\u0027floating_ip\u0027]"},{"line_number":117,"context_line":"        self.addCleanup(self.client.delete_floating_ip,"},{"line_number":118,"context_line":"                        body[\u0027id\u0027])"},{"line_number":119,"context_line":"        self.client.associate_floating_ip_to_server("},{"line_number":120,"context_line":"            body[\u0027ip\u0027],"},{"line_number":121,"context_line":"            self.server_id)"},{"line_number":122,"context_line":"        self.addCleanup(self.client.disassociate_floating_ip_from_server,"},{"line_number":123,"context_line":"                        body[\u0027ip\u0027],"},{"line_number":124,"context_line":"                        self.server_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba2be162_f1a756a4","line":121,"range":{"start_line":119,"start_character":0,"end_line":121,"end_character":27},"updated":"2017-03-06 06:14:07.000000000","message":"can be put in one line","commit_id":"4e42c4763075d0aa84a53ce428814b7034b968ab"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"48bc5bff06e7b0d3dd25208861ce0e9d0e198e41","unresolved":false,"context_lines":[{"line_number":120,"context_line":"            body[\u0027ip\u0027],"},{"line_number":121,"context_line":"            self.server_id)"},{"line_number":122,"context_line":"        self.addCleanup(self.client.disassociate_floating_ip_from_server,"},{"line_number":123,"context_line":"                        body[\u0027ip\u0027],"},{"line_number":124,"context_line":"                        self.server_id)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        body \u003d self.client.create_floating_ip("},{"line_number":127,"context_line":"            pool\u003dCONF.network.floating_network_name)[\u0027floating_ip\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba2be162_71b286e6","line":124,"range":{"start_line":123,"start_character":0,"end_line":124,"end_character":39},"updated":"2017-03-06 06:14:07.000000000","message":"better to be put in one line","commit_id":"4e42c4763075d0aa84a53ce428814b7034b968ab"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"dafae12a2dd242be5a8a9579f5a2b9505f52e24c","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        body \u003d self.client.create_floating_ip("},{"line_number":116,"context_line":"            pool\u003dCONF.network.floating_network_name)[\u0027floating_ip\u0027]"},{"line_number":117,"context_line":"        self.addCleanup(self.client.delete_floating_ip, body[\u0027id\u0027])"},{"line_number":118,"context_line":"        self.client.associate_floating_ip_to_server("},{"line_number":119,"context_line":"            body[\u0027ip\u0027], self.server_id)"},{"line_number":120,"context_line":"        self.addCleanup(self.client.disassociate_floating_ip_from_server,"},{"line_number":121,"context_line":"                        body[\u0027ip\u0027], self.server_id)"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ba2be162_f9949c37","line":119,"range":{"start_line":118,"start_character":0,"end_line":119,"end_character":39},"updated":"2017-03-06 08:33:16.000000000","message":"this can be put in one line too","commit_id":"0d133ab0425a010fe2f2aa5d147021da9c28f5f0"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"20494f3a216fb22207d576dc6aa640cfca8fad40","unresolved":false,"context_lines":[{"line_number":108,"context_line":"    @testtools.skipUnless(CONF.network.public_network_id,"},{"line_number":109,"context_line":"                          \u0027The public_network_id option must be specified.\u0027)"},{"line_number":110,"context_line":"    def test_associate_ip_to_server_with_floating_ip(self):"},{"line_number":111,"context_line":"        # Negative test:Association a floating IP to specific server"},{"line_number":112,"context_line":"        # which has associated a floating IP"},{"line_number":113,"context_line":"        # should raise BadRequest exception"},{"line_number":114,"context_line":"        body \u003d self.client.create_floating_ip("},{"line_number":115,"context_line":"            pool\u003dCONF.network.public_network_id)[\u0027floating_ip\u0027]"},{"line_number":116,"context_line":"        self.addCleanup(self.client.delete_floating_ip, body[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":10,"id":"7ffa3b31_b8444d48","line":113,"range":{"start_line":111,"start_character":0,"end_line":113,"end_character":43},"updated":"2017-04-20 11:59:43.000000000","message":"I think the description here should refer to the fact that only one floating IP can be associated to one port, and the server being tested has only one port (fixed IP).","commit_id":"fb506a9a648a82a72fa6dd0fd841f3e747d2cac3"},{"author":{"_account_id":21897,"name":"lianghao","email":"lianghao@cmss.chinamobile.com","username":"cloud-liang"},"change_message_id":"af5807b3656c8e992a78efc9cf6f2a25c0f5821a","unresolved":false,"context_lines":[{"line_number":108,"context_line":"    @testtools.skipUnless(CONF.network.public_network_id,"},{"line_number":109,"context_line":"                          \u0027The public_network_id option must be specified.\u0027)"},{"line_number":110,"context_line":"    def test_associate_ip_to_server_with_floating_ip(self):"},{"line_number":111,"context_line":"        # Negative test:Association a floating IP to specific server"},{"line_number":112,"context_line":"        # which has associated a floating IP"},{"line_number":113,"context_line":"        # should raise BadRequest exception"},{"line_number":114,"context_line":"        body \u003d self.client.create_floating_ip("},{"line_number":115,"context_line":"            pool\u003dCONF.network.public_network_id)[\u0027floating_ip\u0027]"},{"line_number":116,"context_line":"        self.addCleanup(self.client.delete_floating_ip, body[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":10,"id":"7ffa3b31_b8f7ad59","line":113,"range":{"start_line":111,"start_character":0,"end_line":113,"end_character":43},"in_reply_to":"7ffa3b31_b8444d48","updated":"2017-04-20 12:22:46.000000000","message":"Done","commit_id":"fb506a9a648a82a72fa6dd0fd841f3e747d2cac3"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"e7581b7764ab621100b7fa1e0418294ac98b5693","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    def test_associate_ip_to_server_with_floating_ip(self):"},{"line_number":111,"context_line":"        # The VM have one port"},{"line_number":112,"context_line":"        # Associate floating IP A to the VM"},{"line_number":113,"context_line":"        # Associate floating IP B which is from same pool with floating IP A"},{"line_number":114,"context_line":"        # to the VM, should raise BadRequest exception"},{"line_number":115,"context_line":"        body \u003d self.client.create_floating_ip("},{"line_number":116,"context_line":"            pool\u003dCONF.network.public_network_id)[\u0027floating_ip\u0027]"}],"source_content_type":"text/x-python","patch_set":12,"id":"7ffa3b31_bbb9cecc","line":113,"updated":"2017-04-21 05:07:01.000000000","message":"I\u0027m curious here. If the floating IP B come from *different* pool with floating IP A, the exception isn\u0027t raised? I\u0027m not sure we can have multiple pool or not, though.","commit_id":"ae9ce4db83bbd07737eee1d7b632324e9f3d876a"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"b2cb9ec994ce9f98d68a5e2c21a7ce82ea241e51","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    def test_associate_ip_to_server_with_floating_ip(self):"},{"line_number":111,"context_line":"        # The VM have one port"},{"line_number":112,"context_line":"        # Associate floating IP A to the VM"},{"line_number":113,"context_line":"        # Associate floating IP B which is from same pool with floating IP A"},{"line_number":114,"context_line":"        # to the VM, should raise BadRequest exception"},{"line_number":115,"context_line":"        body \u003d self.client.create_floating_ip("},{"line_number":116,"context_line":"            pool\u003dCONF.network.public_network_id)[\u0027floating_ip\u0027]"}],"source_content_type":"text/x-python","patch_set":12,"id":"7ffa3b31_b677a3a0","line":113,"in_reply_to":"7ffa3b31_9b9bb216","updated":"2017-04-21 05:40:08.000000000","message":"Thanks, I see your point. I was thinking to remove \"from same pool with floating IP A to the VM,\" here. But I\u0027m OK now.","commit_id":"ae9ce4db83bbd07737eee1d7b632324e9f3d876a"},{"author":{"_account_id":21897,"name":"lianghao","email":"lianghao@cmss.chinamobile.com","username":"cloud-liang"},"change_message_id":"b84f44abfd78666991fac984ec777b5967021a26","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    def test_associate_ip_to_server_with_floating_ip(self):"},{"line_number":111,"context_line":"        # The VM have one port"},{"line_number":112,"context_line":"        # Associate floating IP A to the VM"},{"line_number":113,"context_line":"        # Associate floating IP B which is from same pool with floating IP A"},{"line_number":114,"context_line":"        # to the VM, should raise BadRequest exception"},{"line_number":115,"context_line":"        body \u003d self.client.create_floating_ip("},{"line_number":116,"context_line":"            pool\u003dCONF.network.public_network_id)[\u0027floating_ip\u0027]"}],"source_content_type":"text/x-python","patch_set":12,"id":"7ffa3b31_9b9bb216","line":113,"in_reply_to":"7ffa3b31_bbb9cecc","updated":"2017-04-21 05:25:33.000000000","message":"Because the router can only have one external gateway,VM has bind with floating A ,if floating B is from different pool with external gateway of router,the exception is raise but messege is different.\n\nI test in my environment,the messege is as below\nExternal network 90a25610-5580-4fe4-bf89-760aa0d57b27 is not reachable from subnet 21b92a85-6b40-4d4f-b72c-a76c22d76452. \nTherefore, cannot associate Port 1fa32c8d-4c7d-4401-ad7c-d9a39f303fc2 with a Floating IP.","commit_id":"ae9ce4db83bbd07737eee1d7b632324e9f3d876a"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"def6a79c1f3d2f6bccdfe9f1bd333b40d8c0ea85","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                          self.client.associate_floating_ip_to_server,"},{"line_number":103,"context_line":"                          \u0027\u0027, self.server_id)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027])"},{"line_number":106,"context_line":"    @decorators.idempotent_id(\u002758a80596-ffb2-11e6-9393-fa163e4fa634\u0027)"},{"line_number":107,"context_line":"    @test.services(\u0027network\u0027)"},{"line_number":108,"context_line":"    @testtools.skipUnless(CONF.network.public_network_id,"}],"source_content_type":"text/x-python","patch_set":14,"id":"5ff73747_0ebf09fc","line":105,"updated":"2017-04-24 06:14:38.000000000","message":"This should be @decorators.attr()... Because @test.attr() was already deprecated.","commit_id":"cae92ed62131a3aedde919e821f6e6ae8515033e"},{"author":{"_account_id":21897,"name":"lianghao","email":"lianghao@cmss.chinamobile.com","username":"cloud-liang"},"change_message_id":"c4072e5ee512b45a165ec8a28c32e1dcc5d5afe8","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                          self.client.associate_floating_ip_to_server,"},{"line_number":103,"context_line":"                          \u0027\u0027, self.server_id)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027])"},{"line_number":106,"context_line":"    @decorators.idempotent_id(\u002758a80596-ffb2-11e6-9393-fa163e4fa634\u0027)"},{"line_number":107,"context_line":"    @test.services(\u0027network\u0027)"},{"line_number":108,"context_line":"    @testtools.skipUnless(CONF.network.public_network_id,"}],"source_content_type":"text/x-python","patch_set":14,"id":"5ff73747_ced24135","line":105,"in_reply_to":"5ff73747_0ebf09fc","updated":"2017-04-24 06:24:28.000000000","message":"Done","commit_id":"cae92ed62131a3aedde919e821f6e6ae8515033e"}]}
