)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"21daffc2e716782d43f99579cdce53d3e55af1f7","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"A share managed in HSP could have some access rules that are not in Manila,"},{"line_number":10,"context_line":"trying to add a rule that already exists in backend results in an"},{"line_number":11,"context_line":"error. Also, rules in backend that name is not \"share_id + ip\" can\u0027t be"},{"line_number":12,"context_line":"deleted."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Fixing it by adding a check in update access when rules already exists in backend."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a89bdaa_dde65614","line":11,"range":{"start_line":11,"start_character":35,"end_line":11,"end_character":42},"updated":"2016-09-07 06:57:43.000000000","message":"names are","commit_id":"815aaa07732a76a4cc7fd435ac7190e087324f48"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"907d74040d60ee61f53eb7ebe3d31560557ef72a","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"A share managed in HSP could have some access rules that are not in Manila,"},{"line_number":10,"context_line":"trying to add a rule that already exists in backend results in an"},{"line_number":11,"context_line":"error. Also, rules in backend that name is not \"share_id + ip\" can\u0027t be"},{"line_number":12,"context_line":"deleted."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Fixing it by adding a check in update access when rules already exists in backend."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a89bdaa_6548e2cd","line":11,"range":{"start_line":11,"start_character":35,"end_line":11,"end_character":42},"in_reply_to":"9a89bdaa_dde65614","updated":"2016-09-09 12:32:51.000000000","message":"Done","commit_id":"815aaa07732a76a4cc7fd435ac7190e087324f48"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"21daffc2e716782d43f99579cdce53d3e55af1f7","unresolved":false,"context_lines":[{"line_number":11,"context_line":"error. Also, rules in backend that name is not \"share_id + ip\" can\u0027t be"},{"line_number":12,"context_line":"deleted."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Fixing it by adding a check in update access when rules already exists in backend."},{"line_number":15,"context_line":"And checking for this access rule name in backend when denying access."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I0c8ee5c47efe22f004692022dd952f301d669b06"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a89bdaa_bdd0b220","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":6},"updated":"2016-09-07 06:57:43.000000000","message":"Fix","commit_id":"815aaa07732a76a4cc7fd435ac7190e087324f48"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"21daffc2e716782d43f99579cdce53d3e55af1f7","unresolved":false,"context_lines":[{"line_number":11,"context_line":"error. Also, rules in backend that name is not \"share_id + ip\" can\u0027t be"},{"line_number":12,"context_line":"deleted."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Fixing it by adding a check in update access when rules already exists in backend."},{"line_number":15,"context_line":"And checking for this access rule name in backend when denying access."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I0c8ee5c47efe22f004692022dd952f301d669b06"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a89bdaa_1ded1eef","line":14,"range":{"start_line":14,"start_character":64,"end_line":14,"end_character":70},"updated":"2016-09-07 06:57:43.000000000","message":"exist","commit_id":"815aaa07732a76a4cc7fd435ac7190e087324f48"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"907d74040d60ee61f53eb7ebe3d31560557ef72a","unresolved":false,"context_lines":[{"line_number":11,"context_line":"error. Also, rules in backend that name is not \"share_id + ip\" can\u0027t be"},{"line_number":12,"context_line":"deleted."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Fixing it by adding a check in update access when rules already exists in backend."},{"line_number":15,"context_line":"And checking for this access rule name in backend when denying access."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I0c8ee5c47efe22f004692022dd952f301d669b06"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a89bdaa_8545e6b4","line":14,"range":{"start_line":14,"start_character":64,"end_line":14,"end_character":70},"in_reply_to":"9a89bdaa_1ded1eef","updated":"2016-09-09 12:32:51.000000000","message":"Done","commit_id":"815aaa07732a76a4cc7fd435ac7190e087324f48"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"907d74040d60ee61f53eb7ebe3d31560557ef72a","unresolved":false,"context_lines":[{"line_number":11,"context_line":"error. Also, rules in backend that name is not \"share_id + ip\" can\u0027t be"},{"line_number":12,"context_line":"deleted."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Fixing it by adding a check in update access when rules already exists in backend."},{"line_number":15,"context_line":"And checking for this access rule name in backend when denying access."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I0c8ee5c47efe22f004692022dd952f301d669b06"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a89bdaa_2525fa09","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":6},"in_reply_to":"9a89bdaa_bdd0b220","updated":"2016-09-09 12:32:51.000000000","message":"Done","commit_id":"815aaa07732a76a4cc7fd435ac7190e087324f48"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"21daffc2e716782d43f99579cdce53d3e55af1f7","unresolved":false,"context_lines":[{"line_number":12,"context_line":"deleted."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Fixing it by adding a check in update access when rules already exists in backend."},{"line_number":15,"context_line":"And checking for this access rule name in backend when denying access."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I0c8ee5c47efe22f004692022dd952f301d669b06"},{"line_number":18,"context_line":"Closes-Bug: #1620756"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a89bdaa_fdc6ba66","line":15,"range":{"start_line":15,"start_character":4,"end_line":15,"end_character":12},"updated":"2016-09-07 06:57:43.000000000","message":"check","commit_id":"815aaa07732a76a4cc7fd435ac7190e087324f48"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"1e08205dcb1baf740657ae1c79679da55d6da675","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix access rules for managed shares in HSP driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"A share managed in HSP could have some access rules that are not in Manila,"},{"line_number":10,"context_line":"trying to add a rule that already exists in backend results in an"},{"line_number":11,"context_line":"error. Also, rules in backend that name is not \"share_id + ip\" can\u0027t be"},{"line_number":12,"context_line":"deleted."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Fixing it by adding a check in update access when rules already exists in backend."},{"line_number":15,"context_line":"And checking for this access rule name in backend when denying access."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I0c8ee5c47efe22f004692022dd952f301d669b06"},{"line_number":18,"context_line":"Closes-Bug: #1620756"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a89bdaa_7d5c7ced","line":15,"range":{"start_line":9,"start_character":0,"end_line":15,"end_character":70},"updated":"2016-09-06 20:02:41.000000000","message":"don\u0027t go beyond 79 characters","commit_id":"815aaa07732a76a4cc7fd435ac7190e087324f48"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"907d74040d60ee61f53eb7ebe3d31560557ef72a","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix access rules for managed shares in HSP driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"A share managed in HSP could have some access rules that are not in Manila,"},{"line_number":10,"context_line":"trying to add a rule that already exists in backend results in an"},{"line_number":11,"context_line":"error. Also, rules in backend that name is not \"share_id + ip\" can\u0027t be"},{"line_number":12,"context_line":"deleted."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Fixing it by adding a check in update access when rules already exists in backend."},{"line_number":15,"context_line":"And checking for this access rule name in backend when denying access."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I0c8ee5c47efe22f004692022dd952f301d669b06"},{"line_number":18,"context_line":"Closes-Bug: #1620756"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a89bdaa_854a46ab","line":15,"range":{"start_line":9,"start_character":0,"end_line":15,"end_character":70},"in_reply_to":"9a89bdaa_7d5c7ced","updated":"2016-09-09 12:32:51.000000000","message":"Done","commit_id":"815aaa07732a76a4cc7fd435ac7190e087324f48"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"907d74040d60ee61f53eb7ebe3d31560557ef72a","unresolved":false,"context_lines":[{"line_number":12,"context_line":"deleted."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Fixing it by adding a check in update access when rules already exists in backend."},{"line_number":15,"context_line":"And checking for this access rule name in backend when denying access."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I0c8ee5c47efe22f004692022dd952f301d669b06"},{"line_number":18,"context_line":"Closes-Bug: #1620756"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a89bdaa_4522fe02","line":15,"range":{"start_line":15,"start_character":4,"end_line":15,"end_character":12},"in_reply_to":"9a89bdaa_fdc6ba66","updated":"2016-09-09 12:32:51.000000000","message":"Done","commit_id":"815aaa07732a76a4cc7fd435ac7190e087324f48"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"6a9bcb5e13a9c3d646e9b88d3f986e5225b06a0e","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix access rules for managed shares in HSP driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"A share managed in HSP could have some access rules that"},{"line_number":10,"context_line":"are not in Manila, trying to add a rule that already exists"},{"line_number":11,"context_line":"in backend results in an error. And, rules in backend that"},{"line_number":12,"context_line":"names are not \"share_id + ip\" can\u0027t be deleted."},{"line_number":13,"context_line":"Also, if this share has a rule only in backend and not in"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9a89bdaa_87c0fc51","line":10,"range":{"start_line":10,"start_character":17,"end_line":10,"end_character":20},"updated":"2016-09-12 19:53:10.000000000","message":"nit: s/, t/. T","commit_id":"ba665a3778551368c817eae054216d675c55fd4d"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"6a9bcb5e13a9c3d646e9b88d3f986e5225b06a0e","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"A share managed in HSP could have some access rules that"},{"line_number":10,"context_line":"are not in Manila, trying to add a rule that already exists"},{"line_number":11,"context_line":"in backend results in an error. And, rules in backend that"},{"line_number":12,"context_line":"names are not \"share_id + ip\" can\u0027t be deleted."},{"line_number":13,"context_line":"Also, if this share has a rule only in backend and not in"},{"line_number":14,"context_line":"Manila, the deletion of this share would fail because a share"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9a89bdaa_07cdcc84","line":11,"range":{"start_line":11,"start_character":32,"end_line":11,"end_character":35},"updated":"2016-09-12 19:53:10.000000000","message":"nit: Also","commit_id":"ba665a3778551368c817eae054216d675c55fd4d"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"6a9bcb5e13a9c3d646e9b88d3f986e5225b06a0e","unresolved":false,"context_lines":[{"line_number":10,"context_line":"are not in Manila, trying to add a rule that already exists"},{"line_number":11,"context_line":"in backend results in an error. And, rules in backend that"},{"line_number":12,"context_line":"names are not \"share_id + ip\" can\u0027t be deleted."},{"line_number":13,"context_line":"Also, if this share has a rule only in backend and not in"},{"line_number":14,"context_line":"Manila, the deletion of this share would fail because a share"},{"line_number":15,"context_line":"in HSP can\u0027t be deleted when still have rules."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9a89bdaa_e77d481d","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":4},"updated":"2016-09-12 19:53:10.000000000","message":"nit: Additionally","commit_id":"ba665a3778551368c817eae054216d675c55fd4d"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"6a9bcb5e13a9c3d646e9b88d3f986e5225b06a0e","unresolved":false,"context_lines":[{"line_number":12,"context_line":"names are not \"share_id + ip\" can\u0027t be deleted."},{"line_number":13,"context_line":"Also, if this share has a rule only in backend and not in"},{"line_number":14,"context_line":"Manila, the deletion of this share would fail because a share"},{"line_number":15,"context_line":"in HSP can\u0027t be deleted when still have rules."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Fix it by adding a check in update access when rules already"},{"line_number":18,"context_line":"exist in backend. Check for access rule name in backend when"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9a89bdaa_a796e03b","line":15,"range":{"start_line":15,"start_character":24,"end_line":15,"end_character":39},"updated":"2016-09-12 19:53:10.000000000","message":"when it still has","commit_id":"ba665a3778551368c817eae054216d675c55fd4d"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"6a9bcb5e13a9c3d646e9b88d3f986e5225b06a0e","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Fix it by adding a check in update access when rules already"},{"line_number":18,"context_line":"exist in backend. Check for access rule name in backend when"},{"line_number":19,"context_line":"denying access. And cleaning all rules from backend before"},{"line_number":20,"context_line":"delete a share to ensure that it has no children in HSP."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Change-Id: I0c8ee5c47efe22f004692022dd952f301d669b06"},{"line_number":23,"context_line":"Closes-Bug: #1620756"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9a89bdaa_c79be464","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":6},"updated":"2016-09-12 19:53:10.000000000","message":"deleting","commit_id":"ba665a3778551368c817eae054216d675c55fd4d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"fac96c8d3e314c84eb6aeb74e75c36f368c2ac7e","unresolved":false,"context_lines":[{"line_number":11,"context_line":"in backend results in an error. Also, rules in backend that"},{"line_number":12,"context_line":"names are not \"share_id + ip\" can\u0027t be deleted."},{"line_number":13,"context_line":"Additionally, if this share has a rule only in backend and not in"},{"line_number":14,"context_line":"Manila, trying to delete it would fail, because HSP doesn\u0027t allow"},{"line_number":15,"context_line":"delete share when it still has rules."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Fix it by adding a check in update access when rules already"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"7a8ec9b2_2c823101","line":14,"range":{"start_line":14,"start_character":25,"end_line":14,"end_character":27},"updated":"2016-09-14 00:32:34.000000000","message":"the share","commit_id":"b29a0e553f44266fbc544f5cb95cf89f6cfd39db"}],"manila/share/drivers/hitachi/hsp/driver.py":[{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"1e08205dcb1baf740657ae1c79679da55d6da675","unresolved":false,"context_lines":[{"line_number":209,"context_line":"                        (rule[\u0027access_level\u0027] \u003d\u003d constants.ACCESS_LEVEL_RW))"},{"line_number":210,"context_line":"                except exception.HSPBackendException as e:"},{"line_number":211,"context_line":"                    if \u0027Duplicate NFS access rule exists\u0027 in e.msg:"},{"line_number":212,"context_line":"                        LOG.info(_LI(\"Rule %(rule)s already exists in \""},{"line_number":213,"context_line":"                                     \"backend.\"), {\u0027rule\u0027: rule[\u0027access_to\u0027]})"},{"line_number":214,"context_line":"                    else:"},{"line_number":215,"context_line":"                        raise"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a89bdaa_dd1bc819","line":212,"range":{"start_line":212,"start_character":28,"end_line":212,"end_character":32},"updated":"2016-09-06 20:02:41.000000000","message":"debug","commit_id":"815aaa07732a76a4cc7fd435ac7190e087324f48"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"907d74040d60ee61f53eb7ebe3d31560557ef72a","unresolved":false,"context_lines":[{"line_number":209,"context_line":"                        (rule[\u0027access_level\u0027] \u003d\u003d constants.ACCESS_LEVEL_RW))"},{"line_number":210,"context_line":"                except exception.HSPBackendException as e:"},{"line_number":211,"context_line":"                    if \u0027Duplicate NFS access rule exists\u0027 in e.msg:"},{"line_number":212,"context_line":"                        LOG.info(_LI(\"Rule %(rule)s already exists in \""},{"line_number":213,"context_line":"                                     \"backend.\"), {\u0027rule\u0027: rule[\u0027access_to\u0027]})"},{"line_number":214,"context_line":"                    else:"},{"line_number":215,"context_line":"                        raise"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a89bdaa_45d75ebf","line":212,"range":{"start_line":212,"start_character":28,"end_line":212,"end_character":32},"in_reply_to":"9a89bdaa_dd1bc819","updated":"2016-09-09 12:32:51.000000000","message":"Done","commit_id":"815aaa07732a76a4cc7fd435ac7190e087324f48"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"1e08205dcb1baf740657ae1c79679da55d6da675","unresolved":false,"context_lines":[{"line_number":208,"context_line":"                        hsp_share_id, rule[\u0027access_to\u0027],"},{"line_number":209,"context_line":"                        (rule[\u0027access_level\u0027] \u003d\u003d constants.ACCESS_LEVEL_RW))"},{"line_number":210,"context_line":"                except exception.HSPBackendException as e:"},{"line_number":211,"context_line":"                    if \u0027Duplicate NFS access rule exists\u0027 in e.msg:"},{"line_number":212,"context_line":"                        LOG.info(_LI(\"Rule %(rule)s already exists in \""},{"line_number":213,"context_line":"                                     \"backend.\"), {\u0027rule\u0027: rule[\u0027access_to\u0027]})"},{"line_number":214,"context_line":"                    else:"},{"line_number":215,"context_line":"                        raise"},{"line_number":216,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a89bdaa_bde36404","line":213,"range":{"start_line":211,"start_character":20,"end_line":213,"end_character":78},"updated":"2016-09-06 20:02:41.000000000","message":"please add unit tests to cover this.","commit_id":"815aaa07732a76a4cc7fd435ac7190e087324f48"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"907d74040d60ee61f53eb7ebe3d31560557ef72a","unresolved":false,"context_lines":[{"line_number":208,"context_line":"                        hsp_share_id, rule[\u0027access_to\u0027],"},{"line_number":209,"context_line":"                        (rule[\u0027access_level\u0027] \u003d\u003d constants.ACCESS_LEVEL_RW))"},{"line_number":210,"context_line":"                except exception.HSPBackendException as e:"},{"line_number":211,"context_line":"                    if \u0027Duplicate NFS access rule exists\u0027 in e.msg:"},{"line_number":212,"context_line":"                        LOG.info(_LI(\"Rule %(rule)s already exists in \""},{"line_number":213,"context_line":"                                     \"backend.\"), {\u0027rule\u0027: rule[\u0027access_to\u0027]})"},{"line_number":214,"context_line":"                    else:"},{"line_number":215,"context_line":"                        raise"},{"line_number":216,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a89bdaa_65e462ac","line":213,"range":{"start_line":211,"start_character":20,"end_line":213,"end_character":78},"in_reply_to":"9a89bdaa_bde36404","updated":"2016-09-09 12:32:51.000000000","message":"Done","commit_id":"815aaa07732a76a4cc7fd435ac7190e087324f48"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"e0b9d0a82e16963c246897aeb072fecdaa9b1bb2","unresolved":false,"context_lines":[{"line_number":201,"context_line":"                                                rule[\u0027access_to\u0027])"},{"line_number":202,"context_line":"                except exception.HSPBackendException as e:"},{"line_number":203,"context_line":"                    if \u0027No matching access rule found.\u0027 in e.msg:"},{"line_number":204,"context_line":"                        LOG.debug(_LI(\"Rule %(rule)s already deleted in \""},{"line_number":205,"context_line":"                                      \"backend.\"),"},{"line_number":206,"context_line":"                                  {\u0027rule\u0027: rule[\u0027access_to\u0027]})"},{"line_number":207,"context_line":"                    else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a89bdaa_1701ad6a","line":204,"range":{"start_line":204,"start_character":34,"end_line":204,"end_character":37},"updated":"2016-09-12 02:57:02.000000000","message":"Log as debug level, _LI is not supposed to use here.","commit_id":"3d96330f6c159ca44961ae3ccdf147631061ffcc"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"5b6c3d876aff969c635b3db46724fb28a4f4b26b","unresolved":false,"context_lines":[{"line_number":201,"context_line":"                                                rule[\u0027access_to\u0027])"},{"line_number":202,"context_line":"                except exception.HSPBackendException as e:"},{"line_number":203,"context_line":"                    if \u0027No matching access rule found.\u0027 in e.msg:"},{"line_number":204,"context_line":"                        LOG.debug(_LI(\"Rule %(rule)s already deleted in \""},{"line_number":205,"context_line":"                                      \"backend.\"),"},{"line_number":206,"context_line":"                                  {\u0027rule\u0027: rule[\u0027access_to\u0027]})"},{"line_number":207,"context_line":"                    else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a89bdaa_f12fdd9e","line":204,"range":{"start_line":204,"start_character":34,"end_line":204,"end_character":37},"in_reply_to":"9a89bdaa_1701ad6a","updated":"2016-09-12 13:03:02.000000000","message":"Done","commit_id":"3d96330f6c159ca44961ae3ccdf147631061ffcc"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"e0b9d0a82e16963c246897aeb072fecdaa9b1bb2","unresolved":false,"context_lines":[{"line_number":218,"context_line":"                        (rule[\u0027access_level\u0027] \u003d\u003d constants.ACCESS_LEVEL_RW))"},{"line_number":219,"context_line":"                except exception.HSPBackendException as e:"},{"line_number":220,"context_line":"                    if \u0027Duplicate NFS access rule exists\u0027 in e.msg:"},{"line_number":221,"context_line":"                        LOG.debug(_LI(\"Rule %(rule)s already exists in \""},{"line_number":222,"context_line":"                                      \"backend.\"), {\u0027rule\u0027: rule[\u0027access_to\u0027]})"},{"line_number":223,"context_line":"                    else:"},{"line_number":224,"context_line":"                        raise"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a89bdaa_37f8717c","line":221,"range":{"start_line":221,"start_character":34,"end_line":221,"end_character":37},"updated":"2016-09-12 02:57:02.000000000","message":"ditto","commit_id":"3d96330f6c159ca44961ae3ccdf147631061ffcc"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"5b6c3d876aff969c635b3db46724fb28a4f4b26b","unresolved":false,"context_lines":[{"line_number":218,"context_line":"                        (rule[\u0027access_level\u0027] \u003d\u003d constants.ACCESS_LEVEL_RW))"},{"line_number":219,"context_line":"                except exception.HSPBackendException as e:"},{"line_number":220,"context_line":"                    if \u0027Duplicate NFS access rule exists\u0027 in e.msg:"},{"line_number":221,"context_line":"                        LOG.debug(_LI(\"Rule %(rule)s already exists in \""},{"line_number":222,"context_line":"                                      \"backend.\"), {\u0027rule\u0027: rule[\u0027access_to\u0027]})"},{"line_number":223,"context_line":"                    else:"},{"line_number":224,"context_line":"                        raise"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a89bdaa_112b6195","line":221,"range":{"start_line":221,"start_character":34,"end_line":221,"end_character":37},"in_reply_to":"9a89bdaa_37f8717c","updated":"2016-09-12 13:03:02.000000000","message":"Done","commit_id":"3d96330f6c159ca44961ae3ccdf147631061ffcc"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"69ec2e0d390c81843da85bc86a2f1daf112ada42","unresolved":false,"context_lines":[{"line_number":200,"context_line":"                    self.hsp.delete_access_rule(hsp_share_id,"},{"line_number":201,"context_line":"                                                rule[\u0027access_to\u0027])"},{"line_number":202,"context_line":"                except exception.HSPBackendException as e:"},{"line_number":203,"context_line":"                    if \u0027No matching access rule found.\u0027 in e.msg:"},{"line_number":204,"context_line":"                        LOG.debug(\"Rule %(rule)s already deleted in \""},{"line_number":205,"context_line":"                                  \"backend.\", {\u0027rule\u0027: rule[\u0027access_to\u0027]})"},{"line_number":206,"context_line":"                    else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a89bdaa_01cca687","line":203,"range":{"start_line":203,"start_character":19,"end_line":203,"end_character":65},"updated":"2016-09-13 14:51:41.000000000","message":"Is there any return code available? It is very fragile to depend on \"message string\".","commit_id":"2e4e4f06f3a89cf675944246edbec4225dd8ef49"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"69ec2e0d390c81843da85bc86a2f1daf112ada42","unresolved":false,"context_lines":[{"line_number":216,"context_line":"                        hsp_share_id, rule[\u0027access_to\u0027],"},{"line_number":217,"context_line":"                        (rule[\u0027access_level\u0027] \u003d\u003d constants.ACCESS_LEVEL_RW))"},{"line_number":218,"context_line":"                except exception.HSPBackendException as e:"},{"line_number":219,"context_line":"                    if \u0027Duplicate NFS access rule exists\u0027 in e.msg:"},{"line_number":220,"context_line":"                        LOG.debug(\"Rule %(rule)s already exists in \""},{"line_number":221,"context_line":"                                  \"backend.\", {\u0027rule\u0027: rule[\u0027access_to\u0027]})"},{"line_number":222,"context_line":"                    else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a89bdaa_61a3b2b2","line":219,"range":{"start_line":219,"start_character":20,"end_line":219,"end_character":67},"updated":"2016-09-13 14:51:41.000000000","message":"Same here.","commit_id":"2e4e4f06f3a89cf675944246edbec4225dd8ef49"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"fac96c8d3e314c84eb6aeb74e75c36f368c2ac7e","unresolved":false,"context_lines":[{"line_number":233,"context_line":"                    self.hsp.add_access_rule("},{"line_number":234,"context_line":"                        hsp_share_id, rule[\u0027access_to\u0027],"},{"line_number":235,"context_line":"                        (rule[\u0027access_level\u0027] \u003d\u003d constants.ACCESS_LEVEL_RW))"},{"line_number":236,"context_line":"                except exception.HSPBackendException as e:"},{"line_number":237,"context_line":"                    if \u0027Duplicate NFS access rule exists\u0027 in e.msg:"},{"line_number":238,"context_line":"                        LOG.debug(\"Rule %(rule)s already exists in \""},{"line_number":239,"context_line":"                                  \"backend.\", {\u0027rule\u0027: rule[\u0027access_to\u0027]})"},{"line_number":240,"context_line":"                    else:"},{"line_number":241,"context_line":"                        raise"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"        LOG.debug(\"Successfully updated share %(shr)s rules.\","},{"line_number":244,"context_line":"                  {\u0027shr\u0027: share[\u0027id\u0027]})"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a8ec9b2_acf2c198","line":241,"range":{"start_line":236,"start_character":0,"end_line":241,"end_character":29},"updated":"2016-09-14 00:32:34.000000000","message":"suggest using the executils reraise pattern here and above;  \n\n   except exception.HSPBackendException as e:\n       with excutils.save_and_reraise_exception() as exc_context:\n           if \u0027Duplicate NFS access rule exists\u0027 in e.msg:\n               LOG.debug(\"Rule %(rule)s already exists in \"\n                                  \"backend.\", {\u0027rule\u0027: rule[\u0027access_to\u0027]})\n               exc_context.reraise \u003d False","commit_id":"b29a0e553f44266fbc544f5cb95cf89f6cfd39db"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"ae1ccf60121403f86915d04b92602f08a9ed2309","unresolved":false,"context_lines":[{"line_number":233,"context_line":"                    self.hsp.add_access_rule("},{"line_number":234,"context_line":"                        hsp_share_id, rule[\u0027access_to\u0027],"},{"line_number":235,"context_line":"                        (rule[\u0027access_level\u0027] \u003d\u003d constants.ACCESS_LEVEL_RW))"},{"line_number":236,"context_line":"                except exception.HSPBackendException as e:"},{"line_number":237,"context_line":"                    if \u0027Duplicate NFS access rule exists\u0027 in e.msg:"},{"line_number":238,"context_line":"                        LOG.debug(\"Rule %(rule)s already exists in \""},{"line_number":239,"context_line":"                                  \"backend.\", {\u0027rule\u0027: rule[\u0027access_to\u0027]})"},{"line_number":240,"context_line":"                    else:"},{"line_number":241,"context_line":"                        raise"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"        LOG.debug(\"Successfully updated share %(shr)s rules.\","},{"line_number":244,"context_line":"                  {\u0027shr\u0027: share[\u0027id\u0027]})"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a8ec9b2_bf5bac53","line":241,"range":{"start_line":236,"start_character":0,"end_line":241,"end_character":29},"in_reply_to":"7a8ec9b2_acf2c198","updated":"2016-09-14 11:28:10.000000000","message":"Hello Goutham! save_and_reraise_exception is used only in create_share, when something goes wrong in add_share and a cleanup is needed. It saves the current exception and if another exception occurs while running the cleanup, the old exception is logged and the new one is re-raised. Its not the same pattern here, where I just want to raise or not in some special case. What do you think? Thanks!","commit_id":"b29a0e553f44266fbc544f5cb95cf89f6cfd39db"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"691491494d08e48133315a69f45b991e2c5ba5c1","unresolved":false,"context_lines":[{"line_number":233,"context_line":"                    self.hsp.add_access_rule("},{"line_number":234,"context_line":"                        hsp_share_id, rule[\u0027access_to\u0027],"},{"line_number":235,"context_line":"                        (rule[\u0027access_level\u0027] \u003d\u003d constants.ACCESS_LEVEL_RW))"},{"line_number":236,"context_line":"                except exception.HSPBackendException as e:"},{"line_number":237,"context_line":"                    if \u0027Duplicate NFS access rule exists\u0027 in e.msg:"},{"line_number":238,"context_line":"                        LOG.debug(\"Rule %(rule)s already exists in \""},{"line_number":239,"context_line":"                                  \"backend.\", {\u0027rule\u0027: rule[\u0027access_to\u0027]})"},{"line_number":240,"context_line":"                    else:"},{"line_number":241,"context_line":"                        raise"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"        LOG.debug(\"Successfully updated share %(shr)s rules.\","},{"line_number":244,"context_line":"                  {\u0027shr\u0027: share[\u0027id\u0027]})"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a8ec9b2_53045f14","line":241,"range":{"start_line":236,"start_character":0,"end_line":241,"end_character":29},"in_reply_to":"7a8ec9b2_bf5bac53","updated":"2016-09-14 12:12:49.000000000","message":"Yes, you\u0027re right.. it\u0027s overkill for this case, unless e.msg is None and raises its own exception (we\u0027ve probably other problems if it is None); anyway, it was just cleaner than the if.. else to read; other reviewers may find that okay; of course there\u0027s the argument that you don\u0027t need third party libs if you can achieve what you want with just builtins.","commit_id":"b29a0e553f44266fbc544f5cb95cf89f6cfd39db"}],"manila/share/drivers/hitachi/hsp/rest.py":[{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"21daffc2e716782d43f99579cdce53d3e55af1f7","unresolved":false,"context_lines":[{"line_number":172,"context_line":"        url \u003d \"https://%s/hspapi/shares/%s/\" % (self.host, share_id)"},{"line_number":173,"context_line":"        payload \u003d {"},{"line_number":174,"context_line":"            \"action\": \"delete-access-rule\","},{"line_number":175,"context_line":"            \"name\": rule_name,"},{"line_number":176,"context_line":"        }"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        self._send_post(url, payload\u003djson.dumps(payload))"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a89bdaa_fd9dda66","line":175,"range":{"start_line":175,"start_character":20,"end_line":175,"end_character":29},"updated":"2016-09-07 06:57:43.000000000","message":"is it possible that rule_name is None here?","commit_id":"815aaa07732a76a4cc7fd435ac7190e087324f48"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"907d74040d60ee61f53eb7ebe3d31560557ef72a","unresolved":false,"context_lines":[{"line_number":172,"context_line":"        url \u003d \"https://%s/hspapi/shares/%s/\" % (self.host, share_id)"},{"line_number":173,"context_line":"        payload \u003d {"},{"line_number":174,"context_line":"            \"action\": \"delete-access-rule\","},{"line_number":175,"context_line":"            \"name\": rule_name,"},{"line_number":176,"context_line":"        }"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        self._send_post(url, payload\u003djson.dumps(payload))"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a89bdaa_c436ebe6","line":175,"range":{"start_line":175,"start_character":20,"end_line":175,"end_character":29},"in_reply_to":"9a89bdaa_fd9dda66","updated":"2016-09-09 12:32:51.000000000","message":"Yes, if the rule is deleted manually in backend, adding a verify to this case. Thanks!","commit_id":"815aaa07732a76a4cc7fd435ac7190e087324f48"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"6a9bcb5e13a9c3d646e9b88d3f986e5225b06a0e","unresolved":false,"context_lines":[{"line_number":149,"context_line":"    def delete_share(self, share_id):"},{"line_number":150,"context_line":"        url \u003d \"https://%s/hspapi/shares/%s\" % (self.host, share_id)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        # Clean all rules from share before deleting it"},{"line_number":153,"context_line":"        current_rules \u003d self.get_access_rules(share_id)"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"        for rule in current_rules:"},{"line_number":156,"context_line":"            payload \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a89bdaa_47ed14b6","line":153,"range":{"start_line":152,"start_character":7,"end_line":153,"end_character":55},"updated":"2016-09-12 19:53:10.000000000","message":"Alyson, this should be in the above layer. This layer is responsible for only converting commands into REST API requests","commit_id":"ba665a3778551368c817eae054216d675c55fd4d"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"6a9bcb5e13a9c3d646e9b88d3f986e5225b06a0e","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        self._send_post(url, payload\u003djson.dumps(payload))"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    def delete_access_rule(self, share_id, host_to):"},{"line_number":176,"context_line":"        rule_name \u003d share_id + host_to"},{"line_number":177,"context_line":"        current_rules \u003d self.get_access_rules(share_id)"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"        for rule in current_rules:"},{"line_number":180,"context_line":"            if rule[\u0027host-specification\u0027] \u003d\u003d host_to:"},{"line_number":181,"context_line":"                rule_name \u003d rule[\u0027name\u0027]"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"        url \u003d \"https://%s/hspapi/shares/%s/\" % (self.host, share_id)"},{"line_number":184,"context_line":"        payload \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a89bdaa_076cec33","line":181,"range":{"start_line":176,"start_character":8,"end_line":181,"end_character":40},"updated":"2016-09-12 19:53:10.000000000","message":"same as above","commit_id":"ba665a3778551368c817eae054216d675c55fd4d"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"69ec2e0d390c81843da85bc86a2f1daf112ada42","unresolved":false,"context_lines":[{"line_number":178,"context_line":""},{"line_number":179,"context_line":"        for rule in current_rules:"},{"line_number":180,"context_line":"            if rule[\u0027host-specification\u0027] \u003d\u003d host_to:"},{"line_number":181,"context_line":"                rule_name \u003d rule[\u0027name\u0027]"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"        url \u003d \"https://%s/hspapi/shares/%s/\" % (self.host, share_id)"},{"line_number":184,"context_line":"        payload \u003d {"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a89bdaa_41706e40","line":181,"updated":"2016-09-13 14:51:41.000000000","message":"After reaching line 181 you should quit loop.","commit_id":"2e4e4f06f3a89cf675944246edbec4225dd8ef49"}],"manila/tests/share/drivers/hitachi/hsp/test_rest.py":[{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"e1264a5ab089904a2def12a372c41706dacd2f04","unresolved":false,"context_lines":[{"line_number":237,"context_line":"    def test_delete_share(self):"},{"line_number":238,"context_line":"        url \u003d \"https://172.24.47.190/hspapi/shares/%s\" % fakes.share[\u0027id\u0027]"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        self.mock_object(rest.HSPRestBackend, \"get_access_rules\","},{"line_number":241,"context_line":"                         mock.Mock(return_value\u003d[{\u0027name\u0027: \u0027rule1\u0027}]))"},{"line_number":242,"context_line":"        self.mock_object(rest.HSPRestBackend, \"_send_post\")"},{"line_number":243,"context_line":"        self.mock_object(rest.HSPRestBackend, \"_send_delete\")"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"        self._driver.delete_share(fakes.share[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a89bdaa_4ce995b6","line":242,"range":{"start_line":240,"start_character":0,"end_line":242,"end_character":59},"updated":"2016-09-13 11:19:36.000000000","message":"Can you add assertions that these mocks were called as expected?","commit_id":"2e4e4f06f3a89cf675944246edbec4225dd8ef49"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"69ec2e0d390c81843da85bc86a2f1daf112ada42","unresolved":false,"context_lines":[{"line_number":237,"context_line":"    def test_delete_share(self):"},{"line_number":238,"context_line":"        url \u003d \"https://172.24.47.190/hspapi/shares/%s\" % fakes.share[\u0027id\u0027]"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        self.mock_object(rest.HSPRestBackend, \"get_access_rules\","},{"line_number":241,"context_line":"                         mock.Mock(return_value\u003d[{\u0027name\u0027: \u0027rule1\u0027}]))"},{"line_number":242,"context_line":"        self.mock_object(rest.HSPRestBackend, \"_send_post\")"},{"line_number":243,"context_line":"        self.mock_object(rest.HSPRestBackend, \"_send_delete\")"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"        self._driver.delete_share(fakes.share[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a89bdaa_81cc3636","line":242,"range":{"start_line":240,"start_character":0,"end_line":242,"end_character":59},"in_reply_to":"9a89bdaa_4ce995b6","updated":"2016-09-13 14:51:41.000000000","message":"+1","commit_id":"2e4e4f06f3a89cf675944246edbec4225dd8ef49"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"e1264a5ab089904a2def12a372c41706dacd2f04","unresolved":false,"context_lines":[{"line_number":264,"context_line":"        rest.HSPRestBackend._send_post.assert_called_once_with("},{"line_number":265,"context_line":"            url, payload\u003djson.dumps(payload))"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"    def test_delete_access_rule(self):"},{"line_number":268,"context_line":"        url \u003d \"https://172.24.47.190/hspapi/shares/%s/\" % fakes.share[\u0027id\u0027]"},{"line_number":269,"context_line":"        payload \u003d {"},{"line_number":270,"context_line":"            \"action\": \"delete-access-rule\","}],"source_content_type":"text/x-python","patch_set":5,"id":"9a89bdaa_2c41b163","line":267,"range":{"start_line":267,"start_character":8,"end_line":267,"end_character":31},"updated":"2016-09-13 11:19:36.000000000","message":"Can you add a test where your condition \"if rule[\u0027host-specification\u0027] \u003d\u003d host_to\" is False?","commit_id":"2e4e4f06f3a89cf675944246edbec4225dd8ef49"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"e1264a5ab089904a2def12a372c41706dacd2f04","unresolved":false,"context_lines":[{"line_number":320,"context_line":"            \u0027id\u0027: \u0027fake_id\u0027,"},{"line_number":321,"context_line":"            \u0027properties\u0027: {"},{"line_number":322,"context_line":"                \u0027completion-details\u0027: \u0027Duplicate NFS access rule exists\u0027,"},{"line_number":323,"context_line":"                \u0027completion-status\u0027: stat},"},{"line_number":324,"context_line":"            \u0027messages\u0027: [{"},{"line_number":325,"context_line":"                \u0027id\u0027: \u0027fake_id\u0027,"},{"line_number":326,"context_line":"                \u0027message\u0027: \u0027fake_msg\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a89bdaa_2c0ff139","line":323,"range":{"start_line":323,"start_character":41,"end_line":323,"end_character":43},"updated":"2016-09-13 11:19:36.000000000","message":"Nit: wrap.","commit_id":"2e4e4f06f3a89cf675944246edbec4225dd8ef49"}],"releasenotes/notes/rules-for-managed-share-f28a26ffc980f6fb.yaml":[{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"1e08205dcb1baf740657ae1c79679da55d6da675","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Fixed HSP driver not supporting adding rules"},{"line_number":4,"context_line":"that exists in backend for managed shares. "}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9a89bdaa_dda028a2","line":4,"range":{"start_line":4,"start_character":0,"end_line":4,"end_character":4},"updated":"2016-09-06 20:02:41.000000000","message":"add padding","commit_id":"815aaa07732a76a4cc7fd435ac7190e087324f48"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"21daffc2e716782d43f99579cdce53d3e55af1f7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Fixed HSP driver not supporting adding rules"},{"line_number":4,"context_line":"that exists in backend for managed shares. "}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9a89bdaa_c2dd97e1","line":4,"range":{"start_line":4,"start_character":5,"end_line":4,"end_character":11},"updated":"2016-09-07 06:57:43.000000000","message":"exist","commit_id":"815aaa07732a76a4cc7fd435ac7190e087324f48"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"1e08205dcb1baf740657ae1c79679da55d6da675","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Fixed HSP driver not supporting adding rules"},{"line_number":4,"context_line":"that exists in backend for managed shares. "}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9a89bdaa_bd91a454","line":4,"range":{"start_line":4,"start_character":42,"end_line":4,"end_character":43},"updated":"2016-09-06 20:02:41.000000000","message":"trailing space","commit_id":"815aaa07732a76a4cc7fd435ac7190e087324f48"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"907d74040d60ee61f53eb7ebe3d31560557ef72a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Fixed HSP driver not supporting adding rules"},{"line_number":4,"context_line":"that exists in backend for managed shares. "}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9a89bdaa_81fdba70","line":4,"range":{"start_line":4,"start_character":5,"end_line":4,"end_character":11},"in_reply_to":"9a89bdaa_c2dd97e1","updated":"2016-09-09 12:32:51.000000000","message":"Done","commit_id":"815aaa07732a76a4cc7fd435ac7190e087324f48"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"69ec2e0d390c81843da85bc86a2f1daf112ada42","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Fixed HSP driver not supporting adding rules"},{"line_number":4,"context_line":"    that exist in backend for managed shares. Also,"},{"line_number":5,"context_line":"    fixed HSP driver not supporting deleting share if"},{"line_number":6,"context_line":"    it has rules in backend that are not in Manila."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9a89bdaa_41f6ae5d","line":6,"range":{"start_line":3,"start_character":4,"end_line":6,"end_character":51},"updated":"2016-09-13 14:51:41.000000000","message":"Actually, it is 2 separate bug fixes. So, even if you fix them in single commit, I suggest writing two \"fixes\" statements here.","commit_id":"2e4e4f06f3a89cf675944246edbec4225dd8ef49"}]}
