)]}'
{"tempest/api/compute/servers/test_server_rescue.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"535a1e98758769a03153d027057945ebb1f0edc1","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                                       \u0027ACTIVE\u0027)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"class ServerRescueTestJSONV235(ServerRescueTestBase):"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    max_microversion \u003d \u00272.35\u0027"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_d7fe2c05","line":69,"range":{"start_line":69,"start_character":6,"end_line":69,"end_character":30},"updated":"2018-09-26 18:55:03.000000000","message":"need \"Under\" in the test class name as https://review.openstack.org/#/c/587734/5/tempest/api/compute/servers/test_attach_interfaces.py","commit_id":"6fe31213d53811cca161de9ba000d982ba9e7552"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"5d2377d0380646fbb5879d25b7effc07282d4d2f","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                                       \u0027ACTIVE\u0027)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"class ServerRescueTestJSONV235(ServerRescueTestBase):"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    max_microversion \u003d \u00272.35\u0027"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_1cea929f","line":69,"range":{"start_line":69,"start_character":6,"end_line":69,"end_character":30},"in_reply_to":"3f79a3b5_d7fe2c05","updated":"2018-10-09 03:56:10.000000000","message":"Thanks, done.","commit_id":"6fe31213d53811cca161de9ba000d982ba9e7552"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"580fa64f6d4de3a88023fca9c063a5b07b95333c","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                          \"Floating ips are not available\")"},{"line_number":78,"context_line":"    def test_rescued_vm_associate_dissociate_floating_ip(self):"},{"line_number":79,"context_line":"        # Association of floating IP to a rescued vm"},{"line_number":80,"context_line":"        floating_ip_body \u003d self.floating_ips_client.create_floating_ip("},{"line_number":81,"context_line":"            pool\u003dCONF.network.floating_network_name)[\u0027floating_ip\u0027]"},{"line_number":82,"context_line":"        self.addCleanup(self.floating_ips_client.delete_floating_ip,"},{"line_number":83,"context_line":"                        floating_ip_body[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_f7a12a94","line":80,"range":{"start_line":80,"start_character":32,"end_line":80,"end_character":51},"updated":"2018-08-03 05:19:50.000000000","message":"Shouldn\u0027t we be using the Network client for \u003e 2.35? https://github.com/openstack/tempest/blob/32756d0476304fa43b498b8e74742a32dcf1347b/tempest/lib/services/network/floating_ips_client.py#L18\n\nExample:\n\n     @classmethod\n     def setup_clients(cls):\n         if not cls.is_requested_microversion_compatible(\u00272.35\u0027):\n             cls.floating_ips_client \u003d cls.os_primary.floating_ips_client\n\nBut I can\u0027t tell if associate_floating_ip_to_server/disassociate_floating_ip_from_server exists for network lib client in Tempest yet.\n\nSo this will make implementation a little tricky.","commit_id":"6fe31213d53811cca161de9ba000d982ba9e7552"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"3b28e84973914549f5f0b23045e741ca988b19e4","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                          \"Floating ips are not available\")"},{"line_number":78,"context_line":"    def test_rescued_vm_associate_dissociate_floating_ip(self):"},{"line_number":79,"context_line":"        # Association of floating IP to a rescued vm"},{"line_number":80,"context_line":"        floating_ip_body \u003d self.floating_ips_client.create_floating_ip("},{"line_number":81,"context_line":"            pool\u003dCONF.network.floating_network_name)[\u0027floating_ip\u0027]"},{"line_number":82,"context_line":"        self.addCleanup(self.floating_ips_client.delete_floating_ip,"},{"line_number":83,"context_line":"                        floating_ip_body[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_d513af67","line":80,"range":{"start_line":80,"start_character":32,"end_line":80,"end_character":51},"in_reply_to":"5f7c97a3_b273c0b3","updated":"2018-10-18 16:03:26.000000000","message":"so what is query here? to add the coverage of create FIP using neutron client .","commit_id":"6fe31213d53811cca161de9ba000d982ba9e7552"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"9cf026d33de8aebb309f2c400079575dd75a13cc","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                          \"Floating ips are not available\")"},{"line_number":78,"context_line":"    def test_rescued_vm_associate_dissociate_floating_ip(self):"},{"line_number":79,"context_line":"        # Association of floating IP to a rescued vm"},{"line_number":80,"context_line":"        floating_ip_body \u003d self.floating_ips_client.create_floating_ip("},{"line_number":81,"context_line":"            pool\u003dCONF.network.floating_network_name)[\u0027floating_ip\u0027]"},{"line_number":82,"context_line":"        self.addCleanup(self.floating_ips_client.delete_floating_ip,"},{"line_number":83,"context_line":"                        floating_ip_body[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_b273c0b3","line":80,"range":{"start_line":80,"start_character":32,"end_line":80,"end_character":51},"in_reply_to":"5f7c97a3_f7a12a94","updated":"2018-08-03 06:12:53.000000000","message":"Yes this is a little complicated.\nNetwork client uses create-floating-ip to create and associate a floating to server\n(and it will need admin credential to get port from server)\nhttps://developer.openstack.org/api-ref/network/v2/index.html#create-floating-ip.\n\nSo in this patch I hesitate to make so big modification.","commit_id":"6fe31213d53811cca161de9ba000d982ba9e7552"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"580fa64f6d4de3a88023fca9c063a5b07b95333c","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        self.addCleanup(self.floating_ips_client.delete_floating_ip,"},{"line_number":83,"context_line":"                        floating_ip_body[\u0027id\u0027])"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        self.floating_ips_client.associate_floating_ip_to_server("},{"line_number":86,"context_line":"            str(floating_ip_body[\u0027ip\u0027]).strip(), self.rescued_server_id)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        # Disassociation of floating IP that was associated in this method"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_77967a40","line":85,"range":{"start_line":85,"start_character":33,"end_line":85,"end_character":64},"updated":"2018-08-03 05:19:50.000000000","message":"This one is deprecated in 2.44 btw, just pointing out for follow up. https://developer.openstack.org/api-ref/compute/#add-associate-floating-ip-addfloatingip-action-deprecated\n\nBut this one will need to use Neutron client API for \u003e 2.44 microversion, but not sure if it is implemented Tempest side yet.","commit_id":"6fe31213d53811cca161de9ba000d982ba9e7552"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"3b28e84973914549f5f0b23045e741ca988b19e4","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        self.addCleanup(self.floating_ips_client.delete_floating_ip,"},{"line_number":83,"context_line":"                        floating_ip_body[\u0027id\u0027])"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        self.floating_ips_client.associate_floating_ip_to_server("},{"line_number":86,"context_line":"            str(floating_ip_body[\u0027ip\u0027]).strip(), self.rescued_server_id)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        # Disassociation of floating IP that was associated in this method"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_b53953f2","line":85,"range":{"start_line":85,"start_character":33,"end_line":85,"end_character":64},"in_reply_to":"5f7c97a3_77967a40","updated":"2018-10-18 16:03:26.000000000","message":"those API are already covered in https://github.com/openstack/tempest/blob/9594233ffd93066677aa601c594d55f3a4f188d8/tempest/api/compute/floating_ips/test_floating_ips_actions.py#L61","commit_id":"6fe31213d53811cca161de9ba000d982ba9e7552"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"580fa64f6d4de3a88023fca9c063a5b07b95333c","unresolved":false,"context_lines":[{"line_number":86,"context_line":"            str(floating_ip_body[\u0027ip\u0027]).strip(), self.rescued_server_id)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        # Disassociation of floating IP that was associated in this method"},{"line_number":89,"context_line":"        self.floating_ips_client.disassociate_floating_ip_from_server("},{"line_number":90,"context_line":"            str(floating_ip_body[\u0027ip\u0027]).strip(), self.rescued_server_id)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    @decorators.idempotent_id(\u0027affca41f-7195-492d-8065-e09eee245404\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_d7bd0eb3","line":89,"range":{"start_line":89,"start_character":33,"end_line":89,"end_character":69},"updated":"2018-08-03 05:19:50.000000000","message":"Ditto: https://developer.openstack.org/api-ref/compute/#remove-disassociate-floating-ip-removefloatingip-action-deprecated","commit_id":"6fe31213d53811cca161de9ba000d982ba9e7552"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"3b28e84973914549f5f0b23045e741ca988b19e4","unresolved":false,"context_lines":[{"line_number":86,"context_line":"            str(floating_ip_body[\u0027ip\u0027]).strip(), self.rescued_server_id)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        # Disassociation of floating IP that was associated in this method"},{"line_number":89,"context_line":"        self.floating_ips_client.disassociate_floating_ip_from_server("},{"line_number":90,"context_line":"            str(floating_ip_body[\u0027ip\u0027]).strip(), self.rescued_server_id)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    @decorators.idempotent_id(\u0027affca41f-7195-492d-8065-e09eee245404\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_751bbb83","line":89,"range":{"start_line":89,"start_character":33,"end_line":89,"end_character":69},"in_reply_to":"5f7c97a3_d7bd0eb3","updated":"2018-10-18 16:03:26.000000000","message":"ditto","commit_id":"6fe31213d53811cca161de9ba000d982ba9e7552"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"1c1ede252d8dcdcb131cbb5e61eac649b96b67db","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"class ServerRescueTestJSONUnderV235(ServerRescueTestBase):"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    max_microversion \u003d \u00272.35\u0027"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    @decorators.idempotent_id(\u00274842e0cf-e87d-4d9d-b61f-f4791da3cacc\u0027)"},{"line_number":74,"context_line":"    @testtools.skipUnless(CONF.network.public_network_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_d859a600","line":71,"range":{"start_line":70,"start_character":0,"end_line":71,"end_character":29},"updated":"2018-10-18 16:13:53.000000000","message":"I got the Felipe point i think. \n\nThis making the rescue tests coverage lost for \u003e2.35. We need to cap the tests if those are only for that API. These tests are for rescue operation not about FIP. So should switch the way of creating the FIP (use neutron API for \u003e2.35) for this tests not stopping this test for \u003e2.235.","commit_id":"30236eddb0b094fe7e908e8367f92ad391d29f48"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"3d8e5cbcc28f0de0f19ba722a798e152b25bb13b","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"class ServerRescueTestJSONUnderV235(ServerRescueTestBase):"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    max_microversion \u003d \u00272.35\u0027"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    @decorators.idempotent_id(\u00274842e0cf-e87d-4d9d-b61f-f4791da3cacc\u0027)"},{"line_number":74,"context_line":"    @testtools.skipUnless(CONF.network.public_network_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_04e490a7","line":71,"range":{"start_line":70,"start_character":0,"end_line":71,"end_character":29},"in_reply_to":"3f79a3b5_59059178","updated":"2018-10-19 03:21:09.000000000","message":"ok. as test_rescue_unrescue_instance cover the basic functionality check and interop does not have this capability in their guidelines so capping these test would not have effect on certification.\n\nI am ok to add the coverage for \u003e2.35 later and TODO works fine.\n\nthanks","commit_id":"30236eddb0b094fe7e908e8367f92ad391d29f48"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"0a4614a7c31331ebf18db675f50b3feba9d808c0","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"class ServerRescueTestJSONUnderV235(ServerRescueTestBase):"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    max_microversion \u003d \u00272.35\u0027"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    @decorators.idempotent_id(\u00274842e0cf-e87d-4d9d-b61f-f4791da3cacc\u0027)"},{"line_number":74,"context_line":"    @testtools.skipUnless(CONF.network.public_network_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_59059178","line":71,"range":{"start_line":70,"start_character":0,"end_line":71,"end_character":29},"in_reply_to":"3f79a3b5_d859a600","updated":"2018-10-19 02:01:01.000000000","message":"Because using neutron client to create floating ip will need admin credential, also the modification is a little complicated and \nthe testcases will have to be moved to somewhere in admin directory, so I\u0027d prefer adding the new testcase for \u003e2.35 in a seperate\npatch. \nAnd I add a TODO comment in the code.","commit_id":"30236eddb0b094fe7e908e8367f92ad391d29f48"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"0e3f699d1a82b3fd784b986dfd5cd0eb28554f25","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                                       \u0027ACTIVE\u0027)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"class ServerRescueTestJSONV235(ServerRescueTestBase):"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    max_microversion \u003d \u00272.35\u0027"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_b1d63954","line":69,"range":{"start_line":69,"start_character":6,"end_line":69,"end_character":30},"updated":"2018-10-19 05:19:17.000000000","message":"There is a regression here: missing `Under` has was pointed out by Ken\u0027ichi in PS2.","commit_id":"2488c0881d0dde9a9b773f8c28912d2d6c95db65"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"1ba930fd7a2029fde754aa655649d0f77203b185","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                                       \u0027ACTIVE\u0027)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"class ServerRescueTestJSONV235(ServerRescueTestBase):"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    max_microversion \u003d \u00272.35\u0027"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_31254917","line":69,"range":{"start_line":69,"start_character":6,"end_line":69,"end_character":30},"in_reply_to":"3f79a3b5_b1d63954","updated":"2018-10-19 06:06:15.000000000","message":"+1","commit_id":"2488c0881d0dde9a9b773f8c28912d2d6c95db65"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"62d81f07c820d0d6d6e6f8a6f4c12d43f94770e7","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                                       \u0027ACTIVE\u0027)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"class ServerRescueTestJSONV235(ServerRescueTestBase):"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    max_microversion \u003d \u00272.35\u0027"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_3100e969","line":69,"range":{"start_line":69,"start_character":6,"end_line":69,"end_character":30},"in_reply_to":"3f79a3b5_b1d63954","updated":"2018-10-19 06:02:57.000000000","message":"oh, done","commit_id":"2488c0881d0dde9a9b773f8c28912d2d6c95db65"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"0fad667c5490f357a3392f0eb417b7ac55e4868d","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    max_microversion \u003d \u00272.35\u0027"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    # TODO(zhufl): After 2.35 we should switch to neutron client to create"},{"line_number":74,"context_line":"    # floating ip, but that will need admin credential, so the testcases will"},{"line_number":75,"context_line":"    # have to be added in somewhere in admin directory."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    @decorators.idempotent_id(\u00274842e0cf-e87d-4d9d-b61f-f4791da3cacc\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_67ea23da","line":74,"updated":"2018-10-19 08:04:07.000000000","message":"floating ip is not admin only API.","commit_id":"3cf7aa21f7124521e96a33010efb65b60742b6a6"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"b227da343a9fb0f27b4b0ff4dd405dc793c5044f","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    max_microversion \u003d \u00272.35\u0027"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    # TODO(zhufl): After 2.35 we should switch to neutron client to create"},{"line_number":74,"context_line":"    # floating ip, but that will need admin credential, so the testcases will"},{"line_number":75,"context_line":"    # have to be added in somewhere in admin directory."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    @decorators.idempotent_id(\u00274842e0cf-e87d-4d9d-b61f-f4791da3cacc\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_472a87e6","line":74,"in_reply_to":"3f79a3b5_67ea23da","updated":"2018-10-19 08:17:00.000000000","message":"Yes creating floating ip itself is not admin only API, but when we add a floating ip to server, we need admin credential to list ports of the server, just as the below code do,\nhttps://github.com/openstack/tempest/blob/ecddd38ecbdb5df05543f106e10e14a9e7d0d3da/tempest/scenario/manager.py#L823","commit_id":"3cf7aa21f7124521e96a33010efb65b60742b6a6"}]}
