)]}'
{"cinder/tests/unit/volume/drivers/dell_emc/powermax/test_powermax_migrate.py":[{"author":{"_account_id":31981,"name":"Tarun Mathur","email":"tarun.mathur@dell.com"},"change_message_id":"912808896c56c32578043ba9e45c9bfd820c732b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2017-2019 Dell Inc. or its subsidiaries."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_1ee0adcc","line":1,"range":{"start_line":1,"start_character":16,"end_line":1,"end_character":25},"updated":"2020-06-30 07:12:01.000000000","message":"Should the licensing period be updated?","commit_id":"55ca0b6f7c391141fbb463be688922d7ef8d84e9"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"2c81d907effc1372b3fba38785e40e5b0325d004","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2017-2019 Dell Inc. or its subsidiaries."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_2c4c5dc6","line":1,"range":{"start_line":1,"start_character":16,"end_line":1,"end_character":25},"in_reply_to":"bf51134e_1ee0adcc","updated":"2020-07-27 08:59:49.000000000","message":"Yes it should, I intended doing this before I left for vacation. Thank you for the reminder.","commit_id":"55ca0b6f7c391141fbb463be688922d7ef8d84e9"},{"author":{"_account_id":31981,"name":"Tarun Mathur","email":"tarun.mathur@dell.com"},"change_message_id":"912808896c56c32578043ba9e45c9bfd820c732b","unresolved":false,"context_lines":[{"line_number":169,"context_line":"        self.assertEqual(\u0027-RE\u0027, component_dict[\u0027RE\u0027])"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def test_get_masking_view_component_dict_compression_disabled(self):"},{"line_number":172,"context_line":"        \"\"\"Test for get_masking_view_component_dict, compression disabled\"\"\""},{"line_number":173,"context_line":"        component_dict \u003d self.migrate.get_masking_view_component_dict("},{"line_number":174,"context_line":"            \u0027OS-myhost-SRP_1-Bronze-DSS_REP-I-CD-MV\u0027, \u0027SRP_1\u0027)"},{"line_number":175,"context_line":"        self.assertEqual(\u0027OS\u0027, component_dict[\u0027prefix\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_9ecb1d49","line":172,"range":{"start_line":172,"start_character":65,"end_line":172,"end_character":73},"updated":"2020-06-30 07:12:01.000000000","message":"Put a period (.) after \u0027disabled\u0027 for the sake of consistency","commit_id":"55ca0b6f7c391141fbb463be688922d7ef8d84e9"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"2c81d907effc1372b3fba38785e40e5b0325d004","unresolved":false,"context_lines":[{"line_number":169,"context_line":"        self.assertEqual(\u0027-RE\u0027, component_dict[\u0027RE\u0027])"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def test_get_masking_view_component_dict_compression_disabled(self):"},{"line_number":172,"context_line":"        \"\"\"Test for get_masking_view_component_dict, compression disabled\"\"\""},{"line_number":173,"context_line":"        component_dict \u003d self.migrate.get_masking_view_component_dict("},{"line_number":174,"context_line":"            \u0027OS-myhost-SRP_1-Bronze-DSS_REP-I-CD-MV\u0027, \u0027SRP_1\u0027)"},{"line_number":175,"context_line":"        self.assertEqual(\u0027OS\u0027, component_dict[\u0027prefix\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_acd50dbc","line":172,"range":{"start_line":172,"start_character":65,"end_line":172,"end_character":73},"in_reply_to":"bf51134e_9ecb1d49","updated":"2020-07-27 08:59:49.000000000","message":"Sure","commit_id":"55ca0b6f7c391141fbb463be688922d7ef8d84e9"},{"author":{"_account_id":31981,"name":"Tarun Mathur","email":"tarun.mathur@dell.com"},"change_message_id":"912808896c56c32578043ba9e45c9bfd820c732b","unresolved":false,"context_lines":[{"line_number":180,"context_line":"        self.assertEqual(\u0027-CD\u0027, component_dict[\u0027CD\u0027])"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    def test_get_masking_view_component_dict_CD_RE(self):"},{"line_number":183,"context_line":"        \"\"\"Test for get_masking_view_component_dict, CD and RE\"\"\""},{"line_number":184,"context_line":"        component_dict \u003d self.migrate.get_masking_view_component_dict("},{"line_number":185,"context_line":"            \u0027OS-myhost-SRP_1-Platinum-OLTP_REP-I-CD-RE-MV\u0027, \u0027SRP_1\u0027)"},{"line_number":186,"context_line":"        self.assertEqual(\u0027OS\u0027, component_dict[\u0027prefix\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_fed8591f","line":183,"updated":"2020-06-30 07:12:01.000000000","message":"(.)","commit_id":"55ca0b6f7c391141fbb463be688922d7ef8d84e9"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"2c81d907effc1372b3fba38785e40e5b0325d004","unresolved":false,"context_lines":[{"line_number":180,"context_line":"        self.assertEqual(\u0027-CD\u0027, component_dict[\u0027CD\u0027])"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    def test_get_masking_view_component_dict_CD_RE(self):"},{"line_number":183,"context_line":"        \"\"\"Test for get_masking_view_component_dict, CD and RE\"\"\""},{"line_number":184,"context_line":"        component_dict \u003d self.migrate.get_masking_view_component_dict("},{"line_number":185,"context_line":"            \u0027OS-myhost-SRP_1-Platinum-OLTP_REP-I-CD-RE-MV\u0027, \u0027SRP_1\u0027)"},{"line_number":186,"context_line":"        self.assertEqual(\u0027OS\u0027, component_dict[\u0027prefix\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_0cda39e8","line":183,"in_reply_to":"bf51134e_fed8591f","updated":"2020-07-27 08:59:49.000000000","message":"Sure","commit_id":"55ca0b6f7c391141fbb463be688922d7ef8d84e9"}],"cinder/volume/drivers/dell_emc/powermax/migrate.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"6ca2fb377f6eaef278bf124e35e2b32b135422a4","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        self.masking \u003d masking.PowerMaxMasking(prtcl, self.rest)"},{"line_number":41,"context_line":"        self.provision \u003d provision.PowerMaxProvision(self.rest)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def is_migrate_candidate(self, array, srp, device_id, volume, connector):"},{"line_number":44,"context_line":"        \"\"\"Check if the volume is a migrate candidate"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        :param array: array serial number"},{"line_number":47,"context_line":"        :param srp: the SRP"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf51134e_d734e8fd","line":44,"range":{"start_line":43,"start_character":3,"end_line":44,"end_character":53},"updated":"2020-06-19 14:51:57.000000000","message":"According to the docstring and method name, it should just check for migration but this mothed actually performs the migration","commit_id":"0c11d29f7a44647a98320520b0025d26f9818109"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"b05397de79c73866900c344adaf9bf2449785a2d","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        self.masking \u003d masking.PowerMaxMasking(prtcl, self.rest)"},{"line_number":41,"context_line":"        self.provision \u003d provision.PowerMaxProvision(self.rest)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def is_migrate_candidate(self, array, srp, device_id, volume, connector):"},{"line_number":44,"context_line":"        \"\"\"Check if the volume is a migrate candidate"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        :param array: array serial number"},{"line_number":47,"context_line":"        :param srp: the SRP"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf51134e_126bf9f0","line":44,"range":{"start_line":43,"start_character":3,"end_line":44,"end_character":53},"in_reply_to":"bf51134e_d734e8fd","updated":"2020-06-22 08:40:50.000000000","message":"Good point.  I will change the name to something more appropriate.","commit_id":"0c11d29f7a44647a98320520b0025d26f9818109"},{"author":{"_account_id":31981,"name":"Tarun Mathur","email":"tarun.mathur@dell.com"},"change_message_id":"912808896c56c32578043ba9e45c9bfd820c732b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2017-2018 Dell Inc. or its subsidiaries."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_7e33a963","line":1,"range":{"start_line":1,"start_character":16,"end_line":1,"end_character":25},"updated":"2020-06-30 07:12:01.000000000","message":"Consider updating","commit_id":"55ca0b6f7c391141fbb463be688922d7ef8d84e9"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"2c81d907effc1372b3fba38785e40e5b0325d004","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2017-2018 Dell Inc. or its subsidiaries."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_ecd6e5c3","line":1,"range":{"start_line":1,"start_character":16,"end_line":1,"end_character":25},"in_reply_to":"bf51134e_7e33a963","updated":"2020-07-27 08:59:49.000000000","message":"Will do","commit_id":"55ca0b6f7c391141fbb463be688922d7ef8d84e9"},{"author":{"_account_id":31981,"name":"Tarun Mathur","email":"tarun.mathur@dell.com"},"change_message_id":"912808896c56c32578043ba9e45c9bfd820c732b","unresolved":false,"context_lines":[{"line_number":69,"context_line":"            return False"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        if len(storage_group_list) \u003c 1 or len(storage_group_list) \u003e 1:"},{"line_number":72,"context_line":"            LOG.warning(\"MIGRATE - The volume %(dev_id)s is in not in one \""},{"line_number":73,"context_line":"                        \"storage group as is expected for migration. \""},{"line_number":74,"context_line":"                        \"The volume is in storage groups %(sg_list)s.\""},{"line_number":75,"context_line":"                        \"Migration will not proceed.\","}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_de43d5ae","line":72,"range":{"start_line":72,"start_character":57,"end_line":72,"end_character":74},"updated":"2020-06-30 07:12:01.000000000","message":"An extra \u0027in\u0027 may need to be removed","commit_id":"55ca0b6f7c391141fbb463be688922d7ef8d84e9"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"2c81d907effc1372b3fba38785e40e5b0325d004","unresolved":false,"context_lines":[{"line_number":69,"context_line":"            return False"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        if len(storage_group_list) \u003c 1 or len(storage_group_list) \u003e 1:"},{"line_number":72,"context_line":"            LOG.warning(\"MIGRATE - The volume %(dev_id)s is in not in one \""},{"line_number":73,"context_line":"                        \"storage group as is expected for migration. \""},{"line_number":74,"context_line":"                        \"The volume is in storage groups %(sg_list)s.\""},{"line_number":75,"context_line":"                        \"Migration will not proceed.\","}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_4ce431ad","line":72,"range":{"start_line":72,"start_character":57,"end_line":72,"end_character":74},"in_reply_to":"bf51134e_de43d5ae","updated":"2020-07-27 08:59:49.000000000","message":"Sure","commit_id":"55ca0b6f7c391141fbb463be688922d7ef8d84e9"},{"author":{"_account_id":31981,"name":"Tarun Mathur","email":"tarun.mathur@dell.com"},"change_message_id":"912808896c56c32578043ba9e45c9bfd820c732b","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        if len(final_masking_view_list) \u003c 1 or len("},{"line_number":192,"context_line":"                final_masking_view_list) \u003e 1:"},{"line_number":193,"context_line":"            exception_message \u003d (_("},{"line_number":194,"context_line":"                \"MIGRATE - The final masking view list has \""},{"line_number":195,"context_line":"                \"%(list_len)d. The list is %(mv_list)s. \""},{"line_number":196,"context_line":"                \"Please contact customer representative.\") % {"},{"line_number":197,"context_line":"                \u0027list_len\u0027: len(final_masking_view_list),"},{"line_number":198,"context_line":"                \u0027sg_list\u0027: final_masking_view_list})"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_9e22fd00","line":195,"range":{"start_line":194,"start_character":27,"end_line":195,"end_character":30},"updated":"2020-06-30 07:12:01.000000000","message":"Not sure it is clear what is wrong here","commit_id":"55ca0b6f7c391141fbb463be688922d7ef8d84e9"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"2c81d907effc1372b3fba38785e40e5b0325d004","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        if len(final_masking_view_list) \u003c 1 or len("},{"line_number":192,"context_line":"                final_masking_view_list) \u003e 1:"},{"line_number":193,"context_line":"            exception_message \u003d (_("},{"line_number":194,"context_line":"                \"MIGRATE - The final masking view list has \""},{"line_number":195,"context_line":"                \"%(list_len)d. The list is %(mv_list)s. \""},{"line_number":196,"context_line":"                \"Please contact customer representative.\") % {"},{"line_number":197,"context_line":"                \u0027list_len\u0027: len(final_masking_view_list),"},{"line_number":198,"context_line":"                \u0027sg_list\u0027: final_masking_view_list})"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_6c99351e","line":195,"range":{"start_line":194,"start_character":27,"end_line":195,"end_character":30},"in_reply_to":"bf51134e_9e22fd00","updated":"2020-07-27 08:59:49.000000000","message":"Sure, I will clarify","commit_id":"55ca0b6f7c391141fbb463be688922d7ef8d84e9"},{"author":{"_account_id":31981,"name":"Tarun Mathur","email":"tarun.mathur@dell.com"},"change_message_id":"912808896c56c32578043ba9e45c9bfd820c732b","unresolved":false,"context_lines":[{"line_number":239,"context_line":"            self, array, masking_view_list, os_host_name):"},{"line_number":240,"context_line":"        \"\"\"Delete the staging masking views"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"        Delete the stating masking views except the masking view"},{"line_number":243,"context_line":"        exposed to the OpenStack compute"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"        :param array: array serial number"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_fe1fb9b4","line":242,"range":{"start_line":242,"start_character":19,"end_line":242,"end_character":26},"updated":"2020-06-30 07:12:01.000000000","message":"sta-g-ing","commit_id":"55ca0b6f7c391141fbb463be688922d7ef8d84e9"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"2c81d907effc1372b3fba38785e40e5b0325d004","unresolved":false,"context_lines":[{"line_number":239,"context_line":"            self, array, masking_view_list, os_host_name):"},{"line_number":240,"context_line":"        \"\"\"Delete the staging masking views"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"        Delete the stating masking views except the masking view"},{"line_number":243,"context_line":"        exposed to the OpenStack compute"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"        :param array: array serial number"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_cc9e8106","line":242,"range":{"start_line":242,"start_character":19,"end_line":242,"end_character":26},"in_reply_to":"bf51134e_fe1fb9b4","updated":"2020-07-27 08:59:49.000000000","message":"Sure","commit_id":"55ca0b6f7c391141fbb463be688922d7ef8d84e9"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"0c4eafc457b6adf3c8a92edac2c4435ac0eced93","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import uuid"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_log import log as logging"},{"line_number":19,"context_line":"import six"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from cinder import exception"},{"line_number":22,"context_line":"from cinder.i18n import _"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_ab37c1e3","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":10},"updated":"2020-07-24 18:44:19.000000000","message":"Best not to use six now that we don\u0027t need py2 support. Just use things like str() instead of six.text_type.","commit_id":"9a1c3532c6e2e5a98ad66a8a09a7503c3f1051ed"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"9ea534dfea60a97fb801fecbd7e85ff023a22a49","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import uuid"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_log import log as logging"},{"line_number":19,"context_line":"import six"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from cinder import exception"},{"line_number":22,"context_line":"from cinder.i18n import _"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_1e56d72a","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":10},"in_reply_to":"9f560f44_ab37c1e3","updated":"2020-07-27 13:29:30.000000000","message":"sure.  I will change.  We use six extensively so I will have a separate review to remove them elsewhere","commit_id":"9a1c3532c6e2e5a98ad66a8a09a7503c3f1051ed"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"0c4eafc457b6adf3c8a92edac2c4435ac0eced93","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from cinder.volume.drivers.dell_emc.powermax import masking"},{"line_number":24,"context_line":"from cinder.volume.drivers.dell_emc.powermax import provision"},{"line_number":25,"context_line":"from cinder.volume.drivers.dell_emc.powermax import utils"},{"line_number":26,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class PowerMaxMigrate(object):"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_603f88d6","line":26,"updated":"2020-07-24 18:44:19.000000000","message":"If you need to do another update for some reason, add a blank line between the imports and the declaration of LOG.","commit_id":"9a1c3532c6e2e5a98ad66a8a09a7503c3f1051ed"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"9ea534dfea60a97fb801fecbd7e85ff023a22a49","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from cinder.volume.drivers.dell_emc.powermax import masking"},{"line_number":24,"context_line":"from cinder.volume.drivers.dell_emc.powermax import provision"},{"line_number":25,"context_line":"from cinder.volume.drivers.dell_emc.powermax import utils"},{"line_number":26,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class PowerMaxMigrate(object):"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_9e3f87d5","line":26,"in_reply_to":"9f560f44_603f88d6","updated":"2020-07-27 13:29:30.000000000","message":"Sure.  Will do","commit_id":"9a1c3532c6e2e5a98ad66a8a09a7503c3f1051ed"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"0c4eafc457b6adf3c8a92edac2c4435ac0eced93","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        # Get the host that OpenStack has volume exposed to (it should only"},{"line_number":83,"context_line":"        # be one host)."},{"line_number":84,"context_line":"        os_host_list \u003d self.get_volume_host_list(volume, connector)"},{"line_number":85,"context_line":"        if len(os_host_list) \u003c 1 or len(os_host_list) \u003e 1:"},{"line_number":86,"context_line":"            LOG.warning(\"MIGRATE - OpenStack has recorded that \""},{"line_number":87,"context_line":"                        \"%(dev_id)s is attached to hosts %(os_hosts)s. \""},{"line_number":88,"context_line":"                        \"Migration will not proceed.\","}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_2b03b10f","line":85,"range":{"start_line":85,"start_character":8,"end_line":85,"end_character":57},"updated":"2020-07-24 18:44:19.000000000","message":"Seems like \"if len(os_host_list) !\u003d 1:\" would be simpler.","commit_id":"9a1c3532c6e2e5a98ad66a8a09a7503c3f1051ed"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"9ea534dfea60a97fb801fecbd7e85ff023a22a49","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        # Get the host that OpenStack has volume exposed to (it should only"},{"line_number":83,"context_line":"        # be one host)."},{"line_number":84,"context_line":"        os_host_list \u003d self.get_volume_host_list(volume, connector)"},{"line_number":85,"context_line":"        if len(os_host_list) \u003c 1 or len(os_host_list) \u003e 1:"},{"line_number":86,"context_line":"            LOG.warning(\"MIGRATE - OpenStack has recorded that \""},{"line_number":87,"context_line":"                        \"%(dev_id)s is attached to hosts %(os_hosts)s. \""},{"line_number":88,"context_line":"                        \"Migration will not proceed.\","}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_fe2323bd","line":85,"range":{"start_line":85,"start_character":8,"end_line":85,"end_character":57},"in_reply_to":"9f560f44_2b03b10f","updated":"2020-07-27 13:29:30.000000000","message":"sure","commit_id":"9a1c3532c6e2e5a98ad66a8a09a7503c3f1051ed"},{"author":{"_account_id":23601,"name":"michael","display_name":"michael-mcaleer","email":"Michael.Mcaleer@dell.com","username":"michael-mcaleer"},"change_message_id":"d227403f658a62622c0f7eb97656c79149152961","unresolved":false,"context_lines":[{"line_number":154,"context_line":"            self._get_mvs_and_sgs_from_volume("},{"line_number":155,"context_line":"                array, device_id))"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        if len(new_storage_group_list) \u003c 1 or len(new_storage_group_list) \u003e 1:"},{"line_number":158,"context_line":"            exception_message \u003d (_("},{"line_number":159,"context_line":"                \"MIGRATE - The current storage group list has %(list_len)d \""},{"line_number":160,"context_line":"                \"members. The list is %(sg_list)s. Will not proceed with \""}],"source_content_type":"text/x-python","patch_set":10,"id":"9f560f44_480a4726","line":157,"updated":"2020-07-28 08:34:44.000000000","message":"Is there a reason why you have went with this if condition in a few places instead of just if len(new_storage_group_list) !\u003d 1? This works fine but I have also seen the more readable !\u003d 1 comparison also in the code.","commit_id":"37b5c5df6f12278cc4866fb3c09f5323f601e394"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"de40f9237ee8f265c47e8ff00d711586276516df","unresolved":false,"context_lines":[{"line_number":154,"context_line":"            self._get_mvs_and_sgs_from_volume("},{"line_number":155,"context_line":"                array, device_id))"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        if len(new_storage_group_list) \u003c 1 or len(new_storage_group_list) \u003e 1:"},{"line_number":158,"context_line":"            exception_message \u003d (_("},{"line_number":159,"context_line":"                \"MIGRATE - The current storage group list has %(list_len)d \""},{"line_number":160,"context_line":"                \"members. The list is %(sg_list)s. Will not proceed with \""}],"source_content_type":"text/x-python","patch_set":10,"id":"9f560f44_70560d2c","line":157,"in_reply_to":"9f560f44_480a4726","updated":"2020-07-28 12:30:00.000000000","message":"Agree. I should have added to my comment in the last rev that it should be changed throughout.","commit_id":"37b5c5df6f12278cc4866fb3c09f5323f601e394"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"ad7ed798d762f9fc9faa33a6ffe4d2be7362f643","unresolved":false,"context_lines":[{"line_number":154,"context_line":"            self._get_mvs_and_sgs_from_volume("},{"line_number":155,"context_line":"                array, device_id))"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        if len(new_storage_group_list) \u003c 1 or len(new_storage_group_list) \u003e 1:"},{"line_number":158,"context_line":"            exception_message \u003d (_("},{"line_number":159,"context_line":"                \"MIGRATE - The current storage group list has %(list_len)d \""},{"line_number":160,"context_line":"                \"members. The list is %(sg_list)s. Will not proceed with \""}],"source_content_type":"text/x-python","patch_set":10,"id":"9f560f44_283ff225","line":157,"in_reply_to":"9f560f44_70560d2c","updated":"2020-07-29 16:17:25.000000000","message":"Will do. I thought I had changed it throughout.","commit_id":"37b5c5df6f12278cc4866fb3c09f5323f601e394"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"6bb3aee8436efe5b8ecdd1747af07685fd0d1fd2","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        if not mv_detail_list:"},{"line_number":69,"context_line":"            return False"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        if len(storage_group_list) \u003c 1 or len(storage_group_list) \u003e 1:"},{"line_number":72,"context_line":"            LOG.warning(\"MIGRATE - The volume %(dev_id)s is not in one \""},{"line_number":73,"context_line":"                        \"storage group as is expected for migration. \""},{"line_number":74,"context_line":"                        \"The volume is in storage groups %(sg_list)s.\""}],"source_content_type":"text/x-python","patch_set":11,"id":"9f560f44_9ceb97da","line":71,"range":{"start_line":71,"start_character":11,"end_line":71,"end_character":69},"updated":"2020-08-03 18:01:23.000000000","message":"len(storage_group_list) !\u003d 1","commit_id":"cfa359aea42363a7a397428bcff9af378d6b1340"}],"releasenotes/notes/powermax-auto-migration-5cc57773c23fef02.yaml":[{"author":{"_account_id":31981,"name":"Tarun Mathur","email":"tarun.mathur@dell.com"},"change_message_id":"912808896c56c32578043ba9e45c9bfd820c732b","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    structure in Ocata and sooner (when SMI-S was supported) to staging"},{"line_number":6,"context_line":"    masking view(s) in Pike and later releases (U4P REST)."},{"line_number":7,"context_line":"    In Ocata, the live migration process shared the storage group,"},{"line_number":8,"context_line":"    containing the volume, among the different compute Nodes. In PIke,"},{"line_number":9,"context_line":"    we changed the masking view structure to facilitate a cleaner live"},{"line_number":10,"context_line":"    migration process where only the volume is migrated and not all the"},{"line_number":11,"context_line":"    other volumes in the storage group. The staging storage group and"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"bf51134e_3e181183","line":8,"range":{"start_line":8,"start_character":65,"end_line":8,"end_character":69},"updated":"2020-06-30 07:12:01.000000000","message":"\u0027i\u0027","commit_id":"55ca0b6f7c391141fbb463be688922d7ef8d84e9"},{"author":{"_account_id":31981,"name":"Tarun Mathur","email":"tarun.mathur@dell.com"},"change_message_id":"912808896c56c32578043ba9e45c9bfd820c732b","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    structure in Ocata and sooner (when SMI-S was supported) to staging"},{"line_number":6,"context_line":"    masking view(s) in Pike and later releases (U4P REST)."},{"line_number":7,"context_line":"    In Ocata, the live migration process shared the storage group,"},{"line_number":8,"context_line":"    containing the volume, among the different compute Nodes. In PIke,"},{"line_number":9,"context_line":"    we changed the masking view structure to facilitate a cleaner live"},{"line_number":10,"context_line":"    migration process where only the volume is migrated and not all the"},{"line_number":11,"context_line":"    other volumes in the storage group. The staging storage group and"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"bf51134e_9e1f9d6f","line":8,"range":{"start_line":8,"start_character":55,"end_line":8,"end_character":60},"updated":"2020-06-30 07:12:01.000000000","message":"\u0027n\u0027","commit_id":"55ca0b6f7c391141fbb463be688922d7ef8d84e9"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"2c81d907effc1372b3fba38785e40e5b0325d004","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    structure in Ocata and sooner (when SMI-S was supported) to staging"},{"line_number":6,"context_line":"    masking view(s) in Pike and later releases (U4P REST)."},{"line_number":7,"context_line":"    In Ocata, the live migration process shared the storage group,"},{"line_number":8,"context_line":"    containing the volume, among the different compute Nodes. In PIke,"},{"line_number":9,"context_line":"    we changed the masking view structure to facilitate a cleaner live"},{"line_number":10,"context_line":"    migration process where only the volume is migrated and not all the"},{"line_number":11,"context_line":"    other volumes in the storage group. The staging storage group and"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"9f560f44_0c8879c4","line":8,"range":{"start_line":8,"start_character":55,"end_line":8,"end_character":60},"in_reply_to":"bf51134e_9e1f9d6f","updated":"2020-07-27 08:59:49.000000000","message":"Thanks, I will change this","commit_id":"55ca0b6f7c391141fbb463be688922d7ef8d84e9"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"0c4eafc457b6adf3c8a92edac2c4435ac0eced93","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The fix moves the legacy shared volume from the masking view"},{"line_number":5,"context_line":"    structure in Ocata and sooner (when SMI-S was supported) to staging"},{"line_number":6,"context_line":"    masking view(s) in Pike and later releases (U4P REST)."},{"line_number":7,"context_line":"    In Ocata, the live migration process shared the storage group,"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9f560f44_2b51f10f","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":17},"updated":"2020-07-24 18:44:19.000000000","message":"Fixes PowerMax driver issue with...","commit_id":"9a1c3532c6e2e5a98ad66a8a09a7503c3f1051ed"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"9ea534dfea60a97fb801fecbd7e85ff023a22a49","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The fix moves the legacy shared volume from the masking view"},{"line_number":5,"context_line":"    structure in Ocata and sooner (when SMI-S was supported) to staging"},{"line_number":6,"context_line":"    masking view(s) in Pike and later releases (U4P REST)."},{"line_number":7,"context_line":"    In Ocata, the live migration process shared the storage group,"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9f560f44_9e182782","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":17},"in_reply_to":"9f560f44_2b51f10f","updated":"2020-07-27 13:29:30.000000000","message":"I will change this.  Thanks","commit_id":"9a1c3532c6e2e5a98ad66a8a09a7503c3f1051ed"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"0c4eafc457b6adf3c8a92edac2c4435ac0eced93","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    structure in Ocata and sooner (when SMI-S was supported) to staging"},{"line_number":6,"context_line":"    masking view(s) in Pike and later releases (U4P REST)."},{"line_number":7,"context_line":"    In Ocata, the live migration process shared the storage group,"},{"line_number":8,"context_line":"    containing the volume, among the different compute Nodes. In PIke,"},{"line_number":9,"context_line":"    we changed the masking view structure to facilitate a cleaner live"},{"line_number":10,"context_line":"    migration process where only the volume is migrated and not all the"},{"line_number":11,"context_line":"    other volumes in the storage group. The staging storage group and"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9f560f44_0b4a2d54","line":8,"range":{"start_line":8,"start_character":65,"end_line":8,"end_character":69},"updated":"2020-07-24 18:44:19.000000000","message":"Pike","commit_id":"9a1c3532c6e2e5a98ad66a8a09a7503c3f1051ed"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"9ea534dfea60a97fb801fecbd7e85ff023a22a49","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    structure in Ocata and sooner (when SMI-S was supported) to staging"},{"line_number":6,"context_line":"    masking view(s) in Pike and later releases (U4P REST)."},{"line_number":7,"context_line":"    In Ocata, the live migration process shared the storage group,"},{"line_number":8,"context_line":"    containing the volume, among the different compute Nodes. In PIke,"},{"line_number":9,"context_line":"    we changed the masking view structure to facilitate a cleaner live"},{"line_number":10,"context_line":"    migration process where only the volume is migrated and not all the"},{"line_number":11,"context_line":"    other volumes in the storage group. The staging storage group and"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9f560f44_3e075b1f","line":8,"range":{"start_line":8,"start_character":65,"end_line":8,"end_character":69},"in_reply_to":"9f560f44_0b4a2d54","updated":"2020-07-27 13:29:30.000000000","message":"Sure","commit_id":"9a1c3532c6e2e5a98ad66a8a09a7503c3f1051ed"},{"author":{"_account_id":23601,"name":"michael","display_name":"michael-mcaleer","email":"Michael.Mcaleer@dell.com","username":"michael-mcaleer"},"change_message_id":"d227403f658a62622c0f7eb97656c79149152961","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    This PowerMax driver fix moves the legacy shared volume from the masking"},{"line_number":5,"context_line":"    view structure in Ocata and sooner (when SMI-S was supported) to staging"},{"line_number":6,"context_line":"    masking view(s) in Pike and later releases (U4P REST)."},{"line_number":7,"context_line":"    In Ocata, the live migration process shared the storage group,"},{"line_number":8,"context_line":"    containing the volume, among the different compute nodes. In Pike,"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"9f560f44_5c5168d8","line":5,"range":{"start_line":5,"start_character":32,"end_line":5,"end_character":38},"updated":"2020-07-28 08:34:44.000000000","message":"Not sure about the clarity of sooner here, I would read sooner as releases after Ocata. Maybe \u0027Ocata and prior releases\u0027 or \u0027Ocata and earlier releases\u0027?","commit_id":"37b5c5df6f12278cc4866fb3c09f5323f601e394"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"ad7ed798d762f9fc9faa33a6ffe4d2be7362f643","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    This PowerMax driver fix moves the legacy shared volume from the masking"},{"line_number":5,"context_line":"    view structure in Ocata and sooner (when SMI-S was supported) to staging"},{"line_number":6,"context_line":"    masking view(s) in Pike and later releases (U4P REST)."},{"line_number":7,"context_line":"    In Ocata, the live migration process shared the storage group,"},{"line_number":8,"context_line":"    containing the volume, among the different compute nodes. In Pike,"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"9f560f44_88171ea4","line":5,"range":{"start_line":5,"start_character":32,"end_line":5,"end_character":38},"in_reply_to":"9f560f44_5c5168d8","updated":"2020-07-29 16:17:25.000000000","message":"Sure","commit_id":"37b5c5df6f12278cc4866fb3c09f5323f601e394"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"6bb3aee8436efe5b8ecdd1747af07685fd0d1fd2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    This PowerMax driver fix moves the legacy shared volume from the masking"},{"line_number":5,"context_line":"    view structure in Ocata and prior releases (when SMI-S was supported) to"},{"line_number":6,"context_line":"    staging masking view(s) in Pike and later releases (U4P REST)."},{"line_number":7,"context_line":"    In Ocata, the live migration process shared the storage group,"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"9f560f44_7c96834e","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":28},"updated":"2020-08-03 18:01:23.000000000","message":"One minor thing if you do an update. The way this is phrased, it assumes the context of viewing it in this patch. Release notes are compiled into a generated list of all merged changes during the cycle, so it loses this context. So rather than saying \"this fix\", it would be better to say something like \"The PowerMax driver moves...\"","commit_id":"cfa359aea42363a7a397428bcff9af378d6b1340"}]}
