)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"f79b3205cf5a7bb2dceac93dfaa953b5d296097e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f80d2b02_73af7d72","updated":"2021-12-06 15:03:32.000000000","message":"Just a few minor things.","commit_id":"cea316ef2489b529bee74a1468e470c1fd5417a6"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"8dd0f38bb8926b2353c991f03fe486b47d2d3976","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"32410950_af5d866a","updated":"2021-12-09 14:03:15.000000000","message":"LGTM","commit_id":"0e5864f45d2f9b21b6b6b58e7b0380d28f2b16fe"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"7d5386ef0d88357f0f23f905f3bde8d3d053b081","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"4a40fc19_e0feec75","updated":"2021-12-27 06:38:53.000000000","message":"LGTM","commit_id":"0e5864f45d2f9b21b6b6b58e7b0380d28f2b16fe"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"e1cb65f42503453256ff7f29b1193b6a607d0b2b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"13501963_ad656132","updated":"2021-12-17 14:09:06.000000000","message":"Looks good to me","commit_id":"0e5864f45d2f9b21b6b6b58e7b0380d28f2b16fe"},{"author":{"_account_id":34247,"name":"huangbingyan","email":"huangbingyan@huawei.com","username":"bingyan"},"change_message_id":"a6b01bb1c0f758172f127718cc4471efe2f69bdf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"c1c098e3_178a588e","updated":"2021-12-08 02:04:36.000000000","message":"recheck","commit_id":"0e5864f45d2f9b21b6b6b58e7b0380d28f2b16fe"},{"author":{"_account_id":34247,"name":"huangbingyan","email":"huangbingyan@huawei.com","username":"bingyan"},"change_message_id":"982933a1c0bd879ce65633756cfca36097939b0f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e96be771_ff682500","updated":"2021-12-08 10:49:45.000000000","message":"recheck","commit_id":"0e5864f45d2f9b21b6b6b58e7b0380d28f2b16fe"},{"author":{"_account_id":34247,"name":"huangbingyan","email":"huangbingyan@huawei.com","username":"bingyan"},"change_message_id":"31c4404f46ff5daa80cbaf9380008ba4592f30ba","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"f028313e_4488e038","updated":"2021-12-08 07:10:24.000000000","message":"recheck","commit_id":"0e5864f45d2f9b21b6b6b58e7b0380d28f2b16fe"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"239e8652c4b3dd1601c90033f24f044973f7a756","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"36b0b70f_ad86ea65","updated":"2021-12-17 14:24:21.000000000","message":"run Huawei Volume CI","commit_id":"0e5864f45d2f9b21b6b6b58e7b0380d28f2b16fe"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"90f4e9bdc928f645fb481d9bc852e8fec09b939d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"d2870029_672e112e","updated":"2021-12-27 15:18:11.000000000","message":"run run-huawei-volume","commit_id":"0e5864f45d2f9b21b6b6b58e7b0380d28f2b16fe"},{"author":{"_account_id":34247,"name":"huangbingyan","email":"huangbingyan@huawei.com","username":"bingyan"},"change_message_id":"a5b66115a98a02ab42bd1b9f67997f7264c36839","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"471038a0_ff08a54b","updated":"2021-12-27 08:42:28.000000000","message":"run-huawei-volume","commit_id":"0e5864f45d2f9b21b6b6b58e7b0380d28f2b16fe"},{"author":{"_account_id":34247,"name":"huangbingyan","email":"huangbingyan@huawei.com","username":"bingyan"},"change_message_id":"55806c9833e7b26af452ff679fda54a2556e6662","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"a12e3739_062651a3","updated":"2021-12-25 02:08:42.000000000","message":"run-huawei-volume","commit_id":"0e5864f45d2f9b21b6b6b58e7b0380d28f2b16fe"},{"author":{"_account_id":34247,"name":"huangbingyan","email":"huangbingyan@huawei.com","username":"bingyan"},"change_message_id":"2e9557f24a65436c9db697775e3c010ceb502e29","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"f6e6a398_d0277c54","updated":"2021-12-25 02:12:58.000000000","message":"run-huawei-volume","commit_id":"0e5864f45d2f9b21b6b6b58e7b0380d28f2b16fe"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dee1023c59202c8b478f9182d98115d6e81a87c9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"7f66974d_8712922f","updated":"2022-01-21 17:42:18.000000000","message":"A few things noted inline.","commit_id":"e03e82ec5b082b559a492cb4fd01fd90259e9990"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"be14a8eb41839f1254885bfe74dae74e57af2cc0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"2a506eb2_5d2ccf77","updated":"2022-01-14 12:29:42.000000000","message":"Code changes look good.\nZuul and huaweivolumeci have passed.","commit_id":"e03e82ec5b082b559a492cb4fd01fd90259e9990"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"e89f646e7a78bbea32bcd18459597818da836596","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"3f96d163_148ec8a3","updated":"2022-01-20 05:30:51.000000000","message":"LGTM","commit_id":"e03e82ec5b082b559a492cb4fd01fd90259e9990"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"ccffd1fdab108c3f2e79ed2d4258c400fdc4469d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"33383821_349fe69f","updated":"2022-01-21 14:36:03.000000000","message":"huaweivolumeci passed and the code looks good to me","commit_id":"e03e82ec5b082b559a492cb4fd01fd90259e9990"},{"author":{"_account_id":34247,"name":"huangbingyan","email":"huangbingyan@huawei.com","username":"bingyan"},"change_message_id":"8e32ddaa58f3200c4cd15e5b225942cf7b5e511c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"0ea02d95_3e65071c","updated":"2022-01-11 03:18:34.000000000","message":"run-huawei-volume","commit_id":"e03e82ec5b082b559a492cb4fd01fd90259e9990"},{"author":{"_account_id":34247,"name":"huangbingyan","email":"huangbingyan@huawei.com","username":"bingyan"},"change_message_id":"23e08f87a4b425a28d41dba2717aad8c502351fb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"c3531d10_40bb2707","updated":"2022-01-11 11:12:39.000000000","message":"run-huawei-volume","commit_id":"e03e82ec5b082b559a492cb4fd01fd90259e9990"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1a52945447154921d2546dc1ccad334ae2198ea7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"f74a6b17_5275cf8b","updated":"2022-01-24 13:26:40.000000000","message":"Minor change requested to the log message, otherwise this looks fine.","commit_id":"f25a47fa9057f3e1ac52ca076faeefe4fb8fd091"},{"author":{"_account_id":34247,"name":"huangbingyan","email":"huangbingyan@huawei.com","username":"bingyan"},"change_message_id":"769bff532d3acb778c176724771c2eb85eba4790","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"733abb74_70d6a20e","updated":"2022-01-22 03:59:58.000000000","message":"run-huawei-volume","commit_id":"f25a47fa9057f3e1ac52ca076faeefe4fb8fd091"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ebd88d5eceb5e0e996af1708d85a695f5b688e35","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"1547058f_9eb91b56","updated":"2022-02-07 12:06:18.000000000","message":"A few minor things that should be corrected before merging.","commit_id":"c0af569a9e5fb1295e9c38502614f7b1d7e4fca0"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"148ece6c2d9be24a12c47c284171c1e408c362f5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"9ff6cfd9_75f3c577","updated":"2022-01-25 13:01:25.000000000","message":"My concerns have been addressed and the third-party CI gives thumbs up.","commit_id":"c0af569a9e5fb1295e9c38502614f7b1d7e4fca0"},{"author":{"_account_id":22248,"name":"HPE AlletraMP iSCSI CI","email":"hp.cinder.blr.ci@groups.ext.hpe.com","username":"hp-storage-blr-ci","tags":["SERVICE_USER"]},"change_message_id":"7d358a175f81c4bda2166b544b8dbc86336d5f1b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"1a7ebbdd_0cf6c6ee","updated":"2022-01-25 05:44:42.000000000","message":"run-HPE Storage CI","commit_id":"c0af569a9e5fb1295e9c38502614f7b1d7e4fca0"},{"author":{"_account_id":34247,"name":"huangbingyan","email":"huangbingyan@huawei.com","username":"bingyan"},"change_message_id":"8ed31317dae085d2879c1eb030979cbf4dd1b033","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"355f7ca1_b83cfd83","updated":"2022-01-25 01:56:31.000000000","message":"run-huawei-volume","commit_id":"c0af569a9e5fb1295e9c38502614f7b1d7e4fca0"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c0d670c03651e600c2e0ec4516d9cd79e74ea2a6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"92319c2f_b7711c6a","updated":"2022-03-04 14:06:51.000000000","message":"I need to think about how the string translation is handled.  See comment inline.","commit_id":"bb15d83b5f1045aeda144042feebc9fa713b0ee2"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"acf897babd16d619f1048d6cfea1e0062206893c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"93ce5a71_6c3a2025","updated":"2022-03-09 14:47:49.000000000","message":"No objections!","commit_id":"bb15d83b5f1045aeda144042feebc9fa713b0ee2"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"50042c54a1b7ac4e787e33714b55e829badf2e78","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"c16c9bd5_d03d2124","updated":"2022-03-09 14:47:14.000000000","message":"We discussed this at the 9 March cinder meeting, and adopted this policy (which is taken directly from the oslo.i18n guidelines [0]):\n\n  _() is preferred for any user facing message, even if it is also going to a log file. This ensures that the translated version of the message will be available to the user.\n\n[0] https://docs.openstack.org/oslo.i18n/latest/user/guidelines.html","commit_id":"bb15d83b5f1045aeda144042feebc9fa713b0ee2"},{"author":{"_account_id":34247,"name":"huangbingyan","email":"huangbingyan@huawei.com","username":"bingyan"},"change_message_id":"b094ea91e48d5256e89f2a785684f357cc33d60a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"9d052cbf_4643540a","updated":"2022-03-03 13:36:34.000000000","message":"run-huawei-volume","commit_id":"bb15d83b5f1045aeda144042feebc9fa713b0ee2"}],"cinder/volume/drivers/huawei/huawei_conf.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dee1023c59202c8b478f9182d98115d6e81a87c9","unresolved":true,"context_lines":[{"line_number":428,"context_line":"            LOG.error(msg)"},{"line_number":429,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"        if text and text.strip() and text.strip().isdigit():"},{"line_number":432,"context_line":"            try:"},{"line_number":433,"context_line":"                minimum_fc_initiator \u003d int(text.strip())"},{"line_number":434,"context_line":"            except Exception as err:"}],"source_content_type":"text/x-python","patch_set":4,"id":"d01d6f15_fa53628c","line":431,"range":{"start_line":431,"start_character":20,"end_line":431,"end_character":59},"updated":"2022-01-21 17:42:18.000000000","message":"Isn\u0027t this too late to do the strip()?  If text is \u0027  5  \u0027, you\u0027re going to take the branch at line 425 and raise InvalidInput and will never reach this line.","commit_id":"e03e82ec5b082b559a492cb4fd01fd90259e9990"},{"author":{"_account_id":34247,"name":"huangbingyan","email":"huangbingyan@huawei.com","username":"bingyan"},"change_message_id":"7871d194031aaa34f4ec20bd6e7ebfe1a44ff0c5","unresolved":false,"context_lines":[{"line_number":428,"context_line":"            LOG.error(msg)"},{"line_number":429,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"        if text and text.strip() and text.strip().isdigit():"},{"line_number":432,"context_line":"            try:"},{"line_number":433,"context_line":"                minimum_fc_initiator \u003d int(text.strip())"},{"line_number":434,"context_line":"            except Exception as err:"}],"source_content_type":"text/x-python","patch_set":4,"id":"a6a48fa3_c2b76dba","line":431,"range":{"start_line":431,"start_character":20,"end_line":431,"end_character":59},"in_reply_to":"93675e08_916eb0ea","updated":"2022-01-22 03:59:18.000000000","message":"Ack","commit_id":"e03e82ec5b082b559a492cb4fd01fd90259e9990"},{"author":{"_account_id":34247,"name":"huangbingyan","email":"huangbingyan@huawei.com","username":"bingyan"},"change_message_id":"7c14488c9acf29e6ff03319be9bcf40c501495df","unresolved":true,"context_lines":[{"line_number":428,"context_line":"            LOG.error(msg)"},{"line_number":429,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"        if text and text.strip() and text.strip().isdigit():"},{"line_number":432,"context_line":"            try:"},{"line_number":433,"context_line":"                minimum_fc_initiator \u003d int(text.strip())"},{"line_number":434,"context_line":"            except Exception as err:"}],"source_content_type":"text/x-python","patch_set":4,"id":"93675e08_916eb0ea","line":431,"range":{"start_line":431,"start_character":20,"end_line":431,"end_character":59},"in_reply_to":"d01d6f15_fa53628c","updated":"2022-01-22 03:58:00.000000000","message":"thanks you,you\u0027re right.this is redundant\ni fix it","commit_id":"e03e82ec5b082b559a492cb4fd01fd90259e9990"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dee1023c59202c8b478f9182d98115d6e81a87c9","unresolved":true,"context_lines":[{"line_number":432,"context_line":"            try:"},{"line_number":433,"context_line":"                minimum_fc_initiator \u003d int(text.strip())"},{"line_number":434,"context_line":"            except Exception as err:"},{"line_number":435,"context_line":"                msg \u003d (_(\"Minimum FC initiator number %(num)s is set\""},{"line_number":436,"context_line":"                         \" too large, reason is %(err)s\")"},{"line_number":437,"context_line":"                       % {\"num\": text.strip(), \"err\": err})"},{"line_number":438,"context_line":"                LOG.error(msg)"},{"line_number":439,"context_line":"                raise exception.InvalidInput(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf1f13ee_b78183a2","line":436,"range":{"start_line":435,"start_character":25,"end_line":436,"end_character":57},"updated":"2022-01-21 17:42:18.000000000","message":"ints have unlimited precision, so this is not a good way to determine that the text passed to int() is too large.","commit_id":"e03e82ec5b082b559a492cb4fd01fd90259e9990"},{"author":{"_account_id":34247,"name":"huangbingyan","email":"huangbingyan@huawei.com","username":"bingyan"},"change_message_id":"7871d194031aaa34f4ec20bd6e7ebfe1a44ff0c5","unresolved":false,"context_lines":[{"line_number":432,"context_line":"            try:"},{"line_number":433,"context_line":"                minimum_fc_initiator \u003d int(text.strip())"},{"line_number":434,"context_line":"            except Exception as err:"},{"line_number":435,"context_line":"                msg \u003d (_(\"Minimum FC initiator number %(num)s is set\""},{"line_number":436,"context_line":"                         \" too large, reason is %(err)s\")"},{"line_number":437,"context_line":"                       % {\"num\": text.strip(), \"err\": err})"},{"line_number":438,"context_line":"                LOG.error(msg)"},{"line_number":439,"context_line":"                raise exception.InvalidInput(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bb4d5b0c_d3c79d98","line":436,"range":{"start_line":435,"start_character":25,"end_line":436,"end_character":57},"in_reply_to":"45ed1559_31250b8d","updated":"2022-01-22 03:59:18.000000000","message":"Ack","commit_id":"e03e82ec5b082b559a492cb4fd01fd90259e9990"},{"author":{"_account_id":34247,"name":"huangbingyan","email":"huangbingyan@huawei.com","username":"bingyan"},"change_message_id":"7c14488c9acf29e6ff03319be9bcf40c501495df","unresolved":true,"context_lines":[{"line_number":432,"context_line":"            try:"},{"line_number":433,"context_line":"                minimum_fc_initiator \u003d int(text.strip())"},{"line_number":434,"context_line":"            except Exception as err:"},{"line_number":435,"context_line":"                msg \u003d (_(\"Minimum FC initiator number %(num)s is set\""},{"line_number":436,"context_line":"                         \" too large, reason is %(err)s\")"},{"line_number":437,"context_line":"                       % {\"num\": text.strip(), \"err\": err})"},{"line_number":438,"context_line":"                LOG.error(msg)"},{"line_number":439,"context_line":"                raise exception.InvalidInput(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"45ed1559_31250b8d","line":436,"range":{"start_line":435,"start_character":25,"end_line":436,"end_character":57},"in_reply_to":"bf1f13ee_b78183a2","updated":"2022-01-22 03:58:00.000000000","message":"i think this restriction is superfluous as well\ni fix it","commit_id":"e03e82ec5b082b559a492cb4fd01fd90259e9990"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1a52945447154921d2546dc1ccad334ae2198ea7","unresolved":true,"context_lines":[{"line_number":424,"context_line":"        minimum_fc_initiator \u003d constants.DEFAULT_MINIMUM_FC_INITIATOR_ONLINE"},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"        if not text:"},{"line_number":427,"context_line":"            msg \u003d (_(\"MinOnlineFCInitiator not set, use default.\"))"},{"line_number":428,"context_line":"            LOG.info(msg)"},{"line_number":429,"context_line":"            setattr(self.conf, \u0027min_fc_ini_online\u0027, minimum_fc_initiator)"},{"line_number":430,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":5,"id":"a38b74e0_589791fa","line":427,"range":{"start_line":427,"start_character":52,"end_line":427,"end_character":55},"updated":"2022-01-24 13:26:40.000000000","message":"I think this would be better as \u0027using\u0027.  (The difference is that your message is reporting something that the code is doing, vs. telling the operator that they should be doing something.)","commit_id":"f25a47fa9057f3e1ac52ca076faeefe4fb8fd091"},{"author":{"_account_id":34247,"name":"huangbingyan","email":"huangbingyan@huawei.com","username":"bingyan"},"change_message_id":"c7596f3dc4f03a30cd635f49c95c8fd6621bc796","unresolved":false,"context_lines":[{"line_number":424,"context_line":"        minimum_fc_initiator \u003d constants.DEFAULT_MINIMUM_FC_INITIATOR_ONLINE"},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"        if not text:"},{"line_number":427,"context_line":"            msg \u003d (_(\"MinOnlineFCInitiator not set, use default.\"))"},{"line_number":428,"context_line":"            LOG.info(msg)"},{"line_number":429,"context_line":"            setattr(self.conf, \u0027min_fc_ini_online\u0027, minimum_fc_initiator)"},{"line_number":430,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":5,"id":"f2d70632_5cae6b75","line":427,"range":{"start_line":427,"start_character":52,"end_line":427,"end_character":55},"in_reply_to":"a38b74e0_589791fa","updated":"2022-01-25 01:55:47.000000000","message":"Ack","commit_id":"f25a47fa9057f3e1ac52ca076faeefe4fb8fd091"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ebd88d5eceb5e0e996af1708d85a695f5b688e35","unresolved":true,"context_lines":[{"line_number":424,"context_line":"        minimum_fc_initiator \u003d constants.DEFAULT_MINIMUM_FC_INITIATOR_ONLINE"},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"        if not text:"},{"line_number":427,"context_line":"            msg \u003d (_(\"MinOnlineFCInitiator not set, using default.\"))"},{"line_number":428,"context_line":"            LOG.info(msg)"},{"line_number":429,"context_line":"            setattr(self.conf, \u0027min_fc_ini_online\u0027, minimum_fc_initiator)"},{"line_number":430,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":6,"id":"aa44d81f_058fc495","line":427,"updated":"2022-02-07 12:06:18.000000000","message":"Log messages should not be translated with _(). Also, no need to define the msg variable, just put the text right in the LOG.info() call.","commit_id":"c0af569a9e5fb1295e9c38502614f7b1d7e4fca0"},{"author":{"_account_id":34247,"name":"huangbingyan","email":"huangbingyan@huawei.com","username":"bingyan"},"change_message_id":"3b8809076e653aaf96f62191991f11bd7a8f9c74","unresolved":true,"context_lines":[{"line_number":424,"context_line":"        minimum_fc_initiator \u003d constants.DEFAULT_MINIMUM_FC_INITIATOR_ONLINE"},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"        if not text:"},{"line_number":427,"context_line":"            msg \u003d (_(\"MinOnlineFCInitiator not set, using default.\"))"},{"line_number":428,"context_line":"            LOG.info(msg)"},{"line_number":429,"context_line":"            setattr(self.conf, \u0027min_fc_ini_online\u0027, minimum_fc_initiator)"},{"line_number":430,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":6,"id":"c70be135_bf433a2a","line":427,"in_reply_to":"aa44d81f_058fc495","updated":"2022-02-08 03:43:11.000000000","message":"i change to LOG.info(\"MinOnlineFCInitiator not set, using default.\") ?\ndefine the msg variable I want to keep the same style as before.","commit_id":"c0af569a9e5fb1295e9c38502614f7b1d7e4fca0"},{"author":{"_account_id":34247,"name":"huangbingyan","email":"huangbingyan@huawei.com","username":"bingyan"},"change_message_id":"ae02617ea9ef747ffd3a8834e097b62970df78ef","unresolved":false,"context_lines":[{"line_number":424,"context_line":"        minimum_fc_initiator \u003d constants.DEFAULT_MINIMUM_FC_INITIATOR_ONLINE"},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"        if not text:"},{"line_number":427,"context_line":"            msg \u003d (_(\"MinOnlineFCInitiator not set, using default.\"))"},{"line_number":428,"context_line":"            LOG.info(msg)"},{"line_number":429,"context_line":"            setattr(self.conf, \u0027min_fc_ini_online\u0027, minimum_fc_initiator)"},{"line_number":430,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":6,"id":"43800f11_d72b6c83","line":427,"in_reply_to":"c70be135_bf433a2a","updated":"2022-03-04 08:50:23.000000000","message":"Done","commit_id":"c0af569a9e5fb1295e9c38502614f7b1d7e4fca0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ebd88d5eceb5e0e996af1708d85a695f5b688e35","unresolved":true,"context_lines":[{"line_number":431,"context_line":""},{"line_number":432,"context_line":"        text \u003d text.strip()"},{"line_number":433,"context_line":"        if not text.isdigit():"},{"line_number":434,"context_line":"            msg \u003d (_(\"Invalid FC MinOnlineFCInitiator \u0027%s\u0027, \""},{"line_number":435,"context_line":"                     \"MinOnlineFCInitiator must be a digit.\") % text)"},{"line_number":436,"context_line":"            LOG.error(msg)"},{"line_number":437,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":6,"id":"66273032_beafe084","line":434,"updated":"2022-02-07 12:06:18.000000000","message":"Same.\n\nAnd then change `text` to be passed in as an argument in the LOG.error call so the logger can take care of the string formatting.","commit_id":"c0af569a9e5fb1295e9c38502614f7b1d7e4fca0"},{"author":{"_account_id":34247,"name":"huangbingyan","email":"huangbingyan@huawei.com","username":"bingyan"},"change_message_id":"3b8809076e653aaf96f62191991f11bd7a8f9c74","unresolved":true,"context_lines":[{"line_number":431,"context_line":""},{"line_number":432,"context_line":"        text \u003d text.strip()"},{"line_number":433,"context_line":"        if not text.isdigit():"},{"line_number":434,"context_line":"            msg \u003d (_(\"Invalid FC MinOnlineFCInitiator \u0027%s\u0027, \""},{"line_number":435,"context_line":"                     \"MinOnlineFCInitiator must be a digit.\") % text)"},{"line_number":436,"context_line":"            LOG.error(msg)"},{"line_number":437,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":6,"id":"693a40e0_05e769d3","line":434,"in_reply_to":"66273032_beafe084","updated":"2022-02-08 03:43:11.000000000","message":"i change like this:\n   msg \u003d (_(\"Invalid FC MinOnlineFCInitiator \u0027%s\u0027,MinOnlineFCInitiator must be a digit.\") % text)\n   LOG.error((_(\"Invalid FC MinOnlineFCInitiator \u0027%s\u0027,MinOnlineFCInitiator must be a digit.\") , text))\n   raise exception.InvalidInput(reason\u003dmsg)\nBut I wonder if it\u0027s not necessary？","commit_id":"c0af569a9e5fb1295e9c38502614f7b1d7e4fca0"},{"author":{"_account_id":34247,"name":"huangbingyan","email":"huangbingyan@huawei.com","username":"bingyan"},"change_message_id":"ae02617ea9ef747ffd3a8834e097b62970df78ef","unresolved":false,"context_lines":[{"line_number":431,"context_line":""},{"line_number":432,"context_line":"        text \u003d text.strip()"},{"line_number":433,"context_line":"        if not text.isdigit():"},{"line_number":434,"context_line":"            msg \u003d (_(\"Invalid FC MinOnlineFCInitiator \u0027%s\u0027, \""},{"line_number":435,"context_line":"                     \"MinOnlineFCInitiator must be a digit.\") % text)"},{"line_number":436,"context_line":"            LOG.error(msg)"},{"line_number":437,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":6,"id":"44d2f5fb_f19d46b6","line":434,"in_reply_to":"693a40e0_05e769d3","updated":"2022-03-04 08:50:23.000000000","message":"Done","commit_id":"c0af569a9e5fb1295e9c38502614f7b1d7e4fca0"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c0d670c03651e600c2e0ec4516d9cd79e74ea2a6","unresolved":true,"context_lines":[{"line_number":430,"context_line":""},{"line_number":431,"context_line":"        text \u003d text.strip()"},{"line_number":432,"context_line":"        if not text.isdigit():"},{"line_number":433,"context_line":"            msg \u003d (_(\"Invalid FC MinOnlineFCInitiator \u0027%s\u0027, \""},{"line_number":434,"context_line":"                     \"MinOnlineFCInitiator must be a digit.\") % text)"},{"line_number":435,"context_line":"            LOG.error(msg)"},{"line_number":436,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"        minimum_fc_initiator \u003d int(text)"},{"line_number":439,"context_line":"        setattr(self.conf, \u0027min_fc_ini_online\u0027, minimum_fc_initiator)"}],"source_content_type":"text/x-python","patch_set":8,"id":"fc05e320_013ac318","line":436,"range":{"start_line":433,"start_character":0,"end_line":436,"end_character":52},"updated":"2022-03-04 14:06:51.000000000","message":"Thanks for changing this, but I think it\u0027s still not correct.  We don\u0027t mark log messages for translation because operators have asked that they be logged in US-English to make them easier to find in web searches.\n\nSo what you need to do here is in 2 stages:\n\n        if not text.isdigit():\n            LOG.error(\"Invalid FC MinOnlineFCInitiator \u0027%s\u0027, \"\n                      \"MinOnlineFCInitiator must be a digit.\", text)\n            msg \u003d (_(\"Invalid FC MinOnlineFCInitiator \u0027%s\u0027, \"\n                     \"MinOnlineFCInitiator must be a digit.\") % text)\n            raise exception.InvalidInput(reason\u003dmsg)\n\n(Repeating the string is non-optimal, but you need to pass a string literal to the _() function.)\n\nHere\u0027s the translation docs:\nhttps://docs.openstack.org/oslo.i18n/latest/user/guidelines.html\n\nThat being said, the translate-log-raise pattern is used all over the place in this file (and probably in cinder in general), so I\u0027m not sure whether we want to require this or not.  Or I could be completely misreading the guidelines in the translations docs ... look them over and see what you think.","commit_id":"bb15d83b5f1045aeda144042feebc9fa713b0ee2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"de347b01c6faacb3b8b2b12cfc60a7a6eed5a444","unresolved":true,"context_lines":[{"line_number":430,"context_line":""},{"line_number":431,"context_line":"        text \u003d text.strip()"},{"line_number":432,"context_line":"        if not text.isdigit():"},{"line_number":433,"context_line":"            msg \u003d (_(\"Invalid FC MinOnlineFCInitiator \u0027%s\u0027, \""},{"line_number":434,"context_line":"                     \"MinOnlineFCInitiator must be a digit.\") % text)"},{"line_number":435,"context_line":"            LOG.error(msg)"},{"line_number":436,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"        minimum_fc_initiator \u003d int(text)"},{"line_number":439,"context_line":"        setattr(self.conf, \u0027min_fc_ini_online\u0027, minimum_fc_initiator)"}],"source_content_type":"text/x-python","patch_set":8,"id":"8ba15412_4155e2e2","line":436,"range":{"start_line":433,"start_character":0,"end_line":436,"end_character":52},"in_reply_to":"fc05e320_013ac318","updated":"2022-03-04 19:48:27.000000000","message":"Yeah, ideally we would separate them out so the log message is not localized, but the exception returned is. I think we\u0027ve been pretty lax about this in the past though. There are likely a ton of places in the code that are just using the same string for both logging and exception messages.\n\nNot sure how strict we want to be about that. My personal opinion is that, at least for this particular instance, the string contains enough non-localizable words that it doesn\u0027t really make that much of a difference. I am more concerned about applying localization to the strings that are only going to the log and creating unnecessary work for the translators.","commit_id":"bb15d83b5f1045aeda144042feebc9fa713b0ee2"}],"cinder/volume/drivers/huawei/huawei_driver.py":[{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"f79b3205cf5a7bb2dceac93dfaa953b5d296097e","unresolved":true,"context_lines":[{"line_number":327,"context_line":"                                self.client.is_host_associated_to_hostgroup("},{"line_number":328,"context_line":"                                    host_id)):"},{"line_number":329,"context_line":"                            self.client.remove_host(host_id)"},{"line_number":330,"context_line":"                        msg \u003d (\"There is an Fc initiator in an invalid \""},{"line_number":331,"context_line":"                               \"state. If you want to continue to attach \""},{"line_number":332,"context_line":"                               \"volume to host, configure MinFCIniOnline \""},{"line_number":333,"context_line":"                               \"in the XML file.\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"0f3f1aa6_1f426a29","line":330,"updated":"2021-12-06 15:03:32.000000000","message":"nit:  FC instead of Fc for consistency","commit_id":"cea316ef2489b529bee74a1468e470c1fd5417a6"},{"author":{"_account_id":34247,"name":"huangbingyan","email":"huangbingyan@huawei.com","username":"bingyan"},"change_message_id":"fa6753991ef4ee24a7a292ae064693939867c2c4","unresolved":false,"context_lines":[{"line_number":327,"context_line":"                                self.client.is_host_associated_to_hostgroup("},{"line_number":328,"context_line":"                                    host_id)):"},{"line_number":329,"context_line":"                            self.client.remove_host(host_id)"},{"line_number":330,"context_line":"                        msg \u003d (\"There is an Fc initiator in an invalid \""},{"line_number":331,"context_line":"                               \"state. If you want to continue to attach \""},{"line_number":332,"context_line":"                               \"volume to host, configure MinFCIniOnline \""},{"line_number":333,"context_line":"                               \"in the XML file.\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"8cf99b1f_b746b173","line":330,"in_reply_to":"0f3f1aa6_1f426a29","updated":"2021-12-07 09:56:46.000000000","message":"thanks i change it","commit_id":"cea316ef2489b529bee74a1468e470c1fd5417a6"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"f79b3205cf5a7bb2dceac93dfaa953b5d296097e","unresolved":true,"context_lines":[{"line_number":339,"context_line":"                    raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"            if len(wwns) \u003c self.configuration.min_fc_ini_online:"},{"line_number":342,"context_line":"                msg \u003d ((\"The number of online fc initiator %(wwns)s less than\""},{"line_number":343,"context_line":"                        \" the set number: %(set)s.\") %"},{"line_number":344,"context_line":"                       {\"wwns\": wwns,"},{"line_number":345,"context_line":"                        \"set\": self.configuration.min_fc_ini_online})"}],"source_content_type":"text/x-python","patch_set":2,"id":"2133282b_6047a5c8","line":342,"updated":"2021-12-06 15:03:32.000000000","message":"nit: \"The number of online FC initiators %(wwns)s is less than\"","commit_id":"cea316ef2489b529bee74a1468e470c1fd5417a6"},{"author":{"_account_id":34247,"name":"huangbingyan","email":"huangbingyan@huawei.com","username":"bingyan"},"change_message_id":"fa6753991ef4ee24a7a292ae064693939867c2c4","unresolved":false,"context_lines":[{"line_number":339,"context_line":"                    raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"            if len(wwns) \u003c self.configuration.min_fc_ini_online:"},{"line_number":342,"context_line":"                msg \u003d ((\"The number of online fc initiator %(wwns)s less than\""},{"line_number":343,"context_line":"                        \" the set number: %(set)s.\") %"},{"line_number":344,"context_line":"                       {\"wwns\": wwns,"},{"line_number":345,"context_line":"                        \"set\": self.configuration.min_fc_ini_online})"}],"source_content_type":"text/x-python","patch_set":2,"id":"771109d4_52af234d","line":342,"in_reply_to":"2133282b_6047a5c8","updated":"2021-12-07 09:56:46.000000000","message":"thanks i fix it","commit_id":"cea316ef2489b529bee74a1468e470c1fd5417a6"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ebd88d5eceb5e0e996af1708d85a695f5b688e35","unresolved":true,"context_lines":[{"line_number":315,"context_line":"                            \" been added to other host or isn\u0027t present \""},{"line_number":316,"context_line":"                            \"on array.\")"},{"line_number":317,"context_line":"                           % {\"wwn\": wwn, \"host\": host_id})"},{"line_number":318,"context_line":"                    LOG.warning(msg)"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"                    if (self.configuration.min_fc_ini_online \u003d\u003d"},{"line_number":321,"context_line":"                            constants.DEFAULT_MINIMUM_FC_INITIATOR_ONLINE):"}],"source_content_type":"text/x-python","patch_set":6,"id":"e5380bf3_85c30835","line":318,"updated":"2022-02-07 12:06:18.000000000","message":"Move msg text as direct arguments to the LOG.warning call. Change \u0027%\u0027 to \u0027,\u0027 so the formatting variables are handled by the logger.","commit_id":"c0af569a9e5fb1295e9c38502614f7b1d7e4fca0"},{"author":{"_account_id":34247,"name":"huangbingyan","email":"huangbingyan@huawei.com","username":"bingyan"},"change_message_id":"ae02617ea9ef747ffd3a8834e097b62970df78ef","unresolved":false,"context_lines":[{"line_number":315,"context_line":"                            \" been added to other host or isn\u0027t present \""},{"line_number":316,"context_line":"                            \"on array.\")"},{"line_number":317,"context_line":"                           % {\"wwn\": wwn, \"host\": host_id})"},{"line_number":318,"context_line":"                    LOG.warning(msg)"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"                    if (self.configuration.min_fc_ini_online \u003d\u003d"},{"line_number":321,"context_line":"                            constants.DEFAULT_MINIMUM_FC_INITIATOR_ONLINE):"}],"source_content_type":"text/x-python","patch_set":6,"id":"dcf29440_8e234e7c","line":318,"in_reply_to":"e5380bf3_85c30835","updated":"2022-03-04 08:50:23.000000000","message":"Done","commit_id":"c0af569a9e5fb1295e9c38502614f7b1d7e4fca0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ebd88d5eceb5e0e996af1708d85a695f5b688e35","unresolved":true,"context_lines":[{"line_number":327,"context_line":"                                self.client.is_host_associated_to_hostgroup("},{"line_number":328,"context_line":"                                    host_id)):"},{"line_number":329,"context_line":"                            self.client.remove_host(host_id)"},{"line_number":330,"context_line":"                        msg \u003d (\"There is an FC initiator in an invalid \""},{"line_number":331,"context_line":"                               \"state. If you want to continue to attach \""},{"line_number":332,"context_line":"                               \"volume to host, configure MinFCIniOnline \""},{"line_number":333,"context_line":"                               \"in the XML file.\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"0404bf32_b782cee1","line":330,"updated":"2022-02-07 12:06:18.000000000","message":"Add translation here so the exception is localized.","commit_id":"c0af569a9e5fb1295e9c38502614f7b1d7e4fca0"},{"author":{"_account_id":34247,"name":"huangbingyan","email":"huangbingyan@huawei.com","username":"bingyan"},"change_message_id":"3b8809076e653aaf96f62191991f11bd7a8f9c74","unresolved":true,"context_lines":[{"line_number":327,"context_line":"                                self.client.is_host_associated_to_hostgroup("},{"line_number":328,"context_line":"                                    host_id)):"},{"line_number":329,"context_line":"                            self.client.remove_host(host_id)"},{"line_number":330,"context_line":"                        msg \u003d (\"There is an FC initiator in an invalid \""},{"line_number":331,"context_line":"                               \"state. If you want to continue to attach \""},{"line_number":332,"context_line":"                               \"volume to host, configure MinFCIniOnline \""},{"line_number":333,"context_line":"                               \"in the XML file.\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"ac3ae646_a7810b76","line":330,"in_reply_to":"0404bf32_b782cee1","updated":"2022-02-08 03:43:11.000000000","message":"we have not localized. if need to add, i think can add next time?","commit_id":"c0af569a9e5fb1295e9c38502614f7b1d7e4fca0"},{"author":{"_account_id":34247,"name":"huangbingyan","email":"huangbingyan@huawei.com","username":"bingyan"},"change_message_id":"ae02617ea9ef747ffd3a8834e097b62970df78ef","unresolved":false,"context_lines":[{"line_number":327,"context_line":"                                self.client.is_host_associated_to_hostgroup("},{"line_number":328,"context_line":"                                    host_id)):"},{"line_number":329,"context_line":"                            self.client.remove_host(host_id)"},{"line_number":330,"context_line":"                        msg \u003d (\"There is an FC initiator in an invalid \""},{"line_number":331,"context_line":"                               \"state. If you want to continue to attach \""},{"line_number":332,"context_line":"                               \"volume to host, configure MinFCIniOnline \""},{"line_number":333,"context_line":"                               \"in the XML file.\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"4d0f2167_ed948db2","line":330,"in_reply_to":"ac3ae646_a7810b76","updated":"2022-03-04 08:50:23.000000000","message":"Done","commit_id":"c0af569a9e5fb1295e9c38502614f7b1d7e4fca0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ebd88d5eceb5e0e996af1708d85a695f5b688e35","unresolved":true,"context_lines":[{"line_number":339,"context_line":"                    raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"            if len(wwns) \u003c self.configuration.min_fc_ini_online:"},{"line_number":342,"context_line":"                msg \u003d ((\"The number of online FC initiator %(wwns)s less than\""},{"line_number":343,"context_line":"                        \" the set number: %(set)s.\") %"},{"line_number":344,"context_line":"                       {\"wwns\": wwns,"},{"line_number":345,"context_line":"                        \"set\": self.configuration.min_fc_ini_online})"}],"source_content_type":"text/x-python","patch_set":6,"id":"73d42b35_909c82d7","line":342,"updated":"2022-02-07 12:06:18.000000000","message":"Add translation with _() since this is used in the exception that is raised.","commit_id":"c0af569a9e5fb1295e9c38502614f7b1d7e4fca0"},{"author":{"_account_id":34247,"name":"huangbingyan","email":"huangbingyan@huawei.com","username":"bingyan"},"change_message_id":"3b8809076e653aaf96f62191991f11bd7a8f9c74","unresolved":true,"context_lines":[{"line_number":339,"context_line":"                    raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"            if len(wwns) \u003c self.configuration.min_fc_ini_online:"},{"line_number":342,"context_line":"                msg \u003d ((\"The number of online FC initiator %(wwns)s less than\""},{"line_number":343,"context_line":"                        \" the set number: %(set)s.\") %"},{"line_number":344,"context_line":"                       {\"wwns\": wwns,"},{"line_number":345,"context_line":"                        \"set\": self.configuration.min_fc_ini_online})"}],"source_content_type":"text/x-python","patch_set":6,"id":"c28f01d9_6d8abfd1","line":342,"in_reply_to":"73d42b35_909c82d7","updated":"2022-02-08 03:43:11.000000000","message":"change like this?\n                msg \u003d (_(\"The number of online FC initiator %(wwns)s less than\"\n                        \" the set number: %(set)s.\") %\n                       {\"wwns\": wwns,\n                        \"set\": self.configuration.min_fc_ini_online})\n                LOG.error(msg)\n                raise exception.VolumeBackendAPIException(data\u003dmsg)","commit_id":"c0af569a9e5fb1295e9c38502614f7b1d7e4fca0"},{"author":{"_account_id":34247,"name":"huangbingyan","email":"huangbingyan@huawei.com","username":"bingyan"},"change_message_id":"ae02617ea9ef747ffd3a8834e097b62970df78ef","unresolved":false,"context_lines":[{"line_number":339,"context_line":"                    raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"            if len(wwns) \u003c self.configuration.min_fc_ini_online:"},{"line_number":342,"context_line":"                msg \u003d ((\"The number of online FC initiator %(wwns)s less than\""},{"line_number":343,"context_line":"                        \" the set number: %(set)s.\") %"},{"line_number":344,"context_line":"                       {\"wwns\": wwns,"},{"line_number":345,"context_line":"                        \"set\": self.configuration.min_fc_ini_online})"}],"source_content_type":"text/x-python","patch_set":6,"id":"0231f682_826c2de0","line":342,"in_reply_to":"c28f01d9_6d8abfd1","updated":"2022-03-04 08:50:23.000000000","message":"Done","commit_id":"c0af569a9e5fb1295e9c38502614f7b1d7e4fca0"}]}
