)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"4d2b8524bbeef8b09055d78265851ea313a8e6ac","unresolved":true,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2021-01-06 07:09:31 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Zadara Manila driver changes"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Iae0eaf8b37d5eecc352af6546fd0cfa4cadab497"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"0f3af1c9_1afa3e66","line":8,"updated":"2021-01-09 00:55:53.000000000","message":"Add this comment line:\n\n\nImplements: bp zadara-manila-driver","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"b85d71ce5b343829f27dcbbef201020929e8918e","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2021-01-06 07:09:31 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Zadara Manila driver changes"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Iae0eaf8b37d5eecc352af6546fd0cfa4cadab497"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"c91b0cdb_7a004ab8","line":8,"in_reply_to":"0f3af1c9_1afa3e66","updated":"2021-01-24 18:46:41.000000000","message":"Done","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f0faf37228b7975971b039cebdf092b6e5e42ced","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Adding Zadara Manila driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implements: https://blueprints.launchpad.net/openstack/?searchtext\u003dzadara-manila-driver"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Iae0eaf8b37d5eecc352af6546fd0cfa4cadab497"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"52c221ed_996fa139","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":87},"updated":"2021-03-05 19:55:59.000000000","message":"nit: If you make another patch, please fix - the syntax for this is:\n\nImplements: bp zadara-manila-driver\nor\n\nImplements: blueprint zadara-manila-driver\n\nHaving this line helps our gerrit bot post updates to the blueprint on Launchpad when this change is updated or merges","commit_id":"84ac30d6dcb24629511bd08fd123266276ea7b59"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"d065c3b72baaccf665160125ce2d60c2447a298c","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Adding Zadara Manila driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implements: https://blueprints.launchpad.net/openstack/?searchtext\u003dzadara-manila-driver"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Iae0eaf8b37d5eecc352af6546fd0cfa4cadab497"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"c6670163_e64b7486","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":87},"in_reply_to":"52c221ed_996fa139","updated":"2021-03-06 08:07:20.000000000","message":"Done","commit_id":"84ac30d6dcb24629511bd08fd123266276ea7b59"}],"manila/exception.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d40d9ad1605c1ca49d25e49daaf795aec66152d8","unresolved":true,"context_lines":[{"line_number":1012,"context_line":""},{"line_number":1013,"context_line":""},{"line_number":1014,"context_line":"# Zadara storage driver"},{"line_number":1015,"context_line":"class UnknownCmd(ShareBackendException):"},{"line_number":1016,"context_line":"    message \u003d _(\"Unknown or unsupported command %(cmd)s\")"},{"line_number":1017,"context_line":""},{"line_number":1018,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"e7a005c2_7167c8c6","line":1015,"range":{"start_line":1015,"start_character":6,"end_line":1015,"end_character":16},"updated":"2021-03-05 07:00:20.000000000","message":"ZadaraUnknownCmd","commit_id":"f1bf49bc1e2fd336b94df75a0c0aeda295348483"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"838d0443bbb20f54d9f04baee7663e0f3d74ca73","unresolved":false,"context_lines":[{"line_number":1012,"context_line":""},{"line_number":1013,"context_line":""},{"line_number":1014,"context_line":"# Zadara storage driver"},{"line_number":1015,"context_line":"class UnknownCmd(ShareBackendException):"},{"line_number":1016,"context_line":"    message \u003d _(\"Unknown or unsupported command %(cmd)s\")"},{"line_number":1017,"context_line":""},{"line_number":1018,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"cfdce99c_2f066205","line":1015,"range":{"start_line":1015,"start_character":6,"end_line":1015,"end_character":16},"in_reply_to":"e7a005c2_7167c8c6","updated":"2021-03-05 18:59:48.000000000","message":"Done","commit_id":"f1bf49bc1e2fd336b94df75a0c0aeda295348483"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d40d9ad1605c1ca49d25e49daaf795aec66152d8","unresolved":true,"context_lines":[{"line_number":1016,"context_line":"    message \u003d _(\"Unknown or unsupported command %(cmd)s\")"},{"line_number":1017,"context_line":""},{"line_number":1018,"context_line":""},{"line_number":1019,"context_line":"class SessionRequestException(ShareBackendException):"},{"line_number":1020,"context_line":"    message \u003d _(\"%(msg)s\")"},{"line_number":1021,"context_line":""},{"line_number":1022,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"de9f546c_6e0a7b9b","line":1019,"range":{"start_line":1019,"start_character":6,"end_line":1019,"end_character":29},"updated":"2021-03-05 07:00:20.000000000","message":"ZadaraSessionRequestException","commit_id":"f1bf49bc1e2fd336b94df75a0c0aeda295348483"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"838d0443bbb20f54d9f04baee7663e0f3d74ca73","unresolved":false,"context_lines":[{"line_number":1016,"context_line":"    message \u003d _(\"Unknown or unsupported command %(cmd)s\")"},{"line_number":1017,"context_line":""},{"line_number":1018,"context_line":""},{"line_number":1019,"context_line":"class SessionRequestException(ShareBackendException):"},{"line_number":1020,"context_line":"    message \u003d _(\"%(msg)s\")"},{"line_number":1021,"context_line":""},{"line_number":1022,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"585bbab9_ff2ffaeb","line":1019,"range":{"start_line":1019,"start_character":6,"end_line":1019,"end_character":29},"in_reply_to":"de9f546c_6e0a7b9b","updated":"2021-03-05 18:59:48.000000000","message":"Done","commit_id":"f1bf49bc1e2fd336b94df75a0c0aeda295348483"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d40d9ad1605c1ca49d25e49daaf795aec66152d8","unresolved":true,"context_lines":[{"line_number":1020,"context_line":"    message \u003d _(\"%(msg)s\")"},{"line_number":1021,"context_line":""},{"line_number":1022,"context_line":""},{"line_number":1023,"context_line":"class BadHTTPResponseStatus(ShareBackendException):"},{"line_number":1024,"context_line":"    message \u003d _(\"Bad HTTP response status %(status)s\")"},{"line_number":1025,"context_line":""},{"line_number":1026,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"855b93a7_7853d889","line":1023,"range":{"start_line":1023,"start_character":6,"end_line":1023,"end_character":27},"updated":"2021-03-05 07:00:20.000000000","message":"ZadaraBadHTTPResponseStatus","commit_id":"f1bf49bc1e2fd336b94df75a0c0aeda295348483"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"838d0443bbb20f54d9f04baee7663e0f3d74ca73","unresolved":false,"context_lines":[{"line_number":1020,"context_line":"    message \u003d _(\"%(msg)s\")"},{"line_number":1021,"context_line":""},{"line_number":1022,"context_line":""},{"line_number":1023,"context_line":"class BadHTTPResponseStatus(ShareBackendException):"},{"line_number":1024,"context_line":"    message \u003d _(\"Bad HTTP response status %(status)s\")"},{"line_number":1025,"context_line":""},{"line_number":1026,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"4ad862da_72d67a62","line":1023,"range":{"start_line":1023,"start_character":6,"end_line":1023,"end_character":27},"in_reply_to":"855b93a7_7853d889","updated":"2021-03-05 18:59:48.000000000","message":"Done","commit_id":"f1bf49bc1e2fd336b94df75a0c0aeda295348483"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d40d9ad1605c1ca49d25e49daaf795aec66152d8","unresolved":true,"context_lines":[{"line_number":1024,"context_line":"    message \u003d _(\"Bad HTTP response status %(status)s\")"},{"line_number":1025,"context_line":""},{"line_number":1026,"context_line":""},{"line_number":1027,"context_line":"class FailedCmdWithDump(ShareBackendException):"},{"line_number":1028,"context_line":"    message \u003d _(\"Operation failed with status\u003d%(status)s. Full dump: %(data)s\")"},{"line_number":1029,"context_line":""},{"line_number":1030,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"b3c2415b_f17f5306","line":1027,"range":{"start_line":1027,"start_character":6,"end_line":1027,"end_character":23},"updated":"2021-03-05 07:00:20.000000000","message":"ZadaraFailedCmdWithDump","commit_id":"f1bf49bc1e2fd336b94df75a0c0aeda295348483"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"838d0443bbb20f54d9f04baee7663e0f3d74ca73","unresolved":false,"context_lines":[{"line_number":1024,"context_line":"    message \u003d _(\"Bad HTTP response status %(status)s\")"},{"line_number":1025,"context_line":""},{"line_number":1026,"context_line":""},{"line_number":1027,"context_line":"class FailedCmdWithDump(ShareBackendException):"},{"line_number":1028,"context_line":"    message \u003d _(\"Operation failed with status\u003d%(status)s. Full dump: %(data)s\")"},{"line_number":1029,"context_line":""},{"line_number":1030,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"674f294c_2673a77c","line":1027,"range":{"start_line":1027,"start_character":6,"end_line":1027,"end_character":23},"in_reply_to":"b3c2415b_f17f5306","updated":"2021-03-05 18:59:48.000000000","message":"Done","commit_id":"f1bf49bc1e2fd336b94df75a0c0aeda295348483"}],"manila/share/drivers/zadara/common.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"4d2b8524bbeef8b09055d78265851ea313a8e6ac","unresolved":true,"context_lines":[{"line_number":25,"context_line":"import oslo_i18n"},{"line_number":26,"context_line":"from oslo_log import log as logging"},{"line_number":27,"context_line":"import requests"},{"line_number":28,"context_line":"import six"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"DOMAIN \u003d \u0027ZadaraDrivers\u0027"},{"line_number":31,"context_line":"_translators \u003d oslo_i18n.TranslatorFactory(domain\u003dDOMAIN)"}],"source_content_type":"text/x-python","patch_set":3,"id":"f157dc09_2a40f2bb","line":28,"updated":"2021-01-09 00:55:53.000000000","message":"We don\u0027t support python2, so no need to use six.","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"7e8bbbd2f027310765ce152c2e9315499e8c2070","unresolved":false,"context_lines":[{"line_number":25,"context_line":"import oslo_i18n"},{"line_number":26,"context_line":"from oslo_log import log as logging"},{"line_number":27,"context_line":"import requests"},{"line_number":28,"context_line":"import six"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"DOMAIN \u003d \u0027ZadaraDrivers\u0027"},{"line_number":31,"context_line":"_translators \u003d oslo_i18n.TranslatorFactory(domain\u003dDOMAIN)"}],"source_content_type":"text/x-python","patch_set":3,"id":"644f1b9b_0499be0a","line":28,"in_reply_to":"f157dc09_2a40f2bb","updated":"2021-01-24 18:39:14.000000000","message":"Removed.","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"4d2b8524bbeef8b09055d78265851ea313a8e6ac","unresolved":true,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"DOMAIN \u003d \u0027ZadaraDrivers\u0027"},{"line_number":31,"context_line":"_translators \u003d oslo_i18n.TranslatorFactory(domain\u003dDOMAIN)"},{"line_number":32,"context_line":"_ \u003d _translators.primary"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"2b264474_5563648f","line":32,"updated":"2021-01-09 00:55:53.000000000","message":"Service projects no longer receive translations of logs. Please remove.","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"7e8bbbd2f027310765ce152c2e9315499e8c2070","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"DOMAIN \u003d \u0027ZadaraDrivers\u0027"},{"line_number":31,"context_line":"_translators \u003d oslo_i18n.TranslatorFactory(domain\u003dDOMAIN)"},{"line_number":32,"context_line":"_ \u003d _translators.primary"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"e597819e_10f366d6","line":32,"in_reply_to":"2b264474_5563648f","updated":"2021-01-24 18:39:14.000000000","message":"Removed.","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"4d2b8524bbeef8b09055d78265851ea313a8e6ac","unresolved":true,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"zadara_opts \u003d ["},{"line_number":78,"context_line":"    cfg.BoolOpt(\u0027zadara_use_iser\u0027,"},{"line_number":79,"context_line":"                default\u003dTrue,"},{"line_number":80,"context_line":"                help\u003d\u0027VPSA - Use ISER instead of iSCSI\u0027),"},{"line_number":81,"context_line":"    cfg.StrOpt(\u0027zadara_vpsa_host\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"391ed6c9_acdcecab","line":78,"range":{"start_line":78,"start_character":17,"end_line":78,"end_character":32},"updated":"2021-01-09 00:55:53.000000000","message":"Is iSER or iSCSI relevant to work with NFS/CIFS filesystems? - this opt is not being used in the driver","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"7e8bbbd2f027310765ce152c2e9315499e8c2070","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"zadara_opts \u003d ["},{"line_number":78,"context_line":"    cfg.BoolOpt(\u0027zadara_use_iser\u0027,"},{"line_number":79,"context_line":"                default\u003dTrue,"},{"line_number":80,"context_line":"                help\u003d\u0027VPSA - Use ISER instead of iSCSI\u0027),"},{"line_number":81,"context_line":"    cfg.StrOpt(\u0027zadara_vpsa_host\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"6a2883b3_9e68b90c","line":78,"range":{"start_line":78,"start_character":17,"end_line":78,"end_character":32},"in_reply_to":"11d9a780_680dda05","updated":"2021-01-24 18:39:14.000000000","message":"Removed the driver specific code from the common file.","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"05df14d1ac8e93612a53ba4962b427c1f77041eb","unresolved":true,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"zadara_opts \u003d ["},{"line_number":78,"context_line":"    cfg.BoolOpt(\u0027zadara_use_iser\u0027,"},{"line_number":79,"context_line":"                default\u003dTrue,"},{"line_number":80,"context_line":"                help\u003d\u0027VPSA - Use ISER instead of iSCSI\u0027),"},{"line_number":81,"context_line":"    cfg.StrOpt(\u0027zadara_vpsa_host\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"b682b892_9fb45eb6","line":78,"range":{"start_line":78,"start_character":17,"end_line":78,"end_character":32},"in_reply_to":"316b5c0a_9c836345","updated":"2021-01-14 16:11:51.000000000","message":"No - manila and cinder code bases are separate; and neither service has any dependency on the other. To share common code between the two services would require you to put this in a separate python library that the drivers can use. I would recommend against it, because downstream package maintainers will need to package that additional library.","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"014a1c435a5276332907e9341c22a539898548c4","unresolved":true,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"zadara_opts \u003d ["},{"line_number":78,"context_line":"    cfg.BoolOpt(\u0027zadara_use_iser\u0027,"},{"line_number":79,"context_line":"                default\u003dTrue,"},{"line_number":80,"context_line":"                help\u003d\u0027VPSA - Use ISER instead of iSCSI\u0027),"},{"line_number":81,"context_line":"    cfg.StrOpt(\u0027zadara_vpsa_host\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"316b5c0a_9c836345","line":78,"range":{"start_line":78,"start_character":17,"end_line":78,"end_character":32},"in_reply_to":"391ed6c9_acdcecab","updated":"2021-01-13 03:36:47.000000000","message":"This is related to our repository layout. Let me explain.\n\nZadara repository layout for openstack drivers is divided to contain\ndifferent drivers with all common objects across them inside the common file.\n---\u003e\n  manila -\u003e Directory for all the driver changes for manila service\n  cinder -\u003e Dir. for the driver changes for cinder service\n  common.py -\u003e The common objects that act as interface for zadara backend\n----\u003e\nThere will be some options that are not applicable for manila, but for cinder.\nCan you please suggest if this is acceptable?","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"abc9e6fe350bad0efb6a6597f73128303275d46a","unresolved":true,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"zadara_opts \u003d ["},{"line_number":78,"context_line":"    cfg.BoolOpt(\u0027zadara_use_iser\u0027,"},{"line_number":79,"context_line":"                default\u003dTrue,"},{"line_number":80,"context_line":"                help\u003d\u0027VPSA - Use ISER instead of iSCSI\u0027),"},{"line_number":81,"context_line":"    cfg.StrOpt(\u0027zadara_vpsa_host\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"e8201d76_ec60ebb4","line":78,"range":{"start_line":78,"start_character":17,"end_line":78,"end_character":32},"in_reply_to":"b682b892_9fb45eb6","updated":"2021-01-19 15:43:27.000000000","message":"To clear, there are no dependencies introduced per se, between the manila and cinder services. The common code is the same, but the file is separately associated with each driver code bases.\n\nThe entire api\u0027s are completely common, expect for irrelevant options, which is similar to deprecated case. Please share your thoughts. Thanks.","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f81642d37387f883c89d0b421d5880118533530c","unresolved":true,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"zadara_opts \u003d ["},{"line_number":78,"context_line":"    cfg.BoolOpt(\u0027zadara_use_iser\u0027,"},{"line_number":79,"context_line":"                default\u003dTrue,"},{"line_number":80,"context_line":"                help\u003d\u0027VPSA - Use ISER instead of iSCSI\u0027),"},{"line_number":81,"context_line":"    cfg.StrOpt(\u0027zadara_vpsa_host\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"11d9a780_680dda05","line":78,"range":{"start_line":78,"start_character":17,"end_line":78,"end_character":32},"in_reply_to":"e8201d76_ec60ebb4","updated":"2021-01-19 18:51:07.000000000","message":"What purpose would carrying unrelated code serve? If a method here is unnecessary/unused here, please remove it so it doesn\u0027t confuse reviewers and future maintainers. \n\nI would be strongly against adding unnecessary options - these options get generated into the configuration file and serve as documentation and would end up confusing deployes.","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"4d2b8524bbeef8b09055d78265851ea313a8e6ac","unresolved":true,"context_lines":[{"line_number":91,"context_line":"                default\u003dTrue,"},{"line_number":92,"context_line":"                help\u003d\u0027If set to True the http client will validate the SSL \u0027"},{"line_number":93,"context_line":"                     \u0027certificate of the VPSA endpoint.\u0027),"},{"line_number":94,"context_line":"    cfg.StrOpt(\u0027zadara_user\u0027,"},{"line_number":95,"context_line":"               default\u003dNone,"},{"line_number":96,"context_line":"               deprecated_for_removal\u003dTrue,"},{"line_number":97,"context_line":"               help\u003d\u0027VPSA - Username\u0027),"},{"line_number":98,"context_line":"    cfg.StrOpt(\u0027zadara_password\u0027,"},{"line_number":99,"context_line":"               default\u003dNone,"},{"line_number":100,"context_line":"               help\u003d\u0027VPSA - Password\u0027,"},{"line_number":101,"context_line":"               deprecated_for_removal\u003dTrue,"},{"line_number":102,"context_line":"               secret\u003dTrue),"},{"line_number":103,"context_line":"    cfg.StrOpt(\u0027zadara_access_key\u0027,"},{"line_number":104,"context_line":"               default\u003dNone,"},{"line_number":105,"context_line":"               help\u003d\u0027VPSA access key\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"85259e89_2eada9a7","line":102,"range":{"start_line":94,"start_character":1,"end_line":102,"end_character":28},"updated":"2021-01-09 00:55:53.000000000","message":"why are these options being introduced as deprecated?","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"7e8bbbd2f027310765ce152c2e9315499e8c2070","unresolved":false,"context_lines":[{"line_number":91,"context_line":"                default\u003dTrue,"},{"line_number":92,"context_line":"                help\u003d\u0027If set to True the http client will validate the SSL \u0027"},{"line_number":93,"context_line":"                     \u0027certificate of the VPSA endpoint.\u0027),"},{"line_number":94,"context_line":"    cfg.StrOpt(\u0027zadara_user\u0027,"},{"line_number":95,"context_line":"               default\u003dNone,"},{"line_number":96,"context_line":"               deprecated_for_removal\u003dTrue,"},{"line_number":97,"context_line":"               help\u003d\u0027VPSA - Username\u0027),"},{"line_number":98,"context_line":"    cfg.StrOpt(\u0027zadara_password\u0027,"},{"line_number":99,"context_line":"               default\u003dNone,"},{"line_number":100,"context_line":"               help\u003d\u0027VPSA - Password\u0027,"},{"line_number":101,"context_line":"               deprecated_for_removal\u003dTrue,"},{"line_number":102,"context_line":"               secret\u003dTrue),"},{"line_number":103,"context_line":"    cfg.StrOpt(\u0027zadara_access_key\u0027,"},{"line_number":104,"context_line":"               default\u003dNone,"},{"line_number":105,"context_line":"               help\u003d\u0027VPSA access key\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"f9babcda_e3a0b736","line":102,"range":{"start_line":94,"start_character":1,"end_line":102,"end_character":28},"in_reply_to":"85259e89_2eada9a7","updated":"2021-01-24 18:39:14.000000000","message":"Required for older versions. Removed.","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"4d2b8524bbeef8b09055d78265851ea313a8e6ac","unresolved":true,"context_lines":[{"line_number":116,"context_line":"    cfg.BoolOpt(\u0027zadara_gen3_vol_compress\u0027,"},{"line_number":117,"context_line":"                default\u003dFalse,"},{"line_number":118,"context_line":"                help\u003d\u0027VPSA - Enable compression for volumes\u0027),"},{"line_number":119,"context_line":"    cfg.StrOpt(\u0027zadara_vol_name_template\u0027,"},{"line_number":120,"context_line":"               default\u003d\u0027OS_%s\u0027,"},{"line_number":121,"context_line":"               help\u003d\u0027VPSA - Default template for VPSA volume names\u0027),"},{"line_number":122,"context_line":"    cfg.StrOpt(\u0027zadara_share_name_template\u0027,"},{"line_number":123,"context_line":"               default\u003d\u0027OS_share-%s\u0027,"},{"line_number":124,"context_line":"               help\u003d\u0027VPSA - Default template for VPSA share names\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"99e61c59_c499fe35","line":121,"range":{"start_line":119,"start_character":0,"end_line":121,"end_character":69},"updated":"2021-01-09 00:55:53.000000000","message":"This option isn\u0027t being used in the driver","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"7e8bbbd2f027310765ce152c2e9315499e8c2070","unresolved":false,"context_lines":[{"line_number":116,"context_line":"    cfg.BoolOpt(\u0027zadara_gen3_vol_compress\u0027,"},{"line_number":117,"context_line":"                default\u003dFalse,"},{"line_number":118,"context_line":"                help\u003d\u0027VPSA - Enable compression for volumes\u0027),"},{"line_number":119,"context_line":"    cfg.StrOpt(\u0027zadara_vol_name_template\u0027,"},{"line_number":120,"context_line":"               default\u003d\u0027OS_%s\u0027,"},{"line_number":121,"context_line":"               help\u003d\u0027VPSA - Default template for VPSA volume names\u0027),"},{"line_number":122,"context_line":"    cfg.StrOpt(\u0027zadara_share_name_template\u0027,"},{"line_number":123,"context_line":"               default\u003d\u0027OS_share-%s\u0027,"},{"line_number":124,"context_line":"               help\u003d\u0027VPSA - Default template for VPSA share names\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"5daab9f0_5ef0b35e","line":121,"range":{"start_line":119,"start_character":0,"end_line":121,"end_character":69},"in_reply_to":"564214d1_1b508b3a","updated":"2021-01-24 18:39:14.000000000","message":"Removed.","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"014a1c435a5276332907e9341c22a539898548c4","unresolved":true,"context_lines":[{"line_number":116,"context_line":"    cfg.BoolOpt(\u0027zadara_gen3_vol_compress\u0027,"},{"line_number":117,"context_line":"                default\u003dFalse,"},{"line_number":118,"context_line":"                help\u003d\u0027VPSA - Enable compression for volumes\u0027),"},{"line_number":119,"context_line":"    cfg.StrOpt(\u0027zadara_vol_name_template\u0027,"},{"line_number":120,"context_line":"               default\u003d\u0027OS_%s\u0027,"},{"line_number":121,"context_line":"               help\u003d\u0027VPSA - Default template for VPSA volume names\u0027),"},{"line_number":122,"context_line":"    cfg.StrOpt(\u0027zadara_share_name_template\u0027,"},{"line_number":123,"context_line":"               default\u003d\u0027OS_share-%s\u0027,"},{"line_number":124,"context_line":"               help\u003d\u0027VPSA - Default template for VPSA share names\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"564214d1_1b508b3a","line":121,"range":{"start_line":119,"start_character":0,"end_line":121,"end_character":69},"in_reply_to":"99e61c59_c499fe35","updated":"2021-01-13 03:36:47.000000000","message":"Same as the above comment for zadara_use_iser option.","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"4d2b8524bbeef8b09055d78265851ea313a8e6ac","unresolved":true,"context_lines":[{"line_number":130,"context_line":"                help\u003d\"VPSA - Attach snapshot policy for volumes\"),"},{"line_number":131,"context_line":"    cfg.StrOpt(\u0027zadara_driver_ssl_cert_path\u0027,"},{"line_number":132,"context_line":"               default\u003dNone,"},{"line_number":133,"context_line":"               help\u003d\u0027This option is valid only for manila driver. Can be \u0027"},{"line_number":134,"context_line":"                    \u0027used to specify a non default path to a CA_BUNDLE file \u0027"},{"line_number":135,"context_line":"                    \u0027or directory with certificates of trusted CAs, which \u0027"},{"line_number":136,"context_line":"                    \u0027will be used to validate the backend\u0027)]"}],"source_content_type":"text/x-python","patch_set":3,"id":"679c3d96_67899d23","line":133,"updated":"2021-01-09 00:55:53.000000000","message":"The first line for this help text isn\u0027t necessary - all of these options are valid only for your manila driver","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"57d6da9bccaa8d29e409a104b732ea73f819f5ee","unresolved":true,"context_lines":[{"line_number":130,"context_line":"                help\u003d\"VPSA - Attach snapshot policy for volumes\"),"},{"line_number":131,"context_line":"    cfg.StrOpt(\u0027zadara_driver_ssl_cert_path\u0027,"},{"line_number":132,"context_line":"               default\u003dNone,"},{"line_number":133,"context_line":"               help\u003d\u0027This option is valid only for manila driver. Can be \u0027"},{"line_number":134,"context_line":"                    \u0027used to specify a non default path to a CA_BUNDLE file \u0027"},{"line_number":135,"context_line":"                    \u0027or directory with certificates of trusted CAs, which \u0027"},{"line_number":136,"context_line":"                    \u0027will be used to validate the backend\u0027)]"}],"source_content_type":"text/x-python","patch_set":3,"id":"b8aed363_27646209","line":133,"in_reply_to":"679c3d96_67899d23","updated":"2021-01-13 05:25:42.000000000","message":"As above, the comments are also framed as according to our common code for both cinder and manila. Please suggest, if having such common file is acceptable?","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"7e8bbbd2f027310765ce152c2e9315499e8c2070","unresolved":false,"context_lines":[{"line_number":130,"context_line":"                help\u003d\"VPSA - Attach snapshot policy for volumes\"),"},{"line_number":131,"context_line":"    cfg.StrOpt(\u0027zadara_driver_ssl_cert_path\u0027,"},{"line_number":132,"context_line":"               default\u003dNone,"},{"line_number":133,"context_line":"               help\u003d\u0027This option is valid only for manila driver. Can be \u0027"},{"line_number":134,"context_line":"                    \u0027used to specify a non default path to a CA_BUNDLE file \u0027"},{"line_number":135,"context_line":"                    \u0027or directory with certificates of trusted CAs, which \u0027"},{"line_number":136,"context_line":"                    \u0027will be used to validate the backend\u0027)]"}],"source_content_type":"text/x-python","patch_set":3,"id":"2ea6e7d0_24a32d47","line":133,"in_reply_to":"b8aed363_27646209","updated":"2021-01-24 18:39:14.000000000","message":"Moved from the common file to the driver code.","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f36fba94b6fce03a7cfcb5113e5024255953c754","unresolved":true,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"zadara_opts \u003d ["},{"line_number":67,"context_line":"    cfg.StrOpt(\u0027zadara_vpsa_host\u0027,"},{"line_number":68,"context_line":"               default\u003dNone,"},{"line_number":69,"context_line":"               help\u003d\u0027VPSA - Management Host name or IP address\u0027),"},{"line_number":70,"context_line":"    cfg.PortOpt(\u0027zadara_vpsa_port\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"0567b7e2_2ee5b05e","line":67,"range":{"start_line":67,"start_character":8,"end_line":67,"end_character":14},"updated":"2021-01-26 19:47:12.000000000","message":"suggest using HostAddressOpt for extra validation","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"4fc69a26c725b9485e41200ae7ca6be435c509be","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"zadara_opts \u003d ["},{"line_number":67,"context_line":"    cfg.StrOpt(\u0027zadara_vpsa_host\u0027,"},{"line_number":68,"context_line":"               default\u003dNone,"},{"line_number":69,"context_line":"               help\u003d\u0027VPSA - Management Host name or IP address\u0027),"},{"line_number":70,"context_line":"    cfg.PortOpt(\u0027zadara_vpsa_port\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"a5c2837a_7041d61c","line":67,"range":{"start_line":67,"start_character":8,"end_line":67,"end_character":14},"in_reply_to":"0567b7e2_2ee5b05e","updated":"2021-02-01 04:21:30.000000000","message":"Done","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"a879547ff51ec4e0358db6c2110e0cf105c1de9c","unresolved":true,"context_lines":[{"line_number":87,"context_line":"    cfg.BoolOpt(\u0027zadara_vol_encrypt\u0027,"},{"line_number":88,"context_line":"                default\u003dFalse,"},{"line_number":89,"context_line":"                help\u003d\u0027VPSA - Default encryption policy for volumes\u0027),"},{"line_number":90,"context_line":"    cfg.BoolOpt(\u0027zadara_gen3_vol_dedupe\u0027,"},{"line_number":91,"context_line":"                default\u003dFalse,"},{"line_number":92,"context_line":"                help\u003d\u0027VPSA - Enable deduplication for volumes\u0027),"},{"line_number":93,"context_line":"    cfg.BoolOpt(\u0027zadara_gen3_vol_compress\u0027,"},{"line_number":94,"context_line":"                default\u003dFalse,"},{"line_number":95,"context_line":"                help\u003d\u0027VPSA - Enable compression for volumes\u0027),"},{"line_number":96,"context_line":"    cfg.BoolOpt(\u0027zadara_default_snap_policy\u0027,"},{"line_number":97,"context_line":"                default\u003dFalse,"},{"line_number":98,"context_line":"                help\u003d\"VPSA - Attach snapshot policy for volumes\")]"}],"source_content_type":"text/x-python","patch_set":5,"id":"d381af3d_002ef68a","line":95,"range":{"start_line":90,"start_character":0,"end_line":95,"end_character":62},"updated":"2021-01-27 00:20:12.000000000","message":"Acording to your code these options are the \u0027default\u0027 option, since the metadata can overwrite this configuration, according with line 237-240.","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"e10a3bc3e38807b012cca5e525212a56b7e281e7","unresolved":true,"context_lines":[{"line_number":87,"context_line":"    cfg.BoolOpt(\u0027zadara_vol_encrypt\u0027,"},{"line_number":88,"context_line":"                default\u003dFalse,"},{"line_number":89,"context_line":"                help\u003d\u0027VPSA - Default encryption policy for volumes\u0027),"},{"line_number":90,"context_line":"    cfg.BoolOpt(\u0027zadara_gen3_vol_dedupe\u0027,"},{"line_number":91,"context_line":"                default\u003dFalse,"},{"line_number":92,"context_line":"                help\u003d\u0027VPSA - Enable deduplication for volumes\u0027),"},{"line_number":93,"context_line":"    cfg.BoolOpt(\u0027zadara_gen3_vol_compress\u0027,"},{"line_number":94,"context_line":"                default\u003dFalse,"},{"line_number":95,"context_line":"                help\u003d\u0027VPSA - Enable compression for volumes\u0027),"},{"line_number":96,"context_line":"    cfg.BoolOpt(\u0027zadara_default_snap_policy\u0027,"},{"line_number":97,"context_line":"                default\u003dFalse,"},{"line_number":98,"context_line":"                help\u003d\"VPSA - Attach snapshot policy for volumes\")]"}],"source_content_type":"text/x-python","patch_set":5,"id":"b5456acf_5c139de7","line":95,"range":{"start_line":90,"start_character":0,"end_line":95,"end_character":62},"in_reply_to":"0cd18983_9e740b48","updated":"2021-02-01 13:34:08.000000000","message":"Would be good to make more clear in the help string. The cloud operators might not have this understanding while configuring the backend stanzas.","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"b49a8e9b367109325c1e975c67832be2f6309311","unresolved":false,"context_lines":[{"line_number":87,"context_line":"    cfg.BoolOpt(\u0027zadara_vol_encrypt\u0027,"},{"line_number":88,"context_line":"                default\u003dFalse,"},{"line_number":89,"context_line":"                help\u003d\u0027VPSA - Default encryption policy for volumes\u0027),"},{"line_number":90,"context_line":"    cfg.BoolOpt(\u0027zadara_gen3_vol_dedupe\u0027,"},{"line_number":91,"context_line":"                default\u003dFalse,"},{"line_number":92,"context_line":"                help\u003d\u0027VPSA - Enable deduplication for volumes\u0027),"},{"line_number":93,"context_line":"    cfg.BoolOpt(\u0027zadara_gen3_vol_compress\u0027,"},{"line_number":94,"context_line":"                default\u003dFalse,"},{"line_number":95,"context_line":"                help\u003d\u0027VPSA - Enable compression for volumes\u0027),"},{"line_number":96,"context_line":"    cfg.BoolOpt(\u0027zadara_default_snap_policy\u0027,"},{"line_number":97,"context_line":"                default\u003dFalse,"},{"line_number":98,"context_line":"                help\u003d\"VPSA - Attach snapshot policy for volumes\")]"}],"source_content_type":"text/x-python","patch_set":5,"id":"7fd6a1f3_faac73bd","line":95,"range":{"start_line":90,"start_character":0,"end_line":95,"end_character":62},"in_reply_to":"b5456acf_5c139de7","updated":"2021-02-02 15:56:26.000000000","message":"Done","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"4fc69a26c725b9485e41200ae7ca6be435c509be","unresolved":true,"context_lines":[{"line_number":87,"context_line":"    cfg.BoolOpt(\u0027zadara_vol_encrypt\u0027,"},{"line_number":88,"context_line":"                default\u003dFalse,"},{"line_number":89,"context_line":"                help\u003d\u0027VPSA - Default encryption policy for volumes\u0027),"},{"line_number":90,"context_line":"    cfg.BoolOpt(\u0027zadara_gen3_vol_dedupe\u0027,"},{"line_number":91,"context_line":"                default\u003dFalse,"},{"line_number":92,"context_line":"                help\u003d\u0027VPSA - Enable deduplication for volumes\u0027),"},{"line_number":93,"context_line":"    cfg.BoolOpt(\u0027zadara_gen3_vol_compress\u0027,"},{"line_number":94,"context_line":"                default\u003dFalse,"},{"line_number":95,"context_line":"                help\u003d\u0027VPSA - Enable compression for volumes\u0027),"},{"line_number":96,"context_line":"    cfg.BoolOpt(\u0027zadara_default_snap_policy\u0027,"},{"line_number":97,"context_line":"                default\u003dFalse,"},{"line_number":98,"context_line":"                help\u003d\"VPSA - Attach snapshot policy for volumes\")]"}],"source_content_type":"text/x-python","patch_set":5,"id":"0cd18983_9e740b48","line":95,"range":{"start_line":90,"start_character":0,"end_line":95,"end_character":62},"in_reply_to":"d381af3d_002ef68a","updated":"2021-02-01 04:21:30.000000000","message":"Yes. These are the default values that will be used, if either they are not configured or provided through metadata.","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"3e4631fca5ed3b821b5cbed1844e69de31b5c231","unresolved":true,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"# Common exception class for all the exceptions that"},{"line_number":37,"context_line":"# are used to redirect to the driver specific exceptions."},{"line_number":38,"context_line":"class CommonException(Exception):"},{"line_number":39,"context_line":"    def __init__(self):"},{"line_number":40,"context_line":"        pass"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"91453465_99af16ab","line":38,"updated":"2021-02-25 15:50:26.000000000","message":"Move exceptions to https://github.com/openstack/manila/blob/master/manila/exception.py","commit_id":"90a7daaf8a34829ad91f90bf6e9aa9e8ad4ccd89"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"76c94c73126c46843b72d3b4b4773c199e9a3046","unresolved":true,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"# Common exception class for all the exceptions that"},{"line_number":37,"context_line":"# are used to redirect to the driver specific exceptions."},{"line_number":38,"context_line":"class CommonException(Exception):"},{"line_number":39,"context_line":"    def __init__(self):"},{"line_number":40,"context_line":"        pass"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"0dfe56c8_895e0ce4","line":38,"in_reply_to":"91453465_99af16ab","updated":"2021-03-02 12:21:45.000000000","message":"Victoria,\n\nZadara repository layout for openstack drivers is divided to contain\ndifferent drivers with all common objects across them inside the common file.\n---\u003e\n  manila -\u003e Directory for all the driver changes for manila service\n  cinder -\u003e Dir. for the driver changes for cinder service\n  common.py -\u003e The common objects that act as interface for zadara backend\n----\u003e\n\nMoving the \u0027zadara/exceptions.py\u0027 file to manila/exceptions.py will work,\nbut the common code is still needed(to align with both drivers).\nCould you please specify if there is an issue? Thanks.","commit_id":"90a7daaf8a34829ad91f90bf6e9aa9e8ad4ccd89"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"3e4631fca5ed3b821b5cbed1844e69de31b5c231","unresolved":true,"context_lines":[{"line_number":282,"context_line":"        host \u003d self._get_target_host(self.conf.zadara_vpsa_host)"},{"line_number":283,"context_line":"        port \u003d int(self.conf.zadara_vpsa_port)"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"        protocol \u003d \"https\" if self.conf.zadara_vpsa_use_ssl else \"http\""},{"line_number":286,"context_line":"        if protocol \u003d\u003d \"https\":"},{"line_number":287,"context_line":"            if not self.conf.zadara_ssl_cert_verify:"},{"line_number":288,"context_line":"                verify \u003d False"}],"source_content_type":"text/x-python","patch_set":10,"id":"2799b790_1b4af762","line":285,"updated":"2021-02-25 15:50:26.000000000","message":"Maybe you can simplify this... and do something like\n\nprotocol \u003d \"http\"\nverify \u003d False\n\nif self.conf.zadara_vpsa_use_ssl:\n   protocol \u003d \"https\"\n   verify \u003d self.driver_ssl_cert_path or self.conf.zadara_ssl_cert_verify","commit_id":"90a7daaf8a34829ad91f90bf6e9aa9e8ad4ccd89"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"deaca3d8c1db9259a961f1544511216a61c3eac5","unresolved":true,"context_lines":[{"line_number":282,"context_line":"        host \u003d self._get_target_host(self.conf.zadara_vpsa_host)"},{"line_number":283,"context_line":"        port \u003d int(self.conf.zadara_vpsa_port)"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"        protocol \u003d \"https\" if self.conf.zadara_vpsa_use_ssl else \"http\""},{"line_number":286,"context_line":"        if protocol \u003d\u003d \"https\":"},{"line_number":287,"context_line":"            if not self.conf.zadara_ssl_cert_verify:"},{"line_number":288,"context_line":"                verify \u003d False"}],"source_content_type":"text/x-python","patch_set":10,"id":"997a6864_021b14a8","line":285,"in_reply_to":"2799b790_1b4af762","updated":"2021-03-02 13:16:26.000000000","message":"The above will work with valid configurations.\nBut misses the case where zadara_ssl_cert_verify is set to False but provided path for zadara_driver_ssl_cert_path. I agree as an invalid case, well it\u0027s a safer bet to handle them.","commit_id":"90a7daaf8a34829ad91f90bf6e9aa9e8ad4ccd89"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"3e4631fca5ed3b821b5cbed1844e69de31b5c231","unresolved":true,"context_lines":[{"line_number":339,"context_line":"        data \u003d self.send_cmd(\u0027list_controllers\u0027)"},{"line_number":340,"context_line":"        ctrl \u003d None"},{"line_number":341,"context_line":"        vcontrollers \u003d data.get(\u0027vcontrollers\u0027, [])"},{"line_number":342,"context_line":"        for controller in vcontrollers:"},{"line_number":343,"context_line":"            if controller[\u0027state\u0027] \u003d\u003d \u0027active\u0027:"},{"line_number":344,"context_line":"                ctrl \u003d controller"},{"line_number":345,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":10,"id":"579384f7_fc06a438","line":342,"updated":"2021-02-25 15:50:26.000000000","message":"You only get one active controller of a list of possible, several? is this correct?","commit_id":"90a7daaf8a34829ad91f90bf6e9aa9e8ad4ccd89"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"a7a8b34ac1f9482f02c9ae01aeb4c7d49bef8dc1","unresolved":true,"context_lines":[{"line_number":339,"context_line":"        data \u003d self.send_cmd(\u0027list_controllers\u0027)"},{"line_number":340,"context_line":"        ctrl \u003d None"},{"line_number":341,"context_line":"        vcontrollers \u003d data.get(\u0027vcontrollers\u0027, [])"},{"line_number":342,"context_line":"        for controller in vcontrollers:"},{"line_number":343,"context_line":"            if controller[\u0027state\u0027] \u003d\u003d \u0027active\u0027:"},{"line_number":344,"context_line":"                ctrl \u003d controller"},{"line_number":345,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":10,"id":"e6593578_959cabd6","line":342,"in_reply_to":"579384f7_fc06a438","updated":"2021-03-02 13:24:07.000000000","message":"Yes. we get a list of two controllers.\nOne active and the other standby.","commit_id":"90a7daaf8a34829ad91f90bf6e9aa9e8ad4ccd89"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"3e4631fca5ed3b821b5cbed1844e69de31b5c231","unresolved":true,"context_lines":[{"line_number":401,"context_line":"    def _get_all_vpsa_volumes(self):"},{"line_number":402,"context_line":"        \"\"\"Returns all vpsa block volumes from the configured pool\"\"\""},{"line_number":403,"context_line":"        data \u003d self.send_cmd(\u0027list_volumes\u0027)"},{"line_number":404,"context_line":"        # Work around to filter volumes belonging to given pool"},{"line_number":405,"context_line":"        # Remove this when we have the API fixed to filter based"},{"line_number":406,"context_line":"        # on pools. This API today does not have virtual_capacity field"},{"line_number":407,"context_line":"        volumes \u003d []"}],"source_content_type":"text/x-python","patch_set":10,"id":"cfdebd27_63bb431e","line":404,"updated":"2021-02-25 15:50:26.000000000","message":"NIT add a FIXME(name) so it\u0027s easier to track later","commit_id":"90a7daaf8a34829ad91f90bf6e9aa9e8ad4ccd89"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"8034ff90864e34dc2852f94ab20ff4bf7358f254","unresolved":false,"context_lines":[{"line_number":401,"context_line":"    def _get_all_vpsa_volumes(self):"},{"line_number":402,"context_line":"        \"\"\"Returns all vpsa block volumes from the configured pool\"\"\""},{"line_number":403,"context_line":"        data \u003d self.send_cmd(\u0027list_volumes\u0027)"},{"line_number":404,"context_line":"        # Work around to filter volumes belonging to given pool"},{"line_number":405,"context_line":"        # Remove this when we have the API fixed to filter based"},{"line_number":406,"context_line":"        # on pools. This API today does not have virtual_capacity field"},{"line_number":407,"context_line":"        volumes \u003d []"}],"source_content_type":"text/x-python","patch_set":10,"id":"079947de_d0b2d3df","line":404,"in_reply_to":"cfdebd27_63bb431e","updated":"2021-03-02 14:10:58.000000000","message":"Done","commit_id":"90a7daaf8a34829ad91f90bf6e9aa9e8ad4ccd89"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"3e4631fca5ed3b821b5cbed1844e69de31b5c231","unresolved":true,"context_lines":[{"line_number":482,"context_line":"        pool \u003d data.get(\u0027pool\u0027)"},{"line_number":483,"context_line":"        if pool is not None:"},{"line_number":484,"context_line":"            total \u003d int(pool[\u0027capacity\u0027])"},{"line_number":485,"context_line":"            free \u003d int(float(pool[\u0027available_capacity\u0027]))"},{"line_number":486,"context_line":"            provisioned \u003d int(float(pool[\u0027provisioned_capacity\u0027]))"},{"line_number":487,"context_line":"            LOG.debug(\u0027Pool %(name)s: %(total)sGB total, %(free)sGB free, \u0027"},{"line_number":488,"context_line":"                      \u0027%(provisioned)sGB provisioned\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"3c0a3a8e_4c56e73b","line":485,"updated":"2021-02-25 15:50:26.000000000","message":"Why the double casting here? I assume that you get a string in all cases, right?","commit_id":"90a7daaf8a34829ad91f90bf6e9aa9e8ad4ccd89"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"6cd1e41f22e82522ecd95a019d5e8ebcffda28bd","unresolved":true,"context_lines":[{"line_number":482,"context_line":"        pool \u003d data.get(\u0027pool\u0027)"},{"line_number":483,"context_line":"        if pool is not None:"},{"line_number":484,"context_line":"            total \u003d int(pool[\u0027capacity\u0027])"},{"line_number":485,"context_line":"            free \u003d int(float(pool[\u0027available_capacity\u0027]))"},{"line_number":486,"context_line":"            provisioned \u003d int(float(pool[\u0027provisioned_capacity\u0027]))"},{"line_number":487,"context_line":"            LOG.debug(\u0027Pool %(name)s: %(total)sGB total, %(free)sGB free, \u0027"},{"line_number":488,"context_line":"                      \u0027%(provisioned)sGB provisioned\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"f8a4f36d_2d7d7a3b","line":485,"in_reply_to":"3c0a3a8e_4c56e73b","updated":"2021-03-02 17:54:23.000000000","message":"Both pool[\u0027available_capacity\u0027] and pool[\u0027provisioned_capacity\u0027] are recevied of the float type in the response. Can cast directly to integer.","commit_id":"90a7daaf8a34829ad91f90bf6e9aa9e8ad4ccd89"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d40d9ad1605c1ca49d25e49daaf795aec66152d8","unresolved":true,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"\"\"\""},{"line_number":17,"context_line":"Common class for both the Volume and FileSystem share drivers to connect"},{"line_number":18,"context_line":"and execute the comands on Zadara Virtual Private Storage Array (VPSA)."},{"line_number":19,"context_line":"\"\"\""},{"line_number":20,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"084881ba_006cb323","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":37},"updated":"2021-03-05 07:00:20.000000000","message":"No longer true","commit_id":"f1bf49bc1e2fd336b94df75a0c0aeda295348483"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"9cf40d9aeafc356633ded320ea4baba598934b24","unresolved":true,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"\"\"\""},{"line_number":17,"context_line":"Common class for both the Volume and FileSystem share drivers to connect"},{"line_number":18,"context_line":"and execute the comands on Zadara Virtual Private Storage Array (VPSA)."},{"line_number":19,"context_line":"\"\"\""},{"line_number":20,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"ff1dac8c_863fbf55","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":37},"in_reply_to":"084881ba_006cb323","updated":"2021-03-05 11:36:33.000000000","message":"The common objects are still same for both drivers, but individually maintained.\nIf it is still leading to confusion, I will modify it.\nI am also moving the comment to the definition of ZadaraVPSAConnection().","commit_id":"f1bf49bc1e2fd336b94df75a0c0aeda295348483"}],"manila/share/drivers/zadara/exception.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"df789f85815b32237be87ead6f1c68a7783e337d","unresolved":true,"context_lines":[{"line_number":61,"context_line":"    message \u003d _(\"Failed to create VPSA backend share. Error: %(error)s\")"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"class ZadaraInvalidShareAccessType(exception.Invalid):"},{"line_number":65,"context_line":"    message \u003d _(\"Only ip access type allowed for the Zadara manila share.\")"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9e0be443_09af911f","line":64,"range":{"start_line":64,"start_character":45,"end_line":64,"end_character":52},"updated":"2021-01-10 04:13:06.000000000","message":"ShareBackendException","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"d6a3770d398e98eebc41c55e438776d25d2e36f3","unresolved":true,"context_lines":[{"line_number":61,"context_line":"    message \u003d _(\"Failed to create VPSA backend share. Error: %(error)s\")"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"class ZadaraInvalidShareAccessType(exception.Invalid):"},{"line_number":65,"context_line":"    message \u003d _(\"Only ip access type allowed for the Zadara manila share.\")"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"a53fa2d1_81b0ee90","line":64,"range":{"start_line":64,"start_character":45,"end_line":64,"end_character":52},"in_reply_to":"9e0be443_09af911f","updated":"2021-01-13 03:45:43.000000000","message":"Sure. No problem in changing the class.\nI used the Invalid class, as it is more appropriate.\nJust to know, Could you please explain why it isn\u0027t preferred?\nThanks.","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"dd08affa00d37b7d78377ddcd81ac208802e035c","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    message \u003d _(\"Failed to create VPSA backend share. Error: %(error)s\")"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"class ZadaraInvalidShareAccessType(exception.Invalid):"},{"line_number":65,"context_line":"    message \u003d _(\"Only ip access type allowed for the Zadara manila share.\")"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"2af63fa3_a6516d12","line":64,"range":{"start_line":64,"start_character":45,"end_line":64,"end_character":52},"in_reply_to":"a53fa2d1_81b0ee90","updated":"2021-01-24 18:40:00.000000000","message":"Done","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"df789f85815b32237be87ead6f1c68a7783e337d","unresolved":true,"context_lines":[{"line_number":69,"context_line":"    message \u003d _(\"Share %(name)s could not be found.\")"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"class ZadaraInvalidExtendSize(exception.Invalid):"},{"line_number":73,"context_line":"    message \u003d _(\"Invalid size for extend share.\")"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5d8204f4_60ea3780","line":72,"range":{"start_line":72,"start_character":40,"end_line":72,"end_character":47},"updated":"2021-01-10 04:13:06.000000000","message":"ShareBackendException","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"dd08affa00d37b7d78377ddcd81ac208802e035c","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    message \u003d _(\"Share %(name)s could not be found.\")"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"class ZadaraInvalidExtendSize(exception.Invalid):"},{"line_number":73,"context_line":"    message \u003d _(\"Invalid size for extend share.\")"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"feff36a3_eb7b431e","line":72,"range":{"start_line":72,"start_character":40,"end_line":72,"end_character":47},"in_reply_to":"131b2741_9d83c608","updated":"2021-01-24 18:40:00.000000000","message":"Done","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"d6a3770d398e98eebc41c55e438776d25d2e36f3","unresolved":true,"context_lines":[{"line_number":69,"context_line":"    message \u003d _(\"Share %(name)s could not be found.\")"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"class ZadaraInvalidExtendSize(exception.Invalid):"},{"line_number":73,"context_line":"    message \u003d _(\"Invalid size for extend share.\")"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"131b2741_9d83c608","line":72,"range":{"start_line":72,"start_character":40,"end_line":72,"end_character":47},"in_reply_to":"5d8204f4_60ea3780","updated":"2021-01-13 03:45:43.000000000","message":"Same as the above comment.","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"df789f85815b32237be87ead6f1c68a7783e337d","unresolved":true,"context_lines":[{"line_number":77,"context_line":"    message \u003d _(\"Failed to extend VPSA backend share. Error: %(error)s\")"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"class ZadaraInvalidProtocol(exception.Invalid):"},{"line_number":81,"context_line":"    message \u003d _(\"The type of protocol %(protocol_type)s for Zadara \""},{"line_number":82,"context_line":"                \"manila driver is not supported. Only NFS or CIFS \""},{"line_number":83,"context_line":"                \"protocol is supported.\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"a55c1a45_2be3539e","line":80,"range":{"start_line":80,"start_character":38,"end_line":80,"end_character":45},"updated":"2021-01-10 04:13:06.000000000","message":"ShareBackendException","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"d6a3770d398e98eebc41c55e438776d25d2e36f3","unresolved":true,"context_lines":[{"line_number":77,"context_line":"    message \u003d _(\"Failed to extend VPSA backend share. Error: %(error)s\")"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"class ZadaraInvalidProtocol(exception.Invalid):"},{"line_number":81,"context_line":"    message \u003d _(\"The type of protocol %(protocol_type)s for Zadara \""},{"line_number":82,"context_line":"                \"manila driver is not supported. Only NFS or CIFS \""},{"line_number":83,"context_line":"                \"protocol is supported.\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"f55f9c22_55becb53","line":80,"range":{"start_line":80,"start_character":38,"end_line":80,"end_character":45},"in_reply_to":"a55c1a45_2be3539e","updated":"2021-01-13 03:45:43.000000000","message":"Same as the above comment.","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"dd08affa00d37b7d78377ddcd81ac208802e035c","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    message \u003d _(\"Failed to extend VPSA backend share. Error: %(error)s\")"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"class ZadaraInvalidProtocol(exception.Invalid):"},{"line_number":81,"context_line":"    message \u003d _(\"The type of protocol %(protocol_type)s for Zadara \""},{"line_number":82,"context_line":"                \"manila driver is not supported. Only NFS or CIFS \""},{"line_number":83,"context_line":"                \"protocol is supported.\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"ed0ac41a_d0b70645","line":80,"range":{"start_line":80,"start_character":38,"end_line":80,"end_character":45},"in_reply_to":"f55f9c22_55becb53","updated":"2021-01-24 18:40:00.000000000","message":"Done","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"3e4631fca5ed3b821b5cbed1844e69de31b5c231","unresolved":true,"context_lines":[{"line_number":21,"context_line":"from manila.i18n import _"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class UnknownCmd(exception.ShareBackendException):"},{"line_number":25,"context_line":"    message \u003d _(\"Unknown or unsupported command %(cmd)s\")"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"2b02b297_2dcdfa78","line":24,"updated":"2021-02-25 15:50:26.000000000","message":"Same here, I\u0027d move exceptions to the main exceptions module","commit_id":"90a7daaf8a34829ad91f90bf6e9aa9e8ad4ccd89"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"8034ff90864e34dc2852f94ab20ff4bf7358f254","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from manila.i18n import _"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class UnknownCmd(exception.ShareBackendException):"},{"line_number":25,"context_line":"    message \u003d _(\"Unknown or unsupported command %(cmd)s\")"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"5cd63ba7_7308d0b0","line":24,"in_reply_to":"2b02b297_2dcdfa78","updated":"2021-03-02 14:10:58.000000000","message":"Done","commit_id":"90a7daaf8a34829ad91f90bf6e9aa9e8ad4ccd89"}],"manila/share/drivers/zadara/zadara.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"4d2b8524bbeef8b09055d78265851ea313a8e6ac","unresolved":true,"context_lines":[{"line_number":24,"context_line":"from manila.i18n import _"},{"line_number":25,"context_line":"from manila.share import api"},{"line_number":26,"context_line":"from manila.share import driver"},{"line_number":27,"context_line":"from manila.share.drivers.zadara.common import common_exception"},{"line_number":28,"context_line":"from manila.share.drivers.zadara.common import LOG"},{"line_number":29,"context_line":"from manila.share.drivers.zadara.common import zadara_opts"},{"line_number":30,"context_line":"from manila.share.drivers.zadara.common import ZadaraVPSAConnection"},{"line_number":31,"context_line":"from manila.share.drivers.zadara import exception as zadara_exception"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":3,"id":"b92bd99d_50fb3bf0","line":30,"range":{"start_line":27,"start_character":0,"end_line":30,"end_character":67},"updated":"2021-01-09 00:55:53.000000000","message":"import modules, not objects: https://docs.openstack.org/hacking/latest/user/hacking.html#imports","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"2c9f1d256a2133cf0b55fc9a05f78fc10eac5ac8","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from manila.i18n import _"},{"line_number":25,"context_line":"from manila.share import api"},{"line_number":26,"context_line":"from manila.share import driver"},{"line_number":27,"context_line":"from manila.share.drivers.zadara.common import common_exception"},{"line_number":28,"context_line":"from manila.share.drivers.zadara.common import LOG"},{"line_number":29,"context_line":"from manila.share.drivers.zadara.common import zadara_opts"},{"line_number":30,"context_line":"from manila.share.drivers.zadara.common import ZadaraVPSAConnection"},{"line_number":31,"context_line":"from manila.share.drivers.zadara import exception as zadara_exception"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":3,"id":"aba28cbb_c9eaf232","line":30,"range":{"start_line":27,"start_character":0,"end_line":30,"end_character":67},"in_reply_to":"b92bd99d_50fb3bf0","updated":"2021-01-24 18:41:39.000000000","message":"Done","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"df789f85815b32237be87ead6f1c68a7783e337d","unresolved":true,"context_lines":[{"line_number":94,"context_line":"        driver_ssl_cert_path \u003d self.configuration.zadara_driver_ssl_cert_path"},{"line_number":95,"context_line":"        self.vpsa \u003d ZadaraVPSAConnection(self.configuration,"},{"line_number":96,"context_line":"                                         driver_ssl_cert_path, False)"},{"line_number":97,"context_line":"        self._check_access_key_validity()"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def check_for_setup_error(self):"},{"line_number":100,"context_line":"        \"\"\"Returns an error (exception) if prerequisites aren\u0027t met.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"a12ed0f7_2176a70c","line":97,"range":{"start_line":97,"start_character":8,"end_line":97,"end_character":41},"updated":"2021-01-10 04:13:06.000000000","message":"this is being done in check_for_setup_error(); any reason to do this first here?","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"2c9f1d256a2133cf0b55fc9a05f78fc10eac5ac8","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        driver_ssl_cert_path \u003d self.configuration.zadara_driver_ssl_cert_path"},{"line_number":95,"context_line":"        self.vpsa \u003d ZadaraVPSAConnection(self.configuration,"},{"line_number":96,"context_line":"                                         driver_ssl_cert_path, False)"},{"line_number":97,"context_line":"        self._check_access_key_validity()"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def check_for_setup_error(self):"},{"line_number":100,"context_line":"        \"\"\"Returns an error (exception) if prerequisites aren\u0027t met.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"83678156_38fd0fdb","line":97,"range":{"start_line":97,"start_character":8,"end_line":97,"end_character":41},"in_reply_to":"6470c7c1_0b80a0e0","updated":"2021-01-24 18:41:39.000000000","message":"Done","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"014a1c435a5276332907e9341c22a539898548c4","unresolved":true,"context_lines":[{"line_number":94,"context_line":"        driver_ssl_cert_path \u003d self.configuration.zadara_driver_ssl_cert_path"},{"line_number":95,"context_line":"        self.vpsa \u003d ZadaraVPSAConnection(self.configuration,"},{"line_number":96,"context_line":"                                         driver_ssl_cert_path, False)"},{"line_number":97,"context_line":"        self._check_access_key_validity()"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def check_for_setup_error(self):"},{"line_number":100,"context_line":"        \"\"\"Returns an error (exception) if prerequisites aren\u0027t met.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"6470c7c1_0b80a0e0","line":97,"range":{"start_line":97,"start_character":8,"end_line":97,"end_character":41},"in_reply_to":"a12ed0f7_2176a70c","updated":"2021-01-13 03:36:47.000000000","message":"On a conservative side. Not required. Will be removed.","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"df789f85815b32237be87ead6f1c68a7783e337d","unresolved":true,"context_lines":[{"line_number":123,"context_line":"        export_location \u003d \u0027\u0027"},{"line_number":124,"context_line":"        share_proto \u003d share[\u0027share_proto\u0027].upper()"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        share_name \u003d (self.configuration.zadara_share_name_template"},{"line_number":127,"context_line":"                      % share[\u0027share_id\u0027])"},{"line_number":128,"context_line":"        vpsa_volume \u003d self.vpsa._get_vpsa_volume(share_name)"},{"line_number":129,"context_line":"        if not vpsa_volume:"},{"line_number":130,"context_line":"            msg \u003d (_(\u0027VPSA volume for share %s \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"968670b5_d177e427","line":127,"range":{"start_line":126,"start_character":8,"end_line":127,"end_character":42},"updated":"2021-01-10 04:13:06.000000000","message":"you should be using ``share[\u0027id\u0027]`` for naming and identification of the share on the backend - \n\nthe \"share_id\" parameter here is user facing, and is expected to be preserved through replication and migration workflows.","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"2c9f1d256a2133cf0b55fc9a05f78fc10eac5ac8","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        export_location \u003d \u0027\u0027"},{"line_number":124,"context_line":"        share_proto \u003d share[\u0027share_proto\u0027].upper()"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        share_name \u003d (self.configuration.zadara_share_name_template"},{"line_number":127,"context_line":"                      % share[\u0027share_id\u0027])"},{"line_number":128,"context_line":"        vpsa_volume \u003d self.vpsa._get_vpsa_volume(share_name)"},{"line_number":129,"context_line":"        if not vpsa_volume:"},{"line_number":130,"context_line":"            msg \u003d (_(\u0027VPSA volume for share %s \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"890b65dd_a633dabf","line":127,"range":{"start_line":126,"start_character":8,"end_line":127,"end_character":42},"in_reply_to":"968670b5_d177e427","updated":"2021-01-24 18:41:39.000000000","message":"Done","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"df789f85815b32237be87ead6f1c68a7783e337d","unresolved":true,"context_lines":[{"line_number":161,"context_line":"                           \u0027smbstoredosattributes\u0027, \u0027smbmaparchive\u0027,"},{"line_number":162,"context_line":"                           \u0027smbenableoplocks\u0027, \u0027nfsrootsquash\u0027,"},{"line_number":163,"context_line":"                           \u0027nfsallsquash\u0027, \u0027atimeupdate\u0027, \u0027crypt\u0027,"},{"line_number":164,"context_line":"                           \u0027compress\u0027, \u0027dedupe\u0027, \u0027attachpolicies\u0027]:"},{"line_number":165,"context_line":"                    if value in [\u0027YES\u0027, \u0027NO\u0027]:"},{"line_number":166,"context_line":"                        continue"},{"line_number":167,"context_line":"                    else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"d2d6fdc2_b0d2369f","line":164,"range":{"start_line":164,"start_character":27,"end_line":164,"end_character":47},"updated":"2021-01-10 04:13:06.000000000","message":"these two can be achieved with standard share type extra specifications: https://docs.openstack.org/manila/latest/admin/capabilities_and_extra_specs.html#share-type-common-capability-extra-specs-that-are-not-visible-to-end-users","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"1dc69a0903438b4701461c13fda6db8c9b4a459e","unresolved":true,"context_lines":[{"line_number":161,"context_line":"                           \u0027smbstoredosattributes\u0027, \u0027smbmaparchive\u0027,"},{"line_number":162,"context_line":"                           \u0027smbenableoplocks\u0027, \u0027nfsrootsquash\u0027,"},{"line_number":163,"context_line":"                           \u0027nfsallsquash\u0027, \u0027atimeupdate\u0027, \u0027crypt\u0027,"},{"line_number":164,"context_line":"                           \u0027compress\u0027, \u0027dedupe\u0027, \u0027attachpolicies\u0027]:"},{"line_number":165,"context_line":"                    if value in [\u0027YES\u0027, \u0027NO\u0027]:"},{"line_number":166,"context_line":"                        continue"},{"line_number":167,"context_line":"                    else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"495d2999_06378af5","line":164,"range":{"start_line":164,"start_character":27,"end_line":164,"end_character":47},"in_reply_to":"d2d6fdc2_b0d2369f","updated":"2021-01-19 15:36:16.000000000","message":"Yes, they can be specified with share-type specs.\n\nThese are provided again here as an user privilege pointing the zadara backend share(dealing without standard manila). The user specifying these metadata properties on the share, overrides the default compress, dedupe configuration properties for zadara backend. Again, the idea is to be in a non-standard way intending the specific customers.","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"df789f85815b32237be87ead6f1c68a7783e337d","unresolved":true,"context_lines":[{"line_number":220,"context_line":"                      % share[\u0027share_id\u0027])"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"        # Collect the share metadata provided and validate it"},{"line_number":223,"context_line":"        metadata \u003d self.api.get_share_metadata(context,"},{"line_number":224,"context_line":"                                               {\u0027id\u0027: share[\u0027share_id\u0027]})"},{"line_number":225,"context_line":"        if not self.is_valid_metadata(metadata):"},{"line_number":226,"context_line":"            raise manila_exception.ManilaException(_("},{"line_number":227,"context_line":"                \"Not a valid metadata provided for the share %s\")"},{"line_number":228,"context_line":"                % share[\u0027share_id\u0027])"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"        data \u003d self.vpsa_send_cmd(\u0027create_volume\u0027,"},{"line_number":231,"context_line":"                                  name\u003dshare_name,"}],"source_content_type":"text/x-python","patch_set":3,"id":"4c7f7d6d_8ad79ae2","line":228,"range":{"start_line":223,"start_character":0,"end_line":228,"end_character":36},"updated":"2021-01-10 04:13:06.000000000","message":"While this is an acceptable way to funnel share properties requested by end users to the backend, there are a few of things to keep in mind:\n\n- metadata is used by end users for identification and tagging, and can be manipulated at any time. When metadata is manipulated, the backend share driver isn\u0027t invoked to make any modifications. \n- having to tag every share with these options will make for poor user experience? A fine alternative is to use share types and extra specifications. By default, operators/admins have permissions to create and manipulate share types and set up extra specs. So, they can create a bunch of share types with whatever combination of user related options that are necessary. Users can then use those share types to create as many shares as required. \n- manila can be configured with any number of homogenous/heterogenous backends; the place to put distinguishable information would be in share types since they influence scheduling\n\nWhat are your thoughts on converting these into standard and scoped extra specs rather than share metadata?","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"b4cf7a512ec7765a06f9a17c1f00ab4932962a91","unresolved":true,"context_lines":[{"line_number":220,"context_line":"                      % share[\u0027share_id\u0027])"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"        # Collect the share metadata provided and validate it"},{"line_number":223,"context_line":"        metadata \u003d self.api.get_share_metadata(context,"},{"line_number":224,"context_line":"                                               {\u0027id\u0027: share[\u0027share_id\u0027]})"},{"line_number":225,"context_line":"        if not self.is_valid_metadata(metadata):"},{"line_number":226,"context_line":"            raise manila_exception.ManilaException(_("},{"line_number":227,"context_line":"                \"Not a valid metadata provided for the share %s\")"},{"line_number":228,"context_line":"                % share[\u0027share_id\u0027])"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"        data \u003d self.vpsa_send_cmd(\u0027create_volume\u0027,"},{"line_number":231,"context_line":"                                  name\u003dshare_name,"}],"source_content_type":"text/x-python","patch_set":3,"id":"aa69026b_b5a1ac2c","line":228,"range":{"start_line":223,"start_character":0,"end_line":228,"end_character":36},"in_reply_to":"4c7f7d6d_8ad79ae2","updated":"2021-01-20 14:39:57.000000000","message":"The selected metadata options are the configurable parameters while creating zadara backend shares. The whole idea is to allow the customers to configure shares creations with backends without any layering from manila(not intervening any standard manila types,specs,scheduling etc). The validation is involved only during creation and is pointed for specific customers who are aware of the metadata and not expected to manipulate them.","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"a879547ff51ec4e0358db6c2110e0cf105c1de9c","unresolved":true,"context_lines":[{"line_number":220,"context_line":"                      % share[\u0027share_id\u0027])"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"        # Collect the share metadata provided and validate it"},{"line_number":223,"context_line":"        metadata \u003d self.api.get_share_metadata(context,"},{"line_number":224,"context_line":"                                               {\u0027id\u0027: share[\u0027share_id\u0027]})"},{"line_number":225,"context_line":"        if not self.is_valid_metadata(metadata):"},{"line_number":226,"context_line":"            raise manila_exception.ManilaException(_("},{"line_number":227,"context_line":"                \"Not a valid metadata provided for the share %s\")"},{"line_number":228,"context_line":"                % share[\u0027share_id\u0027])"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"        data \u003d self.vpsa_send_cmd(\u0027create_volume\u0027,"},{"line_number":231,"context_line":"                                  name\u003dshare_name,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f18fef6_1148ebcd","line":228,"range":{"start_line":223,"start_character":0,"end_line":228,"end_character":36},"in_reply_to":"aa69026b_b5a1ac2c","updated":"2021-01-27 00:20:12.000000000","message":"\u003e The selected metadata options are the configurable parameters while creating zadara backend shares. The whole idea is to allow the customers to configure shares creations with backends without any layering from manila(not intervening any standard manila types,specs,scheduling etc). The validation is involved only during creation and is pointed for specific customers who are aware of the metadata and not expected to manipulate them.\n\nAt the end, you are building a driver for specific customers but is providing it for the commnunity. All current and future customers will need to deal with this operational mode and admins won\u0027t be able to block users from manipulating lots of share\u0027s configurations. But, it is up to you to decide.","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"df789f85815b32237be87ead6f1c68a7783e337d","unresolved":true,"context_lines":[{"line_number":238,"context_line":"        export_location \u003d self._get_share_export_location(share)"},{"line_number":239,"context_line":"        return {\u0027path\u0027: export_location}"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"    def allow_access(self, context, share, access, share_server):"},{"line_number":242,"context_line":"        \"\"\"Allow access to the share.\"\"\""},{"line_number":243,"context_line":"        access_type \u003d access[\u0027access_type\u0027]"},{"line_number":244,"context_line":"        share_proto \u003d share[\u0027share_proto\u0027].upper()"}],"source_content_type":"text/x-python","patch_set":3,"id":"87e4f67e_5e4fabc5","line":241,"range":{"start_line":241,"start_character":0,"end_line":241,"end_character":65},"updated":"2021-01-10 04:13:06.000000000","message":"The \"allow_access\" and \"deny_access\" driver interfaces are deprecated, and are only left in code to provide compatibility with old drivers. Please implement the \"update_access\" interface instead - this allows for batch/bulk access rule changes to be committed by the share manager service: https://opendev.org/openstack/manila/src/commit/39efc2bde81c2a0c747a491d3a778b822ca263b8/manila/share/driver.py#L746-L836","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"2c9f1d256a2133cf0b55fc9a05f78fc10eac5ac8","unresolved":false,"context_lines":[{"line_number":238,"context_line":"        export_location \u003d self._get_share_export_location(share)"},{"line_number":239,"context_line":"        return {\u0027path\u0027: export_location}"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"    def allow_access(self, context, share, access, share_server):"},{"line_number":242,"context_line":"        \"\"\"Allow access to the share.\"\"\""},{"line_number":243,"context_line":"        access_type \u003d access[\u0027access_type\u0027]"},{"line_number":244,"context_line":"        share_proto \u003d share[\u0027share_proto\u0027].upper()"}],"source_content_type":"text/x-python","patch_set":3,"id":"8ff7c37c_9d4c0a75","line":241,"range":{"start_line":241,"start_character":0,"end_line":241,"end_character":65},"in_reply_to":"87e4f67e_5e4fabc5","updated":"2021-01-24 18:41:39.000000000","message":"Done","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"df789f85815b32237be87ead6f1c68a7783e337d","unresolved":true,"context_lines":[{"line_number":378,"context_line":"            raise zadara_exception.ZadaraExtendShareFailed("},{"line_number":379,"context_line":"                error\u003ddata[\u0027status\u0027])"},{"line_number":380,"context_line":""},{"line_number":381,"context_line":"    def ensure_share(self, context, share, share_server\u003dNone):"},{"line_number":382,"context_line":"        \"\"\"Ensure that the share has a backend volume and it is exported."},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"        \"\"\""},{"line_number":385,"context_line":"        # Get the backend volume name for the share"},{"line_number":386,"context_line":"        share_name \u003d (self.configuration.zadara_share_name_template"},{"line_number":387,"context_line":"                      % share[\u0027share_id\u0027])"},{"line_number":388,"context_line":"        vpsa_volume \u003d self.vpsa._get_vpsa_volume(share_name)"},{"line_number":389,"context_line":"        if not vpsa_volume:"},{"line_number":390,"context_line":"            msg \u003d (_(\u0027VPSA volume for share %s \u0027"},{"line_number":391,"context_line":"                     \u0027could not be found.\u0027) % share[\u0027share_id\u0027])"},{"line_number":392,"context_line":"            LOG.error(msg)"},{"line_number":393,"context_line":"            raise zadara_exception.ZadaraShareNotFound(name\u003dshare[\u0027share_id\u0027])"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":"        export_locations \u003d share[\u0027export_locations\u0027]"},{"line_number":396,"context_line":"        if export_locations:"},{"line_number":397,"context_line":"            return export_locations"},{"line_number":398,"context_line":"        else:"},{"line_number":399,"context_line":"            servers_list \u003d (self.vpsa._get_servers_attached_to_volume("},{"line_number":400,"context_line":"                            vpsa_volume[\u0027name\u0027]))"},{"line_number":401,"context_line":"            if len(servers_list) !\u003d 0:"},{"line_number":402,"context_line":"                msg \u003d (_(\u0027Servers attached to the VPSA volume %s without \u0027"},{"line_number":403,"context_line":"                         \u0027any locations exported.\u0027) % vpsa_volume[\u0027name\u0027])"},{"line_number":404,"context_line":"                LOG.error(msg)"},{"line_number":405,"context_line":"                raise zadara_exception.ZadaraShareNotValid("},{"line_number":406,"context_line":"                    name\u003dshare[\u0027share_id\u0027])"},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"    def _update_share_stats(self):"},{"line_number":409,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3bce1e8e_658dc40f","line":406,"range":{"start_line":381,"start_character":0,"end_line":406,"end_character":43},"updated":"2021-01-10 04:13:06.000000000","message":"the ensure_share() interface was deprecated in favor of ensure_shares() interface: https://opendev.org/openstack/manila/src/commit/39efc2bde81c2a0c747a491d3a778b822ca263b8/manila/share/driver.py#L2762-L2787\n\nThe intent of this method is to update export locations if there was a network change in the backend.\nThe backend driver registers a valid state to manila\u0027s share manager via \"get_backend_info\" [1] and if this state is changed, the share manager invokes \"ensure_shares\" so that all share export locations can be updated in bulk. If you do not implement \"ensure_shares()\" and \"get_backend_info()\", service start up will be slow all the time, because ensure_share() is going to be called on _every_ share ever created on that particular backend, even when there is no need to update export locations. This is undesirable, so for scaling this, please implement \"get_backend_info()\"  and \"ensure_shares()\" so that the start up penalty can only be applied when something changes for real. You can include _any_ information you deem necessary - read from the backend or the configuration file in your \"get_backend_info()\" response. \n\n[1] get_backend_info: https://opendev.org/openstack/manila/src/commit/39efc2bde81c2a0c747a491d3a778b822ca263b8/manila/share/driver.py#L2742-L2760","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"b4cf7a512ec7765a06f9a17c1f00ab4932962a91","unresolved":true,"context_lines":[{"line_number":378,"context_line":"            raise zadara_exception.ZadaraExtendShareFailed("},{"line_number":379,"context_line":"                error\u003ddata[\u0027status\u0027])"},{"line_number":380,"context_line":""},{"line_number":381,"context_line":"    def ensure_share(self, context, share, share_server\u003dNone):"},{"line_number":382,"context_line":"        \"\"\"Ensure that the share has a backend volume and it is exported."},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"        \"\"\""},{"line_number":385,"context_line":"        # Get the backend volume name for the share"},{"line_number":386,"context_line":"        share_name \u003d (self.configuration.zadara_share_name_template"},{"line_number":387,"context_line":"                      % share[\u0027share_id\u0027])"},{"line_number":388,"context_line":"        vpsa_volume \u003d self.vpsa._get_vpsa_volume(share_name)"},{"line_number":389,"context_line":"        if not vpsa_volume:"},{"line_number":390,"context_line":"            msg \u003d (_(\u0027VPSA volume for share %s \u0027"},{"line_number":391,"context_line":"                     \u0027could not be found.\u0027) % share[\u0027share_id\u0027])"},{"line_number":392,"context_line":"            LOG.error(msg)"},{"line_number":393,"context_line":"            raise zadara_exception.ZadaraShareNotFound(name\u003dshare[\u0027share_id\u0027])"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":"        export_locations \u003d share[\u0027export_locations\u0027]"},{"line_number":396,"context_line":"        if export_locations:"},{"line_number":397,"context_line":"            return export_locations"},{"line_number":398,"context_line":"        else:"},{"line_number":399,"context_line":"            servers_list \u003d (self.vpsa._get_servers_attached_to_volume("},{"line_number":400,"context_line":"                            vpsa_volume[\u0027name\u0027]))"},{"line_number":401,"context_line":"            if len(servers_list) !\u003d 0:"},{"line_number":402,"context_line":"                msg \u003d (_(\u0027Servers attached to the VPSA volume %s without \u0027"},{"line_number":403,"context_line":"                         \u0027any locations exported.\u0027) % vpsa_volume[\u0027name\u0027])"},{"line_number":404,"context_line":"                LOG.error(msg)"},{"line_number":405,"context_line":"                raise zadara_exception.ZadaraShareNotValid("},{"line_number":406,"context_line":"                    name\u003dshare[\u0027share_id\u0027])"},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"    def _update_share_stats(self):"},{"line_number":409,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"4c85eea1_2655d0eb","line":406,"range":{"start_line":381,"start_character":0,"end_line":406,"end_character":43},"in_reply_to":"3bce1e8e_658dc40f","updated":"2021-01-20 14:39:57.000000000","message":"I agree the penalty on services start-up and the advantage with get_backend_info().\nBut ensuring shares on every startup, covers all the cases that can\u0027t possibly incorporate as the parameters in backend_info. Since modifying any such parameters in the backend is not recommended and trading with slowness, it makes sense for me to read from the backend_info() response. Thanks.","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"2c9f1d256a2133cf0b55fc9a05f78fc10eac5ac8","unresolved":false,"context_lines":[{"line_number":378,"context_line":"            raise zadara_exception.ZadaraExtendShareFailed("},{"line_number":379,"context_line":"                error\u003ddata[\u0027status\u0027])"},{"line_number":380,"context_line":""},{"line_number":381,"context_line":"    def ensure_share(self, context, share, share_server\u003dNone):"},{"line_number":382,"context_line":"        \"\"\"Ensure that the share has a backend volume and it is exported."},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"        \"\"\""},{"line_number":385,"context_line":"        # Get the backend volume name for the share"},{"line_number":386,"context_line":"        share_name \u003d (self.configuration.zadara_share_name_template"},{"line_number":387,"context_line":"                      % share[\u0027share_id\u0027])"},{"line_number":388,"context_line":"        vpsa_volume \u003d self.vpsa._get_vpsa_volume(share_name)"},{"line_number":389,"context_line":"        if not vpsa_volume:"},{"line_number":390,"context_line":"            msg \u003d (_(\u0027VPSA volume for share %s \u0027"},{"line_number":391,"context_line":"                     \u0027could not be found.\u0027) % share[\u0027share_id\u0027])"},{"line_number":392,"context_line":"            LOG.error(msg)"},{"line_number":393,"context_line":"            raise zadara_exception.ZadaraShareNotFound(name\u003dshare[\u0027share_id\u0027])"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":"        export_locations \u003d share[\u0027export_locations\u0027]"},{"line_number":396,"context_line":"        if export_locations:"},{"line_number":397,"context_line":"            return export_locations"},{"line_number":398,"context_line":"        else:"},{"line_number":399,"context_line":"            servers_list \u003d (self.vpsa._get_servers_attached_to_volume("},{"line_number":400,"context_line":"                            vpsa_volume[\u0027name\u0027]))"},{"line_number":401,"context_line":"            if len(servers_list) !\u003d 0:"},{"line_number":402,"context_line":"                msg \u003d (_(\u0027Servers attached to the VPSA volume %s without \u0027"},{"line_number":403,"context_line":"                         \u0027any locations exported.\u0027) % vpsa_volume[\u0027name\u0027])"},{"line_number":404,"context_line":"                LOG.error(msg)"},{"line_number":405,"context_line":"                raise zadara_exception.ZadaraShareNotValid("},{"line_number":406,"context_line":"                    name\u003dshare[\u0027share_id\u0027])"},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"    def _update_share_stats(self):"},{"line_number":409,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"4dc79f65_9fda64bf","line":406,"range":{"start_line":381,"start_character":0,"end_line":406,"end_character":43},"in_reply_to":"4c85eea1_2655d0eb","updated":"2021-01-24 18:41:39.000000000","message":"Done","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"df789f85815b32237be87ead6f1c68a7783e337d","unresolved":true,"context_lines":[{"line_number":422,"context_line":"            total_capacity_gb\u003dtotal,"},{"line_number":423,"context_line":"            free_capacity_gb\u003dfree,"},{"line_number":424,"context_line":"            allocated_capacity_gb\u003d(total - free),"},{"line_number":425,"context_line":"            reserved_percentage\u003d0,"},{"line_number":426,"context_line":"            compression\u003d(True if self.configuration.zadara_gen3_vol_compress"},{"line_number":427,"context_line":"                         else False),"},{"line_number":428,"context_line":"            dedupe\u003d(True if self.configuration.zadara_gen3_vol_dedupe"}],"source_content_type":"text/x-python","patch_set":3,"id":"312036ef_b5d39a60","line":425,"range":{"start_line":425,"start_character":32,"end_line":425,"end_character":33},"updated":"2021-01-10 04:13:06.000000000","message":"this should come from \"conf.reserved_share_percentage\"","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"2c9f1d256a2133cf0b55fc9a05f78fc10eac5ac8","unresolved":false,"context_lines":[{"line_number":422,"context_line":"            total_capacity_gb\u003dtotal,"},{"line_number":423,"context_line":"            free_capacity_gb\u003dfree,"},{"line_number":424,"context_line":"            allocated_capacity_gb\u003d(total - free),"},{"line_number":425,"context_line":"            reserved_percentage\u003d0,"},{"line_number":426,"context_line":"            compression\u003d(True if self.configuration.zadara_gen3_vol_compress"},{"line_number":427,"context_line":"                         else False),"},{"line_number":428,"context_line":"            dedupe\u003d(True if self.configuration.zadara_gen3_vol_dedupe"}],"source_content_type":"text/x-python","patch_set":3,"id":"7bf2cbed_1acf2695","line":425,"range":{"start_line":425,"start_character":32,"end_line":425,"end_character":33},"in_reply_to":"312036ef_b5d39a60","updated":"2021-01-24 18:41:39.000000000","message":"Done","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"df789f85815b32237be87ead6f1c68a7783e337d","unresolved":true,"context_lines":[{"line_number":427,"context_line":"                         else False),"},{"line_number":428,"context_line":"            dedupe\u003d(True if self.configuration.zadara_gen3_vol_dedupe"},{"line_number":429,"context_line":"                    else False),"},{"line_number":430,"context_line":"            thin_provisioning\u003dTrue"},{"line_number":431,"context_line":"        )"},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"        data \u003d dict("}],"source_content_type":"text/x-python","patch_set":3,"id":"81ad238b_535051f0","line":430,"range":{"start_line":430,"start_character":12,"end_line":430,"end_character":34},"updated":"2021-01-10 04:13:06.000000000","message":"if thin_provisioning is set to True, it is strongly recommended that you report \"provisioned_capacity_gb\" - this is the total of the apparent provisioning, i.e.,:\n\nImagine the total capacity is 500 GiB\nif users create 20 shares of 10GiB each, and have actually consumed no space, your free_space is still ~500 GiB and allocated_capacity_gb is ~0, but provisioned_capacity_gb is 200 GiB. This provisioned_capacity_gb is essential in allowing oversubscription calculations.","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"2c9f1d256a2133cf0b55fc9a05f78fc10eac5ac8","unresolved":false,"context_lines":[{"line_number":427,"context_line":"                         else False),"},{"line_number":428,"context_line":"            dedupe\u003d(True if self.configuration.zadara_gen3_vol_dedupe"},{"line_number":429,"context_line":"                    else False),"},{"line_number":430,"context_line":"            thin_provisioning\u003dTrue"},{"line_number":431,"context_line":"        )"},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"        data \u003d dict("}],"source_content_type":"text/x-python","patch_set":3,"id":"d5950279_13986208","line":430,"range":{"start_line":430,"start_character":12,"end_line":430,"end_character":34},"in_reply_to":"81ad238b_535051f0","updated":"2021-01-24 18:41:39.000000000","message":"Done","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"df789f85815b32237be87ead6f1c68a7783e337d","unresolved":true,"context_lines":[{"line_number":442,"context_line":"            revert_to_snapshot_support\u003dFalse,"},{"line_number":443,"context_line":"            mount_snapshot_support\u003dFalse,"},{"line_number":444,"context_line":"            ipv4_support\u003dipv4_support,"},{"line_number":445,"context_line":"            ipv6_support\u003dFalse if ipv4_support else True"},{"line_number":446,"context_line":"        )"},{"line_number":447,"context_line":"        super(ZadaraVPSAShareDriver, self)._update_share_stats(data)"},{"line_number":448,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"b95453dc_bca65ba9","line":445,"range":{"start_line":445,"start_character":25,"end_line":445,"end_character":56},"updated":"2021-01-10 04:13:06.000000000","message":"or simply:\n\n not ipv4_support","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"2c9f1d256a2133cf0b55fc9a05f78fc10eac5ac8","unresolved":false,"context_lines":[{"line_number":442,"context_line":"            revert_to_snapshot_support\u003dFalse,"},{"line_number":443,"context_line":"            mount_snapshot_support\u003dFalse,"},{"line_number":444,"context_line":"            ipv4_support\u003dipv4_support,"},{"line_number":445,"context_line":"            ipv6_support\u003dFalse if ipv4_support else True"},{"line_number":446,"context_line":"        )"},{"line_number":447,"context_line":"        super(ZadaraVPSAShareDriver, self)._update_share_stats(data)"},{"line_number":448,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"efdc7cc7_ccb2d6bd","line":445,"range":{"start_line":445,"start_character":25,"end_line":445,"end_character":56},"in_reply_to":"b95453dc_bca65ba9","updated":"2021-01-24 18:41:39.000000000","message":"Done","commit_id":"8854c922f269bcbb6c22248fb96d5733d12fdaaf"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"a879547ff51ec4e0358db6c2110e0cf105c1de9c","unresolved":true,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":74,"context_line":"        \"\"\"Do initialization.\"\"\""},{"line_number":75,"context_line":"        super(ZadaraVPSAShareDriver, self).__init__([False, True],"},{"line_number":76,"context_line":"                                                    *args, **kwargs)"},{"line_number":77,"context_line":"        self.vpsa \u003d None"},{"line_number":78,"context_line":"        self.configuration.append_config_values(common.zadara_opts)"}],"source_content_type":"text/x-python","patch_set":5,"id":"0d0a7fa8_e922d4b1","line":75,"range":{"start_line":75,"start_character":52,"end_line":75,"end_character":65},"updated":"2021-01-27 00:20:12.000000000","message":"Shouldn\u0027t be False only? Since your driver doesn\u0027t support DHSS\u003dTrue?","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"4fc69a26c725b9485e41200ae7ca6be435c509be","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":74,"context_line":"        \"\"\"Do initialization.\"\"\""},{"line_number":75,"context_line":"        super(ZadaraVPSAShareDriver, self).__init__([False, True],"},{"line_number":76,"context_line":"                                                    *args, **kwargs)"},{"line_number":77,"context_line":"        self.vpsa \u003d None"},{"line_number":78,"context_line":"        self.configuration.append_config_values(common.zadara_opts)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7b8bc9e5_977662b4","line":75,"range":{"start_line":75,"start_character":52,"end_line":75,"end_character":65},"in_reply_to":"0d0a7fa8_e922d4b1","updated":"2021-02-01 04:21:30.000000000","message":"Done","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"90dda51048afd4772976cbf7d0e2d1b9739112be","unresolved":true,"context_lines":[{"line_number":167,"context_line":"        for key, value in metadata.items():"},{"line_number":168,"context_line":"            if key in self.share_options:"},{"line_number":169,"context_line":"                # Check for the values allowed with provided metadata"},{"line_number":170,"context_line":"                if key in [\u0027smbguest\u0027, \u0027smbonly\u0027, \u0027smbwindowsacl\u0027,"},{"line_number":171,"context_line":"                           \u0027smbbrowseable\u0027, \u0027smbhideunreadable\u0027,"},{"line_number":172,"context_line":"                           \u0027smbhideunwriteable\u0027, \u0027smbhidedotfiles\u0027,"},{"line_number":173,"context_line":"                           \u0027smbstoredosattributes\u0027, \u0027smbmaparchive\u0027,"},{"line_number":174,"context_line":"                           \u0027smbenableoplocks\u0027, \u0027nfsrootsquash\u0027,"},{"line_number":175,"context_line":"                           \u0027nfsallsquash\u0027, \u0027atimeupdate\u0027, \u0027crypt\u0027,"},{"line_number":176,"context_line":"                           \u0027compress\u0027, \u0027dedupe\u0027, \u0027attachpolicies\u0027]:"},{"line_number":177,"context_line":"                    if value in [\u0027YES\u0027, \u0027NO\u0027]:"},{"line_number":178,"context_line":"                        continue"},{"line_number":179,"context_line":"                    else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"af83c9ab_9234f1b3","line":176,"range":{"start_line":170,"start_character":26,"end_line":176,"end_character":66},"updated":"2021-01-27 01:26:31.000000000","message":"nit: I guess it could be extracted to a variable and the variable used in this comparison :)","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"b49a8e9b367109325c1e975c67832be2f6309311","unresolved":false,"context_lines":[{"line_number":167,"context_line":"        for key, value in metadata.items():"},{"line_number":168,"context_line":"            if key in self.share_options:"},{"line_number":169,"context_line":"                # Check for the values allowed with provided metadata"},{"line_number":170,"context_line":"                if key in [\u0027smbguest\u0027, \u0027smbonly\u0027, \u0027smbwindowsacl\u0027,"},{"line_number":171,"context_line":"                           \u0027smbbrowseable\u0027, \u0027smbhideunreadable\u0027,"},{"line_number":172,"context_line":"                           \u0027smbhideunwriteable\u0027, \u0027smbhidedotfiles\u0027,"},{"line_number":173,"context_line":"                           \u0027smbstoredosattributes\u0027, \u0027smbmaparchive\u0027,"},{"line_number":174,"context_line":"                           \u0027smbenableoplocks\u0027, \u0027nfsrootsquash\u0027,"},{"line_number":175,"context_line":"                           \u0027nfsallsquash\u0027, \u0027atimeupdate\u0027, \u0027crypt\u0027,"},{"line_number":176,"context_line":"                           \u0027compress\u0027, \u0027dedupe\u0027, \u0027attachpolicies\u0027]:"},{"line_number":177,"context_line":"                    if value in [\u0027YES\u0027, \u0027NO\u0027]:"},{"line_number":178,"context_line":"                        continue"},{"line_number":179,"context_line":"                    else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"1207830b_b896a897","line":176,"range":{"start_line":170,"start_character":26,"end_line":176,"end_character":66},"in_reply_to":"702fe966_c7ca7f3f","updated":"2021-02-02 15:56:26.000000000","message":"Done","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"4fc69a26c725b9485e41200ae7ca6be435c509be","unresolved":true,"context_lines":[{"line_number":167,"context_line":"        for key, value in metadata.items():"},{"line_number":168,"context_line":"            if key in self.share_options:"},{"line_number":169,"context_line":"                # Check for the values allowed with provided metadata"},{"line_number":170,"context_line":"                if key in [\u0027smbguest\u0027, \u0027smbonly\u0027, \u0027smbwindowsacl\u0027,"},{"line_number":171,"context_line":"                           \u0027smbbrowseable\u0027, \u0027smbhideunreadable\u0027,"},{"line_number":172,"context_line":"                           \u0027smbhideunwriteable\u0027, \u0027smbhidedotfiles\u0027,"},{"line_number":173,"context_line":"                           \u0027smbstoredosattributes\u0027, \u0027smbmaparchive\u0027,"},{"line_number":174,"context_line":"                           \u0027smbenableoplocks\u0027, \u0027nfsrootsquash\u0027,"},{"line_number":175,"context_line":"                           \u0027nfsallsquash\u0027, \u0027atimeupdate\u0027, \u0027crypt\u0027,"},{"line_number":176,"context_line":"                           \u0027compress\u0027, \u0027dedupe\u0027, \u0027attachpolicies\u0027]:"},{"line_number":177,"context_line":"                    if value in [\u0027YES\u0027, \u0027NO\u0027]:"},{"line_number":178,"context_line":"                        continue"},{"line_number":179,"context_line":"                    else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"702fe966_c7ca7f3f","line":176,"range":{"start_line":170,"start_character":26,"end_line":176,"end_character":66},"in_reply_to":"af83c9ab_9234f1b3","updated":"2021-02-01 04:21:30.000000000","message":"I somehow prefer the way it is over declaring all variables for each check.\nAt the same, I am ok to change if you insist:)","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f36fba94b6fce03a7cfcb5113e5024255953c754","unresolved":true,"context_lines":[{"line_number":250,"context_line":"        export_location \u003d self._get_share_export_location(share)"},{"line_number":251,"context_line":"        return {\u0027path\u0027: export_location}"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"    def allow_access(self, context, share, access):"},{"line_number":254,"context_line":"        \"\"\"Allow access to the share.\"\"\""},{"line_number":255,"context_line":"        access_type \u003d access[\u0027access_type\u0027]"},{"line_number":256,"context_line":"        share_proto \u003d share[\u0027share_proto\u0027].upper()"}],"source_content_type":"text/x-python","patch_set":5,"id":"6191f70f_4904309a","line":253,"range":{"start_line":253,"start_character":8,"end_line":253,"end_character":20},"updated":"2021-01-26 19:47:12.000000000","message":"convert to an internal method: _allow_access","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"4fc69a26c725b9485e41200ae7ca6be435c509be","unresolved":false,"context_lines":[{"line_number":250,"context_line":"        export_location \u003d self._get_share_export_location(share)"},{"line_number":251,"context_line":"        return {\u0027path\u0027: export_location}"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"    def allow_access(self, context, share, access):"},{"line_number":254,"context_line":"        \"\"\"Allow access to the share.\"\"\""},{"line_number":255,"context_line":"        access_type \u003d access[\u0027access_type\u0027]"},{"line_number":256,"context_line":"        share_proto \u003d share[\u0027share_proto\u0027].upper()"}],"source_content_type":"text/x-python","patch_set":5,"id":"309cb10c_2a27cf35","line":253,"range":{"start_line":253,"start_character":8,"end_line":253,"end_character":20},"in_reply_to":"6191f70f_4904309a","updated":"2021-02-01 04:21:30.000000000","message":"Done","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"a879547ff51ec4e0358db6c2110e0cf105c1de9c","unresolved":true,"context_lines":[{"line_number":274,"context_line":"        if not vpsa_srv:"},{"line_number":275,"context_line":"            raise zadara_exception.ZadaraServerCreateFailure(name\u003daccess_ip)"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        # Get volume name"},{"line_number":278,"context_line":"        vol_name \u003d (self.configuration.zadara_share_name_template"},{"line_number":279,"context_line":"                    % share[\u0027id\u0027])"},{"line_number":280,"context_line":"        vpsa_volume \u003d self.vpsa._get_vpsa_volume(vol_name)"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"        if not vpsa_volume:"},{"line_number":283,"context_line":"            raise manila_exception.ManilaException(_("},{"line_number":284,"context_line":"                \"Unable to find VPSA volume %s\") % vol_name)"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        data \u003d self.vpsa_send_cmd(\u0027list_vol_attachments\u0027,"},{"line_number":287,"context_line":"                                  vpsa_vol\u003dvpsa_volume[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"0d139ba5_4a11e018","line":284,"range":{"start_line":277,"start_character":0,"end_line":284,"end_character":60},"updated":"2021-01-27 00:20:12.000000000","message":"nit: move this above \u0027_create_vpsa_server\u0027 call so you can fail earlier.","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"4fc69a26c725b9485e41200ae7ca6be435c509be","unresolved":false,"context_lines":[{"line_number":274,"context_line":"        if not vpsa_srv:"},{"line_number":275,"context_line":"            raise zadara_exception.ZadaraServerCreateFailure(name\u003daccess_ip)"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        # Get volume name"},{"line_number":278,"context_line":"        vol_name \u003d (self.configuration.zadara_share_name_template"},{"line_number":279,"context_line":"                    % share[\u0027id\u0027])"},{"line_number":280,"context_line":"        vpsa_volume \u003d self.vpsa._get_vpsa_volume(vol_name)"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"        if not vpsa_volume:"},{"line_number":283,"context_line":"            raise manila_exception.ManilaException(_("},{"line_number":284,"context_line":"                \"Unable to find VPSA volume %s\") % vol_name)"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        data \u003d self.vpsa_send_cmd(\u0027list_vol_attachments\u0027,"},{"line_number":287,"context_line":"                                  vpsa_vol\u003dvpsa_volume[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"3921eef5_d383eb22","line":284,"range":{"start_line":277,"start_character":0,"end_line":284,"end_character":60},"in_reply_to":"0d139ba5_4a11e018","updated":"2021-02-01 04:21:30.000000000","message":"Done","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"90dda51048afd4772976cbf7d0e2d1b9739112be","unresolved":true,"context_lines":[{"line_number":302,"context_line":"        data \u003d self.vpsa_send_cmd(\u0027list_vol_attachments\u0027,"},{"line_number":303,"context_line":"                                  vpsa_vol\u003dvpsa_volume[\u0027name\u0027])"},{"line_number":304,"context_line":"        server \u003d None"},{"line_number":305,"context_line":"        servers \u003d data.get(\u0027servers\u0027, [])"},{"line_number":306,"context_line":"        for srv in servers:"},{"line_number":307,"context_line":"            if srv[\u0027iscsi_ip\u0027] \u003d\u003d access_ip:"},{"line_number":308,"context_line":"                server \u003d srv"}],"source_content_type":"text/x-python","patch_set":5,"id":"d55dd32e_5cb726e0","line":305,"range":{"start_line":305,"start_character":8,"end_line":305,"end_character":41},"updated":"2021-01-27 01:26:31.000000000","message":"the above servers variable wasn\u0027t overwritten, so I think there is no need to redeclare it here","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"b49a8e9b367109325c1e975c67832be2f6309311","unresolved":false,"context_lines":[{"line_number":302,"context_line":"        data \u003d self.vpsa_send_cmd(\u0027list_vol_attachments\u0027,"},{"line_number":303,"context_line":"                                  vpsa_vol\u003dvpsa_volume[\u0027name\u0027])"},{"line_number":304,"context_line":"        server \u003d None"},{"line_number":305,"context_line":"        servers \u003d data.get(\u0027servers\u0027, [])"},{"line_number":306,"context_line":"        for srv in servers:"},{"line_number":307,"context_line":"            if srv[\u0027iscsi_ip\u0027] \u003d\u003d access_ip:"},{"line_number":308,"context_line":"                server \u003d srv"}],"source_content_type":"text/x-python","patch_set":5,"id":"75f65fae_667d5233","line":305,"range":{"start_line":305,"start_character":8,"end_line":305,"end_character":41},"in_reply_to":"b2af436e_749d04c8","updated":"2021-02-02 15:56:26.000000000","message":"Done","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"4fc69a26c725b9485e41200ae7ca6be435c509be","unresolved":true,"context_lines":[{"line_number":302,"context_line":"        data \u003d self.vpsa_send_cmd(\u0027list_vol_attachments\u0027,"},{"line_number":303,"context_line":"                                  vpsa_vol\u003dvpsa_volume[\u0027name\u0027])"},{"line_number":304,"context_line":"        server \u003d None"},{"line_number":305,"context_line":"        servers \u003d data.get(\u0027servers\u0027, [])"},{"line_number":306,"context_line":"        for srv in servers:"},{"line_number":307,"context_line":"            if srv[\u0027iscsi_ip\u0027] \u003d\u003d access_ip:"},{"line_number":308,"context_line":"                server \u003d srv"}],"source_content_type":"text/x-python","patch_set":5,"id":"b2af436e_749d04c8","line":305,"range":{"start_line":305,"start_character":8,"end_line":305,"end_character":41},"in_reply_to":"d55dd32e_5cb726e0","updated":"2021-02-01 04:21:30.000000000","message":"Here, the servers are again collected after volume attachment.\nHence again collected the list of servers here.","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f36fba94b6fce03a7cfcb5113e5024255953c754","unresolved":true,"context_lines":[{"line_number":343,"context_line":"        # Delete volume associate with the share"},{"line_number":344,"context_line":"        self.vpsa_send_cmd(\u0027delete_volume\u0027, vpsa_vol\u003dvolume[\u0027name\u0027])"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"    def deny_access(self, context, share, access, share_server\u003dNone):"},{"line_number":347,"context_line":"        \"\"\"Deny access to the share from the host."},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"        Auto detach from all servers."}],"source_content_type":"text/x-python","patch_set":5,"id":"cf22c9f1_03010a08","line":346,"range":{"start_line":346,"start_character":8,"end_line":346,"end_character":19},"updated":"2021-01-26 19:47:12.000000000","message":"convert to internal method: _deny_access","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"4fc69a26c725b9485e41200ae7ca6be435c509be","unresolved":false,"context_lines":[{"line_number":343,"context_line":"        # Delete volume associate with the share"},{"line_number":344,"context_line":"        self.vpsa_send_cmd(\u0027delete_volume\u0027, vpsa_vol\u003dvolume[\u0027name\u0027])"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"    def deny_access(self, context, share, access, share_server\u003dNone):"},{"line_number":347,"context_line":"        \"\"\"Deny access to the share from the host."},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"        Auto detach from all servers."}],"source_content_type":"text/x-python","patch_set":5,"id":"2349193a_551e7983","line":346,"range":{"start_line":346,"start_character":8,"end_line":346,"end_character":19},"in_reply_to":"cf22c9f1_03010a08","updated":"2021-02-01 04:21:30.000000000","message":"Done","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f36fba94b6fce03a7cfcb5113e5024255953c754","unresolved":true,"context_lines":[{"line_number":368,"context_line":"                      delete_rules, share_server\u003dNone):"},{"line_number":369,"context_line":"        if add_rules:"},{"line_number":370,"context_line":"            # Add rules for accessing share"},{"line_number":371,"context_line":"            for access_rule in add_rules:"},{"line_number":372,"context_line":"                self.allow_access(context, share, access_rule)"},{"line_number":373,"context_line":"        if delete_rules:"},{"line_number":374,"context_line":"            # Delete access rules for provided share"},{"line_number":375,"context_line":"            for access_rule in delete_rules:"}],"source_content_type":"text/x-python","patch_set":5,"id":"b0c4ae2d_e3ce2dd8","line":372,"range":{"start_line":371,"start_character":12,"end_line":372,"end_character":62},"updated":"2021-01-26 19:47:12.000000000","message":"ensure you\u0027re handling exceptions here. If one of the rules fails, all other rules in the batch are going to be set to \"error\". It\u0027s better if you log the exception, and set the \"state\" of the failed rule to \"error\". This allows un-applied/illegal rules to be handled better in the share manager service. \n\nSee the docstring for update_access here: https://opendev.org/openstack/manila/src/commit/39efc2bde81c2a0c747a491d3a778b822ca263b8/manila/share/driver.py#L746-L836\n\n\nHere\u0027s an example where we\u0027re adding better error handling for another driver: https://review.opendev.org/c/openstack/manila/+/772474/1/manila/share/drivers/cephfs/driver.py#494","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"4fc69a26c725b9485e41200ae7ca6be435c509be","unresolved":false,"context_lines":[{"line_number":368,"context_line":"                      delete_rules, share_server\u003dNone):"},{"line_number":369,"context_line":"        if add_rules:"},{"line_number":370,"context_line":"            # Add rules for accessing share"},{"line_number":371,"context_line":"            for access_rule in add_rules:"},{"line_number":372,"context_line":"                self.allow_access(context, share, access_rule)"},{"line_number":373,"context_line":"        if delete_rules:"},{"line_number":374,"context_line":"            # Delete access rules for provided share"},{"line_number":375,"context_line":"            for access_rule in delete_rules:"}],"source_content_type":"text/x-python","patch_set":5,"id":"c63bb517_69e10131","line":372,"range":{"start_line":371,"start_character":12,"end_line":372,"end_character":62},"in_reply_to":"b0c4ae2d_e3ce2dd8","updated":"2021-02-01 04:21:30.000000000","message":"Done","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"90dda51048afd4772976cbf7d0e2d1b9739112be","unresolved":true,"context_lines":[{"line_number":390,"context_line":"            raise zadara_exception.ZadaraShareNotFound(name\u003dshare[\u0027id\u0027])"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"        size \u003d vpsa_volume[\u0027virtual_capacity\u0027]"},{"line_number":393,"context_line":"        if new_size \u003c size:"},{"line_number":394,"context_line":"            raise zadara_exception.ZadaraInvalidExtendSize()"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"        expand_size \u003d new_size - size"},{"line_number":397,"context_line":"        data \u003d self.vpsa_send_cmd(\u0027expand_volume\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"85f26a43_83f5f84a","line":394,"range":{"start_line":393,"start_character":8,"end_line":394,"end_character":60},"updated":"2021-01-27 01:26:31.000000000","message":"I think this might not be necessary, since manila is already handling it in [1]\n\n[1] https://github.com/openstack/manila/blob/42b709e44624d7be5753fc29f0a87998a97424eb/manila/share/api.py#L2084","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"4fc69a26c725b9485e41200ae7ca6be435c509be","unresolved":false,"context_lines":[{"line_number":390,"context_line":"            raise zadara_exception.ZadaraShareNotFound(name\u003dshare[\u0027id\u0027])"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"        size \u003d vpsa_volume[\u0027virtual_capacity\u0027]"},{"line_number":393,"context_line":"        if new_size \u003c size:"},{"line_number":394,"context_line":"            raise zadara_exception.ZadaraInvalidExtendSize()"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"        expand_size \u003d new_size - size"},{"line_number":397,"context_line":"        data \u003d self.vpsa_send_cmd(\u0027expand_volume\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"044fe81f_0062a892","line":394,"range":{"start_line":393,"start_character":8,"end_line":394,"end_character":60},"in_reply_to":"85f26a43_83f5f84a","updated":"2021-02-01 04:21:30.000000000","message":"Done","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f36fba94b6fce03a7cfcb5113e5024255953c754","unresolved":true,"context_lines":[{"line_number":401,"context_line":"            raise zadara_exception.ZadaraExtendShareFailed("},{"line_number":402,"context_line":"                error\u003ddata[\u0027status\u0027])"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"    def ensure_share(self, context, share, share_server\u003dNone):"},{"line_number":405,"context_line":"        \"\"\"Ensure that the share has a backend volume and it is exported."},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"0a0c1ec1_338d3d32","line":404,"range":{"start_line":404,"start_character":8,"end_line":404,"end_character":20},"updated":"2021-01-26 19:47:12.000000000","message":"convert to internal method: _ensure_share","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"4fc69a26c725b9485e41200ae7ca6be435c509be","unresolved":false,"context_lines":[{"line_number":401,"context_line":"            raise zadara_exception.ZadaraExtendShareFailed("},{"line_number":402,"context_line":"                error\u003ddata[\u0027status\u0027])"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"    def ensure_share(self, context, share, share_server\u003dNone):"},{"line_number":405,"context_line":"        \"\"\"Ensure that the share has a backend volume and it is exported."},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"f1de328a_a7811cd2","line":404,"range":{"start_line":404,"start_character":8,"end_line":404,"end_character":20},"in_reply_to":"0a0c1ec1_338d3d32","updated":"2021-02-01 04:21:30.000000000","message":"Done","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"a879547ff51ec4e0358db6c2110e0cf105c1de9c","unresolved":true,"context_lines":[{"line_number":448,"context_line":"            allocated_capacity_gb\u003d(total - free),"},{"line_number":449,"context_line":"            provisioned_capacity_gb\u003dprovisioned,"},{"line_number":450,"context_line":"            reserved_percentage\u003dself.configuration.reserved_share_percentage,"},{"line_number":451,"context_line":"            compression\u003d(True if self.configuration.zadara_gen3_vol_compress"},{"line_number":452,"context_line":"                         else False),"},{"line_number":453,"context_line":"            dedupe\u003d(True if self.configuration.zadara_gen3_vol_dedupe"},{"line_number":454,"context_line":"                    else False),"},{"line_number":455,"context_line":"            thin_provisioning\u003dTrue"}],"source_content_type":"text/x-python","patch_set":5,"id":"97b8030f_6f364836","line":452,"range":{"start_line":451,"start_character":24,"end_line":452,"end_character":37},"updated":"2021-01-27 00:20:12.000000000","message":"[True, False] since your driver supports both compressed and non-compressed shares, depending on the share metadata, right? If my understand is correct while reading your \u0027_generate_vpsa_cmd\u0027 method.","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"4fc69a26c725b9485e41200ae7ca6be435c509be","unresolved":false,"context_lines":[{"line_number":448,"context_line":"            allocated_capacity_gb\u003d(total - free),"},{"line_number":449,"context_line":"            provisioned_capacity_gb\u003dprovisioned,"},{"line_number":450,"context_line":"            reserved_percentage\u003dself.configuration.reserved_share_percentage,"},{"line_number":451,"context_line":"            compression\u003d(True if self.configuration.zadara_gen3_vol_compress"},{"line_number":452,"context_line":"                         else False),"},{"line_number":453,"context_line":"            dedupe\u003d(True if self.configuration.zadara_gen3_vol_dedupe"},{"line_number":454,"context_line":"                    else False),"},{"line_number":455,"context_line":"            thin_provisioning\u003dTrue"}],"source_content_type":"text/x-python","patch_set":5,"id":"f6a8de51_c1ef5188","line":452,"range":{"start_line":451,"start_character":24,"end_line":452,"end_character":37},"in_reply_to":"97b8030f_6f364836","updated":"2021-02-01 04:21:30.000000000","message":"Done","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"a879547ff51ec4e0358db6c2110e0cf105c1de9c","unresolved":true,"context_lines":[{"line_number":450,"context_line":"            reserved_percentage\u003dself.configuration.reserved_share_percentage,"},{"line_number":451,"context_line":"            compression\u003d(True if self.configuration.zadara_gen3_vol_compress"},{"line_number":452,"context_line":"                         else False),"},{"line_number":453,"context_line":"            dedupe\u003d(True if self.configuration.zadara_gen3_vol_dedupe"},{"line_number":454,"context_line":"                    else False),"},{"line_number":455,"context_line":"            thin_provisioning\u003dTrue"},{"line_number":456,"context_line":"        )"},{"line_number":457,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"418bee21_bd40e023","line":454,"range":{"start_line":453,"start_character":19,"end_line":454,"end_character":31},"updated":"2021-01-27 00:20:12.000000000","message":"[True, False]","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"4fc69a26c725b9485e41200ae7ca6be435c509be","unresolved":false,"context_lines":[{"line_number":450,"context_line":"            reserved_percentage\u003dself.configuration.reserved_share_percentage,"},{"line_number":451,"context_line":"            compression\u003d(True if self.configuration.zadara_gen3_vol_compress"},{"line_number":452,"context_line":"                         else False),"},{"line_number":453,"context_line":"            dedupe\u003d(True if self.configuration.zadara_gen3_vol_dedupe"},{"line_number":454,"context_line":"                    else False),"},{"line_number":455,"context_line":"            thin_provisioning\u003dTrue"},{"line_number":456,"context_line":"        )"},{"line_number":457,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"f8cee4ed_dab82240","line":454,"range":{"start_line":453,"start_character":19,"end_line":454,"end_character":31},"in_reply_to":"418bee21_bd40e023","updated":"2021-02-01 04:21:30.000000000","message":"Done","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"90dda51048afd4772976cbf7d0e2d1b9739112be","unresolved":true,"context_lines":[{"line_number":501,"context_line":""},{"line_number":502,"context_line":"        # Retrieve the CG name for the base volume"},{"line_number":503,"context_line":"        share \u003d snapshot[\u0027share\u0027]"},{"line_number":504,"context_line":"        volume_name \u003d (self.configuration.zadara_share_name_template"},{"line_number":505,"context_line":"                       % share[\u0027id\u0027])"},{"line_number":506,"context_line":"        cg_name \u003d self.vpsa._get_volume_cg_name(volume_name)"},{"line_number":507,"context_line":"        if not cg_name:"},{"line_number":508,"context_line":"            # If the volume isn\u0027t present, then don\u0027t attempt to delete"}],"source_content_type":"text/x-python","patch_set":5,"id":"abd03d90_c3e4b081","line":505,"range":{"start_line":504,"start_character":23,"end_line":505,"end_character":36},"updated":"2021-01-27 01:26:31.000000000","message":"nit: I think this could be extracted to a private method, so you wouldn\u0027t need to rewrite this every time you need to use it... it could be something like:\ndef _get_zadara_share_template_name(share_id):\n    return self.configuration.zadara_name_template % share_id","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"4fc69a26c725b9485e41200ae7ca6be435c509be","unresolved":false,"context_lines":[{"line_number":501,"context_line":""},{"line_number":502,"context_line":"        # Retrieve the CG name for the base volume"},{"line_number":503,"context_line":"        share \u003d snapshot[\u0027share\u0027]"},{"line_number":504,"context_line":"        volume_name \u003d (self.configuration.zadara_share_name_template"},{"line_number":505,"context_line":"                       % share[\u0027id\u0027])"},{"line_number":506,"context_line":"        cg_name \u003d self.vpsa._get_volume_cg_name(volume_name)"},{"line_number":507,"context_line":"        if not cg_name:"},{"line_number":508,"context_line":"            # If the volume isn\u0027t present, then don\u0027t attempt to delete"}],"source_content_type":"text/x-python","patch_set":5,"id":"d8607743_98b40b38","line":505,"range":{"start_line":504,"start_character":23,"end_line":505,"end_character":36},"in_reply_to":"abd03d90_c3e4b081","updated":"2021-02-01 04:21:30.000000000","message":"Done","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"90dda51048afd4772976cbf7d0e2d1b9739112be","unresolved":true,"context_lines":[{"line_number":537,"context_line":"        if not cg_name:"},{"line_number":538,"context_line":"            msg \u003d _(\u0027Volume %(name)s not found\u0027) % {\u0027name\u0027: volume_name}"},{"line_number":539,"context_line":"            LOG.error(msg)"},{"line_number":540,"context_line":"            raise manila_exception.ManilaException(msg)"},{"line_number":541,"context_line":""},{"line_number":542,"context_line":"        snap_name \u003d (self.configuration.zadara_share_snap_name_template"},{"line_number":543,"context_line":"                     % snapshot[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"4ec8aca0_2c5eb441","line":540,"range":{"start_line":540,"start_character":18,"end_line":540,"end_character":55},"updated":"2021-01-27 01:26:31.000000000","message":"wouldn\u0027t it be the case to raise ShareNotFound?","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"4fc69a26c725b9485e41200ae7ca6be435c509be","unresolved":false,"context_lines":[{"line_number":537,"context_line":"        if not cg_name:"},{"line_number":538,"context_line":"            msg \u003d _(\u0027Volume %(name)s not found\u0027) % {\u0027name\u0027: volume_name}"},{"line_number":539,"context_line":"            LOG.error(msg)"},{"line_number":540,"context_line":"            raise manila_exception.ManilaException(msg)"},{"line_number":541,"context_line":""},{"line_number":542,"context_line":"        snap_name \u003d (self.configuration.zadara_share_snap_name_template"},{"line_number":543,"context_line":"                     % snapshot[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"7e012ea3_5f5bea37","line":540,"range":{"start_line":540,"start_character":18,"end_line":540,"end_character":55},"in_reply_to":"4ec8aca0_2c5eb441","updated":"2021-02-01 04:21:30.000000000","message":"Done","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"90dda51048afd4772976cbf7d0e2d1b9739112be","unresolved":true,"context_lines":[{"line_number":545,"context_line":"        if not snap_id:"},{"line_number":546,"context_line":"            msg \u003d _(\u0027Snapshot %(name)s not found\u0027) % {\u0027name\u0027: snap_name}"},{"line_number":547,"context_line":"            LOG.error(msg)"},{"line_number":548,"context_line":"            raise manila_exception.ManilaException(msg)"},{"line_number":549,"context_line":""},{"line_number":550,"context_line":"        self._check_share_protocol(share)"},{"line_number":551,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"fac2245d_6a5dfeb0","line":548,"range":{"start_line":548,"start_character":18,"end_line":548,"end_character":55},"updated":"2021-01-27 01:26:31.000000000","message":"wouldn\u0027t it be the case to raise a specific snapshot not found exception?","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"4fc69a26c725b9485e41200ae7ca6be435c509be","unresolved":false,"context_lines":[{"line_number":545,"context_line":"        if not snap_id:"},{"line_number":546,"context_line":"            msg \u003d _(\u0027Snapshot %(name)s not found\u0027) % {\u0027name\u0027: snap_name}"},{"line_number":547,"context_line":"            LOG.error(msg)"},{"line_number":548,"context_line":"            raise manila_exception.ManilaException(msg)"},{"line_number":549,"context_line":""},{"line_number":550,"context_line":"        self._check_share_protocol(share)"},{"line_number":551,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5205f8a4_9daef82f","line":548,"range":{"start_line":548,"start_character":18,"end_line":548,"end_character":55},"in_reply_to":"fac2245d_6a5dfeb0","updated":"2021-02-01 04:21:30.000000000","message":"Done","commit_id":"350f7dc7b702404e755d4024ae10c7102ef96a84"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"3e4631fca5ed3b821b5cbed1844e69de31b5c231","unresolved":true,"context_lines":[{"line_number":118,"context_line":"    def vpsa_send_cmd(self, cmd, **kwargs):"},{"line_number":119,"context_line":"        try:"},{"line_number":120,"context_line":"            response \u003d self.vpsa.send_cmd(cmd, **kwargs)"},{"line_number":121,"context_line":"        except common.exception.UnknownCmd as e:"},{"line_number":122,"context_line":"            raise zadara_exception.UnknownCmd(cmd\u003de.cmd)"},{"line_number":123,"context_line":"        except common.exception.SessionRequestException as e:"},{"line_number":124,"context_line":"            raise zadara_exception.SessionRequestException(msg\u003de.msg)"}],"source_content_type":"text/x-python","patch_set":10,"id":"1748945f_b1d7f2c1","line":121,"updated":"2021-02-25 15:50:26.000000000","message":"Not see much point of catching the exceptions if they are being re raised","commit_id":"90a7daaf8a34829ad91f90bf6e9aa9e8ad4ccd89"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"8034ff90864e34dc2852f94ab20ff4bf7358f254","unresolved":true,"context_lines":[{"line_number":118,"context_line":"    def vpsa_send_cmd(self, cmd, **kwargs):"},{"line_number":119,"context_line":"        try:"},{"line_number":120,"context_line":"            response \u003d self.vpsa.send_cmd(cmd, **kwargs)"},{"line_number":121,"context_line":"        except common.exception.UnknownCmd as e:"},{"line_number":122,"context_line":"            raise zadara_exception.UnknownCmd(cmd\u003de.cmd)"},{"line_number":123,"context_line":"        except common.exception.SessionRequestException as e:"},{"line_number":124,"context_line":"            raise zadara_exception.SessionRequestException(msg\u003de.msg)"}],"source_content_type":"text/x-python","patch_set":10,"id":"66964f1a_01ac5ed1","line":121,"in_reply_to":"1748945f_b1d7f2c1","updated":"2021-03-02 14:10:58.000000000","message":"As explained above with the code layout, common.py file deals with requests to the zadara backend vpsa objects. We are serving here to redirect the exceptions encountered with vpsa requests to driver specific exceptions. Doesn\u0027t want to deal driver specifics inside common code.","commit_id":"90a7daaf8a34829ad91f90bf6e9aa9e8ad4ccd89"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d40d9ad1605c1ca49d25e49daaf795aec66152d8","unresolved":true,"context_lines":[{"line_number":370,"context_line":"            # Add rules for accessing share"},{"line_number":371,"context_line":"            for access_rule in add_rules:"},{"line_number":372,"context_line":"                try:"},{"line_number":373,"context_line":"                    self._allow_access(context, share, access_rule)"},{"line_number":374,"context_line":"                    access_updates.update("},{"line_number":375,"context_line":"                        {access_rule[\u0027access_id\u0027]: {\u0027state\u0027: \u0027active\u0027}})"},{"line_number":376,"context_line":"                except manila_exception.ZadaraInvalidShareAccessType:"}],"source_content_type":"text/x-python","patch_set":13,"id":"dc670c21_efcfb8c8","line":373,"range":{"start_line":373,"start_character":0,"end_line":373,"end_character":67},"updated":"2021-03-05 07:00:20.000000000","message":"Is this method idempotent?\ni.e., if the access rule is added again, will it be ignored? or is an error raised?\n\nI ask because you\u0027re not handling the case where add_rules and delete_rules are empty, and only \"access_rules\" is present. One instance where this happens is when a share is being migrated - the driver will be invoked to ensure that all the existing access rules are set to \"readonly\" instead of readwrite... https://opendev.org/openstack/manila/src/commit/39efc2bde81c2a0c747a491d3a778b822ca263b8/manila/share/driver.py#L761-L765","commit_id":"f1bf49bc1e2fd336b94df75a0c0aeda295348483"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"d065c3b72baaccf665160125ce2d60c2447a298c","unresolved":true,"context_lines":[{"line_number":370,"context_line":"            # Add rules for accessing share"},{"line_number":371,"context_line":"            for access_rule in add_rules:"},{"line_number":372,"context_line":"                try:"},{"line_number":373,"context_line":"                    self._allow_access(context, share, access_rule)"},{"line_number":374,"context_line":"                    access_updates.update("},{"line_number":375,"context_line":"                        {access_rule[\u0027access_id\u0027]: {\u0027state\u0027: \u0027active\u0027}})"},{"line_number":376,"context_line":"                except manila_exception.ZadaraInvalidShareAccessType:"}],"source_content_type":"text/x-python","patch_set":13,"id":"080620b3_d96fe1de","line":373,"range":{"start_line":373,"start_character":0,"end_line":373,"end_character":67},"in_reply_to":"24020bee_9042d263","updated":"2021-03-06 08:07:20.000000000","message":"Submitted a bug to track the progress of share migration support for zadara driver.\nhttps://bugs.launchpad.net/manila/+bug/1917980","commit_id":"f1bf49bc1e2fd336b94df75a0c0aeda295348483"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f0faf37228b7975971b039cebdf092b6e5e42ced","unresolved":true,"context_lines":[{"line_number":370,"context_line":"            # Add rules for accessing share"},{"line_number":371,"context_line":"            for access_rule in add_rules:"},{"line_number":372,"context_line":"                try:"},{"line_number":373,"context_line":"                    self._allow_access(context, share, access_rule)"},{"line_number":374,"context_line":"                    access_updates.update("},{"line_number":375,"context_line":"                        {access_rule[\u0027access_id\u0027]: {\u0027state\u0027: \u0027active\u0027}})"},{"line_number":376,"context_line":"                except manila_exception.ZadaraInvalidShareAccessType:"}],"source_content_type":"text/x-python","patch_set":13,"id":"24020bee_9042d263","line":373,"range":{"start_line":373,"start_character":0,"end_line":373,"end_character":67},"in_reply_to":"7a9e3bc0_d2a3e5ea","updated":"2021-03-05 19:55:59.000000000","message":"Share migration is of two kinds: generic and driver optimized migration. Even when a driver does not support any optimized migration, manila\u0027s share and data services will work to provide a generic migration capability: https://docs.openstack.org/manila/latest/admin/shared-file-systems-share-migration.html\n\nWhen performing a migration, the share driver is invoked to set all existing access rules to \"readonly\" instead of readwrite. When this happens, \"add_rules\" and \"delete_rules\" will be empty; and \"access_rules\" will contain all the rules you need to have on the backend. So, you must ensure that only the rules in \"access_rules\" exist on the backend with the correct access-level as specified within these rules. \n\nAs discussed on IRC, if you\u0027re unable to test/support generic migration, please report a bug on launchpad so you can track that and get a fix after this initial driver patch has been merged.","commit_id":"f1bf49bc1e2fd336b94df75a0c0aeda295348483"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"9704ff2d7e80460c2a900d03d77ca126e2de88d4","unresolved":true,"context_lines":[{"line_number":370,"context_line":"            # Add rules for accessing share"},{"line_number":371,"context_line":"            for access_rule in add_rules:"},{"line_number":372,"context_line":"                try:"},{"line_number":373,"context_line":"                    self._allow_access(context, share, access_rule)"},{"line_number":374,"context_line":"                    access_updates.update("},{"line_number":375,"context_line":"                        {access_rule[\u0027access_id\u0027]: {\u0027state\u0027: \u0027active\u0027}})"},{"line_number":376,"context_line":"                except manila_exception.ZadaraInvalidShareAccessType:"}],"source_content_type":"text/x-python","patch_set":13,"id":"7a9e3bc0_d2a3e5ea","line":373,"range":{"start_line":373,"start_character":0,"end_line":373,"end_character":67},"in_reply_to":"dc670c21_efcfb8c8","updated":"2021-03-05 17:51:04.000000000","message":"Yes. For each access_rule, a server is created for provided ip(only supported access_type for zadara driver) in the backend. It will return the same(without error) if the access_rule request with same ip is received again.\nCurrently, share migration operaton is not supported by zadara driver. Set of operations checking only add_rules and delete_rules cases work for now.","commit_id":"f1bf49bc1e2fd336b94df75a0c0aeda295348483"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d40d9ad1605c1ca49d25e49daaf795aec66152d8","unresolved":true,"context_lines":[{"line_number":371,"context_line":"            for access_rule in add_rules:"},{"line_number":372,"context_line":"                try:"},{"line_number":373,"context_line":"                    self._allow_access(context, share, access_rule)"},{"line_number":374,"context_line":"                    access_updates.update("},{"line_number":375,"context_line":"                        {access_rule[\u0027access_id\u0027]: {\u0027state\u0027: \u0027active\u0027}})"},{"line_number":376,"context_line":"                except manila_exception.ZadaraInvalidShareAccessType:"},{"line_number":377,"context_line":"                    LOG.error(\"Only ip access type allowed for Zadara share. \""},{"line_number":378,"context_line":"                              \"Failed to allow %(access_level)s access to \""}],"source_content_type":"text/x-python","patch_set":13,"id":"01773200_4b6406b8","line":375,"range":{"start_line":374,"start_character":20,"end_line":375,"end_character":72},"updated":"2021-03-05 07:00:20.000000000","message":"this is not required - it\u0027s handled by the share manager code: https://opendev.org/openstack/manila/src/commit/a1ba28cad3b445bd28644f0be55912a072859166/manila/share/access.py#L327-L333","commit_id":"f1bf49bc1e2fd336b94df75a0c0aeda295348483"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d40d9ad1605c1ca49d25e49daaf795aec66152d8","unresolved":true,"context_lines":[{"line_number":373,"context_line":"                    self._allow_access(context, share, access_rule)"},{"line_number":374,"context_line":"                    access_updates.update("},{"line_number":375,"context_line":"                        {access_rule[\u0027access_id\u0027]: {\u0027state\u0027: \u0027active\u0027}})"},{"line_number":376,"context_line":"                except manila_exception.ZadaraInvalidShareAccessType:"},{"line_number":377,"context_line":"                    LOG.error(\"Only ip access type allowed for Zadara share. \""},{"line_number":378,"context_line":"                              \"Failed to allow %(access_level)s access to \""},{"line_number":379,"context_line":"                              \"%(access_to)s for rule %(id)s. Setting rule \""}],"source_content_type":"text/x-python","patch_set":13,"id":"39e461a1_5c97c4cc","line":376,"range":{"start_line":376,"start_character":0,"end_line":376,"end_character":69},"updated":"2021-03-05 07:00:20.000000000","message":"am i right in understanding that you\u0027re not handling four other exception possibilities on lines 272, 282, 287, 313 intentionally? that you would like all rules will be set to \"error\" when these exceptions are raised?","commit_id":"f1bf49bc1e2fd336b94df75a0c0aeda295348483"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"838d0443bbb20f54d9f04baee7663e0f3d74ca73","unresolved":true,"context_lines":[{"line_number":373,"context_line":"                    self._allow_access(context, share, access_rule)"},{"line_number":374,"context_line":"                    access_updates.update("},{"line_number":375,"context_line":"                        {access_rule[\u0027access_id\u0027]: {\u0027state\u0027: \u0027active\u0027}})"},{"line_number":376,"context_line":"                except manila_exception.ZadaraInvalidShareAccessType:"},{"line_number":377,"context_line":"                    LOG.error(\"Only ip access type allowed for Zadara share. \""},{"line_number":378,"context_line":"                              \"Failed to allow %(access_level)s access to \""},{"line_number":379,"context_line":"                              \"%(access_to)s for rule %(id)s. Setting rule \""}],"source_content_type":"text/x-python","patch_set":13,"id":"fc3946a6_4548d4a3","line":376,"range":{"start_line":376,"start_character":0,"end_line":376,"end_character":69},"in_reply_to":"39e461a1_5c97c4cc","updated":"2021-03-05 18:59:48.000000000","message":"True. The access to the backend server is not granted, hence setting the rules as error.","commit_id":"f1bf49bc1e2fd336b94df75a0c0aeda295348483"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f0faf37228b7975971b039cebdf092b6e5e42ced","unresolved":true,"context_lines":[{"line_number":381,"context_line":"                              {\u0027access_level\u0027: access_rule[\u0027access_level\u0027],"},{"line_number":382,"context_line":"                               \u0027access_to\u0027: access_rule[\u0027access_to\u0027],"},{"line_number":383,"context_line":"                               \u0027id\u0027: access_rule[\u0027access_id\u0027]})"},{"line_number":384,"context_line":"                    access_updates.update("},{"line_number":385,"context_line":"                        {access_rule[\u0027access_id\u0027]: {\u0027state\u0027: \u0027error\u0027}})"},{"line_number":386,"context_line":"        if delete_rules:"},{"line_number":387,"context_line":"            # Delete access rules for provided share"},{"line_number":388,"context_line":"            for access_rule in delete_rules:"}],"source_content_type":"text/x-python","patch_set":13,"id":"b5f3584e_9b850a84","line":385,"range":{"start_line":384,"start_character":16,"end_line":385,"end_character":71},"updated":"2021-03-05 19:55:59.000000000","message":"Why was this removed? You\u0027ll still need to do this - you just don\u0027t need to set the successfully applied rules to \"active\".","commit_id":"f1bf49bc1e2fd336b94df75a0c0aeda295348483"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"d065c3b72baaccf665160125ce2d60c2447a298c","unresolved":false,"context_lines":[{"line_number":381,"context_line":"                              {\u0027access_level\u0027: access_rule[\u0027access_level\u0027],"},{"line_number":382,"context_line":"                               \u0027access_to\u0027: access_rule[\u0027access_to\u0027],"},{"line_number":383,"context_line":"                               \u0027id\u0027: access_rule[\u0027access_id\u0027]})"},{"line_number":384,"context_line":"                    access_updates.update("},{"line_number":385,"context_line":"                        {access_rule[\u0027access_id\u0027]: {\u0027state\u0027: \u0027error\u0027}})"},{"line_number":386,"context_line":"        if delete_rules:"},{"line_number":387,"context_line":"            # Delete access rules for provided share"},{"line_number":388,"context_line":"            for access_rule in delete_rules:"}],"source_content_type":"text/x-python","patch_set":13,"id":"44b9b2d9_a123e3bb","line":385,"range":{"start_line":384,"start_character":16,"end_line":385,"end_character":71},"in_reply_to":"b5f3584e_9b850a84","updated":"2021-03-06 08:07:20.000000000","message":"Done","commit_id":"f1bf49bc1e2fd336b94df75a0c0aeda295348483"}],"manila/tests/share/drivers/zadara/test_zadara.py":[{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"e10a3bc3e38807b012cca5e525212a56b7e281e7","unresolved":true,"context_lines":[{"line_number":660,"context_line":"                     }"},{"line_number":661,"context_line":"        }\"\"\""},{"line_number":662,"context_line":""},{"line_number":663,"context_line":"        snapshot_obj \u003d \"\"\""},{"line_number":664,"context_line":"                       {"},{"line_number":665,"context_line":"                        \"name\": \"%s\","},{"line_number":666,"context_line":"                        \"display_name\": \"%s\","}],"source_content_type":"text/x-python","patch_set":6,"id":"97dd863d_ac93f3d0","line":663,"in_reply_to":"24e949f8_7c9a7fb7","updated":"2021-02-01 13:34:08.000000000","message":"\u003e pep8: F841 local variable \u0027snapshot_obj\u0027 is assigned to but never used\n\nPlease fix.","commit_id":"1b2cc6a3f4d6486368cb8ecb5c048b4e0b06e9f9"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"b49a8e9b367109325c1e975c67832be2f6309311","unresolved":false,"context_lines":[{"line_number":660,"context_line":"                     }"},{"line_number":661,"context_line":"        }\"\"\""},{"line_number":662,"context_line":""},{"line_number":663,"context_line":"        snapshot_obj \u003d \"\"\""},{"line_number":664,"context_line":"                       {"},{"line_number":665,"context_line":"                        \"name\": \"%s\","},{"line_number":666,"context_line":"                        \"display_name\": \"%s\","}],"source_content_type":"text/x-python","patch_set":6,"id":"e2152d31_43378bfe","line":663,"in_reply_to":"97dd863d_ac93f3d0","updated":"2021-02-02 15:56:26.000000000","message":"Done","commit_id":"1b2cc6a3f4d6486368cb8ecb5c048b4e0b06e9f9"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d40d9ad1605c1ca49d25e49daaf795aec66152d8","unresolved":true,"context_lines":[{"line_number":19,"context_line":"import copy"},{"line_number":20,"context_line":"import requests"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from six.moves.urllib import parse"},{"line_number":23,"context_line":"from unittest import mock"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from manila import context"}],"source_content_type":"text/x-python","patch_set":13,"id":"b46a2eea_7ddf3efe","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":34},"updated":"2021-03-05 07:00:20.000000000","message":"from urllib import parse\n\nno need for six anymore, this project no longer supports python2","commit_id":"f1bf49bc1e2fd336b94df75a0c0aeda295348483"},{"author":{"_account_id":32880,"name":"Ratnakaram Rajesh","email":"rajesh.r@zadara.com","username":"rratnaka"},"change_message_id":"838d0443bbb20f54d9f04baee7663e0f3d74ca73","unresolved":false,"context_lines":[{"line_number":19,"context_line":"import copy"},{"line_number":20,"context_line":"import requests"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from six.moves.urllib import parse"},{"line_number":23,"context_line":"from unittest import mock"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from manila import context"}],"source_content_type":"text/x-python","patch_set":13,"id":"daee253e_29777756","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":34},"in_reply_to":"b46a2eea_7ddf3efe","updated":"2021-03-05 18:59:48.000000000","message":"Done","commit_id":"f1bf49bc1e2fd336b94df75a0c0aeda295348483"}]}
