)]}'
{"tempest/scenario/manager.py":[{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"e7f2e9afcc46a8b2484a23c68014721177e859ca","unresolved":false,"context_lines":[{"line_number":645,"context_line":"                         % port_map)"},{"line_number":646,"context_line":"        return port_map[0]"},{"line_number":647,"context_line":""},{"line_number":648,"context_line":"    def create_floating_ip_with_network_client(self, thing,"},{"line_number":649,"context_line":"                                               external_network_id\u003dNone,"},{"line_number":650,"context_line":"                                               port_id\u003dNone, client\u003dNone):"},{"line_number":651,"context_line":"        \"\"\"Create a floating IP and associates to a resource/port on Neutron\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_b8e6ec15","line":648,"range":{"start_line":648,"start_character":53,"end_line":648,"end_character":58},"updated":"2017-09-25 09:22:16.000000000","message":"is this always referring to a server? if yes, then maybe we can name the parameter as \"server\"","commit_id":"4ac9ee24a002543bc68b4be7e7b2dcce1dc9ff95"},{"author":{"_account_id":23709,"name":"Duc Truong","email":"dkt26111@gmail.com","username":"dtruong"},"change_message_id":"9f9363822d162392b6801a1e89b401caccb74f9a","unresolved":false,"context_lines":[{"line_number":645,"context_line":"                         % port_map)"},{"line_number":646,"context_line":"        return port_map[0]"},{"line_number":647,"context_line":""},{"line_number":648,"context_line":"    def create_floating_ip_with_network_client(self, thing,"},{"line_number":649,"context_line":"                                               external_network_id\u003dNone,"},{"line_number":650,"context_line":"                                               port_id\u003dNone, client\u003dNone):"},{"line_number":651,"context_line":"        \"\"\"Create a floating IP and associates to a resource/port on Neutron\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_5e72c0ae","line":648,"range":{"start_line":648,"start_character":53,"end_line":648,"end_character":58},"in_reply_to":"7f515b1d_b8e6ec15","updated":"2017-09-29 20:58:12.000000000","message":"Done","commit_id":"4ac9ee24a002543bc68b4be7e7b2dcce1dc9ff95"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"e7f2e9afcc46a8b2484a23c68014721177e859ca","unresolved":false,"context_lines":[{"line_number":670,"context_line":"                        floating_ip[\u0027id\u0027])"},{"line_number":671,"context_line":"        return floating_ip"},{"line_number":672,"context_line":""},{"line_number":673,"context_line":"    def create_floating_ip_with_compute_client(self, thing, pool_name\u003dNone):"},{"line_number":674,"context_line":"        \"\"\"Create a floating IP and associates to a server on Nova\"\"\""},{"line_number":675,"context_line":""},{"line_number":676,"context_line":"        if not pool_name:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_58749835","line":673,"range":{"start_line":673,"start_character":8,"end_line":673,"end_character":45},"updated":"2017-09-25 09:22:16.000000000","message":"better to add an leading underscore for internal helper","commit_id":"4ac9ee24a002543bc68b4be7e7b2dcce1dc9ff95"},{"author":{"_account_id":23709,"name":"Duc Truong","email":"dkt26111@gmail.com","username":"dtruong"},"change_message_id":"9f9363822d162392b6801a1e89b401caccb74f9a","unresolved":false,"context_lines":[{"line_number":670,"context_line":"                        floating_ip[\u0027id\u0027])"},{"line_number":671,"context_line":"        return floating_ip"},{"line_number":672,"context_line":""},{"line_number":673,"context_line":"    def create_floating_ip_with_compute_client(self, thing, pool_name\u003dNone):"},{"line_number":674,"context_line":"        \"\"\"Create a floating IP and associates to a server on Nova\"\"\""},{"line_number":675,"context_line":""},{"line_number":676,"context_line":"        if not pool_name:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_fe8f2cca","line":673,"range":{"start_line":673,"start_character":8,"end_line":673,"end_character":45},"in_reply_to":"7f515b1d_58749835","updated":"2017-09-29 20:58:12.000000000","message":"Done","commit_id":"4ac9ee24a002543bc68b4be7e7b2dcce1dc9ff95"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"e7f2e9afcc46a8b2484a23c68014721177e859ca","unresolved":false,"context_lines":[{"line_number":684,"context_line":"            floating_ip[\u0027ip\u0027], thing[\u0027id\u0027])"},{"line_number":685,"context_line":"        return floating_ip"},{"line_number":686,"context_line":""},{"line_number":687,"context_line":"    def create_floating_ip(self, thing):"},{"line_number":688,"context_line":"        \"\"\"Creates a floating IP and associates it to a server."},{"line_number":689,"context_line":""},{"line_number":690,"context_line":"        Use neutron client if neutron service is availabe.  Otherwise use"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_58a93879","line":687,"range":{"start_line":687,"start_character":33,"end_line":687,"end_character":38},"updated":"2017-09-25 09:22:16.000000000","message":"ditto","commit_id":"4ac9ee24a002543bc68b4be7e7b2dcce1dc9ff95"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"e7f2e9afcc46a8b2484a23c68014721177e859ca","unresolved":false,"context_lines":[{"line_number":684,"context_line":"            floating_ip[\u0027ip\u0027], thing[\u0027id\u0027])"},{"line_number":685,"context_line":"        return floating_ip"},{"line_number":686,"context_line":""},{"line_number":687,"context_line":"    def create_floating_ip(self, thing):"},{"line_number":688,"context_line":"        \"\"\"Creates a floating IP and associates it to a server."},{"line_number":689,"context_line":""},{"line_number":690,"context_line":"        Use neutron client if neutron service is availabe.  Otherwise use"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_989fb04f","line":687,"range":{"start_line":687,"start_character":8,"end_line":687,"end_character":26},"updated":"2017-09-25 09:22:16.000000000","message":"how about rename it as \"create_and_associate_floating_ip\"?","commit_id":"4ac9ee24a002543bc68b4be7e7b2dcce1dc9ff95"},{"author":{"_account_id":23709,"name":"Duc Truong","email":"dkt26111@gmail.com","username":"dtruong"},"change_message_id":"9f9363822d162392b6801a1e89b401caccb74f9a","unresolved":false,"context_lines":[{"line_number":684,"context_line":"            floating_ip[\u0027ip\u0027], thing[\u0027id\u0027])"},{"line_number":685,"context_line":"        return floating_ip"},{"line_number":686,"context_line":""},{"line_number":687,"context_line":"    def create_floating_ip(self, thing):"},{"line_number":688,"context_line":"        \"\"\"Creates a floating IP and associates it to a server."},{"line_number":689,"context_line":""},{"line_number":690,"context_line":"        Use neutron client if neutron service is availabe.  Otherwise use"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_1e87a8b7","line":687,"range":{"start_line":687,"start_character":8,"end_line":687,"end_character":26},"in_reply_to":"7f515b1d_989fb04f","updated":"2017-09-29 20:58:12.000000000","message":"Done","commit_id":"4ac9ee24a002543bc68b4be7e7b2dcce1dc9ff95"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"e7f2e9afcc46a8b2484a23c68014721177e859ca","unresolved":false,"context_lines":[{"line_number":890,"context_line":"                            \"Unable to get network by name: %s\" % network_name)"},{"line_number":891,"context_line":"        return net[0]"},{"line_number":892,"context_line":""},{"line_number":893,"context_line":"    def create_floating_ip(self, thing, external_network_id\u003dNone,"},{"line_number":894,"context_line":"                           port_id\u003dNone, client\u003dNone):"},{"line_number":895,"context_line":"        return self.create_floating_ip_with_network_client(thing,"},{"line_number":896,"context_line":"                                                           external_network_id,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_f8e6a4e8","line":893,"range":{"start_line":893,"start_character":8,"end_line":893,"end_character":26},"updated":"2017-09-25 09:22:16.000000000","message":"the helper in NetworkScenarioTest seems can be removed, all subclasses can directly use the one in ScenarioTest","commit_id":"4ac9ee24a002543bc68b4be7e7b2dcce1dc9ff95"},{"author":{"_account_id":23709,"name":"Duc Truong","email":"dkt26111@gmail.com","username":"dtruong"},"change_message_id":"9f9363822d162392b6801a1e89b401caccb74f9a","unresolved":false,"context_lines":[{"line_number":890,"context_line":"                            \"Unable to get network by name: %s\" % network_name)"},{"line_number":891,"context_line":"        return net[0]"},{"line_number":892,"context_line":""},{"line_number":893,"context_line":"    def create_floating_ip(self, thing, external_network_id\u003dNone,"},{"line_number":894,"context_line":"                           port_id\u003dNone, client\u003dNone):"},{"line_number":895,"context_line":"        return self.create_floating_ip_with_network_client(thing,"},{"line_number":896,"context_line":"                                                           external_network_id,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_de8c70d8","line":893,"range":{"start_line":893,"start_character":8,"end_line":893,"end_character":26},"in_reply_to":"7f515b1d_f8e6a4e8","updated":"2017-09-29 20:58:12.000000000","message":"Done","commit_id":"4ac9ee24a002543bc68b4be7e7b2dcce1dc9ff95"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"25b8e78e4b6339af7221aa28ad0dfdf3711206a8","unresolved":false,"context_lines":[{"line_number":640,"context_line":"                         % port_map)"},{"line_number":641,"context_line":"        return port_map[0]"},{"line_number":642,"context_line":""},{"line_number":643,"context_line":"    def _get_floating_ip_in_server_addresses(self, floating_ip_address,"},{"line_number":644,"context_line":"                                             server):"},{"line_number":645,"context_line":"        for addresses in server[\u0027addresses\u0027].values():"},{"line_number":646,"context_line":"            for address in addresses:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_377adbf0","line":643,"range":{"start_line":643,"start_character":7,"end_line":643,"end_character":44},"updated":"2017-10-23 02:44:14.000000000","message":"how about putting this directly inside wait_for_floating_ip_attached_to_server?","commit_id":"3c4c108c5830588bf1618be5c6038e6583228766"},{"author":{"_account_id":23709,"name":"Duc Truong","email":"dkt26111@gmail.com","username":"dtruong"},"change_message_id":"83e10b233514ef00e0e6beb38448e2a91359290e","unresolved":false,"context_lines":[{"line_number":640,"context_line":"                         % port_map)"},{"line_number":641,"context_line":"        return port_map[0]"},{"line_number":642,"context_line":""},{"line_number":643,"context_line":"    def _get_floating_ip_in_server_addresses(self, floating_ip_address,"},{"line_number":644,"context_line":"                                             server):"},{"line_number":645,"context_line":"        for addresses in server[\u0027addresses\u0027].values():"},{"line_number":646,"context_line":"            for address in addresses:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_b4dba14d","line":643,"range":{"start_line":643,"start_character":7,"end_line":643,"end_character":44},"in_reply_to":"3f4b6375_377adbf0","updated":"2017-10-30 17:03:37.000000000","message":"I can do that.  Looks like it\u0027s not being used anywhere else.","commit_id":"3c4c108c5830588bf1618be5c6038e6583228766"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2e82c7b3b07918d1516cdadc5e7880482d93c2ed","unresolved":false,"context_lines":[{"line_number":640,"context_line":"                         % port_map)"},{"line_number":641,"context_line":"        return port_map[0]"},{"line_number":642,"context_line":""},{"line_number":643,"context_line":"    def _get_floating_ip_in_server_addresses(self, floating_ip_address,"},{"line_number":644,"context_line":"                                             server):"},{"line_number":645,"context_line":"        for addresses in server[\u0027addresses\u0027].values():"},{"line_number":646,"context_line":"            for address in addresses:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f485f77_e8165449","line":643,"range":{"start_line":643,"start_character":7,"end_line":643,"end_character":44},"in_reply_to":"3f4b6375_b4dba14d","updated":"2017-11-17 02:43:45.000000000","message":"+1","commit_id":"3c4c108c5830588bf1618be5c6038e6583228766"},{"author":{"_account_id":23709,"name":"Duc Truong","email":"dkt26111@gmail.com","username":"dtruong"},"change_message_id":"b82fee96b14473b3e0989e6540e99a977192700b","unresolved":false,"context_lines":[{"line_number":640,"context_line":"                         % port_map)"},{"line_number":641,"context_line":"        return port_map[0]"},{"line_number":642,"context_line":""},{"line_number":643,"context_line":"    def _get_floating_ip_in_server_addresses(self, floating_ip_address,"},{"line_number":644,"context_line":"                                             server):"},{"line_number":645,"context_line":"        for addresses in server[\u0027addresses\u0027].values():"},{"line_number":646,"context_line":"            for address in addresses:"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_e32676ce","line":643,"range":{"start_line":643,"start_character":7,"end_line":643,"end_character":44},"in_reply_to":"3f4b6375_b4dba14d","updated":"2017-11-30 18:19:33.000000000","message":"Done","commit_id":"3c4c108c5830588bf1618be5c6038e6583228766"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2e82c7b3b07918d1516cdadc5e7880482d93c2ed","unresolved":false,"context_lines":[{"line_number":668,"context_line":"                   (floating_ip_address, server[\u0027addresses\u0027]))"},{"line_number":669,"context_line":"            raise exceptions.TimeoutException(msg)"},{"line_number":670,"context_line":""},{"line_number":671,"context_line":"    def create_floating_ip_with_network_client(self, server,"},{"line_number":672,"context_line":"                                               external_network_id\u003dNone,"},{"line_number":673,"context_line":"                                               port_id\u003dNone,"},{"line_number":674,"context_line":"                                               servers_client\u003dNone,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f485f77_6824a4af","line":671,"range":{"start_line":671,"start_character":8,"end_line":671,"end_character":46},"updated":"2017-11-17 02:43:45.000000000","message":"how about keeping name to create_and_associate_floating_ip() which is much easy to understand.","commit_id":"3c4c108c5830588bf1618be5c6038e6583228766"},{"author":{"_account_id":23709,"name":"Duc Truong","email":"dkt26111@gmail.com","username":"dtruong"},"change_message_id":"b82fee96b14473b3e0989e6540e99a977192700b","unresolved":false,"context_lines":[{"line_number":668,"context_line":"                   (floating_ip_address, server[\u0027addresses\u0027]))"},{"line_number":669,"context_line":"            raise exceptions.TimeoutException(msg)"},{"line_number":670,"context_line":""},{"line_number":671,"context_line":"    def create_floating_ip_with_network_client(self, server,"},{"line_number":672,"context_line":"                                               external_network_id\u003dNone,"},{"line_number":673,"context_line":"                                               port_id\u003dNone,"},{"line_number":674,"context_line":"                                               servers_client\u003dNone,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_c327b2c6","line":671,"range":{"start_line":671,"start_character":8,"end_line":671,"end_character":46},"in_reply_to":"1f485f77_6824a4af","updated":"2017-11-30 18:19:33.000000000","message":"Done","commit_id":"3c4c108c5830588bf1618be5c6038e6583228766"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2e82c7b3b07918d1516cdadc5e7880482d93c2ed","unresolved":false,"context_lines":[{"line_number":699,"context_line":""},{"line_number":700,"context_line":"        return floating_ip"},{"line_number":701,"context_line":""},{"line_number":702,"context_line":"    def _create_floating_ip_with_compute_client(self, server, pool_name\u003dNone):"},{"line_number":703,"context_line":"        \"\"\"Create a floating IP and associates to a server on Nova\"\"\""},{"line_number":704,"context_line":""},{"line_number":705,"context_line":"        if not pool_name:"},{"line_number":706,"context_line":"            pool_name \u003d CONF.network.floating_network_name"},{"line_number":707,"context_line":"        floating_ip \u003d (self.compute_floating_ips_client."},{"line_number":708,"context_line":"                       create_floating_ip(pool\u003dpool_name)[\u0027floating_ip\u0027])"},{"line_number":709,"context_line":"        self.addCleanup(test_utils.call_and_ignore_notfound_exc,"},{"line_number":710,"context_line":"                        self.compute_floating_ips_client.delete_floating_ip,"},{"line_number":711,"context_line":"                        floating_ip[\u0027id\u0027])"},{"line_number":712,"context_line":"        self.compute_floating_ips_client.associate_floating_ip_to_server("},{"line_number":713,"context_line":"            floating_ip[\u0027ip\u0027], server[\u0027id\u0027])"},{"line_number":714,"context_line":""},{"line_number":715,"context_line":"        self._check_floating_ip_in_server_addresses(floating_ip[\u0027ip\u0027], server)"},{"line_number":716,"context_line":""},{"line_number":717,"context_line":"        return floating_ip"},{"line_number":718,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1f485f77_b520b5ad","line":715,"range":{"start_line":702,"start_character":0,"end_line":715,"end_character":78},"updated":"2017-11-17 02:43:45.000000000","message":"let\u0027s just have create FIp using network client. If we create FIp using compute then we have to cap the tests cases and it will be complex. \n\nbasic FIP things on compute are tested via API tests so let\u0027s use the latest FIP API which are neutron one ion scenario tests.","commit_id":"3c4c108c5830588bf1618be5c6038e6583228766"},{"author":{"_account_id":23709,"name":"Duc Truong","email":"dkt26111@gmail.com","username":"dtruong"},"change_message_id":"b82fee96b14473b3e0989e6540e99a977192700b","unresolved":false,"context_lines":[{"line_number":699,"context_line":""},{"line_number":700,"context_line":"        return floating_ip"},{"line_number":701,"context_line":""},{"line_number":702,"context_line":"    def _create_floating_ip_with_compute_client(self, server, pool_name\u003dNone):"},{"line_number":703,"context_line":"        \"\"\"Create a floating IP and associates to a server on Nova\"\"\""},{"line_number":704,"context_line":""},{"line_number":705,"context_line":"        if not pool_name:"},{"line_number":706,"context_line":"            pool_name \u003d CONF.network.floating_network_name"},{"line_number":707,"context_line":"        floating_ip \u003d (self.compute_floating_ips_client."},{"line_number":708,"context_line":"                       create_floating_ip(pool\u003dpool_name)[\u0027floating_ip\u0027])"},{"line_number":709,"context_line":"        self.addCleanup(test_utils.call_and_ignore_notfound_exc,"},{"line_number":710,"context_line":"                        self.compute_floating_ips_client.delete_floating_ip,"},{"line_number":711,"context_line":"                        floating_ip[\u0027id\u0027])"},{"line_number":712,"context_line":"        self.compute_floating_ips_client.associate_floating_ip_to_server("},{"line_number":713,"context_line":"            floating_ip[\u0027ip\u0027], server[\u0027id\u0027])"},{"line_number":714,"context_line":""},{"line_number":715,"context_line":"        self._check_floating_ip_in_server_addresses(floating_ip[\u0027ip\u0027], server)"},{"line_number":716,"context_line":""},{"line_number":717,"context_line":"        return floating_ip"},{"line_number":718,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_23121e63","line":715,"range":{"start_line":702,"start_character":0,"end_line":715,"end_character":78},"in_reply_to":"1f485f77_b520b5ad","updated":"2017-11-30 18:19:33.000000000","message":"Done","commit_id":"3c4c108c5830588bf1618be5c6038e6583228766"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2e82c7b3b07918d1516cdadc5e7880482d93c2ed","unresolved":false,"context_lines":[{"line_number":715,"context_line":"        self._check_floating_ip_in_server_addresses(floating_ip[\u0027ip\u0027], server)"},{"line_number":716,"context_line":""},{"line_number":717,"context_line":"        return floating_ip"},{"line_number":718,"context_line":""},{"line_number":719,"context_line":"    def create_and_associate_floating_ip(self, server):"},{"line_number":720,"context_line":"        \"\"\"Creates a floating IP and associates it to a server."},{"line_number":721,"context_line":""},{"line_number":722,"context_line":"        Use neutron client if neutron service is availabe.  Otherwise use"},{"line_number":723,"context_line":"        compute client."},{"line_number":724,"context_line":""},{"line_number":725,"context_line":"        Return dictionary with ip and id."},{"line_number":726,"context_line":"        \"\"\""},{"line_number":727,"context_line":""},{"line_number":728,"context_line":"        if CONF.service_available.neutron:"},{"line_number":729,"context_line":"            floating_ip \u003d self.create_floating_ip_with_network_client(server)"},{"line_number":730,"context_line":"            return {"},{"line_number":731,"context_line":"                \u0027ip\u0027: floating_ip[\u0027floating_ip_address\u0027],"},{"line_number":732,"context_line":"                \u0027id\u0027: floating_ip[\u0027id\u0027]"},{"line_number":733,"context_line":"            }"},{"line_number":734,"context_line":"        else:"},{"line_number":735,"context_line":"            return self._create_floating_ip_with_compute_client(server)"},{"line_number":736,"context_line":""},{"line_number":737,"context_line":"    def delete_floating_ip(self, floating_ip_id):"},{"line_number":738,"context_line":"        \"\"\"Deletes a floating IP"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f485f77_7516bd57","line":735,"range":{"start_line":718,"start_character":0,"end_line":735,"end_character":71},"updated":"2017-11-17 02:43:45.000000000","message":"this also can go away","commit_id":"3c4c108c5830588bf1618be5c6038e6583228766"},{"author":{"_account_id":23709,"name":"Duc Truong","email":"dkt26111@gmail.com","username":"dtruong"},"change_message_id":"b82fee96b14473b3e0989e6540e99a977192700b","unresolved":false,"context_lines":[{"line_number":715,"context_line":"        self._check_floating_ip_in_server_addresses(floating_ip[\u0027ip\u0027], server)"},{"line_number":716,"context_line":""},{"line_number":717,"context_line":"        return floating_ip"},{"line_number":718,"context_line":""},{"line_number":719,"context_line":"    def create_and_associate_floating_ip(self, server):"},{"line_number":720,"context_line":"        \"\"\"Creates a floating IP and associates it to a server."},{"line_number":721,"context_line":""},{"line_number":722,"context_line":"        Use neutron client if neutron service is availabe.  Otherwise use"},{"line_number":723,"context_line":"        compute client."},{"line_number":724,"context_line":""},{"line_number":725,"context_line":"        Return dictionary with ip and id."},{"line_number":726,"context_line":"        \"\"\""},{"line_number":727,"context_line":""},{"line_number":728,"context_line":"        if CONF.service_available.neutron:"},{"line_number":729,"context_line":"            floating_ip \u003d self.create_floating_ip_with_network_client(server)"},{"line_number":730,"context_line":"            return {"},{"line_number":731,"context_line":"                \u0027ip\u0027: floating_ip[\u0027floating_ip_address\u0027],"},{"line_number":732,"context_line":"                \u0027id\u0027: floating_ip[\u0027id\u0027]"},{"line_number":733,"context_line":"            }"},{"line_number":734,"context_line":"        else:"},{"line_number":735,"context_line":"            return self._create_floating_ip_with_compute_client(server)"},{"line_number":736,"context_line":""},{"line_number":737,"context_line":"    def delete_floating_ip(self, floating_ip_id):"},{"line_number":738,"context_line":"        \"\"\"Deletes a floating IP"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_4315e247","line":735,"range":{"start_line":718,"start_character":0,"end_line":735,"end_character":71},"in_reply_to":"1f485f77_7516bd57","updated":"2017-11-30 18:19:33.000000000","message":"Done","commit_id":"3c4c108c5830588bf1618be5c6038e6583228766"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2e82c7b3b07918d1516cdadc5e7880482d93c2ed","unresolved":false,"context_lines":[{"line_number":741,"context_line":"        compute client."},{"line_number":742,"context_line":"        \"\"\""},{"line_number":743,"context_line":""},{"line_number":744,"context_line":"        if CONF.service_available.neutron:"},{"line_number":745,"context_line":"            self.floating_ips_client.delete_floatingip(floating_ip_id)"},{"line_number":746,"context_line":"        else:"},{"line_number":747,"context_line":"            self.compute_floating_ips_client.delete_floating_ip(floating_ip_id)"},{"line_number":748,"context_line":""},{"line_number":749,"context_line":"    def create_timestamp(self, ip_address, dev_name\u003dNone, mount_path\u003d\u0027/mnt\u0027,"},{"line_number":750,"context_line":"                         private_key\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f485f77_a805fc12","line":747,"range":{"start_line":744,"start_character":0,"end_line":747,"end_character":79},"updated":"2017-11-17 02:43:45.000000000","message":"this can be just using neutron clients","commit_id":"3c4c108c5830588bf1618be5c6038e6583228766"},{"author":{"_account_id":23709,"name":"Duc Truong","email":"dkt26111@gmail.com","username":"dtruong"},"change_message_id":"b82fee96b14473b3e0989e6540e99a977192700b","unresolved":false,"context_lines":[{"line_number":741,"context_line":"        compute client."},{"line_number":742,"context_line":"        \"\"\""},{"line_number":743,"context_line":""},{"line_number":744,"context_line":"        if CONF.service_available.neutron:"},{"line_number":745,"context_line":"            self.floating_ips_client.delete_floatingip(floating_ip_id)"},{"line_number":746,"context_line":"        else:"},{"line_number":747,"context_line":"            self.compute_floating_ips_client.delete_floating_ip(floating_ip_id)"},{"line_number":748,"context_line":""},{"line_number":749,"context_line":"    def create_timestamp(self, ip_address, dev_name\u003dNone, mount_path\u003d\u0027/mnt\u0027,"},{"line_number":750,"context_line":"                         private_key\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_ee141d46","line":747,"range":{"start_line":744,"start_character":0,"end_line":747,"end_character":79},"in_reply_to":"1f485f77_a805fc12","updated":"2017-11-30 18:19:33.000000000","message":"Done","commit_id":"3c4c108c5830588bf1618be5c6038e6583228766"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"e19b55dd2e736c054971f8d1356328dded3de73c","unresolved":false,"context_lines":[{"line_number":617,"context_line":"                         % port_map)"},{"line_number":618,"context_line":"        return port_map[0]"},{"line_number":619,"context_line":""},{"line_number":620,"context_line":"    def _get_floating_ip_in_server_addresses(self, floating_ip_address,"},{"line_number":621,"context_line":"                                             server):"},{"line_number":622,"context_line":"        for addresses in server[\u0027addresses\u0027].values():"},{"line_number":623,"context_line":"            for address in addresses:"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f93b717_53a228b0","line":620,"range":{"start_line":620,"start_character":8,"end_line":620,"end_character":44},"updated":"2018-01-29 03:11:02.000000000","message":"This is only used once in test_minimum_basic.py, so you may either\n1. remove this helper and put the code logic directly.\n2. remove the leading underscore of this helper, and it can also be used to replace L622-L626","commit_id":"4433f762440b6f37c51e4c45e79211af90460280"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"e19b55dd2e736c054971f8d1356328dded3de73c","unresolved":false,"context_lines":[{"line_number":685,"context_line":"        Use neutron client to delete floating ip"},{"line_number":686,"context_line":"        \"\"\""},{"line_number":687,"context_line":""},{"line_number":688,"context_line":"        self.floating_ips_client.delete_floatingip(floating_ip_id)"},{"line_number":689,"context_line":""},{"line_number":690,"context_line":"    def create_timestamp(self, ip_address, dev_name\u003dNone, mount_path\u003d\u0027/mnt\u0027,"},{"line_number":691,"context_line":"                         private_key\u003dNone):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f93b717_33f75cf8","line":688,"range":{"start_line":688,"start_character":8,"end_line":688,"end_character":66},"updated":"2018-01-29 03:11:02.000000000","message":"usually one line helper is not so necessary.","commit_id":"4433f762440b6f37c51e4c45e79211af90460280"}],"tempest/scenario/test_minimum_basic.py":[{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"e7f2e9afcc46a8b2484a23c68014721177e859ca","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        self.cinder_show(volume)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        floating_ip \u003d self.create_floating_ip(server)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        def wait_for_floating_ip_attached_to_server():"},{"line_number":134,"context_line":"            server_info \u003d self.servers_client.show_server("},{"line_number":135,"context_line":"                server[\u0027id\u0027])[\u0027server\u0027]"},{"line_number":136,"context_line":"            address \u003d self._get_floating_ip_in_server_addresses("},{"line_number":137,"context_line":"                floating_ip, server_info)"},{"line_number":138,"context_line":"            return address"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        if not test_utils.call_until_true("},{"line_number":141,"context_line":"                wait_for_floating_ip_attached_to_server,"},{"line_number":142,"context_line":"                CONF.compute.build_timeout,"},{"line_number":143,"context_line":"                CONF.compute.build_interval):"},{"line_number":144,"context_line":"            msg \u003d (\"Failed to find floating IP \u0027%s\u0027 in server addresses: %s\" %"},{"line_number":145,"context_line":"                   (floating_ip[\u0027ip\u0027], server[\u0027addresses\u0027]))"},{"line_number":146,"context_line":"            raise exceptions.TimeoutException(msg)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        self.create_and_add_security_group_to_server(server)"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_b8f94c81","line":146,"range":{"start_line":132,"start_character":0,"end_line":146,"end_character":50},"updated":"2017-09-25 09:22:16.000000000","message":"why only in this testcase should we wait_for_floating_ip_attached_to_server?","commit_id":"4ac9ee24a002543bc68b4be7e7b2dcce1dc9ff95"},{"author":{"_account_id":23709,"name":"Duc Truong","email":"dkt26111@gmail.com","username":"dtruong"},"change_message_id":"9f9363822d162392b6801a1e89b401caccb74f9a","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        self.cinder_show(volume)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        floating_ip \u003d self.create_floating_ip(server)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        def wait_for_floating_ip_attached_to_server():"},{"line_number":134,"context_line":"            server_info \u003d self.servers_client.show_server("},{"line_number":135,"context_line":"                server[\u0027id\u0027])[\u0027server\u0027]"},{"line_number":136,"context_line":"            address \u003d self._get_floating_ip_in_server_addresses("},{"line_number":137,"context_line":"                floating_ip, server_info)"},{"line_number":138,"context_line":"            return address"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        if not test_utils.call_until_true("},{"line_number":141,"context_line":"                wait_for_floating_ip_attached_to_server,"},{"line_number":142,"context_line":"                CONF.compute.build_timeout,"},{"line_number":143,"context_line":"                CONF.compute.build_interval):"},{"line_number":144,"context_line":"            msg \u003d (\"Failed to find floating IP \u0027%s\u0027 in server addresses: %s\" %"},{"line_number":145,"context_line":"                   (floating_ip[\u0027ip\u0027], server[\u0027addresses\u0027]))"},{"line_number":146,"context_line":"            raise exceptions.TimeoutException(msg)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        self.create_and_add_security_group_to_server(server)"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_00096c94","line":146,"range":{"start_line":132,"start_character":0,"end_line":146,"end_character":50},"in_reply_to":"7f515b1d_b8f94c81","updated":"2017-09-29 20:58:12.000000000","message":"You are correct.  It should be done for all testcases.  I will fix that.","commit_id":"4ac9ee24a002543bc68b4be7e7b2dcce1dc9ff95"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2e82c7b3b07918d1516cdadc5e7880482d93c2ed","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    \"\"\""},{"line_number":53,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def nova_show(self, server):"},{"line_number":56,"context_line":"        got_server \u003d (self.servers_client.show_server(server[\u0027id\u0027])"},{"line_number":57,"context_line":"                      [\u0027server\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f485f77_a87cdc82","line":54,"range":{"start_line":54,"start_character":0,"end_line":54,"end_character":0},"updated":"2017-11-17 02:43:45.000000000","message":"we need to add skip check also as it is depend on neutron now\n\n    @classmethod\n    def skip_checks(cls):\n        super(TestMinimumBasicScenario, cls).skip_checks()\n        if not CONF.service_available.neutron:\n            raise cls.skipException(\u0027Neutron not available\u0027)","commit_id":"3c4c108c5830588bf1618be5c6038e6583228766"},{"author":{"_account_id":23709,"name":"Duc Truong","email":"dkt26111@gmail.com","username":"dtruong"},"change_message_id":"b82fee96b14473b3e0989e6540e99a977192700b","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    \"\"\""},{"line_number":53,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def nova_show(self, server):"},{"line_number":56,"context_line":"        got_server \u003d (self.servers_client.show_server(server[\u0027id\u0027])"},{"line_number":57,"context_line":"                      [\u0027server\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_2339bef0","line":54,"range":{"start_line":54,"start_character":0,"end_line":54,"end_character":0},"in_reply_to":"1f485f77_a87cdc82","updated":"2017-11-30 18:19:33.000000000","message":"Done","commit_id":"3c4c108c5830588bf1618be5c6038e6583228766"}],"tempest/scenario/test_server_basic_ops.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2e82c7b3b07918d1516cdadc5e7880482d93c2ed","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    def skip_checks(cls):"},{"line_number":49,"context_line":"        super(TestServerBasicOps, cls).skip_checks()"},{"line_number":50,"context_line":"        if not CONF.network_feature_enabled.floating_ips:"},{"line_number":51,"context_line":"            raise cls.skipException(\"Floating ips are not available\")"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def setUp(self):"},{"line_number":54,"context_line":"        super(TestServerBasicOps, self).setUp()"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f485f77_886da0cd","line":51,"range":{"start_line":51,"start_character":67,"end_line":51,"end_character":69},"updated":"2017-11-17 02:43:45.000000000","message":"ditto","commit_id":"3c4c108c5830588bf1618be5c6038e6583228766"},{"author":{"_account_id":23709,"name":"Duc Truong","email":"dkt26111@gmail.com","username":"dtruong"},"change_message_id":"b82fee96b14473b3e0989e6540e99a977192700b","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    def skip_checks(cls):"},{"line_number":49,"context_line":"        super(TestServerBasicOps, cls).skip_checks()"},{"line_number":50,"context_line":"        if not CONF.network_feature_enabled.floating_ips:"},{"line_number":51,"context_line":"            raise cls.skipException(\"Floating ips are not available\")"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def setUp(self):"},{"line_number":54,"context_line":"        super(TestServerBasicOps, self).setUp()"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_e3619606","line":51,"range":{"start_line":51,"start_character":67,"end_line":51,"end_character":69},"in_reply_to":"1f485f77_886da0cd","updated":"2017-11-30 18:19:33.000000000","message":"Done","commit_id":"3c4c108c5830588bf1618be5c6038e6583228766"}],"tempest/scenario/test_shelve_instance.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2e82c7b3b07918d1516cdadc5e7880482d93c2ed","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    def skip_checks(cls):"},{"line_number":42,"context_line":"        super(TestShelveInstance, cls).skip_checks()"},{"line_number":43,"context_line":"        if not CONF.compute_feature_enabled.shelve:"},{"line_number":44,"context_line":"            raise cls.skipException(\"Shelve is not available.\")"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def _shelve_then_unshelve_server(self, server):"},{"line_number":47,"context_line":"        compute.shelve_server(self.servers_client, server[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f485f77_687264af","line":44,"range":{"start_line":44,"start_character":60,"end_line":44,"end_character":63},"updated":"2017-11-17 02:43:45.000000000","message":"ditto","commit_id":"3c4c108c5830588bf1618be5c6038e6583228766"},{"author":{"_account_id":23709,"name":"Duc Truong","email":"dkt26111@gmail.com","username":"dtruong"},"change_message_id":"b82fee96b14473b3e0989e6540e99a977192700b","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    def skip_checks(cls):"},{"line_number":42,"context_line":"        super(TestShelveInstance, cls).skip_checks()"},{"line_number":43,"context_line":"        if not CONF.compute_feature_enabled.shelve:"},{"line_number":44,"context_line":"            raise cls.skipException(\"Shelve is not available.\")"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def _shelve_then_unshelve_server(self, server):"},{"line_number":47,"context_line":"        compute.shelve_server(self.servers_client, server[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_0374bacd","line":44,"range":{"start_line":44,"start_character":60,"end_line":44,"end_character":63},"in_reply_to":"1f485f77_687264af","updated":"2017-11-30 18:19:33.000000000","message":"Done","commit_id":"3c4c108c5830588bf1618be5c6038e6583228766"}],"tempest/scenario/test_snapshot_pattern.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2e82c7b3b07918d1516cdadc5e7880482d93c2ed","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    def skip_checks(cls):"},{"line_number":40,"context_line":"        super(TestSnapshotPattern, cls).skip_checks()"},{"line_number":41,"context_line":"        if not CONF.compute_feature_enabled.snapshot:"},{"line_number":42,"context_line":"            raise cls.skipException(\"Snapshotting is not available.\")"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    @decorators.idempotent_id(\u0027608e604b-1d63-4a82-8e3e-91bc665c90b4\u0027)"},{"line_number":45,"context_line":"    @decorators.attr(type\u003d\u0027slow\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f485f77_08b6503f","line":42,"range":{"start_line":42,"start_character":66,"end_line":42,"end_character":69},"updated":"2017-11-17 02:43:45.000000000","message":"ditto","commit_id":"3c4c108c5830588bf1618be5c6038e6583228766"},{"author":{"_account_id":23709,"name":"Duc Truong","email":"dkt26111@gmail.com","username":"dtruong"},"change_message_id":"b82fee96b14473b3e0989e6540e99a977192700b","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    def skip_checks(cls):"},{"line_number":40,"context_line":"        super(TestSnapshotPattern, cls).skip_checks()"},{"line_number":41,"context_line":"        if not CONF.compute_feature_enabled.snapshot:"},{"line_number":42,"context_line":"            raise cls.skipException(\"Snapshotting is not available.\")"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    @decorators.idempotent_id(\u0027608e604b-1d63-4a82-8e3e-91bc665c90b4\u0027)"},{"line_number":45,"context_line":"    @decorators.attr(type\u003d\u0027slow\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_8351aa38","line":42,"range":{"start_line":42,"start_character":66,"end_line":42,"end_character":69},"in_reply_to":"1f485f77_08b6503f","updated":"2017-11-30 18:19:33.000000000","message":"Done","commit_id":"3c4c108c5830588bf1618be5c6038e6583228766"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"e19b55dd2e736c054971f8d1356328dded3de73c","unresolved":false,"context_lines":[{"line_number":33,"context_line":"     * check the existence of the timestamp file in the second instance"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    \"\"\""},{"line_number":36,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    @classmethod"},{"line_number":39,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f93b717_135d8079","line":36,"range":{"start_line":36,"start_character":4,"end_line":36,"end_character":38},"updated":"2018-01-29 03:11:02.000000000","message":"1. this is also needed in TestStampPattern.\n2. in fact, admin is only need if connect_method\u003dfloating_ip, so I wonder if we need to set:\n    if CONF.validation.connect_method \u003d\u003d \u0027floating\u0027:\n        credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]\n    else:\n        credentials \u003d [\u0027primary\u0027]","commit_id":"4433f762440b6f37c51e4c45e79211af90460280"}]}
