)]}'
{"cinder/volume/drivers/kioxia/entities.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0f8b32bdb9af885e2cfd7604358df39105ae44eb","unresolved":true,"context_lines":[{"line_number":58,"context_line":"        self.resID \u003d res_id"},{"line_number":59,"context_line":"        self.status \u003d \"Success\" if status is None else status"},{"line_number":60,"context_line":"        self.description \u003d self.status if description is None else description"},{"line_number":61,"context_line":"        self.path \u003d None if path is None else path"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def __str__(self):"},{"line_number":64,"context_line":"        items \u003d \"\""}],"source_content_type":"text/x-python","patch_set":15,"id":"d05c4885_0d2bb218","line":61,"range":{"start_line":61,"start_character":20,"end_line":61,"end_character":50},"updated":"2021-02-03 05:18:07.000000000","message":"nit: could simplify this to self.path \u003d path","commit_id":"be8b98bfecd9a4f62629c0b957cdf3c0ec2feb85"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"373517a38c54e6d278395031da096628ae69d3a8","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        self.resID \u003d res_id"},{"line_number":59,"context_line":"        self.status \u003d \"Success\" if status is None else status"},{"line_number":60,"context_line":"        self.description \u003d self.status if description is None else description"},{"line_number":61,"context_line":"        self.path \u003d None if path is None else path"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def __str__(self):"},{"line_number":64,"context_line":"        items \u003d \"\""}],"source_content_type":"text/x-python","patch_set":15,"id":"4f08f350_633c9764","line":61,"range":{"start_line":61,"start_character":20,"end_line":61,"end_character":50},"in_reply_to":"d05c4885_0d2bb218","updated":"2021-02-03 06:15:49.000000000","message":"Done","commit_id":"be8b98bfecd9a4f62629c0b957cdf3c0ec2feb85"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0f8b32bdb9af885e2cfd7604358df39105ae44eb","unresolved":true,"context_lines":[{"line_number":150,"context_line":"        self.uuid \u003d uuid"},{"line_number":151,"context_line":"        self.backend \u003d backend"},{"line_number":152,"context_line":"        self.replicaState \u003d replicaState"},{"line_number":153,"context_line":"        # if currentStateTime is not None:"},{"line_number":154,"context_line":"        self.currentStateTime \u003d currentStateTime"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"9675cc56_e82c3f02","line":153,"updated":"2021-02-03 05:18:07.000000000","message":"looks like you\u0027re not using this line","commit_id":"be8b98bfecd9a4f62629c0b957cdf3c0ec2feb85"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"373517a38c54e6d278395031da096628ae69d3a8","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        self.uuid \u003d uuid"},{"line_number":151,"context_line":"        self.backend \u003d backend"},{"line_number":152,"context_line":"        self.replicaState \u003d replicaState"},{"line_number":153,"context_line":"        # if currentStateTime is not None:"},{"line_number":154,"context_line":"        self.currentStateTime \u003d currentStateTime"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"0acff484_52dd3d33","line":153,"in_reply_to":"9675cc56_e82c3f02","updated":"2021-02-03 06:15:49.000000000","message":"Done","commit_id":"be8b98bfecd9a4f62629c0b957cdf3c0ec2feb85"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0f8b32bdb9af885e2cfd7604358df39105ae44eb","unresolved":true,"context_lines":[{"line_number":215,"context_line":"            shareSSDBetweenVolumes\u003dNone):"},{"line_number":216,"context_line":"        self.numReplicas \u003d replicas"},{"line_number":217,"context_line":"        if racks is not None:"},{"line_number":218,"context_line":"            self.racks \u003d racks"},{"line_number":219,"context_line":"        if regions is not None:"},{"line_number":220,"context_line":"            self.regions \u003d regions"},{"line_number":221,"context_line":"        if zones is not None:"}],"source_content_type":"text/x-python","patch_set":15,"id":"ce5b10ba_9cd774ab","line":218,"updated":"2021-02-03 05:18:07.000000000","message":"I don\u0027t know if it matters for your purposes, but this way of initializing the data members is going to leave them undefined for any parameters that are None.","commit_id":"be8b98bfecd9a4f62629c0b957cdf3c0ec2feb85"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"373517a38c54e6d278395031da096628ae69d3a8","unresolved":true,"context_lines":[{"line_number":215,"context_line":"            shareSSDBetweenVolumes\u003dNone):"},{"line_number":216,"context_line":"        self.numReplicas \u003d replicas"},{"line_number":217,"context_line":"        if racks is not None:"},{"line_number":218,"context_line":"            self.racks \u003d racks"},{"line_number":219,"context_line":"        if regions is not None:"},{"line_number":220,"context_line":"            self.regions \u003d regions"},{"line_number":221,"context_line":"        if zones is not None:"}],"source_content_type":"text/x-python","patch_set":15,"id":"76868a2c_dd1213f4","line":218,"in_reply_to":"ce5b10ba_9cd774ab","updated":"2021-02-03 06:15:49.000000000","message":"I believe this is supposed to be like this. We keep a separate repo / project for the rest client, so I will double check and update here if necessary.","commit_id":"be8b98bfecd9a4f62629c0b957cdf3c0ec2feb85"}],"cinder/volume/drivers/kioxia/kumoscale.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1de2bda3a5e0d6ef957766626b0f541233e4c83f","unresolved":true,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"KUMOSCALE_OPTS \u003d ["},{"line_number":29,"context_line":"    cfg.StrOpt(\"url\", help\u003d\"KumoScale provisioner REST API URL\"),"},{"line_number":30,"context_line":"    cfg.StrOpt(\"cafile\", help\u003d\"Cert for provisioner REST API SSL\"),"},{"line_number":31,"context_line":"    cfg.StrOpt(\"token\", help\u003d\"KumoScale Provisioner auth token.\"),"}],"source_content_type":"text/x-python","patch_set":7,"id":"a8ec886b_d2bd044c","line":28,"updated":"2021-01-19 04:10:05.000000000","message":"This is what the generated config file looks like:\nhttps://docs.openstack.org/cinder/latest/configuration/block-storage/samples/cinder.conf.html\n\nIt will make it easier for operators to configure if you namespace your options with \u0027kioxia_\u0027 or some other suitable prefix","commit_id":"fb7bcd90a89e5bddd0509537139854d3a3d0edda"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"832655b72bde6817c996ef60e5d620df151805b2","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"KUMOSCALE_OPTS \u003d ["},{"line_number":29,"context_line":"    cfg.StrOpt(\"url\", help\u003d\"KumoScale provisioner REST API URL\"),"},{"line_number":30,"context_line":"    cfg.StrOpt(\"cafile\", help\u003d\"Cert for provisioner REST API SSL\"),"},{"line_number":31,"context_line":"    cfg.StrOpt(\"token\", help\u003d\"KumoScale Provisioner auth token.\"),"}],"source_content_type":"text/x-python","patch_set":7,"id":"c9d683e8_08781f01","line":28,"in_reply_to":"a8ec886b_d2bd044c","updated":"2021-01-19 14:28:18.000000000","message":"Done","commit_id":"fb7bcd90a89e5bddd0509537139854d3a3d0edda"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1de2bda3a5e0d6ef957766626b0f541233e4c83f","unresolved":true,"context_lines":[{"line_number":338,"context_line":"        if name is None:"},{"line_number":339,"context_line":"            return \"\""},{"line_number":340,"context_line":"        if len(name) \u003e 32:"},{"line_number":341,"context_line":"            name \u003d hashlib.md5().update(name).hexdigest()"},{"line_number":342,"context_line":"        else:"},{"line_number":343,"context_line":"            name \u003d name.replace(\u0027.\u0027, \u0027-\u0027).lower()"},{"line_number":344,"context_line":"        return name"}],"source_content_type":"text/x-python","patch_set":7,"id":"2b411d21_9e11a4d0","line":341,"updated":"2021-01-19 04:10:05.000000000","message":"instead of importing hashlib directly, you should:\n\n  from oslo_utils.secretutils import md5\n\nup top, and here do:\n\n  md5(name.encode(\u0027utf-8\u0027), usedforsecurity\u003dFalse).hexdigest()","commit_id":"fb7bcd90a89e5bddd0509537139854d3a3d0edda"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"832655b72bde6817c996ef60e5d620df151805b2","unresolved":false,"context_lines":[{"line_number":338,"context_line":"        if name is None:"},{"line_number":339,"context_line":"            return \"\""},{"line_number":340,"context_line":"        if len(name) \u003e 32:"},{"line_number":341,"context_line":"            name \u003d hashlib.md5().update(name).hexdigest()"},{"line_number":342,"context_line":"        else:"},{"line_number":343,"context_line":"            name \u003d name.replace(\u0027.\u0027, \u0027-\u0027).lower()"},{"line_number":344,"context_line":"        return name"}],"source_content_type":"text/x-python","patch_set":7,"id":"d8298691_a38d3d03","line":341,"in_reply_to":"2b411d21_9e11a4d0","updated":"2021-01-19 14:28:18.000000000","message":"Done","commit_id":"fb7bcd90a89e5bddd0509537139854d3a3d0edda"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"6aa93d1aa89d9633bc7cf0b47e65c8b79114ec17","unresolved":true,"context_lines":[{"line_number":79,"context_line":"CONF.register_opts(KUMOSCALE_OPTS)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"class KumoScaleBaseVolumeDriver(driver.BaseVD):"},{"line_number":83,"context_line":"    \"\"\"Performs volume management on KumoScale Provisioner.\"\"\""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    SUPPORTED_REST_API_VERSIONS \u003d [\u00271.0\u0027, \u00271.1\u0027]"}],"source_content_type":"text/x-python","patch_set":14,"id":"304b380e_3ac831eb","line":82,"range":{"start_line":82,"start_character":0,"end_line":82,"end_character":47},"updated":"2021-01-29 22:50:11.000000000","message":"This class needs:\n- the @interface.volumedriver decorator\n- a VERSION constant\n- a CI_WIKI_NAME constant\n- version history in the comment block","commit_id":"8e3fbf626051761e2dbd854fce6a3607042322d5"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"1bb0cf157d747c6893f5a3e57d8e5e2ef30c3a38","unresolved":false,"context_lines":[{"line_number":79,"context_line":"CONF.register_opts(KUMOSCALE_OPTS)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"class KumoScaleBaseVolumeDriver(driver.BaseVD):"},{"line_number":83,"context_line":"    \"\"\"Performs volume management on KumoScale Provisioner.\"\"\""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    SUPPORTED_REST_API_VERSIONS \u003d [\u00271.0\u0027, \u00271.1\u0027]"}],"source_content_type":"text/x-python","patch_set":14,"id":"185d07ed_f1d8ba09","line":82,"range":{"start_line":82,"start_character":0,"end_line":82,"end_character":47},"in_reply_to":"304b380e_3ac831eb","updated":"2021-01-30 03:36:40.000000000","message":"Done","commit_id":"8e3fbf626051761e2dbd854fce6a3607042322d5"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"e7418ce3a42dc8b216978912bb832301e9b50a52","unresolved":true,"context_lines":[{"line_number":47,"context_line":"        help\u003d\"Desired bandwidth in B/s per GB.\"),"},{"line_number":48,"context_line":"    cfg.BoolOpt("},{"line_number":49,"context_line":"        \"kioxia_same_rack_allowed\", default\u003dFalse,"},{"line_number":50,"context_line":"        help\u003d\"Can more than one replica be allocated to same rack\"),"},{"line_number":51,"context_line":"    cfg.IntOpt("},{"line_number":52,"context_line":"        \"kioxia_block_size\", default\u003d4096,"},{"line_number":53,"context_line":"        help\u003d\"Volume block size in bytes - 512 or 4096 (Default)\"),"}],"source_content_type":"text/x-python","patch_set":16,"id":"6c32cca2_2d5e51bf","line":50,"range":{"start_line":50,"start_character":55,"end_line":50,"end_character":65},"updated":"2021-02-03 21:28:03.000000000","message":"Nit, some of these end with a \u0027.\u0027, some done.  Would be nice to be consistent and have them all end with a \u0027.\u0027.","commit_id":"be71d9db66c8b7313e27481dd7f3c15b3680ca39"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"35b35e126e29a09b275749aacff50949f994c504","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        help\u003d\"Desired bandwidth in B/s per GB.\"),"},{"line_number":48,"context_line":"    cfg.BoolOpt("},{"line_number":49,"context_line":"        \"kioxia_same_rack_allowed\", default\u003dFalse,"},{"line_number":50,"context_line":"        help\u003d\"Can more than one replica be allocated to same rack\"),"},{"line_number":51,"context_line":"    cfg.IntOpt("},{"line_number":52,"context_line":"        \"kioxia_block_size\", default\u003d4096,"},{"line_number":53,"context_line":"        help\u003d\"Volume block size in bytes - 512 or 4096 (Default)\"),"}],"source_content_type":"text/x-python","patch_set":16,"id":"4d4e4dad_4be6a06e","line":50,"range":{"start_line":50,"start_character":55,"end_line":50,"end_character":65},"in_reply_to":"6c32cca2_2d5e51bf","updated":"2021-02-04 08:00:28.000000000","message":"Done","commit_id":"be71d9db66c8b7313e27481dd7f3c15b3680ca39"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"e7418ce3a42dc8b216978912bb832301e9b50a52","unresolved":true,"context_lines":[{"line_number":62,"context_line":"        help\u003d\"Thin volume reserved capacity allocation percentage\"),"},{"line_number":63,"context_line":"    cfg.IntOpt("},{"line_number":64,"context_line":"        \"kioxia_snap_reserved_space_percentage\", default\u003d0,"},{"line_number":65,"context_line":"        help\u003d\"Percentage of the parent volume for used for log\"),"},{"line_number":66,"context_line":"    cfg.IntOpt("},{"line_number":67,"context_line":"        \"kioxia_snap_vol_reserved_space_percentage\", default\u003d0,"},{"line_number":68,"context_line":"        help\u003d\"Writable snapshot percentage of parent volume used for log\"),"}],"source_content_type":"text/x-python","patch_set":16,"id":"7d1b9e9f_57c72f9d","line":65,"range":{"start_line":65,"start_character":45,"end_line":65,"end_character":60},"updated":"2021-02-03 21:28:03.000000000","message":"to be used for log","commit_id":"be71d9db66c8b7313e27481dd7f3c15b3680ca39"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"35b35e126e29a09b275749aacff50949f994c504","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        help\u003d\"Thin volume reserved capacity allocation percentage\"),"},{"line_number":63,"context_line":"    cfg.IntOpt("},{"line_number":64,"context_line":"        \"kioxia_snap_reserved_space_percentage\", default\u003d0,"},{"line_number":65,"context_line":"        help\u003d\"Percentage of the parent volume for used for log\"),"},{"line_number":66,"context_line":"    cfg.IntOpt("},{"line_number":67,"context_line":"        \"kioxia_snap_vol_reserved_space_percentage\", default\u003d0,"},{"line_number":68,"context_line":"        help\u003d\"Writable snapshot percentage of parent volume used for log\"),"}],"source_content_type":"text/x-python","patch_set":16,"id":"d04e40d8_e488d685","line":65,"range":{"start_line":65,"start_character":45,"end_line":65,"end_character":60},"in_reply_to":"7d1b9e9f_57c72f9d","updated":"2021-02-04 08:00:28.000000000","message":"Done","commit_id":"be71d9db66c8b7313e27481dd7f3c15b3680ca39"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"e7418ce3a42dc8b216978912bb832301e9b50a52","unresolved":true,"context_lines":[{"line_number":68,"context_line":"        help\u003d\"Writable snapshot percentage of parent volume used for log\"),"},{"line_number":69,"context_line":"    cfg.IntOpt("},{"line_number":70,"context_line":"        \"kioxia_max_replica_down_time\", default\u003d0,"},{"line_number":71,"context_line":"        help\u003d\"Replicated volume maxi downtime for replica in minutes\"),"},{"line_number":72,"context_line":"    cfg.BoolOpt("},{"line_number":73,"context_line":"        \"kioxia_span_allowed\", default\u003dTrue, help\u003d\"Allow span - Default True\"),"},{"line_number":74,"context_line":"    cfg.BoolOpt("}],"source_content_type":"text/x-python","patch_set":16,"id":"918dce78_e08f2b1c","line":71,"range":{"start_line":71,"start_character":32,"end_line":71,"end_character":37},"updated":"2021-02-03 21:28:03.000000000","message":"max","commit_id":"be71d9db66c8b7313e27481dd7f3c15b3680ca39"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"35b35e126e29a09b275749aacff50949f994c504","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        help\u003d\"Writable snapshot percentage of parent volume used for log\"),"},{"line_number":69,"context_line":"    cfg.IntOpt("},{"line_number":70,"context_line":"        \"kioxia_max_replica_down_time\", default\u003d0,"},{"line_number":71,"context_line":"        help\u003d\"Replicated volume maxi downtime for replica in minutes\"),"},{"line_number":72,"context_line":"    cfg.BoolOpt("},{"line_number":73,"context_line":"        \"kioxia_span_allowed\", default\u003dTrue, help\u003d\"Allow span - Default True\"),"},{"line_number":74,"context_line":"    cfg.BoolOpt("}],"source_content_type":"text/x-python","patch_set":16,"id":"dec7594e_a187c434","line":71,"range":{"start_line":71,"start_character":32,"end_line":71,"end_character":37},"in_reply_to":"918dce78_e08f2b1c","updated":"2021-02-04 08:00:28.000000000","message":"Done","commit_id":"be71d9db66c8b7313e27481dd7f3c15b3680ca39"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"e7418ce3a42dc8b216978912bb832301e9b50a52","unresolved":true,"context_lines":[{"line_number":166,"context_line":"        try:"},{"line_number":167,"context_line":"            result \u003d self.kumoscale.create_volume(ks_volume)"},{"line_number":168,"context_line":"        except Exception as e:"},{"line_number":169,"context_line":"            msg \u003d \"Volume {} creation exception: {}\".format(volume_name,"},{"line_number":170,"context_line":"                                                            str(e))"},{"line_number":171,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        if result.status !\u003d \u0027Success\u0027:"}],"source_content_type":"text/x-python","patch_set":16,"id":"c66a6c9e_9046d881","line":170,"range":{"start_line":169,"start_character":12,"end_line":170,"end_character":67},"updated":"2021-02-03 21:28:03.000000000","message":"Messages that are going to be seen by the administrator need to be wrapped in _() so that they go through translation.  See rbd driver for examples of how this should be done.\n\nThis will need to be addressed on all the exceptions.","commit_id":"be71d9db66c8b7313e27481dd7f3c15b3680ca39"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"35b35e126e29a09b275749aacff50949f994c504","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        try:"},{"line_number":167,"context_line":"            result \u003d self.kumoscale.create_volume(ks_volume)"},{"line_number":168,"context_line":"        except Exception as e:"},{"line_number":169,"context_line":"            msg \u003d \"Volume {} creation exception: {}\".format(volume_name,"},{"line_number":170,"context_line":"                                                            str(e))"},{"line_number":171,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        if result.status !\u003d \u0027Success\u0027:"}],"source_content_type":"text/x-python","patch_set":16,"id":"10023fff_94ed330e","line":170,"range":{"start_line":169,"start_character":12,"end_line":170,"end_character":67},"in_reply_to":"c66a6c9e_9046d881","updated":"2021-02-04 08:00:28.000000000","message":"Done","commit_id":"be71d9db66c8b7313e27481dd7f3c15b3680ca39"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"e7418ce3a42dc8b216978912bb832301e9b50a52","unresolved":true,"context_lines":[{"line_number":180,"context_line":"        try:"},{"line_number":181,"context_line":"            result \u003d self.kumoscale.delete_volume(volume_uuid)"},{"line_number":182,"context_line":"        except Exception as e:"},{"line_number":183,"context_line":"            msg \u003d \"Volume {} deletion exception: {}\".format(volume_uuid,"},{"line_number":184,"context_line":"                                                            str(e))"},{"line_number":185,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"        if result.status not in (\u0027Success\u0027, \u0027DeviceNotFound\u0027, \u0027NotExists\u0027):"}],"source_content_type":"text/x-python","patch_set":16,"id":"ddf58c1d_7d0d1a7c","line":184,"range":{"start_line":183,"start_character":18,"end_line":184,"end_character":67},"updated":"2021-02-03 21:28:03.000000000","message":"Also note that the preferred format for messages is using the format \u0027message %s\u0027 % variable","commit_id":"be71d9db66c8b7313e27481dd7f3c15b3680ca39"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"35b35e126e29a09b275749aacff50949f994c504","unresolved":false,"context_lines":[{"line_number":180,"context_line":"        try:"},{"line_number":181,"context_line":"            result \u003d self.kumoscale.delete_volume(volume_uuid)"},{"line_number":182,"context_line":"        except Exception as e:"},{"line_number":183,"context_line":"            msg \u003d \"Volume {} deletion exception: {}\".format(volume_uuid,"},{"line_number":184,"context_line":"                                                            str(e))"},{"line_number":185,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"        if result.status not in (\u0027Success\u0027, \u0027DeviceNotFound\u0027, \u0027NotExists\u0027):"}],"source_content_type":"text/x-python","patch_set":16,"id":"f00dd083_c663dead","line":184,"range":{"start_line":183,"start_character":18,"end_line":184,"end_character":67},"in_reply_to":"ddf58c1d_7d0d1a7c","updated":"2021-02-04 08:00:28.000000000","message":"Done","commit_id":"be71d9db66c8b7313e27481dd7f3c15b3680ca39"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"e7418ce3a42dc8b216978912bb832301e9b50a52","unresolved":true,"context_lines":[{"line_number":290,"context_line":"        if result.status \u003d\u003d \"Success\":"},{"line_number":291,"context_line":"            if len(result.prov_entities) \u003d\u003d 0:"},{"line_number":292,"context_line":"                raise exception.VolumeBackendAPIException("},{"line_number":293,"context_line":"                    data\u003d\"Volume %s not found\" % volume_uuid)"},{"line_number":294,"context_line":"            else:"},{"line_number":295,"context_line":"                ks_volume \u003d result.prov_entities[0]"},{"line_number":296,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":16,"id":"240613ea_15095c0e","line":293,"range":{"start_line":293,"start_character":20,"end_line":293,"end_character":60},"updated":"2021-02-03 21:28:03.000000000","message":"This is the preferred format for creating messages.","commit_id":"be71d9db66c8b7313e27481dd7f3c15b3680ca39"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"35b35e126e29a09b275749aacff50949f994c504","unresolved":false,"context_lines":[{"line_number":290,"context_line":"        if result.status \u003d\u003d \"Success\":"},{"line_number":291,"context_line":"            if len(result.prov_entities) \u003d\u003d 0:"},{"line_number":292,"context_line":"                raise exception.VolumeBackendAPIException("},{"line_number":293,"context_line":"                    data\u003d\"Volume %s not found\" % volume_uuid)"},{"line_number":294,"context_line":"            else:"},{"line_number":295,"context_line":"                ks_volume \u003d result.prov_entities[0]"},{"line_number":296,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":16,"id":"f83bcb10_8ffec447","line":293,"range":{"start_line":293,"start_character":20,"end_line":293,"end_character":60},"in_reply_to":"240613ea_15095c0e","updated":"2021-02-04 08:00:28.000000000","message":"Ack","commit_id":"be71d9db66c8b7313e27481dd7f3c15b3680ca39"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"e7418ce3a42dc8b216978912bb832301e9b50a52","unresolved":true,"context_lines":[{"line_number":319,"context_line":"            try:"},{"line_number":320,"context_line":"                result \u003d self.kumoscale.get_backend_by_id(persistent_id)"},{"line_number":321,"context_line":"            except Exception as e:"},{"line_number":322,"context_line":"                msg \u003d \"Backend {} get exception: {}\".format(persistent_id,"},{"line_number":323,"context_line":"                                                            str(e))"},{"line_number":324,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":325,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"c5d7cd4d_04606c1a","line":322,"range":{"start_line":322,"start_character":33,"end_line":322,"end_character":38},"updated":"2021-02-03 21:28:03.000000000","message":"got","commit_id":"be71d9db66c8b7313e27481dd7f3c15b3680ca39"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"35b35e126e29a09b275749aacff50949f994c504","unresolved":false,"context_lines":[{"line_number":319,"context_line":"            try:"},{"line_number":320,"context_line":"                result \u003d self.kumoscale.get_backend_by_id(persistent_id)"},{"line_number":321,"context_line":"            except Exception as e:"},{"line_number":322,"context_line":"                msg \u003d \"Backend {} get exception: {}\".format(persistent_id,"},{"line_number":323,"context_line":"                                                            str(e))"},{"line_number":324,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":325,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"ce20431c_cf33422a","line":322,"range":{"start_line":322,"start_character":33,"end_line":322,"end_character":38},"in_reply_to":"c5d7cd4d_04606c1a","updated":"2021-02-04 08:00:28.000000000","message":"Done","commit_id":"be71d9db66c8b7313e27481dd7f3c15b3680ca39"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c87a0a24a339f39434eb359a31e041e036b65691","unresolved":true,"context_lines":[{"line_number":57,"context_line":"        help\u003d\"Volumes from snapshot writeable or not.\"),"},{"line_number":58,"context_line":"    cfg.StrOpt("},{"line_number":59,"context_line":"        \"kioxia_provisioning_type\", default\u003d\"THICK\","},{"line_number":60,"context_line":"        help\u003d\"Thin or thick volume, Default thick.\"),"},{"line_number":61,"context_line":"    cfg.IntOpt("},{"line_number":62,"context_line":"        \"kioxia_vol_reserved_space_percentage\", default\u003d0,"},{"line_number":63,"context_line":"        help\u003d\"Thin volume reserved capacity allocation percentage.\"),"}],"source_content_type":"text/x-python","patch_set":17,"id":"6e693a6e_80ad7029","line":60,"updated":"2021-02-05 03:14:43.000000000","message":"You can help out your user here by specifying the allowable choices (because it\u0027s not obvious whether the value is case sensitive, and while the way to request thin is probably \u0027THIN\u0027, it would be good to say so).  An example of what you can do is here:\n\nhttps://opendev.org/openstack/cinder/src/commit/ccb6025cd15c913ad521eabae3cde38bfa9d05da/cinder/volume/drivers/lvm.py#L56-L58\n\nand you can search \"Type of LVM\" in the sample config file to see what the generated text looks like:\n\nhttps://docs.openstack.org/cinder/latest/_static/cinder.conf.sample\n\nDo \u0027tox -e genopts\u0027 in your local repo to generate a sample config file in etc/cinder that contains your changes.","commit_id":"98e15cbcd9c324c5dfd52b12f30b1eac37813633"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"e525cd95cf8b16fa24d0a2220f08c3efe75a6d26","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        help\u003d\"Volumes from snapshot writeable or not.\"),"},{"line_number":58,"context_line":"    cfg.StrOpt("},{"line_number":59,"context_line":"        \"kioxia_provisioning_type\", default\u003d\"THICK\","},{"line_number":60,"context_line":"        help\u003d\"Thin or thick volume, Default thick.\"),"},{"line_number":61,"context_line":"    cfg.IntOpt("},{"line_number":62,"context_line":"        \"kioxia_vol_reserved_space_percentage\", default\u003d0,"},{"line_number":63,"context_line":"        help\u003d\"Thin volume reserved capacity allocation percentage.\"),"}],"source_content_type":"text/x-python","patch_set":17,"id":"a88176bf_5f8cbfae","line":60,"in_reply_to":"6e693a6e_80ad7029","updated":"2021-02-05 09:44:44.000000000","message":"Updated the cfg.StrOpt() choices, thank you!\n\nI did `tox -e genopts` - nothing seems to have changed in the repo (I believe what it did for me the first time was generate cinder/opts.py which is already in the change), and I was not able to find any cinder.conf.sample\n\nPlease let me know if I\u0027m missing something here","commit_id":"98e15cbcd9c324c5dfd52b12f30b1eac37813633"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c87a0a24a339f39434eb359a31e041e036b65691","unresolved":true,"context_lines":[{"line_number":168,"context_line":"        try:"},{"line_number":169,"context_line":"            result \u003d self.kumoscale.create_volume(ks_volume)"},{"line_number":170,"context_line":"        except Exception as e:"},{"line_number":171,"context_line":"            msg \u003d _(\"Volume %s creation exception: %s\" % (volume_name, str(e)))"},{"line_number":172,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        if result.status !\u003d \u0027Success\u0027:"}],"source_content_type":"text/x-python","patch_set":17,"id":"38c0a446_98f46efa","line":171,"range":{"start_line":171,"start_character":18,"end_line":171,"end_character":54},"updated":"2021-02-05 03:14:43.000000000","message":"two things:\n1. the _() should only encompass the literal string that will be translated.\n2. use named interpolation when you have more than one variable (in case the translators need to change the order in a translated string)\n\nSo this would be:\n\n  msg \u003d _(\"volume %(volname)s creation exception: %(txt)s\") %\n        {\u0027volname\u0027: volume_name, \u0027txt\u0027: str(e)}\n\nSame thing throughout this file.","commit_id":"98e15cbcd9c324c5dfd52b12f30b1eac37813633"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"e525cd95cf8b16fa24d0a2220f08c3efe75a6d26","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        try:"},{"line_number":169,"context_line":"            result \u003d self.kumoscale.create_volume(ks_volume)"},{"line_number":170,"context_line":"        except Exception as e:"},{"line_number":171,"context_line":"            msg \u003d _(\"Volume %s creation exception: %s\" % (volume_name, str(e)))"},{"line_number":172,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        if result.status !\u003d \u0027Success\u0027:"}],"source_content_type":"text/x-python","patch_set":17,"id":"c964a77b_4a867b75","line":171,"range":{"start_line":171,"start_character":18,"end_line":171,"end_character":54},"in_reply_to":"38c0a446_98f46efa","updated":"2021-02-05 09:44:44.000000000","message":"Done","commit_id":"98e15cbcd9c324c5dfd52b12f30b1eac37813633"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"8f50193c669acc98f6f74637e859953c28577f3b","unresolved":true,"context_lines":[{"line_number":57,"context_line":"        help\u003d\"Volumes from snapshot writeable or not.\"),"},{"line_number":58,"context_line":"    cfg.StrOpt("},{"line_number":59,"context_line":"        \"kioxia_provisioning_type\", default\u003d\"THICK\","},{"line_number":60,"context_line":"        choices\u003d[\u0027THICK\u0027, \u0027THIN\u0027],"},{"line_number":61,"context_line":"        help\u003d\"Thin or thick volume, Default thick.\"),"},{"line_number":62,"context_line":"    cfg.IntOpt("},{"line_number":63,"context_line":"        \"kioxia_vol_reserved_space_percentage\", default\u003d0,"}],"source_content_type":"text/x-python","patch_set":18,"id":"d4a0142c_cd043c9f","line":60,"range":{"start_line":60,"start_character":17,"end_line":60,"end_character":32},"updated":"2021-02-05 15:00:25.000000000","message":"nit: entirely up to you whether you want to change this.  You can make these tuples of (\u0027value\u0027, \u0027descriptive text\u0027) and then the generated config file will explain each option.  Not really needed here because it\u0027s pretty obvious that THICK means thick provisioning, but the downside is that the generated file will look like this:\n\n  # Thin or thick volume, Default thick. (string value)\n  # Possible values:\n  # THICK - \u003cNo description provided\u003e\n  # THIN - \u003cNo description provided\u003e\n  #kioxia_provisioning_type \u003d THICK\n\nwhich gives the reader the impression that you forgot to do something.  (Most of the cinder options look like the above because they were defined before oslo.config had this capability, and no one has gone back to add the descriptions.)\n\nIn any case, using the \u0027choices\u0027 is a good idea because the config tooling will prevent an operator from using an invalid string (or a string with a typo in it).  So up to you whether you want to enhance the documentation.","commit_id":"91597124d9d248498b83bb72a663a60c35f18e9d"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"cbcd895190112e1957f578d140292aff3da56cda","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        help\u003d\"Volumes from snapshot writeable or not.\"),"},{"line_number":58,"context_line":"    cfg.StrOpt("},{"line_number":59,"context_line":"        \"kioxia_provisioning_type\", default\u003d\"THICK\","},{"line_number":60,"context_line":"        choices\u003d[\u0027THICK\u0027, \u0027THIN\u0027],"},{"line_number":61,"context_line":"        help\u003d\"Thin or thick volume, Default thick.\"),"},{"line_number":62,"context_line":"    cfg.IntOpt("},{"line_number":63,"context_line":"        \"kioxia_vol_reserved_space_percentage\", default\u003d0,"}],"source_content_type":"text/x-python","patch_set":18,"id":"a0b520f3_36db97bf","line":60,"range":{"start_line":60,"start_character":17,"end_line":60,"end_character":32},"in_reply_to":"d4a0142c_cd043c9f","updated":"2021-02-05 16:53:45.000000000","message":"Done","commit_id":"91597124d9d248498b83bb72a663a60c35f18e9d"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"8f50193c669acc98f6f74637e859953c28577f3b","unresolved":true,"context_lines":[{"line_number":406,"context_line":"                result.status !\u003d \u0027VolumeNotPublished\u0027):"},{"line_number":407,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dresult.description)"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":"    def get_volume_stats(self, refresh\u003dFalse):"},{"line_number":410,"context_line":"        if refresh:"},{"line_number":411,"context_line":"            self._update_stats()"},{"line_number":412,"context_line":"        return self._stats"},{"line_number":413,"context_line":""},{"line_number":414,"context_line":"    def _update_stats(self):"},{"line_number":415,"context_line":"        data \u003d dict("}],"source_content_type":"text/x-python","patch_set":18,"id":"7e075c99_f23ea2b8","line":412,"range":{"start_line":409,"start_character":0,"end_line":412,"end_character":26},"updated":"2021-02-05 15:00:25.000000000","message":"This is basically the same implementation that\u0027s in the BaseVD [0] (except it handles a case that I think you missed here), so instead of overriding it, just rename the function at line 414 to _update_volume_stats and remove this.\n\n[0] https://opendev.org/openstack/cinder/src/commit/ccb6025cd15c913ad521eabae3cde38bfa9d05da/cinder/volume/driver.py#L630-L638","commit_id":"91597124d9d248498b83bb72a663a60c35f18e9d"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"cbcd895190112e1957f578d140292aff3da56cda","unresolved":false,"context_lines":[{"line_number":406,"context_line":"                result.status !\u003d \u0027VolumeNotPublished\u0027):"},{"line_number":407,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dresult.description)"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":"    def get_volume_stats(self, refresh\u003dFalse):"},{"line_number":410,"context_line":"        if refresh:"},{"line_number":411,"context_line":"            self._update_stats()"},{"line_number":412,"context_line":"        return self._stats"},{"line_number":413,"context_line":""},{"line_number":414,"context_line":"    def _update_stats(self):"},{"line_number":415,"context_line":"        data \u003d dict("}],"source_content_type":"text/x-python","patch_set":18,"id":"ae9d0a7b_b97330c5","line":412,"range":{"start_line":409,"start_character":0,"end_line":412,"end_character":26},"in_reply_to":"7e075c99_f23ea2b8","updated":"2021-02-05 16:53:45.000000000","message":"Done","commit_id":"91597124d9d248498b83bb72a663a60c35f18e9d"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"8f50193c669acc98f6f74637e859953c28577f3b","unresolved":true,"context_lines":[{"line_number":415,"context_line":"        data \u003d dict("},{"line_number":416,"context_line":"            volume_backend_name\u003dself._backend_name,"},{"line_number":417,"context_line":"            vendor_name\u003d\u0027KIOXIA\u0027,"},{"line_number":418,"context_line":"            driver_version\u003d\"3.15\","},{"line_number":419,"context_line":"            storage_protocol\u003d\u0027NVMeOF\u0027,"},{"line_number":420,"context_line":"        )"},{"line_number":421,"context_line":"        data[\u0027consistencygroup_support\u0027] \u003d False"}],"source_content_type":"text/x-python","patch_set":18,"id":"2e102064_f34e3c37","line":418,"range":{"start_line":418,"start_character":27,"end_line":418,"end_character":33},"updated":"2021-02-05 15:00:25.000000000","message":"I think you want self.VERSION here","commit_id":"91597124d9d248498b83bb72a663a60c35f18e9d"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"cbcd895190112e1957f578d140292aff3da56cda","unresolved":false,"context_lines":[{"line_number":415,"context_line":"        data \u003d dict("},{"line_number":416,"context_line":"            volume_backend_name\u003dself._backend_name,"},{"line_number":417,"context_line":"            vendor_name\u003d\u0027KIOXIA\u0027,"},{"line_number":418,"context_line":"            driver_version\u003d\"3.15\","},{"line_number":419,"context_line":"            storage_protocol\u003d\u0027NVMeOF\u0027,"},{"line_number":420,"context_line":"        )"},{"line_number":421,"context_line":"        data[\u0027consistencygroup_support\u0027] \u003d False"}],"source_content_type":"text/x-python","patch_set":18,"id":"99812a77_7513134d","line":418,"range":{"start_line":418,"start_character":27,"end_line":418,"end_character":33},"in_reply_to":"2e102064_f34e3c37","updated":"2021-02-05 16:53:45.000000000","message":"Done","commit_id":"91597124d9d248498b83bb72a663a60c35f18e9d"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"8f50193c669acc98f6f74637e859953c28577f3b","unresolved":true,"context_lines":[{"line_number":420,"context_line":"        )"},{"line_number":421,"context_line":"        data[\u0027consistencygroup_support\u0027] \u003d False"},{"line_number":422,"context_line":"        data[\u0027thin_provisioning_support\u0027] \u003d True"},{"line_number":423,"context_line":"        data[\u0027multiattach\u0027] \u003d False"},{"line_number":424,"context_line":"        tenants \u003d []"},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":18,"id":"15758243_a7aa50ab","line":423,"updated":"2021-02-05 15:00:25.000000000","message":"I suggest setting\n\n  data[\u0027total_capacity_gb\u0027] \u003d \u0027unknown\u0027\n  data[\u0027free_capacity_gb\u0027] \u003d \u0027unknown\u0027\n\nup here, and then if for some reason the if default_tenant fails below, you\u0027ll still report these required fields.","commit_id":"91597124d9d248498b83bb72a663a60c35f18e9d"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"cbcd895190112e1957f578d140292aff3da56cda","unresolved":false,"context_lines":[{"line_number":420,"context_line":"        )"},{"line_number":421,"context_line":"        data[\u0027consistencygroup_support\u0027] \u003d False"},{"line_number":422,"context_line":"        data[\u0027thin_provisioning_support\u0027] \u003d True"},{"line_number":423,"context_line":"        data[\u0027multiattach\u0027] \u003d False"},{"line_number":424,"context_line":"        tenants \u003d []"},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":18,"id":"20e7df71_e9152cb2","line":423,"in_reply_to":"15758243_a7aa50ab","updated":"2021-02-05 16:53:45.000000000","message":"Done","commit_id":"91597124d9d248498b83bb72a663a60c35f18e9d"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"8f50193c669acc98f6f74637e859953c28577f3b","unresolved":true,"context_lines":[{"line_number":424,"context_line":"        tenants \u003d []"},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"        try:"},{"line_number":427,"context_line":"            result \u003d self.kumoscale.get_tenants()"},{"line_number":428,"context_line":"        except Exception as e:"},{"line_number":429,"context_line":"            msg \u003d _(\"Get tenants exception: %s\") % str(e)"},{"line_number":430,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":18,"id":"ac24dcec_51c7242a","line":427,"range":{"start_line":427,"start_character":36,"end_line":427,"end_character":49},"updated":"2021-02-05 15:00:25.000000000","message":"i guess there\u0027s no \"get_tenant_by_id()\" functionality?  Looks like you only want the info for tenant 0.  I guess it doesn\u0027t matter if there are only going to be a few tenants.","commit_id":"91597124d9d248498b83bb72a663a60c35f18e9d"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"cbcd895190112e1957f578d140292aff3da56cda","unresolved":false,"context_lines":[{"line_number":424,"context_line":"        tenants \u003d []"},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"        try:"},{"line_number":427,"context_line":"            result \u003d self.kumoscale.get_tenants()"},{"line_number":428,"context_line":"        except Exception as e:"},{"line_number":429,"context_line":"            msg \u003d _(\"Get tenants exception: %s\") % str(e)"},{"line_number":430,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":18,"id":"c20091ac_037c1a52","line":427,"range":{"start_line":427,"start_character":36,"end_line":427,"end_character":49},"in_reply_to":"ac24dcec_51c7242a","updated":"2021-02-05 16:53:45.000000000","message":"Yes currently tenancy is not fully integrated (in terms of backend storage isolation by project/tenant id) but the backend root tenant (id 0) will give capacity info for the whole storage system.\n\nWe will definitely expand this once tenancy integration is complete on the necessary ends.","commit_id":"91597124d9d248498b83bb72a663a60c35f18e9d"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"8f50193c669acc98f6f74637e859953c28577f3b","unresolved":true,"context_lines":[{"line_number":425,"context_line":""},{"line_number":426,"context_line":"        try:"},{"line_number":427,"context_line":"            result \u003d self.kumoscale.get_tenants()"},{"line_number":428,"context_line":"        except Exception as e:"},{"line_number":429,"context_line":"            msg \u003d _(\"Get tenants exception: %s\") % str(e)"},{"line_number":430,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":431,"context_line":""},{"line_number":432,"context_line":"        if result.status \u003d\u003d \"Success\":"},{"line_number":433,"context_line":"            if len(result.prov_entities) \u003d\u003d 0:"},{"line_number":434,"context_line":"                raise exception.VolumeBackendAPIException(data\u003d_(\"No tenants\"))"},{"line_number":435,"context_line":"            else:"},{"line_number":436,"context_line":"                tenants \u003d result.prov_entities"},{"line_number":437,"context_line":"        else:"},{"line_number":438,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dresult.description)"},{"line_number":439,"context_line":""},{"line_number":440,"context_line":"        default_tenant \u003d None"},{"line_number":441,"context_line":"        for i in range(len(tenants)):"}],"source_content_type":"text/x-python","patch_set":18,"id":"5c092e6b_1d3cebf6","line":438,"range":{"start_line":428,"start_character":0,"end_line":438,"end_character":78},"updated":"2021-02-05 15:00:25.000000000","message":"We can see what other reviewers think, but i don\u0027t think you want to raise here.  Instead, log the exception and continue so that the stats will return.","commit_id":"91597124d9d248498b83bb72a663a60c35f18e9d"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"cbcd895190112e1957f578d140292aff3da56cda","unresolved":false,"context_lines":[{"line_number":425,"context_line":""},{"line_number":426,"context_line":"        try:"},{"line_number":427,"context_line":"            result \u003d self.kumoscale.get_tenants()"},{"line_number":428,"context_line":"        except Exception as e:"},{"line_number":429,"context_line":"            msg \u003d _(\"Get tenants exception: %s\") % str(e)"},{"line_number":430,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":431,"context_line":""},{"line_number":432,"context_line":"        if result.status \u003d\u003d \"Success\":"},{"line_number":433,"context_line":"            if len(result.prov_entities) \u003d\u003d 0:"},{"line_number":434,"context_line":"                raise exception.VolumeBackendAPIException(data\u003d_(\"No tenants\"))"},{"line_number":435,"context_line":"            else:"},{"line_number":436,"context_line":"                tenants \u003d result.prov_entities"},{"line_number":437,"context_line":"        else:"},{"line_number":438,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dresult.description)"},{"line_number":439,"context_line":""},{"line_number":440,"context_line":"        default_tenant \u003d None"},{"line_number":441,"context_line":"        for i in range(len(tenants)):"}],"source_content_type":"text/x-python","patch_set":18,"id":"847bea52_d5a71135","line":438,"range":{"start_line":428,"start_character":0,"end_line":438,"end_character":78},"in_reply_to":"5c092e6b_1d3cebf6","updated":"2021-02-05 16:53:45.000000000","message":"The tenant response is required for the meaningful capacity info, and the root tenant should always exist. With that being said, it can still be beneficial to pass the rest of the information besides capacity, so I am making the change you suggested.\n\nWhen using LOG.exception(_(\"message\")) instead of raising, flake8 said: C312: Log messages should not be translated! - so I removed the _()\nHowever, seems that flake8 does not catch it in other cases, such as: https://opendev.org/openstack/cinder/src/commit/ccb6025cd15c913ad521eabae3cde38bfa9d05da/cinder/volume/drivers/rbd.py#L497-L498\nI dont think this is a big deal, just giving this a quick mention for completeness.","commit_id":"91597124d9d248498b83bb72a663a60c35f18e9d"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"bd7c61f695a6f3185b8f7e1ffc0e85c482f8f45c","unresolved":false,"context_lines":[{"line_number":425,"context_line":""},{"line_number":426,"context_line":"        try:"},{"line_number":427,"context_line":"            result \u003d self.kumoscale.get_tenants()"},{"line_number":428,"context_line":"        except Exception as e:"},{"line_number":429,"context_line":"            msg \u003d _(\"Get tenants exception: %s\") % str(e)"},{"line_number":430,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":431,"context_line":""},{"line_number":432,"context_line":"        if result.status \u003d\u003d \"Success\":"},{"line_number":433,"context_line":"            if len(result.prov_entities) \u003d\u003d 0:"},{"line_number":434,"context_line":"                raise exception.VolumeBackendAPIException(data\u003d_(\"No tenants\"))"},{"line_number":435,"context_line":"            else:"},{"line_number":436,"context_line":"                tenants \u003d result.prov_entities"},{"line_number":437,"context_line":"        else:"},{"line_number":438,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dresult.description)"},{"line_number":439,"context_line":""},{"line_number":440,"context_line":"        default_tenant \u003d None"},{"line_number":441,"context_line":"        for i in range(len(tenants)):"}],"source_content_type":"text/x-python","patch_set":18,"id":"6224d328_bb15feeb","line":438,"range":{"start_line":428,"start_character":0,"end_line":438,"end_character":78},"in_reply_to":"847bea52_d5a71135","updated":"2021-02-05 17:22:10.000000000","message":"Yes, that line you found in the rbd driver bypasses C312!  OpenStack stopped translating log messages a few years ago.  The consensus was that if we stick with English, then when an operator pastes a message into a google search they\u0027ll get more hits.  The exception messages, which tend to bubble up to end users, still get translated.  (Just so you know the reasoning behind this.)","commit_id":"91597124d9d248498b83bb72a663a60c35f18e9d"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"a91fad29bc37bd5240087fac372359b213290b71","unresolved":true,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"@interface.volumedriver"},{"line_number":88,"context_line":"class KumoScaleBaseVolumeDriver(driver.BaseVD):"},{"line_number":89,"context_line":"    \"\"\"Performs volume management on KumoScale Provisioner."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    Version history:"}],"source_content_type":"text/x-python","patch_set":19,"id":"6e204aed_2e1d2ba7","line":88,"updated":"2021-02-05 18:00:23.000000000","message":"Note for a followup patch: I think you\u0027ll want to define your own get_driver_options method (it\u0027s used by cinderlib/EmberCSI) but it\u0027s not called out in the driver interface, so I don\u0027t want to hold up this patch over that.  But make a note of it, you\u0027ll want to do it eventually.  (This isn\u0027t the reason for the -1 on this review.)","commit_id":"b89711d45e1a4551d05cd29e4775382ff8206ce8"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"5905a4d71caf5ca7f7e461004bc3309fb48acb8d","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"@interface.volumedriver"},{"line_number":88,"context_line":"class KumoScaleBaseVolumeDriver(driver.BaseVD):"},{"line_number":89,"context_line":"    \"\"\"Performs volume management on KumoScale Provisioner."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    Version history:"}],"source_content_type":"text/x-python","patch_set":19,"id":"f588f849_ec027793","line":88,"in_reply_to":"6e204aed_2e1d2ba7","updated":"2021-02-06 04:57:42.000000000","message":"Looking at other drivers this looks simple enough so may as well just add it in this patch.","commit_id":"b89711d45e1a4551d05cd29e4775382ff8206ce8"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"a91fad29bc37bd5240087fac372359b213290b71","unresolved":true,"context_lines":[{"line_number":430,"context_line":""},{"line_number":431,"context_line":"        if result and result.status \u003d\u003d \"Success\":"},{"line_number":432,"context_line":"            if len(result.prov_entities) \u003d\u003d 0:"},{"line_number":433,"context_line":"                LOG.exception(\"No kumoscale tenants\")"},{"line_number":434,"context_line":"            else:"},{"line_number":435,"context_line":"                tenants \u003d result.prov_entities"},{"line_number":436,"context_line":"        elif result:"}],"source_content_type":"text/x-python","patch_set":19,"id":"ee44ef93_5422cbad","line":433,"range":{"start_line":433,"start_character":20,"end_line":433,"end_character":29},"updated":"2021-02-05 18:00:23.000000000","message":"Since you have a result, there\u0027s no exception in context, so use a different appropriate log level.","commit_id":"b89711d45e1a4551d05cd29e4775382ff8206ce8"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"5905a4d71caf5ca7f7e461004bc3309fb48acb8d","unresolved":false,"context_lines":[{"line_number":430,"context_line":""},{"line_number":431,"context_line":"        if result and result.status \u003d\u003d \"Success\":"},{"line_number":432,"context_line":"            if len(result.prov_entities) \u003d\u003d 0:"},{"line_number":433,"context_line":"                LOG.exception(\"No kumoscale tenants\")"},{"line_number":434,"context_line":"            else:"},{"line_number":435,"context_line":"                tenants \u003d result.prov_entities"},{"line_number":436,"context_line":"        elif result:"}],"source_content_type":"text/x-python","patch_set":19,"id":"05f3f99d_546252a6","line":433,"range":{"start_line":433,"start_character":20,"end_line":433,"end_character":29},"in_reply_to":"ee44ef93_5422cbad","updated":"2021-02-06 04:57:42.000000000","message":"Done","commit_id":"b89711d45e1a4551d05cd29e4775382ff8206ce8"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"a91fad29bc37bd5240087fac372359b213290b71","unresolved":true,"context_lines":[{"line_number":434,"context_line":"            else:"},{"line_number":435,"context_line":"                tenants \u003d result.prov_entities"},{"line_number":436,"context_line":"        elif result:"},{"line_number":437,"context_line":"            LOG.exception(\"Get tenants API error: %s\", result.description)"},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"        default_tenant \u003d None"},{"line_number":440,"context_line":"        for i in range(len(tenants)):"}],"source_content_type":"text/x-python","patch_set":19,"id":"3ee0b44c_e2e789d9","line":437,"range":{"start_line":437,"start_character":16,"end_line":437,"end_character":25},"updated":"2021-02-05 18:00:23.000000000","message":"Same as line 433","commit_id":"b89711d45e1a4551d05cd29e4775382ff8206ce8"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"5905a4d71caf5ca7f7e461004bc3309fb48acb8d","unresolved":false,"context_lines":[{"line_number":434,"context_line":"            else:"},{"line_number":435,"context_line":"                tenants \u003d result.prov_entities"},{"line_number":436,"context_line":"        elif result:"},{"line_number":437,"context_line":"            LOG.exception(\"Get tenants API error: %s\", result.description)"},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"        default_tenant \u003d None"},{"line_number":440,"context_line":"        for i in range(len(tenants)):"}],"source_content_type":"text/x-python","patch_set":19,"id":"1875648e_cf46118d","line":437,"range":{"start_line":437,"start_character":16,"end_line":437,"end_character":25},"in_reply_to":"3ee0b44c_e2e789d9","updated":"2021-02-06 04:57:42.000000000","message":"Done","commit_id":"b89711d45e1a4551d05cd29e4775382ff8206ce8"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"a91fad29bc37bd5240087fac372359b213290b71","unresolved":true,"context_lines":[{"line_number":437,"context_line":"            LOG.exception(\"Get tenants API error: %s\", result.description)"},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"        default_tenant \u003d None"},{"line_number":440,"context_line":"        for i in range(len(tenants)):"},{"line_number":441,"context_line":"            if tenants[i].tenantId \u003d\u003d \"0\":"},{"line_number":442,"context_line":"                default_tenant \u003d tenants[i]"},{"line_number":443,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":19,"id":"21e036e8_eaf087eb","line":440,"range":{"start_line":440,"start_character":27,"end_line":440,"end_character":34},"updated":"2021-02-05 18:00:23.000000000","message":"If line 426 raises, you\u0027ll get a NameError here.  There are a few things you could do, but it might be good to re-think the logic in lines 431-450, since it\u0027s from the \"before times\" when you were raising when you hit problems, and now the method is going to complete.","commit_id":"b89711d45e1a4551d05cd29e4775382ff8206ce8"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"5905a4d71caf5ca7f7e461004bc3309fb48acb8d","unresolved":true,"context_lines":[{"line_number":437,"context_line":"            LOG.exception(\"Get tenants API error: %s\", result.description)"},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"        default_tenant \u003d None"},{"line_number":440,"context_line":"        for i in range(len(tenants)):"},{"line_number":441,"context_line":"            if tenants[i].tenantId \u003d\u003d \"0\":"},{"line_number":442,"context_line":"                default_tenant \u003d tenants[i]"},{"line_number":443,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":19,"id":"6d1fca81_0186053e","line":440,"range":{"start_line":440,"start_character":27,"end_line":440,"end_character":34},"in_reply_to":"21e036e8_eaf087eb","updated":"2021-02-06 04:57:42.000000000","message":"Line 422 does tenants \u003d [] so i think this should be fine. But please let me know if it is still better to handle this more explicitly.\n\nWe also have unit tests that for the cases of kumoscale.get_tenants() raising or returning a failed response, check that _update_volume_stats properly returns the expected data.","commit_id":"b89711d45e1a4551d05cd29e4775382ff8206ce8"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c11481b0490f99efe01c932f7de495eeb481574a","unresolved":true,"context_lines":[{"line_number":437,"context_line":"            LOG.exception(\"Get tenants API error: %s\", result.description)"},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"        default_tenant \u003d None"},{"line_number":440,"context_line":"        for i in range(len(tenants)):"},{"line_number":441,"context_line":"            if tenants[i].tenantId \u003d\u003d \"0\":"},{"line_number":442,"context_line":"                default_tenant \u003d tenants[i]"},{"line_number":443,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":19,"id":"bbebe714_adced653","line":440,"range":{"start_line":440,"start_character":27,"end_line":440,"end_character":34},"in_reply_to":"6d1fca81_0186053e","updated":"2021-02-07 22:50:40.000000000","message":"I missed line 422.  The way you have it is fine.","commit_id":"b89711d45e1a4551d05cd29e4775382ff8206ce8"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c11481b0490f99efe01c932f7de495eeb481574a","unresolved":true,"context_lines":[{"line_number":425,"context_line":"        data[\u0027multiattach\u0027] \u003d False"},{"line_number":426,"context_line":""},{"line_number":427,"context_line":"        result \u003d None"},{"line_number":428,"context_line":"        tenants \u003d []"},{"line_number":429,"context_line":"        try:"},{"line_number":430,"context_line":"            result \u003d self.kumoscale.get_tenants()"},{"line_number":431,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":20,"id":"e9812781_ad592327","line":428,"updated":"2021-02-07 22:50:40.000000000","message":"This makes it harder for me to miss!","commit_id":"4d10ea76033a63445e0b95cc396c62b7d4d6b834"}],"cinder/volume/drivers/kioxia/rest_client.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1de2bda3a5e0d6ef957766626b0f541233e4c83f","unresolved":true,"context_lines":[{"line_number":314,"context_line":"        if result is not None:"},{"line_number":315,"context_line":"            if result.data is not None:"},{"line_number":316,"context_line":"                if \"Status 401\" in str(result.data):"},{"line_number":317,"context_line":"                    print(\"You do not have access rights for this operations\")  # noqa"},{"line_number":318,"context_line":"                    ClassBuilder()"},{"line_number":319,"context_line":"                    return entities.ProvisionerResponse("},{"line_number":320,"context_line":"                        None, None, \"Bad credentials\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"487e87ad_031f8c29","line":317,"range":{"start_line":317,"start_character":66,"end_line":317,"end_character":76},"updated":"2021-01-19 04:10:05.000000000","message":"operation","commit_id":"fb7bcd90a89e5bddd0509537139854d3a3d0edda"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"832655b72bde6817c996ef60e5d620df151805b2","unresolved":false,"context_lines":[{"line_number":314,"context_line":"        if result is not None:"},{"line_number":315,"context_line":"            if result.data is not None:"},{"line_number":316,"context_line":"                if \"Status 401\" in str(result.data):"},{"line_number":317,"context_line":"                    print(\"You do not have access rights for this operations\")  # noqa"},{"line_number":318,"context_line":"                    ClassBuilder()"},{"line_number":319,"context_line":"                    return entities.ProvisionerResponse("},{"line_number":320,"context_line":"                        None, None, \"Bad credentials\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"5ec5fbdd_d349811a","line":317,"range":{"start_line":317,"start_character":66,"end_line":317,"end_character":76},"in_reply_to":"487e87ad_031f8c29","updated":"2021-01-19 14:28:18.000000000","message":"Done","commit_id":"fb7bcd90a89e5bddd0509537139854d3a3d0edda"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0f8b32bdb9af885e2cfd7604358df39105ae44eb","unresolved":true,"context_lines":[{"line_number":188,"context_line":""},{"line_number":189,"context_line":"class ProvisionerPutVisitor(ProvisionerVisitor):"},{"line_number":190,"context_line":"    #"},{"line_number":191,"context_line":"    # Provisioner Putt Visitor"},{"line_number":192,"context_line":"    #"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    def __init__(self, http, command_str, json_body):"}],"source_content_type":"text/x-python","patch_set":15,"id":"f318c2c8_9d25103f","line":191,"range":{"start_line":191,"start_character":18,"end_line":191,"end_character":22},"updated":"2021-02-03 05:18:07.000000000","message":"Put","commit_id":"be8b98bfecd9a4f62629c0b957cdf3c0ec2feb85"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"373517a38c54e6d278395031da096628ae69d3a8","unresolved":false,"context_lines":[{"line_number":188,"context_line":""},{"line_number":189,"context_line":"class ProvisionerPutVisitor(ProvisionerVisitor):"},{"line_number":190,"context_line":"    #"},{"line_number":191,"context_line":"    # Provisioner Putt Visitor"},{"line_number":192,"context_line":"    #"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    def __init__(self, http, command_str, json_body):"}],"source_content_type":"text/x-python","patch_set":15,"id":"bcf836f3_3290970a","line":191,"range":{"start_line":191,"start_character":18,"end_line":191,"end_character":22},"in_reply_to":"f318c2c8_9d25103f","updated":"2021-02-03 06:15:49.000000000","message":"Done","commit_id":"be8b98bfecd9a4f62629c0b957cdf3c0ec2feb85"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0f8b32bdb9af885e2cfd7604358df39105ae44eb","unresolved":true,"context_lines":[{"line_number":316,"context_line":"        if result is not None:"},{"line_number":317,"context_line":"            if result.data is not None:"},{"line_number":318,"context_line":"                if \"Status 401\" in str(result.data):"},{"line_number":319,"context_line":"                    print(\"You do not have access rights for this operation\")  # noqa"},{"line_number":320,"context_line":"                    ClassBuilder()"},{"line_number":321,"context_line":"                    return entities.ProvisionerResponse("},{"line_number":322,"context_line":"                        None, None, \"Bad credentials\")"}],"source_content_type":"text/x-python","patch_set":15,"id":"0b106d8e_7c7c171e","line":319,"range":{"start_line":319,"start_character":20,"end_line":319,"end_character":25},"updated":"2021-02-03 05:18:07.000000000","message":"where are these print statements going?","commit_id":"be8b98bfecd9a4f62629c0b957cdf3c0ec2feb85"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"373517a38c54e6d278395031da096628ae69d3a8","unresolved":false,"context_lines":[{"line_number":316,"context_line":"        if result is not None:"},{"line_number":317,"context_line":"            if result.data is not None:"},{"line_number":318,"context_line":"                if \"Status 401\" in str(result.data):"},{"line_number":319,"context_line":"                    print(\"You do not have access rights for this operation\")  # noqa"},{"line_number":320,"context_line":"                    ClassBuilder()"},{"line_number":321,"context_line":"                    return entities.ProvisionerResponse("},{"line_number":322,"context_line":"                        None, None, \"Bad credentials\")"}],"source_content_type":"text/x-python","patch_set":15,"id":"1743034a_bc8302e3","line":319,"range":{"start_line":319,"start_character":20,"end_line":319,"end_character":25},"in_reply_to":"0b106d8e_7c7c171e","updated":"2021-02-03 06:15:49.000000000","message":"Good catch, I will remove them, returning the response description should be enough","commit_id":"be8b98bfecd9a4f62629c0b957cdf3c0ec2feb85"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0f8b32bdb9af885e2cfd7604358df39105ae44eb","unresolved":true,"context_lines":[{"line_number":328,"context_line":"                    return entities.ProvisionerResponse([], None, \"Success\")"},{"line_number":329,"context_line":"                try:"},{"line_number":330,"context_line":"                    result_data \u003d json.loads(result.data)"},{"line_number":331,"context_line":"                    if \u0027status\u0027 in result_data and \\"},{"line_number":332,"context_line":"                            result_data[\u0027status\u0027] !\u003d \"Success\":"},{"line_number":333,"context_line":"                        return entities.ProvisionerResponse("},{"line_number":334,"context_line":"                            result_data, None, result_data[\u0027status\u0027],"}],"source_content_type":"text/x-python","patch_set":15,"id":"632b5af2_cef9f43c","line":331,"range":{"start_line":331,"start_character":51,"end_line":331,"end_character":52},"updated":"2021-02-03 05:18:07.000000000","message":"we try to avoid using the line continuation char unless absolutely necessary.  you can put parentheses around the conjunction and then it\u0027s OK to split it across lines.","commit_id":"be8b98bfecd9a4f62629c0b957cdf3c0ec2feb85"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"373517a38c54e6d278395031da096628ae69d3a8","unresolved":false,"context_lines":[{"line_number":328,"context_line":"                    return entities.ProvisionerResponse([], None, \"Success\")"},{"line_number":329,"context_line":"                try:"},{"line_number":330,"context_line":"                    result_data \u003d json.loads(result.data)"},{"line_number":331,"context_line":"                    if \u0027status\u0027 in result_data and \\"},{"line_number":332,"context_line":"                            result_data[\u0027status\u0027] !\u003d \"Success\":"},{"line_number":333,"context_line":"                        return entities.ProvisionerResponse("},{"line_number":334,"context_line":"                            result_data, None, result_data[\u0027status\u0027],"}],"source_content_type":"text/x-python","patch_set":15,"id":"2f87cf5c_98a3a35f","line":331,"range":{"start_line":331,"start_character":51,"end_line":331,"end_character":52},"in_reply_to":"632b5af2_cef9f43c","updated":"2021-02-03 06:15:49.000000000","message":"Done","commit_id":"be8b98bfecd9a4f62629c0b957cdf3c0ec2feb85"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0f8b32bdb9af885e2cfd7604358df39105ae44eb","unresolved":true,"context_lines":[{"line_number":340,"context_line":"        return entities.ProvisionerResponse("},{"line_number":341,"context_line":"            None,"},{"line_number":342,"context_line":"            None,"},{"line_number":343,"context_line":"            \"Provisioner Coommunication Error\","},{"line_number":344,"context_line":"            \"Provisioner Communication Error\")"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"    # Call to switch last successful connected ip"}],"source_content_type":"text/x-python","patch_set":15,"id":"4471ab84_79568a0d","line":343,"range":{"start_line":343,"start_character":25,"end_line":343,"end_character":39},"updated":"2021-02-03 05:18:07.000000000","message":"are you spelling it like this on purpose?","commit_id":"be8b98bfecd9a4f62629c0b957cdf3c0ec2feb85"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"373517a38c54e6d278395031da096628ae69d3a8","unresolved":false,"context_lines":[{"line_number":340,"context_line":"        return entities.ProvisionerResponse("},{"line_number":341,"context_line":"            None,"},{"line_number":342,"context_line":"            None,"},{"line_number":343,"context_line":"            \"Provisioner Coommunication Error\","},{"line_number":344,"context_line":"            \"Provisioner Communication Error\")"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"    # Call to switch last successful connected ip"}],"source_content_type":"text/x-python","patch_set":15,"id":"8cd6460d_2559f4fe","line":343,"range":{"start_line":343,"start_character":25,"end_line":343,"end_character":39},"in_reply_to":"4471ab84_79568a0d","updated":"2021-02-03 06:15:49.000000000","message":"I truely apologize for the spelling / readability issues especially with this library (which is separately maintained,) we will keep focusing on bringing readability to a higher standard, and these comments are super helpful! Thank you!","commit_id":"be8b98bfecd9a4f62629c0b957cdf3c0ec2feb85"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0f8b32bdb9af885e2cfd7604358df39105ae44eb","unresolved":true,"context_lines":[{"line_number":397,"context_line":"        # @returns: Provisioner response data contain Provisioner information"},{"line_number":398,"context_line":"        #"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":"        if test_module is not None and test_module \u003d\u003d \"get_info\":"},{"line_number":401,"context_line":"            return entities.ProvisionerResponse("},{"line_number":402,"context_line":"                None, None, \"UnitTestError\", \"Unit Test Error\")"},{"line_number":403,"context_line":"        result_response \u003d self.provisioner_get_request(\u0027info\u0027)"}],"source_content_type":"text/x-python","patch_set":15,"id":"e2e40274_91ea092b","line":400,"range":{"start_line":400,"start_character":8,"end_line":400,"end_character":65},"updated":"2021-02-03 05:18:07.000000000","message":"I think you could just check\n\n  if test_module \u003d\u003d \u0027get_info\u0027:\n\nhere and throughout the rest of the file","commit_id":"be8b98bfecd9a4f62629c0b957cdf3c0ec2feb85"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"373517a38c54e6d278395031da096628ae69d3a8","unresolved":false,"context_lines":[{"line_number":397,"context_line":"        # @returns: Provisioner response data contain Provisioner information"},{"line_number":398,"context_line":"        #"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":"        if test_module is not None and test_module \u003d\u003d \"get_info\":"},{"line_number":401,"context_line":"            return entities.ProvisionerResponse("},{"line_number":402,"context_line":"                None, None, \"UnitTestError\", \"Unit Test Error\")"},{"line_number":403,"context_line":"        result_response \u003d self.provisioner_get_request(\u0027info\u0027)"}],"source_content_type":"text/x-python","patch_set":15,"id":"75261a16_c0dae409","line":400,"range":{"start_line":400,"start_character":8,"end_line":400,"end_character":65},"in_reply_to":"e2e40274_91ea092b","updated":"2021-02-03 06:15:49.000000000","message":"Done","commit_id":"be8b98bfecd9a4f62629c0b957cdf3c0ec2feb85"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"e7418ce3a42dc8b216978912bb832301e9b50a52","unresolved":true,"context_lines":[{"line_number":24,"context_line":"urllib3.disable_warnings()"},{"line_number":25,"context_line":"RUN_COMMAND_TRIALS \u003d 20"},{"line_number":26,"context_line":"RUN_COMMAND_SLEEP \u003d 0.5"},{"line_number":27,"context_line":"pem_file \u003d \u0027./ssdtoolbox.pem\u0027"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class ClassBuilder(object):"}],"source_content_type":"text/x-python","patch_set":16,"id":"19e59a7b_33cb9746","line":27,"range":{"start_line":27,"start_character":0,"end_line":27,"end_character":29},"updated":"2021-02-03 21:28:03.000000000","message":"Statically defined things like this raise a flag.  There is nothing in the documentation for the driver about it.  How does the end user know to have this there?","commit_id":"be71d9db66c8b7313e27481dd7f3c15b3680ca39"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"35b35e126e29a09b275749aacff50949f994c504","unresolved":false,"context_lines":[{"line_number":24,"context_line":"urllib3.disable_warnings()"},{"line_number":25,"context_line":"RUN_COMMAND_TRIALS \u003d 20"},{"line_number":26,"context_line":"RUN_COMMAND_SLEEP \u003d 0.5"},{"line_number":27,"context_line":"pem_file \u003d \u0027./ssdtoolbox.pem\u0027"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class ClassBuilder(object):"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf59c281_65f0919d","line":27,"range":{"start_line":27,"start_character":0,"end_line":27,"end_character":29},"in_reply_to":"19e59a7b_33cb9746","updated":"2021-02-04 08:00:28.000000000","message":"Good catch, I am removing this, thank you! this is a leftover from previous code, but it is not being used, since in the driver the cert file location is read from cinder config (and error should be raised if it\u0027s missing.)","commit_id":"be71d9db66c8b7313e27481dd7f3c15b3680ca39"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"e7418ce3a42dc8b216978912bb832301e9b50a52","unresolved":true,"context_lines":[{"line_number":304,"context_line":"                    if ip not in KioxiaProvisioner.mgmt_ips:"},{"line_number":305,"context_line":"                        KioxiaProvisioner.mgmt_ips.append(ip)"},{"line_number":306,"context_line":"            except Exception as e:"},{"line_number":307,"context_line":"                # noqa"},{"line_number":308,"context_line":"                print(\"KioxiaProvisioner Exception\" + e.message)  # noqa"},{"line_number":309,"context_line":"                return"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"    def set_token(self, user, token):"},{"line_number":312,"context_line":"        self.user \u003d user"}],"source_content_type":"text/x-python","patch_set":16,"id":"4fd3c9a1_3753b374","line":309,"range":{"start_line":307,"start_character":0,"end_line":309,"end_character":22},"updated":"2021-02-03 21:28:03.000000000","message":"Why is this not being reported like other exceptions?","commit_id":"be71d9db66c8b7313e27481dd7f3c15b3680ca39"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"35b35e126e29a09b275749aacff50949f994c504","unresolved":false,"context_lines":[{"line_number":304,"context_line":"                    if ip not in KioxiaProvisioner.mgmt_ips:"},{"line_number":305,"context_line":"                        KioxiaProvisioner.mgmt_ips.append(ip)"},{"line_number":306,"context_line":"            except Exception as e:"},{"line_number":307,"context_line":"                # noqa"},{"line_number":308,"context_line":"                print(\"KioxiaProvisioner Exception\" + e.message)  # noqa"},{"line_number":309,"context_line":"                return"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"    def set_token(self, user, token):"},{"line_number":312,"context_line":"        self.user \u003d user"}],"source_content_type":"text/x-python","patch_set":16,"id":"0e6e24b5_6962fb9d","line":309,"range":{"start_line":307,"start_character":0,"end_line":309,"end_character":22},"in_reply_to":"4fd3c9a1_3753b374","updated":"2021-02-04 08:00:28.000000000","message":"Good question, this is more leftover legacy code... Removing this whole 299-309 block. (our rest client libraries are a separately maintained project / repo, we are doing our best to align them with OpenStack standards, and these comments are super helpful! Thank you!)","commit_id":"be71d9db66c8b7313e27481dd7f3c15b3680ca39"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"e7418ce3a42dc8b216978912bb832301e9b50a52","unresolved":true,"context_lines":[{"line_number":736,"context_line":"        # @returns: Provisioner response data contain List of Volumes"},{"line_number":737,"context_line":"        #"},{"line_number":738,"context_line":""},{"line_number":739,"context_line":"        if test_module \u003d\u003d \"get_snapshots_by_vol\":"},{"line_number":740,"context_line":"            return entities.ProvisionerResponse("},{"line_number":741,"context_line":"                None, None, \"UnitTestError\", \"Unit Test Error\")"},{"line_number":742,"context_line":"        tenant_id \u003d \"\""},{"line_number":743,"context_line":"        if tenant_uuid is not None:"},{"line_number":744,"context_line":"            tenant_id \u003d tenant_uuid + \"/\""}],"source_content_type":"text/x-python","patch_set":16,"id":"7cc88f73_a7be9845","line":741,"range":{"start_line":739,"start_character":0,"end_line":741,"end_character":63},"updated":"2021-02-03 21:28:03.000000000","message":"I am not sure why this is being done in each function?  Never seen anything like this before and it is odd looking.\n\nNeed help understanding the reason for this approach and how it is supposed to work.","commit_id":"be71d9db66c8b7313e27481dd7f3c15b3680ca39"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"8752838274e5fbd2529409dc2f7d1b38309280c9","unresolved":true,"context_lines":[{"line_number":736,"context_line":"        # @returns: Provisioner response data contain List of Volumes"},{"line_number":737,"context_line":"        #"},{"line_number":738,"context_line":""},{"line_number":739,"context_line":"        if test_module \u003d\u003d \"get_snapshots_by_vol\":"},{"line_number":740,"context_line":"            return entities.ProvisionerResponse("},{"line_number":741,"context_line":"                None, None, \"UnitTestError\", \"Unit Test Error\")"},{"line_number":742,"context_line":"        tenant_id \u003d \"\""},{"line_number":743,"context_line":"        if tenant_uuid is not None:"},{"line_number":744,"context_line":"            tenant_id \u003d tenant_uuid + \"/\""}],"source_content_type":"text/x-python","patch_set":16,"id":"e0429b30_87cb368a","line":741,"range":{"start_line":739,"start_character":0,"end_line":741,"end_character":63},"in_reply_to":"7cc88f73_a7be9845","updated":"2021-02-04 04:40:45.000000000","message":"I have the same question.  The driver tests are using mocks for the rest client calls, so it\u0027s not clear what the test_module parameter is for.  It would be helpful to understand the motivation between the architecture here.","commit_id":"be71d9db66c8b7313e27481dd7f3c15b3680ca39"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"35b35e126e29a09b275749aacff50949f994c504","unresolved":false,"context_lines":[{"line_number":736,"context_line":"        # @returns: Provisioner response data contain List of Volumes"},{"line_number":737,"context_line":"        #"},{"line_number":738,"context_line":""},{"line_number":739,"context_line":"        if test_module \u003d\u003d \"get_snapshots_by_vol\":"},{"line_number":740,"context_line":"            return entities.ProvisionerResponse("},{"line_number":741,"context_line":"                None, None, \"UnitTestError\", \"Unit Test Error\")"},{"line_number":742,"context_line":"        tenant_id \u003d \"\""},{"line_number":743,"context_line":"        if tenant_uuid is not None:"},{"line_number":744,"context_line":"            tenant_id \u003d tenant_uuid + \"/\""}],"source_content_type":"text/x-python","patch_set":16,"id":"e4df291f_644a33db","line":741,"range":{"start_line":739,"start_character":0,"end_line":741,"end_character":63},"in_reply_to":"e0429b30_87cb368a","updated":"2021-02-04 08:00:28.000000000","message":"To be honest, I never seen anything like this either and this is in fact a questionable approach / design... This is leftover legacy code from the rest client repo which kioxia maintains in a separate project. I am removing all this now... Apologies about this.","commit_id":"be71d9db66c8b7313e27481dd7f3c15b3680ca39"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"e7418ce3a42dc8b216978912bb832301e9b50a52","unresolved":true,"context_lines":[{"line_number":821,"context_line":"            return entities.ProvisionerResponse("},{"line_number":822,"context_line":"                None, None, \"UnitTestError\", \"Unit Test Error\")"},{"line_number":823,"context_line":"        result_response \u003d self.provisioner_delete_request(\u0027reset_inventory\u0027)"},{"line_number":824,"context_line":"        # result_response \u003d self.get_non_implemented()"},{"line_number":825,"context_line":"        return result_response"},{"line_number":826,"context_line":""},{"line_number":827,"context_line":"    def get_syslogs(self, test_module\u003dNone):"}],"source_content_type":"text/x-python","patch_set":16,"id":"0e0f5c22_617a32d7","line":824,"range":{"start_line":824,"start_character":0,"end_line":824,"end_character":54},"updated":"2021-02-03 21:28:03.000000000","message":"Need to remove commented out code.","commit_id":"be71d9db66c8b7313e27481dd7f3c15b3680ca39"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"35b35e126e29a09b275749aacff50949f994c504","unresolved":false,"context_lines":[{"line_number":821,"context_line":"            return entities.ProvisionerResponse("},{"line_number":822,"context_line":"                None, None, \"UnitTestError\", \"Unit Test Error\")"},{"line_number":823,"context_line":"        result_response \u003d self.provisioner_delete_request(\u0027reset_inventory\u0027)"},{"line_number":824,"context_line":"        # result_response \u003d self.get_non_implemented()"},{"line_number":825,"context_line":"        return result_response"},{"line_number":826,"context_line":""},{"line_number":827,"context_line":"    def get_syslogs(self, test_module\u003dNone):"}],"source_content_type":"text/x-python","patch_set":16,"id":"b6a986e0_11ac39f8","line":824,"range":{"start_line":824,"start_character":0,"end_line":824,"end_character":54},"in_reply_to":"0e0f5c22_617a32d7","updated":"2021-02-04 08:00:28.000000000","message":"Done","commit_id":"be71d9db66c8b7313e27481dd7f3c15b3680ca39"}],"doc/source/configuration/block-storage/drivers/kioxia-kumoscale-driver.rst":[{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"de687bc79d046c16d9f58b5707298642044b878c","unresolved":true,"context_lines":[{"line_number":30,"context_line":"- Create volume from snapshot"},{"line_number":31,"context_line":"- Clone a volume"},{"line_number":32,"context_line":"- Extend a volume"},{"line_number":33,"context_line":"- Migrate a volume"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Configure KIOXIA Kumoscale NVMeOF backend"},{"line_number":36,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":12,"id":"a252d3ac_4192c472","line":33,"updated":"2021-01-22 06:03:13.000000000","message":"Could not find code related to migrate volume.\nIs this feature implemented in driver ?","commit_id":"a54f4e9916b948578393f88b45fa1bb15ed2454c"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"fa55fba0836980a75cb5b3942279c78d2af08f82","unresolved":false,"context_lines":[{"line_number":30,"context_line":"- Create volume from snapshot"},{"line_number":31,"context_line":"- Clone a volume"},{"line_number":32,"context_line":"- Extend a volume"},{"line_number":33,"context_line":"- Migrate a volume"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Configure KIOXIA Kumoscale NVMeOF backend"},{"line_number":36,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":12,"id":"0f08bb1a_45673e6f","line":33,"in_reply_to":"a252d3ac_4192c472","updated":"2021-01-22 06:23:10.000000000","message":"My apologies, we likely confused this wording with VM migration (which we tested) - no volume migration between backends code in the driver and so I am removing this from here and from the commit message. Thank you for the good catch!","commit_id":"a54f4e9916b948578393f88b45fa1bb15ed2454c"}],"doc/source/reference/support-matrix.ini":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0f8b32bdb9af885e2cfd7604358df39105ae44eb","unresolved":true,"context_lines":[{"line_number":304,"context_line":"driver.inspur\u003dcomplete"},{"line_number":305,"context_line":"driver.inspur_as13000\u003dcomplete"},{"line_number":306,"context_line":"driver.kaminario\u003dcomplete"},{"line_number":307,"context_line":"driver.kioxia_kumoscale\u003dcomplete"},{"line_number":308,"context_line":"driver.lenovo\u003dcomplete"},{"line_number":309,"context_line":"driver.linbit_linstor\u003dcomplete"},{"line_number":310,"context_line":"driver.lvm\u003dcomplete"}],"source_content_type":"text/x-properties","patch_set":15,"id":"a0455ba0_3755209d","line":307,"updated":"2021-02-03 05:18:07.000000000","message":"unless I\u0027m misreading the tempest conf http://104.254.65.37/refs-changes-74-768574-15/1611998935/tempest/tempest.conf , you are testing with extend_attached_volume \u003d False.","commit_id":"be8b98bfecd9a4f62629c0b957cdf3c0ec2feb85"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"373517a38c54e6d278395031da096628ae69d3a8","unresolved":false,"context_lines":[{"line_number":304,"context_line":"driver.inspur\u003dcomplete"},{"line_number":305,"context_line":"driver.inspur_as13000\u003dcomplete"},{"line_number":306,"context_line":"driver.kaminario\u003dcomplete"},{"line_number":307,"context_line":"driver.kioxia_kumoscale\u003dcomplete"},{"line_number":308,"context_line":"driver.lenovo\u003dcomplete"},{"line_number":309,"context_line":"driver.linbit_linstor\u003dcomplete"},{"line_number":310,"context_line":"driver.lvm\u003dcomplete"}],"source_content_type":"text/x-properties","patch_set":15,"id":"44cbfdc3_7743730f","line":307,"in_reply_to":"a0455ba0_3755209d","updated":"2021-02-03 06:15:49.000000000","message":"this is strange, because we don\u0027t explicitly set this extend_attached_volume to False in tempest.conf (the whole tempest.conf is generated by tempest installation specific by local.conf, and we don\u0027t set the TEMPEST_EXTEND_ATTACHED_VOLUME at all) - I remember at one point, our tempest runs were actually testing extend attached volume (we had to fix it to make it successful) - but now it looks like it is being skipped based on the tempest run output.\n\nI am adding TEMPEST_EXTEND_ATTACHED_VOLUME\u003dTrue to local.conf to enable these now.","commit_id":"be8b98bfecd9a4f62629c0b957cdf3c0ec2feb85"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0f8b32bdb9af885e2cfd7604358df39105ae44eb","unresolved":true,"context_lines":[{"line_number":644,"context_line":"driver.inspur\u003dmissing"},{"line_number":645,"context_line":"driver.inspur_as13000\u003dcomplete"},{"line_number":646,"context_line":"driver.kaminario\u003dcomplete"},{"line_number":647,"context_line":"driver.kioxia_kumoscale\u003dcomplete"},{"line_number":648,"context_line":"driver.lenovo\u003dmissing"},{"line_number":649,"context_line":"driver.linbit_linstor\u003dmissing"},{"line_number":650,"context_line":"driver.lvm\u003dcomplete"}],"source_content_type":"text/x-properties","patch_set":15,"id":"d3ec549b_b6f19344","line":647,"updated":"2021-02-03 05:18:07.000000000","message":"http://104.254.65.37/refs-changes-74-768574-15/1612166850/logs/cinder.conf doesn\u0027t show kioxia_provisioning_type being set, so CI is testing with thick provisioning.","commit_id":"be8b98bfecd9a4f62629c0b957cdf3c0ec2feb85"},{"author":{"_account_id":16721,"name":"Zohar Mamedov","email":"zohar.cloud@gmail.com","username":"zohar"},"change_message_id":"373517a38c54e6d278395031da096628ae69d3a8","unresolved":true,"context_lines":[{"line_number":644,"context_line":"driver.inspur\u003dmissing"},{"line_number":645,"context_line":"driver.inspur_as13000\u003dcomplete"},{"line_number":646,"context_line":"driver.kaminario\u003dcomplete"},{"line_number":647,"context_line":"driver.kioxia_kumoscale\u003dcomplete"},{"line_number":648,"context_line":"driver.lenovo\u003dmissing"},{"line_number":649,"context_line":"driver.linbit_linstor\u003dmissing"},{"line_number":650,"context_line":"driver.lvm\u003dcomplete"}],"source_content_type":"text/x-properties","patch_set":15,"id":"8f513014_440d08ed","line":647,"in_reply_to":"d3ec549b_b6f19344","updated":"2021-02-03 06:15:49.000000000","message":"That is correct. Do we need to run 2 CIs to test with both thick and thin?\n\nWe have also done full integration and test runs with thin provisioning, but have the CI configured to run with thick which is the default.","commit_id":"be8b98bfecd9a4f62629c0b957cdf3c0ec2feb85"}]}
