)]}'
{"tempest/api/compute/servers/test_list_server_filters.py":[{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"b8d0b4728231feef8dfeda2b2e3c432b1268e387","unresolved":false,"context_lines":[{"line_number":303,"context_line":"        if addr_spec[\u0027version\u0027] \u003d\u003d 4:"},{"line_number":304,"context_line":"            params \u003d {\u0027ip\u0027: ip}"},{"line_number":305,"context_line":"        else:"},{"line_number":306,"context_line":"            msg \u003d \u0027the test is not for ipv6 addresses\u0027"},{"line_number":307,"context_line":"            raise self.skipException(msg)"},{"line_number":308,"context_line":"        # capture all servers in case something goes wrong"},{"line_number":309,"context_line":"        all_servers \u003d self.client.list_servers(detail\u003dTrue)"},{"line_number":310,"context_line":"        body \u003d self.client.list_servers(**params)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_85de7a0e","line":307,"range":{"start_line":306,"start_character":0,"end_line":307,"end_character":41},"updated":"2020-06-24 06:50:52.000000000","message":"Why listing servers filtered by {\u0027ip6\u0027: ip} can\u0027t work?","commit_id":"e5ce260c1924a13a238f133ca75f2cd38ce79bbc"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"b9443044a3b2d54e669f1babaf64965f94cf6de5","unresolved":false,"context_lines":[{"line_number":303,"context_line":"        if addr_spec[\u0027version\u0027] \u003d\u003d 4:"},{"line_number":304,"context_line":"            params \u003d {\u0027ip\u0027: ip}"},{"line_number":305,"context_line":"        else:"},{"line_number":306,"context_line":"            msg \u003d \u0027the test is not for ipv6 addresses\u0027"},{"line_number":307,"context_line":"            raise self.skipException(msg)"},{"line_number":308,"context_line":"        # capture all servers in case something goes wrong"},{"line_number":309,"context_line":"        all_servers \u003d self.client.list_servers(detail\u003dTrue)"},{"line_number":310,"context_line":"        body \u003d self.client.list_servers(**params)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_c53872ef","line":307,"range":{"start_line":306,"start_character":0,"end_line":307,"end_character":41},"in_reply_to":"bf51134e_45a90222","updated":"2020-06-24 07:27:40.000000000","message":"so, do we consider fetching addresses from servers first and then extracting a common part as the filter pattern?","commit_id":"e5ce260c1924a13a238f133ca75f2cd38ce79bbc"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"62ac9f96638d45caaee13c90b682148b1b209a8d","unresolved":false,"context_lines":[{"line_number":303,"context_line":"        if addr_spec[\u0027version\u0027] \u003d\u003d 4:"},{"line_number":304,"context_line":"            params \u003d {\u0027ip\u0027: ip}"},{"line_number":305,"context_line":"        else:"},{"line_number":306,"context_line":"            msg \u003d \u0027the test is not for ipv6 addresses\u0027"},{"line_number":307,"context_line":"            raise self.skipException(msg)"},{"line_number":308,"context_line":"        # capture all servers in case something goes wrong"},{"line_number":309,"context_line":"        all_servers \u003d self.client.list_servers(detail\u003dTrue)"},{"line_number":310,"context_line":"        body \u003d self.client.list_servers(**params)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_45a90222","line":307,"range":{"start_line":306,"start_character":0,"end_line":307,"end_character":41},"in_reply_to":"bf51134e_85de7a0e","updated":"2020-06-24 07:20:23.000000000","message":"listing servers by ip6 probably works, the problem is that the calculation of the ip regex here in the test is very ipv4 specific (it counts on 4 octets divided by dots).\nAlso the previous regex calculation ([0:-3]) probably didn\u0027t work with ipv6 addresses as well.\n\nIf we wanna have this test working with ipv6 too, we just need to implement here also a calculation of the ip prefix out of the ipv6 address","commit_id":"e5ce260c1924a13a238f133ca75f2cd38ce79bbc"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"0e9b9c1cafef53e69b1e9b8d397970a091833d08","unresolved":false,"context_lines":[{"line_number":303,"context_line":"        if addr_spec[\u0027version\u0027] \u003d\u003d 4:"},{"line_number":304,"context_line":"            params \u003d {\u0027ip\u0027: ip}"},{"line_number":305,"context_line":"        else:"},{"line_number":306,"context_line":"            msg \u003d \u0027the test is not for ipv6 addresses\u0027"},{"line_number":307,"context_line":"            raise self.skipException(msg)"},{"line_number":308,"context_line":"        # capture all servers in case something goes wrong"},{"line_number":309,"context_line":"        all_servers \u003d self.client.list_servers(detail\u003dTrue)"},{"line_number":310,"context_line":"        body \u003d self.client.list_servers(**params)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_b0f5baef","line":307,"range":{"start_line":306,"start_character":0,"end_line":307,"end_character":41},"in_reply_to":"bf51134e_b072daab","updated":"2020-06-24 07:47:02.000000000","message":"I think 3 queries may not take long time, not more than 3 seconds, maybe 1-2 seconds:)","commit_id":"e5ce260c1924a13a238f133ca75f2cd38ce79bbc"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"70ff6109d0feabaa2c7dc24eb8101fbd2f7a7f11","unresolved":false,"context_lines":[{"line_number":303,"context_line":"        if addr_spec[\u0027version\u0027] \u003d\u003d 4:"},{"line_number":304,"context_line":"            params \u003d {\u0027ip\u0027: ip}"},{"line_number":305,"context_line":"        else:"},{"line_number":306,"context_line":"            msg \u003d \u0027the test is not for ipv6 addresses\u0027"},{"line_number":307,"context_line":"            raise self.skipException(msg)"},{"line_number":308,"context_line":"        # capture all servers in case something goes wrong"},{"line_number":309,"context_line":"        all_servers \u003d self.client.list_servers(detail\u003dTrue)"},{"line_number":310,"context_line":"        body \u003d self.client.list_servers(**params)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_50525edf","line":307,"range":{"start_line":306,"start_character":0,"end_line":307,"end_character":41},"in_reply_to":"bf51134e_b0f5baef","updated":"2020-06-24 07:52:42.000000000","message":"ok, let me rework the patch then","commit_id":"e5ce260c1924a13a238f133ca75f2cd38ce79bbc"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"c98c1f956592123534dbbd4eb802f7e39f063541","unresolved":false,"context_lines":[{"line_number":303,"context_line":"        if addr_spec[\u0027version\u0027] \u003d\u003d 4:"},{"line_number":304,"context_line":"            params \u003d {\u0027ip\u0027: ip}"},{"line_number":305,"context_line":"        else:"},{"line_number":306,"context_line":"            msg \u003d \u0027the test is not for ipv6 addresses\u0027"},{"line_number":307,"context_line":"            raise self.skipException(msg)"},{"line_number":308,"context_line":"        # capture all servers in case something goes wrong"},{"line_number":309,"context_line":"        all_servers \u003d self.client.list_servers(detail\u003dTrue)"},{"line_number":310,"context_line":"        body \u003d self.client.list_servers(**params)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_b072daab","line":307,"range":{"start_line":306,"start_character":0,"end_line":307,"end_character":41},"in_reply_to":"bf51134e_c53872ef","updated":"2020-06-24 07:41:44.000000000","message":"i was thinking about it, it would be easier to query all the 3 servers, retrieve ip addresses and find only a common part in the 3 strings basically .. but the question then is, will the 3 queries instead of the current one increase the execution time significantly or not?","commit_id":"e5ce260c1924a13a238f133ca75f2cd38ce79bbc"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"77994e2ee18e30856994871ac4883b2e50fb3384","unresolved":false,"context_lines":[{"line_number":293,"context_line":"            msg \u003d \u0027fixed_network_name needs to be configured to run this test\u0027"},{"line_number":294,"context_line":"            raise self.skipException(msg)"},{"line_number":295,"context_line":"        addr_spec \u003d self.client.show_server(self.s1[\u0027id\u0027])[\u0027server\u0027]"},{"line_number":296,"context_line":"        a \u003d [addr_spec[\u0027addresses\u0027][self.fixed_network_name][0][\u0027addr\u0027]]"},{"line_number":297,"context_line":"        # query addresses of the rest 2 servers"},{"line_number":298,"context_line":"        for s in [self.s2, self.s3]:"},{"line_number":299,"context_line":"            s_show \u003d self.client.show_server(s[\u0027id\u0027])[\u0027server\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf51134e_1d6728b9","line":296,"range":{"start_line":296,"start_character":8,"end_line":296,"end_character":9},"updated":"2020-06-28 01:31:00.000000000","message":"nit: a -\u003e addrs?","commit_id":"67d3e03f21c9a48ec522c9b179d481153334c647"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"0c0ff92008f7066b009c71a08d4151c67eeb0d19","unresolved":false,"context_lines":[{"line_number":293,"context_line":"            msg \u003d \u0027fixed_network_name needs to be configured to run this test\u0027"},{"line_number":294,"context_line":"            raise self.skipException(msg)"},{"line_number":295,"context_line":"        addr_spec \u003d self.client.show_server(self.s1[\u0027id\u0027])[\u0027server\u0027]"},{"line_number":296,"context_line":"        a \u003d [addr_spec[\u0027addresses\u0027][self.fixed_network_name][0][\u0027addr\u0027]]"},{"line_number":297,"context_line":"        # query addresses of the rest 2 servers"},{"line_number":298,"context_line":"        for s in [self.s2, self.s3]:"},{"line_number":299,"context_line":"            s_show \u003d self.client.show_server(s[\u0027id\u0027])[\u0027server\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf51134e_4a3763b1","line":296,"range":{"start_line":296,"start_character":8,"end_line":296,"end_character":9},"in_reply_to":"bf51134e_1d6728b9","updated":"2020-07-10 11:11:51.000000000","message":"Done","commit_id":"67d3e03f21c9a48ec522c9b179d481153334c647"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"77994e2ee18e30856994871ac4883b2e50fb3384","unresolved":false,"context_lines":[{"line_number":301,"context_line":"            a.append(addr_spec[\u0027addr\u0027])"},{"line_number":302,"context_line":"        # find common part of the 3 ip addresses"},{"line_number":303,"context_line":"        prefix \u003d \u0027\u0027"},{"line_number":304,"context_line":"        for i in range(len(a[0])):"},{"line_number":305,"context_line":"            if not a[0][i] \u003d\u003d a[1][i] \u003d\u003d a[2][i]:"},{"line_number":306,"context_line":"                break"},{"line_number":307,"context_line":"            prefix +\u003d a[0][i]"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf51134e_3d6cac9a","line":304,"range":{"start_line":304,"start_character":23,"end_line":304,"end_character":32},"updated":"2020-06-28 01:31:00.000000000","message":"what if a[0] is 10.1.1.150 and a[1] is 10.1.1.1?","commit_id":"67d3e03f21c9a48ec522c9b179d481153334c647"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"0c0ff92008f7066b009c71a08d4151c67eeb0d19","unresolved":false,"context_lines":[{"line_number":301,"context_line":"            a.append(addr_spec[\u0027addr\u0027])"},{"line_number":302,"context_line":"        # find common part of the 3 ip addresses"},{"line_number":303,"context_line":"        prefix \u003d \u0027\u0027"},{"line_number":304,"context_line":"        for i in range(len(a[0])):"},{"line_number":305,"context_line":"            if not a[0][i] \u003d\u003d a[1][i] \u003d\u003d a[2][i]:"},{"line_number":306,"context_line":"                break"},{"line_number":307,"context_line":"            prefix +\u003d a[0][i]"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf51134e_2a3caf91","line":304,"range":{"start_line":304,"start_character":23,"end_line":304,"end_character":32},"in_reply_to":"bf51134e_3d6cac9a","updated":"2020-07-10 11:11:51.000000000","message":"very good point, thanks!","commit_id":"67d3e03f21c9a48ec522c9b179d481153334c647"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"88995ea2a209667505005bcc72938b2951a45cb6","unresolved":false,"context_lines":[{"line_number":285,"context_line":"            self.assertNotIn(ip_list[ip], map(lambda x: x[\u0027id\u0027], servers))"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"    @decorators.idempotent_id(\u0027a905e287-c35e-42f2-b132-d02b09f3654a\u0027)"},{"line_number":288,"context_line":"    def test_list_servers_filtered_by_ip_regex(self):"},{"line_number":289,"context_line":"        # Filter servers by regex ip"},{"line_number":290,"context_line":"        # List all servers filtered by part of ip address."},{"line_number":291,"context_line":"        # Here should be listed all servers"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_cba2a39a","line":288,"updated":"2020-07-30 11:58:43.000000000","message":"Shouldn\u0027t we call this filtering as substring or prefix instead of regexp ?\n\nneutron has only `Add ip-substring-filtering API extension` and the document does not mentions the filtering is still full regexp capable.","commit_id":"cdc899afcc69c9b28bc0e12c96f5034e1822b398"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"b58011afa2a52ad684a9258caedef901797930b9","unresolved":false,"context_lines":[{"line_number":285,"context_line":"            self.assertNotIn(ip_list[ip], map(lambda x: x[\u0027id\u0027], servers))"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"    @decorators.idempotent_id(\u0027a905e287-c35e-42f2-b132-d02b09f3654a\u0027)"},{"line_number":288,"context_line":"    def test_list_servers_filtered_by_ip_regex(self):"},{"line_number":289,"context_line":"        # Filter servers by regex ip"},{"line_number":290,"context_line":"        # List all servers filtered by part of ip address."},{"line_number":291,"context_line":"        # Here should be listed all servers"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_409fe464","line":288,"in_reply_to":"9f560f44_0fd28700","updated":"2020-08-11 13:38:04.000000000","message":"sure, that would work - the doc string was already added by a different patch, so I\u0027ll just rebase","commit_id":"cdc899afcc69c9b28bc0e12c96f5034e1822b398"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"fdcc15e956e655298ffd0071051c3f167ea87277","unresolved":false,"context_lines":[{"line_number":285,"context_line":"            self.assertNotIn(ip_list[ip], map(lambda x: x[\u0027id\u0027], servers))"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"    @decorators.idempotent_id(\u0027a905e287-c35e-42f2-b132-d02b09f3654a\u0027)"},{"line_number":288,"context_line":"    def test_list_servers_filtered_by_ip_regex(self):"},{"line_number":289,"context_line":"        # Filter servers by regex ip"},{"line_number":290,"context_line":"        # List all servers filtered by part of ip address."},{"line_number":291,"context_line":"        # Here should be listed all servers"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_f852963a","line":288,"in_reply_to":"9f560f44_cba2a39a","updated":"2020-08-04 10:00:05.000000000","message":"I\u0027m ok with renaming the test, the doc describes the ip/ip6 param as follows:\n\n\"An IPv4 address to filter results by.\"\nor\n\"An IPv6 address to filter results by.\"\n\nSo maybe we could just remove the _regex suffix from the name -\u003e it would be only: \"test_list_servers_filtered_by_ip\"\n\nWhat do you think?","commit_id":"cdc899afcc69c9b28bc0e12c96f5034e1822b398"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c49ce97eaa79e852f350d94616bdd9e9fbe7aab2","unresolved":false,"context_lines":[{"line_number":285,"context_line":"            self.assertNotIn(ip_list[ip], map(lambda x: x[\u0027id\u0027], servers))"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"    @decorators.idempotent_id(\u0027a905e287-c35e-42f2-b132-d02b09f3654a\u0027)"},{"line_number":288,"context_line":"    def test_list_servers_filtered_by_ip_regex(self):"},{"line_number":289,"context_line":"        # Filter servers by regex ip"},{"line_number":290,"context_line":"        # List all servers filtered by part of ip address."},{"line_number":291,"context_line":"        # Here should be listed all servers"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_0fd28700","line":288,"in_reply_to":"9f560f44_f852963a","updated":"2020-08-05 16:08:49.000000000","message":"yeah name is not matching with what exactly test does. But if we rename this test then we need to follow the process  -https://docs.openstack.org/tempest/latest/REVIEWING.html#test-removal-and-refactoring\n\nInterop also uses this test. \nhttps://opendev.org/osf/interop/src/commit/d4689e6efd848c2a9e7a7c4105cb4129c6cf536d/2020.06.json#L670\n\nI think it is too much things to do if we rename so how about adding doc string/comment bout this tests does filter with substring of IP not with full IP.","commit_id":"cdc899afcc69c9b28bc0e12c96f5034e1822b398"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"9b1d534ce2961d324ee403e5e46a99285cdfeea9","unresolved":false,"context_lines":[{"line_number":303,"context_line":"        if not self.fixed_network_name:"},{"line_number":304,"context_line":"            msg \u003d \u0027fixed_network_name needs to be configured to run this test\u0027"},{"line_number":305,"context_line":"            raise self.skipException(msg)"},{"line_number":306,"context_line":"        addr_spec \u003d self.client.show_server(self.s1[\u0027id\u0027])[\u0027server\u0027]"},{"line_number":307,"context_line":"        addrs \u003d [addr_spec[\u0027addresses\u0027][self.fixed_network_name][0][\u0027addr\u0027]]"},{"line_number":308,"context_line":"        # query addresses of the rest 2 servers"},{"line_number":309,"context_line":"        for s in [self.s2, self.s3]:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_05e65e17","line":306,"updated":"2020-08-17 09:01:40.000000000","message":"So, why add the first addr here, and then loop through the other 2 servers? What\u0027s the point?","commit_id":"ebed35e04375e19b933268459ff77559f2c29d3b"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"1747c97b3e6226606ef35b49c057605a649e4b60","unresolved":false,"context_lines":[{"line_number":303,"context_line":"        if not self.fixed_network_name:"},{"line_number":304,"context_line":"            msg \u003d \u0027fixed_network_name needs to be configured to run this test\u0027"},{"line_number":305,"context_line":"            raise self.skipException(msg)"},{"line_number":306,"context_line":"        addr_spec \u003d self.client.show_server(self.s1[\u0027id\u0027])[\u0027server\u0027]"},{"line_number":307,"context_line":"        addrs \u003d [addr_spec[\u0027addresses\u0027][self.fixed_network_name][0][\u0027addr\u0027]]"},{"line_number":308,"context_line":"        # query addresses of the rest 2 servers"},{"line_number":309,"context_line":"        for s in [self.s2, self.s3]:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_85138eb8","line":306,"in_reply_to":"9f560f44_05e65e17","updated":"2020-08-17 09:31:47.000000000","message":"The point is to get ip addresses of the 3 servers ... so it could be all in one loop then, I don\u0027t know why I didn\u0027t notice that before :)","commit_id":"ebed35e04375e19b933268459ff77559f2c29d3b"}]}
