)]}'
{"tempest/api/compute/admin/test_aggregates.py":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"86fe9282cc3d8793a39c66ee612c9178241cf788","unresolved":false,"context_lines":[{"line_number":214,"context_line":"        nova_zone \u003d [v for v in available_zone if v[\u0027zoneName\u0027] \u003d\u003d \u0027nova\u0027]"},{"line_number":215,"context_line":"        host \u003d None"},{"line_number":216,"context_line":"        if nova_zone:"},{"line_number":217,"context_line":"            host \u003d nova_zone[0][\u0027hosts\u0027].keys()[0]"},{"line_number":218,"context_line":"        if not host:"},{"line_number":219,"context_line":"            raise self.skipException(\"All hosts are already in other zones, \""},{"line_number":220,"context_line":"                                     \"so can\u0027t add host to aggregate.\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa0c359_ed16c355","line":217,"range":{"start_line":217,"start_character":40,"end_line":217,"end_character":50},"updated":"2018-02-09 12:19:52.000000000","message":"This is failing in the py3 job","commit_id":"ee8bfaadfbabcb3fc78a09830d97dd4b6b0c23ce"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"974f5ef3faa0cea264086dda4c9cf5a9a12b2447","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        az_name \u003d data_utils.rand_name(self.az_name_prefix)"},{"line_number":207,"context_line":"        aggregate \u003d self._create_test_aggregate(availability_zone\u003daz_name)"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        # Find a host that is not in other zone (default zone is nova),"},{"line_number":210,"context_line":"        # for one host can\u0027t be added to different zones."},{"line_number":211,"context_line":"        available_zone \u003d \\"},{"line_number":212,"context_line":"            self.availability_zone_admin_client.list_availability_zones("},{"line_number":213,"context_line":"                detail\u003dTrue)[\u0027availabilityZoneInfo\u0027]"},{"line_number":214,"context_line":"        nova_zone \u003d [v for v in available_zone if v[\u0027zoneName\u0027] \u003d\u003d \u0027nova\u0027]"},{"line_number":215,"context_line":"        hosts \u003d None"},{"line_number":216,"context_line":"        if nova_zone:"},{"line_number":217,"context_line":"            hosts \u003d [v for v in nova_zone[0][\u0027hosts\u0027].keys()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_2b3ebe8a","line":214,"range":{"start_line":209,"start_character":0,"end_line":214,"end_character":74},"updated":"2018-02-11 01:41:56.000000000","message":"Thanks Andrea, yes we should only choose nova zone host from available hosts.\nAnd because only this testcase should be skipped if no nova zone host, so the check is better to be added here.","commit_id":"09c68d1d4e0319fc9914e1e088d30bcf3e955455"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"713f8bf864c5fb4f8729d2eb37161e624234a195","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        available_zone \u003d \\"},{"line_number":212,"context_line":"            self.availability_zone_admin_client.list_availability_zones("},{"line_number":213,"context_line":"                detail\u003dTrue)[\u0027availabilityZoneInfo\u0027]"},{"line_number":214,"context_line":"        nova_zone \u003d [v for v in available_zone if v[\u0027zoneName\u0027] \u003d\u003d \u0027nova\u0027]"},{"line_number":215,"context_line":"        hosts \u003d None"},{"line_number":216,"context_line":"        if nova_zone:"},{"line_number":217,"context_line":"            hosts \u003d [v for v in nova_zone[0][\u0027hosts\u0027].keys()"}],"source_content_type":"text/x-python","patch_set":2,"id":"df7087c5_1706a71e","line":214,"range":{"start_line":214,"start_character":68,"end_line":214,"end_character":72},"updated":"2018-03-13 10:19:51.000000000","message":"this is not nova always, it is configurable in nova default_availability_zone, i think we should use the configurable option here as nova can be non-default AZ in some cloud.","commit_id":"09c68d1d4e0319fc9914e1e088d30bcf3e955455"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"a80522432ab58a6e644e9185d958a696dec51f8b","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        available_zone \u003d \\"},{"line_number":212,"context_line":"            self.availability_zone_admin_client.list_availability_zones("},{"line_number":213,"context_line":"                detail\u003dTrue)[\u0027availabilityZoneInfo\u0027]"},{"line_number":214,"context_line":"        nova_zone \u003d [v for v in available_zone if v[\u0027zoneName\u0027] \u003d\u003d \u0027nova\u0027]"},{"line_number":215,"context_line":"        hosts \u003d None"},{"line_number":216,"context_line":"        if nova_zone:"},{"line_number":217,"context_line":"            hosts \u003d [v for v in nova_zone[0][\u0027hosts\u0027].keys()"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_97f89749","line":214,"range":{"start_line":214,"start_character":68,"end_line":214,"end_character":72},"in_reply_to":"bf659307_3d77773d","updated":"2018-04-10 08:59:10.000000000","message":"I don\u0027t know whether there exists other way to change a host\u0027s AZ:)","commit_id":"09c68d1d4e0319fc9914e1e088d30bcf3e955455"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"41681f7315aa2ac2ae28db013eabfae8041b5029","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        available_zone \u003d \\"},{"line_number":212,"context_line":"            self.availability_zone_admin_client.list_availability_zones("},{"line_number":213,"context_line":"                detail\u003dTrue)[\u0027availabilityZoneInfo\u0027]"},{"line_number":214,"context_line":"        nova_zone \u003d [v for v in available_zone if v[\u0027zoneName\u0027] \u003d\u003d \u0027nova\u0027]"},{"line_number":215,"context_line":"        hosts \u003d None"},{"line_number":216,"context_line":"        if nova_zone:"},{"line_number":217,"context_line":"            hosts \u003d [v for v in nova_zone[0][\u0027hosts\u0027].keys()"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_3d77773d","line":214,"range":{"start_line":214,"start_character":68,"end_line":214,"end_character":72},"in_reply_to":"bf659307_7a2415c7","updated":"2018-03-26 06:56:48.000000000","message":"oh, the way to change a host\u0027s AZ is:\n1. create an aggregate with availability_zone\n2. add host to that aggregate\nso, if a host doesn\u0027t appear in any aggregate with availability_zone, then its default AZ should be unchanged.","commit_id":"09c68d1d4e0319fc9914e1e088d30bcf3e955455"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"9c4da26028b7cd0256a44d5f4025df1042f4d096","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        available_zone \u003d \\"},{"line_number":212,"context_line":"            self.availability_zone_admin_client.list_availability_zones("},{"line_number":213,"context_line":"                detail\u003dTrue)[\u0027availabilityZoneInfo\u0027]"},{"line_number":214,"context_line":"        nova_zone \u003d [v for v in available_zone if v[\u0027zoneName\u0027] \u003d\u003d \u0027nova\u0027]"},{"line_number":215,"context_line":"        hosts \u003d None"},{"line_number":216,"context_line":"        if nova_zone:"},{"line_number":217,"context_line":"            hosts \u003d [v for v in nova_zone[0][\u0027hosts\u0027].keys()"}],"source_content_type":"text/x-python","patch_set":2,"id":"df7087c5_5a0bcd22","line":214,"range":{"start_line":214,"start_character":68,"end_line":214,"end_character":72},"in_reply_to":"df7087c5_1706a71e","updated":"2018-03-14 02:01:49.000000000","message":"Thanks gmann, yes hard coded nova is not suitable.\nAnd I am trying to get free hosts by list_aggregates which contains the info of zone and hosts to avoid new config item:)","commit_id":"09c68d1d4e0319fc9914e1e088d30bcf3e955455"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"5c9b019f2634a108f39005c994e794bb37e34d53","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        available_zone \u003d \\"},{"line_number":212,"context_line":"            self.availability_zone_admin_client.list_availability_zones("},{"line_number":213,"context_line":"                detail\u003dTrue)[\u0027availabilityZoneInfo\u0027]"},{"line_number":214,"context_line":"        nova_zone \u003d [v for v in available_zone if v[\u0027zoneName\u0027] \u003d\u003d \u0027nova\u0027]"},{"line_number":215,"context_line":"        hosts \u003d None"},{"line_number":216,"context_line":"        if nova_zone:"},{"line_number":217,"context_line":"            hosts \u003d [v for v in nova_zone[0][\u0027hosts\u0027].keys()"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_7a2415c7","line":214,"range":{"start_line":214,"start_character":68,"end_line":214,"end_character":72},"in_reply_to":"df7087c5_5a0bcd22","updated":"2018-03-26 06:44:57.000000000","message":"may be i did not get the complete idea but how we will confirm from list_aggregate that host is not in default AZ if default AZ is being changed from \u0027nova\u0027 to something else?","commit_id":"09c68d1d4e0319fc9914e1e088d30bcf3e955455"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"ca640bb4f49a9a1dc9acc82c24f43405a74797ea","unresolved":false,"context_lines":[{"line_number":218,"context_line":"                     if v in self.hosts_available]"},{"line_number":219,"context_line":"        if not hosts:"},{"line_number":220,"context_line":"            raise self.skipException(\"All hosts are already in other zones, \""},{"line_number":221,"context_line":"                                     \"so can\u0027t add host to aggregate.\")"},{"line_number":222,"context_line":"        host \u003d hosts[0]"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"        self.client.add_host(aggregate[\u0027id\u0027], host\u003dhost)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_d04eba95","line":221,"updated":"2018-02-13 07:36:43.000000000","message":"I\u0027m a bit worried here because I\u0027m not sure this is expected or not for testers.","commit_id":"09c68d1d4e0319fc9914e1e088d30bcf3e955455"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"713f8bf864c5fb4f8729d2eb37161e624234a195","unresolved":false,"context_lines":[{"line_number":218,"context_line":"                     if v in self.hosts_available]"},{"line_number":219,"context_line":"        if not hosts:"},{"line_number":220,"context_line":"            raise self.skipException(\"All hosts are already in other zones, \""},{"line_number":221,"context_line":"                                     \"so can\u0027t add host to aggregate.\")"},{"line_number":222,"context_line":"        host \u003d hosts[0]"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"        self.client.add_host(aggregate[\u0027id\u0027], host\u003dhost)"}],"source_content_type":"text/x-python","patch_set":2,"id":"df7087c5_1c0d6ca0","line":221,"in_reply_to":"3fa0c359_3d3f9d87","updated":"2018-03-13 10:19:51.000000000","message":"yea, i think it is better to skip as no host available for testing the add_host to AZ.","commit_id":"09c68d1d4e0319fc9914e1e088d30bcf3e955455"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"4b8f1f465174ad3643e9e3846eb27936abdeff47","unresolved":false,"context_lines":[{"line_number":218,"context_line":"                     if v in self.hosts_available]"},{"line_number":219,"context_line":"        if not hosts:"},{"line_number":220,"context_line":"            raise self.skipException(\"All hosts are already in other zones, \""},{"line_number":221,"context_line":"                                     \"so can\u0027t add host to aggregate.\")"},{"line_number":222,"context_line":"        host \u003d hosts[0]"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"        self.client.add_host(aggregate[\u0027id\u0027], host\u003dhost)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_3d3f9d87","line":221,"in_reply_to":"3fa0c359_d04eba95","updated":"2018-02-14 02:05:11.000000000","message":"This behaviour seems reasonable to me, and maybe Ken\u0027ichi can tell us whether this is expected or not for testers:)","commit_id":"09c68d1d4e0319fc9914e1e088d30bcf3e955455"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a49eccce24b9ea1d69f1e319ff2fcec774cf0eb4","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        az_name \u003d data_utils.rand_name(self.az_name_prefix)"},{"line_number":207,"context_line":"        aggregate \u003d self._create_test_aggregate(availability_zone\u003daz_name)"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        # Find a host that has not been added to other zone,"},{"line_number":210,"context_line":"        # for one host can\u0027t be added to different zones."},{"line_number":211,"context_line":"        aggregates \u003d self.client.list_aggregates()[\u0027aggregates\u0027]"},{"line_number":212,"context_line":"        hosts_in_zone \u003d []"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_f4a09f90","line":209,"range":{"start_line":209,"start_character":55,"end_line":209,"end_character":59},"updated":"2018-07-31 05:20:46.000000000","message":"s/zone/availability zones/","commit_id":"34afeb295a8c99846144abfd78fab6e5a9b4121f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a49eccce24b9ea1d69f1e319ff2fcec774cf0eb4","unresolved":false,"context_lines":[{"line_number":207,"context_line":"        aggregate \u003d self._create_test_aggregate(availability_zone\u003daz_name)"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        # Find a host that has not been added to other zone,"},{"line_number":210,"context_line":"        # for one host can\u0027t be added to different zones."},{"line_number":211,"context_line":"        aggregates \u003d self.client.list_aggregates()[\u0027aggregates\u0027]"},{"line_number":212,"context_line":"        hosts_in_zone \u003d []"},{"line_number":213,"context_line":"        for v in aggregates:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_b4b8e7c6","line":210,"range":{"start_line":210,"start_character":51,"end_line":210,"end_character":56},"updated":"2018-07-31 05:20:46.000000000","message":"ditto","commit_id":"34afeb295a8c99846144abfd78fab6e5a9b4121f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a49eccce24b9ea1d69f1e319ff2fcec774cf0eb4","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        aggregates \u003d self.client.list_aggregates()[\u0027aggregates\u0027]"},{"line_number":212,"context_line":"        hosts_in_zone \u003d []"},{"line_number":213,"context_line":"        for v in aggregates:"},{"line_number":214,"context_line":"            if v[\u0027availability_zone\u0027]:"},{"line_number":215,"context_line":"                hosts_in_zone.extend(v[\u0027hosts\u0027])"},{"line_number":216,"context_line":"        hosts \u003d [v for v in self.hosts_available if v not in hosts_in_zone]"},{"line_number":217,"context_line":"        if not hosts:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_19cc7460","line":214,"range":{"start_line":214,"start_character":15,"end_line":214,"end_character":37},"updated":"2018-07-31 05:20:46.000000000","message":"There can be duplicate host among multiple aggregate which AZ is same. i mean i can add same host in different aggregate having the same AZ. So I was thinking to check - v[\u0027availability_zone\u0027] and v[\u0027availability_zone\u0027] !\u003d az_name\n\nbut that\u0027s not needed as az_name is rand_name and cannot be same as any existing AZ.","commit_id":"34afeb295a8c99846144abfd78fab6e5a9b4121f"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"44ead02329870deb9e3610ac4623d3f0075933c6","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        aggregates \u003d self.client.list_aggregates()[\u0027aggregates\u0027]"},{"line_number":212,"context_line":"        hosts_in_zone \u003d []"},{"line_number":213,"context_line":"        for v in aggregates:"},{"line_number":214,"context_line":"            if v[\u0027availability_zone\u0027]:"},{"line_number":215,"context_line":"                hosts_in_zone.extend(v[\u0027hosts\u0027])"},{"line_number":216,"context_line":"        hosts \u003d [v for v in self.hosts_available if v not in hosts_in_zone]"},{"line_number":217,"context_line":"        if not hosts:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_f4b97fc4","line":214,"range":{"start_line":214,"start_character":15,"end_line":214,"end_character":37},"in_reply_to":"5f7c97a3_19cc7460","updated":"2018-07-31 05:24:00.000000000","message":"o, I didn\u0027t think of that. And I will take all these comments into consideration in a following patch","commit_id":"34afeb295a8c99846144abfd78fab6e5a9b4121f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c57a22a03a6a7862ac64c491966b924156388038","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        aggregates \u003d self.client.list_aggregates()[\u0027aggregates\u0027]"},{"line_number":212,"context_line":"        hosts_in_zone \u003d []"},{"line_number":213,"context_line":"        for v in aggregates:"},{"line_number":214,"context_line":"            if v[\u0027availability_zone\u0027]:"},{"line_number":215,"context_line":"                hosts_in_zone.extend(v[\u0027hosts\u0027])"},{"line_number":216,"context_line":"        hosts \u003d [v for v in self.hosts_available if v not in hosts_in_zone]"},{"line_number":217,"context_line":"        if not hosts:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_942ccbb2","line":214,"range":{"start_line":214,"start_character":15,"end_line":214,"end_character":37},"in_reply_to":"5f7c97a3_f4b97fc4","updated":"2018-07-31 05:51:22.000000000","message":"done in https://review.openstack.org/#/c/587287/","commit_id":"34afeb295a8c99846144abfd78fab6e5a9b4121f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a49eccce24b9ea1d69f1e319ff2fcec774cf0eb4","unresolved":false,"context_lines":[{"line_number":213,"context_line":"        for v in aggregates:"},{"line_number":214,"context_line":"            if v[\u0027availability_zone\u0027]:"},{"line_number":215,"context_line":"                hosts_in_zone.extend(v[\u0027hosts\u0027])"},{"line_number":216,"context_line":"        hosts \u003d [v for v in self.hosts_available if v not in hosts_in_zone]"},{"line_number":217,"context_line":"        if not hosts:"},{"line_number":218,"context_line":"            raise self.skipException(\"All hosts are already in other zones, \""},{"line_number":219,"context_line":"                                     \"so can\u0027t add host to aggregate.\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_547b9329","line":216,"range":{"start_line":216,"start_character":61,"end_line":216,"end_character":74},"updated":"2018-07-31 05:20:46.000000000","message":"nit:you can do set(hosts_in_zone) as there can be duplicate host across multiple aggregate having same AZ.","commit_id":"34afeb295a8c99846144abfd78fab6e5a9b4121f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a49eccce24b9ea1d69f1e319ff2fcec774cf0eb4","unresolved":false,"context_lines":[{"line_number":215,"context_line":"                hosts_in_zone.extend(v[\u0027hosts\u0027])"},{"line_number":216,"context_line":"        hosts \u003d [v for v in self.hosts_available if v not in hosts_in_zone]"},{"line_number":217,"context_line":"        if not hosts:"},{"line_number":218,"context_line":"            raise self.skipException(\"All hosts are already in other zones, \""},{"line_number":219,"context_line":"                                     \"so can\u0027t add host to aggregate.\")"},{"line_number":220,"context_line":"        host \u003d hosts[0]"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_34761741","line":218,"range":{"start_line":218,"start_character":69,"end_line":218,"end_character":74},"updated":"2018-07-31 05:20:46.000000000","message":"s/zones/availability zones/","commit_id":"34afeb295a8c99846144abfd78fab6e5a9b4121f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"db57c9de9f12e4ccae7882bf6ab942944f4ae95c","unresolved":false,"context_lines":[{"line_number":216,"context_line":"        hosts \u003d [v for v in self.hosts_available if v not in hosts_in_zone]"},{"line_number":217,"context_line":"        if not hosts:"},{"line_number":218,"context_line":"            raise self.skipException(\"All hosts are already in other zones, \""},{"line_number":219,"context_line":"                                     \"so can\u0027t add host to aggregate.\")"},{"line_number":220,"context_line":"        host \u003d hosts[0]"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"        self.client.add_host(aggregate[\u0027id\u0027], host\u003dhost)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_5405d366","line":219,"range":{"start_line":219,"start_character":68,"end_line":219,"end_character":71},"updated":"2018-07-31 05:31:59.000000000","message":"good to dump \u0027aggregates\u0027 here to know what all host are on which AZ and agg.","commit_id":"34afeb295a8c99846144abfd78fab6e5a9b4121f"}]}
