)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"0938d0e923236909f2df261ea596bbc32683d746","unresolved":false,"context_lines":[{"line_number":10,"context_line":"This quotas can be related to either tenants and users or tenants"},{"line_number":11,"context_line":"and share types. Now, when creating a share replica, manila will"},{"line_number":12,"context_line":"check if there are resources available for that specific request."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Partially-Implements: bp limit-share-replicas-per-share"},{"line_number":15,"context_line":"Change-Id: I8ba7bc6f167c28d6c169b2187d0e1bda7cad3f69"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"df33271e_b9499861","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":0},"updated":"2020-04-07 21:43:36.000000000","message":"DocImpact\n\n\nYou\u0027ll need to update the API Ref, and admin docs.","commit_id":"dceced6d6eaa78ace3b62af843e09c7e3e6f7588"}],"manila/api/openstack/api_version_request.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"221fbda738df3b9c29796f22cf0128acc298e5c7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"df33271e_575cb04a","updated":"2020-03-24 07:15:54.000000000","message":"Please also modify manila/api/openstack/rest_api_version_history.rst with this info","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"214e2aa9aca148ccb92fd0e9df96d40cabdd4f54","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"df33271e_e93fe4d3","in_reply_to":"df33271e_575cb04a","updated":"2020-03-26 19:43:52.000000000","message":"Oh, thanks! Forgot that file... Updated!","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"221fbda738df3b9c29796f22cf0128acc298e5c7","unresolved":false,"context_lines":[{"line_number":140,"context_line":"    * 2.51 - Added Share Network with multiple Subnets. Updated Share Networks"},{"line_number":141,"context_line":"             to handle with one or more subnets in different availability"},{"line_number":142,"context_line":"             zones."},{"line_number":143,"context_line":"    * 2.52 - Added a new share replica quota."},{"line_number":144,"context_line":"\"\"\""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"# The minimum and maximum versions of the API supported"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_233bb2eb","line":143,"range":{"start_line":143,"start_character":19,"end_line":143,"end_character":44},"updated":"2020-03-24 07:15:54.000000000","message":"nit: \"quota control to share replicas\"","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"214e2aa9aca148ccb92fd0e9df96d40cabdd4f54","unresolved":false,"context_lines":[{"line_number":140,"context_line":"    * 2.51 - Added Share Network with multiple Subnets. Updated Share Networks"},{"line_number":141,"context_line":"             to handle with one or more subnets in different availability"},{"line_number":142,"context_line":"             zones."},{"line_number":143,"context_line":"    * 2.52 - Added a new share replica quota."},{"line_number":144,"context_line":"\"\"\""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"# The minimum and maximum versions of the API supported"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_692bd493","line":143,"range":{"start_line":143,"start_character":19,"end_line":143,"end_character":44},"in_reply_to":"df33271e_233bb2eb","updated":"2020-03-26 19:43:52.000000000","message":"Done","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"}],"manila/api/v2/quota_sets.py":[{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"474fc79fe7e14abf1e9e26c5380ee2f4624a47fe","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        body \u003d body.get(\u0027quota_set\u0027, {})"},{"line_number":151,"context_line":"        if share_type and body.get(\u0027share_groups\u0027,"},{"line_number":152,"context_line":"                                   body.get(\u0027share_group_snapshots\u0027)):"},{"line_number":153,"context_line":"            msg \u003d _(\"Share type quotas handle only \u0027shares\u0027, \u0027gigabytes\u0027, \""},{"line_number":154,"context_line":"                    \"\u0027snapshots\u0027 and \u0027snapshot_gigabytes\u0027 quotas.\")"},{"line_number":155,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"df33271e_192a9fd9","line":154,"range":{"start_line":153,"start_character":0,"end_line":154,"end_character":67},"updated":"2020-04-02 14:40:09.000000000","message":"You can also add that share_type now handles: share_replicas and replica_gigabytes.","commit_id":"4a710a820feba8df5ddc3ab567544ee7279ba8e2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f010bf1b348191dcb197638560ab0a0a0c6c6ee0","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        body \u003d body.get(\u0027quota_set\u0027, {})"},{"line_number":151,"context_line":"        if share_type and body.get(\u0027share_groups\u0027,"},{"line_number":152,"context_line":"                                   body.get(\u0027share_group_snapshots\u0027)):"},{"line_number":153,"context_line":"            msg \u003d _(\"Share type quotas handle only \u0027shares\u0027, \u0027gigabytes\u0027, \""},{"line_number":154,"context_line":"                    \"\u0027snapshots\u0027 and \u0027snapshot_gigabytes\u0027 quotas.\")"},{"line_number":155,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"df33271e_7830fc9f","line":154,"range":{"start_line":153,"start_character":0,"end_line":154,"end_character":67},"in_reply_to":"df33271e_192a9fd9","updated":"2020-04-03 20:08:35.000000000","message":"Weird. Good find.. lets rather change this to \n\n\"Share type quotas cannot constrain share groups and share group snapshots\" \n\nor something like that.","commit_id":"4a710a820feba8df5ddc3ab567544ee7279ba8e2"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"5d628b9e3a58020a47d86f361f5b9c20f8e325d9","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        body \u003d body.get(\u0027quota_set\u0027, {})"},{"line_number":151,"context_line":"        if share_type and body.get(\u0027share_groups\u0027,"},{"line_number":152,"context_line":"                                   body.get(\u0027share_group_snapshots\u0027)):"},{"line_number":153,"context_line":"            msg \u003d _(\"Share type quotas handle only \u0027shares\u0027, \u0027gigabytes\u0027, \""},{"line_number":154,"context_line":"                    \"\u0027snapshots\u0027 and \u0027snapshot_gigabytes\u0027 quotas.\")"},{"line_number":155,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"df33271e_2358e954","line":154,"range":{"start_line":153,"start_character":0,"end_line":154,"end_character":67},"in_reply_to":"df33271e_7830fc9f","updated":"2020-04-04 13:30:42.000000000","message":"Done","commit_id":"4a710a820feba8df5ddc3ab567544ee7279ba8e2"}],"manila/api/views/limits.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"221fbda738df3b9c29796f22cf0128acc298e5c7","unresolved":false,"context_lines":[{"line_number":48,"context_line":"                \"shares\": [\"maxTotalShares\"],"},{"line_number":49,"context_line":"                \"snapshots\": [\"maxTotalShareSnapshots\"],"},{"line_number":50,"context_line":"                \"share_networks\": [\"maxTotalShareNetworks\"],"},{"line_number":51,"context_line":"                \"share_replicas\": [\"maxTotalShareReplicas\"],"},{"line_number":52,"context_line":"                \"replica_gigabytes\": [\"maxTotalReplicaGigabytes\"],"},{"line_number":53,"context_line":"            },"},{"line_number":54,"context_line":"            \"in_use\": {"},{"line_number":55,"context_line":"                \"shares\": [\"totalSharesUsed\"],"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_b1fd4c3c","line":52,"range":{"start_line":51,"start_character":16,"end_line":52,"end_character":66},"updated":"2020-03-24 07:15:54.000000000","message":"These changes should be micro-versioned as well..","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"214e2aa9aca148ccb92fd0e9df96d40cabdd4f54","unresolved":false,"context_lines":[{"line_number":48,"context_line":"                \"shares\": [\"maxTotalShares\"],"},{"line_number":49,"context_line":"                \"snapshots\": [\"maxTotalShareSnapshots\"],"},{"line_number":50,"context_line":"                \"share_networks\": [\"maxTotalShareNetworks\"],"},{"line_number":51,"context_line":"                \"share_replicas\": [\"maxTotalShareReplicas\"],"},{"line_number":52,"context_line":"                \"replica_gigabytes\": [\"maxTotalReplicaGigabytes\"],"},{"line_number":53,"context_line":"            },"},{"line_number":54,"context_line":"            \"in_use\": {"},{"line_number":55,"context_line":"                \"shares\": [\"totalSharesUsed\"],"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_810fe4df","line":52,"range":{"start_line":51,"start_character":16,"end_line":52,"end_character":66},"in_reply_to":"df33271e_b1fd4c3c","updated":"2020-03-26 19:43:52.000000000","message":"Done","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"221fbda738df3b9c29796f22cf0128acc298e5c7","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                \"snapshots\": [\"totalShareSnapshotsUsed\"],"},{"line_number":57,"context_line":"                \"share_networks\": [\"totalShareNetworksUsed\"],"},{"line_number":58,"context_line":"                \"gigabytes\": [\"totalShareGigabytesUsed\"],"},{"line_number":59,"context_line":"                \"snapshot_gigabytes\": [\"totalSnapshotGigabytesUsed\"],"},{"line_number":60,"context_line":"                \"share_replicas\": [\"totalShareReplicasUsed\"],"},{"line_number":61,"context_line":"                \"replica_gigabytes\": [\"totalReplicaGigabytesUsed\"]"},{"line_number":62,"context_line":"            },"},{"line_number":63,"context_line":"        }"},{"line_number":64,"context_line":"        limits \u003d {}"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_91fac83f","line":61,"range":{"start_line":59,"start_character":69,"end_line":61,"end_character":66},"updated":"2020-03-24 07:15:54.000000000","message":"same","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"214e2aa9aca148ccb92fd0e9df96d40cabdd4f54","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                \"snapshots\": [\"totalShareSnapshotsUsed\"],"},{"line_number":57,"context_line":"                \"share_networks\": [\"totalShareNetworksUsed\"],"},{"line_number":58,"context_line":"                \"gigabytes\": [\"totalShareGigabytesUsed\"],"},{"line_number":59,"context_line":"                \"snapshot_gigabytes\": [\"totalSnapshotGigabytesUsed\"],"},{"line_number":60,"context_line":"                \"share_replicas\": [\"totalShareReplicasUsed\"],"},{"line_number":61,"context_line":"                \"replica_gigabytes\": [\"totalReplicaGigabytesUsed\"]"},{"line_number":62,"context_line":"            },"},{"line_number":63,"context_line":"        }"},{"line_number":64,"context_line":"        limits \u003d {}"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_6112a00b","line":61,"range":{"start_line":59,"start_character":69,"end_line":61,"end_character":66},"in_reply_to":"df33271e_91fac83f","updated":"2020-03-26 19:43:52.000000000","message":"Done","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"}],"manila/api/views/quota_class_sets.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"221fbda738df3b9c29796f22cf0128acc298e5c7","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    _collection_name \u003d \"quota_class_set\""},{"line_number":22,"context_line":"    _detail_version_modifiers \u003d ["},{"line_number":23,"context_line":"        \"add_share_group_quotas\","},{"line_number":24,"context_line":"        \"add_share_replica_quota\","},{"line_number":25,"context_line":"    ]"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def detail_list(self, request, quota_class_set, quota_class\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_11a4f856","line":24,"range":{"start_line":24,"start_character":9,"end_line":24,"end_character":32},"updated":"2020-03-24 07:15:54.000000000","message":"nit: quotas, consistency","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"214e2aa9aca148ccb92fd0e9df96d40cabdd4f54","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    _collection_name \u003d \"quota_class_set\""},{"line_number":22,"context_line":"    _detail_version_modifiers \u003d ["},{"line_number":23,"context_line":"        \"add_share_group_quotas\","},{"line_number":24,"context_line":"        \"add_share_replica_quota\","},{"line_number":25,"context_line":"    ]"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def detail_list(self, request, quota_class_set, quota_class\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_5cb5f030","line":24,"range":{"start_line":24,"start_character":9,"end_line":24,"end_character":32},"in_reply_to":"df33271e_11a4f856","updated":"2020-03-26 19:43:52.000000000","message":"Done","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"221fbda738df3b9c29796f22cf0128acc298e5c7","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    def add_share_replica_quota(self, context, view, quota_class_set):"},{"line_number":53,"context_line":"        share_replicas \u003d quota_class_set.get(\u0027share_replicas\u0027)"},{"line_number":54,"context_line":"        replica_gigabytes \u003d quota_class_set.get(\u0027replica_gigabytes\u0027)"},{"line_number":55,"context_line":"        if share_replicas is not None:"},{"line_number":56,"context_line":"            view[\u0027share_replicas\u0027] \u003d share_replicas"},{"line_number":57,"context_line":"        if replica_gigabytes is not None:"},{"line_number":58,"context_line":"            view[\u0027replica_gigabytes\u0027] \u003d replica_gigabytes"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_0cf85be3","line":55,"range":{"start_line":55,"start_character":8,"end_line":55,"end_character":38},"updated":"2020-03-24 07:15:54.000000000","message":"When do you expect this condition not to be True?\n\nValues for any registered resource will always be sent down to this method: https://opendev.org/openstack/manila/src/commit/4b6cfcf69023dc7a4b004c59513c50d92b979152/manila/quota.py#L100-L121","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"214e2aa9aca148ccb92fd0e9df96d40cabdd4f54","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    def add_share_replica_quota(self, context, view, quota_class_set):"},{"line_number":53,"context_line":"        share_replicas \u003d quota_class_set.get(\u0027share_replicas\u0027)"},{"line_number":54,"context_line":"        replica_gigabytes \u003d quota_class_set.get(\u0027replica_gigabytes\u0027)"},{"line_number":55,"context_line":"        if share_replicas is not None:"},{"line_number":56,"context_line":"            view[\u0027share_replicas\u0027] \u003d share_replicas"},{"line_number":57,"context_line":"        if replica_gigabytes is not None:"},{"line_number":58,"context_line":"            view[\u0027replica_gigabytes\u0027] \u003d replica_gigabytes"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_dcd0e053","line":55,"range":{"start_line":55,"start_character":8,"end_line":55,"end_character":38},"in_reply_to":"df33271e_0cf85be3","updated":"2020-03-26 19:43:52.000000000","message":"Yeah, thinking again with your input I do not think this condition will be False on this microversion. So I\u0027ll remove then.","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"}],"manila/api/views/quota_sets.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"221fbda738df3b9c29796f22cf0128acc298e5c7","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    _collection_name \u003d \"quota_set\""},{"line_number":22,"context_line":"    _detail_version_modifiers \u003d ["},{"line_number":23,"context_line":"        \"add_share_group_quotas\","},{"line_number":24,"context_line":"        \"add_share_replica_quota\","},{"line_number":25,"context_line":"    ]"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def detail_list(self, request, quota_set, project_id\u003dNone,"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_6cdc8774","line":24,"range":{"start_line":24,"start_character":31,"end_line":24,"end_character":32},"updated":"2020-03-24 07:15:54.000000000","message":"nit: quotas, consistency","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"214e2aa9aca148ccb92fd0e9df96d40cabdd4f54","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    _collection_name \u003d \"quota_set\""},{"line_number":22,"context_line":"    _detail_version_modifiers \u003d ["},{"line_number":23,"context_line":"        \"add_share_group_quotas\","},{"line_number":24,"context_line":"        \"add_share_replica_quota\","},{"line_number":25,"context_line":"    ]"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def detail_list(self, request, quota_set, project_id\u003dNone,"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_bc36bcb3","line":24,"range":{"start_line":24,"start_character":31,"end_line":24,"end_character":32},"in_reply_to":"df33271e_6cdc8774","updated":"2020-03-26 19:43:52.000000000","message":"Done","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"221fbda738df3b9c29796f22cf0128acc298e5c7","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    def add_share_replica_quota(self, context, view, quota_class_set):"},{"line_number":60,"context_line":"        share_replicas \u003d quota_class_set.get(\u0027share_replicas\u0027)"},{"line_number":61,"context_line":"        replica_gigabytes \u003d quota_class_set.get(\u0027replica_gigabytes\u0027)"},{"line_number":62,"context_line":"        if share_replicas is not None:"},{"line_number":63,"context_line":"            view[\u0027share_replicas\u0027] \u003d share_replicas"},{"line_number":64,"context_line":"        if replica_gigabytes is not None:"},{"line_number":65,"context_line":"            view[\u0027replica_gigabytes\u0027] \u003d replica_gigabytes"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_ecd1b759","line":62,"range":{"start_line":62,"start_character":8,"end_line":62,"end_character":38},"updated":"2020-03-24 07:15:54.000000000","message":"Same question as in the previous file, you\u0027ll always get defaults passed down here in case something isn\u0027t set..","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"214e2aa9aca148ccb92fd0e9df96d40cabdd4f54","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    def add_share_replica_quota(self, context, view, quota_class_set):"},{"line_number":60,"context_line":"        share_replicas \u003d quota_class_set.get(\u0027share_replicas\u0027)"},{"line_number":61,"context_line":"        replica_gigabytes \u003d quota_class_set.get(\u0027replica_gigabytes\u0027)"},{"line_number":62,"context_line":"        if share_replicas is not None:"},{"line_number":63,"context_line":"            view[\u0027share_replicas\u0027] \u003d share_replicas"},{"line_number":64,"context_line":"        if replica_gigabytes is not None:"},{"line_number":65,"context_line":"            view[\u0027replica_gigabytes\u0027] \u003d replica_gigabytes"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_fc40440a","line":62,"range":{"start_line":62,"start_character":8,"end_line":62,"end_character":38},"in_reply_to":"df33271e_ecd1b759","updated":"2020-03-26 19:43:52.000000000","message":"Done","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"}],"manila/db/sqlalchemy/api.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"221fbda738df3b9c29796f22cf0128acc298e5c7","unresolved":false,"context_lines":[{"line_number":352,"context_line":""},{"line_number":353,"context_line":"def _sync_share_replicas(context, project_id, user_id, session,"},{"line_number":354,"context_line":"                         share_type_id\u003dNone):"},{"line_number":355,"context_line":"    share_replicas_count, _ \u003d share_replica_data_get_for_project("},{"line_number":356,"context_line":"        context, project_id, user_id, session, share_type_id\u003dshare_type_id)"},{"line_number":357,"context_line":"    return {\u0027share_replicas\u0027: share_replicas_count}"},{"line_number":358,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_4c70a373","line":355,"range":{"start_line":355,"start_character":26,"end_line":355,"end_character":27},"updated":"2020-03-24 07:15:54.000000000","message":"this shadows the i18n import, call it _junk like the methods above..","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"214e2aa9aca148ccb92fd0e9df96d40cabdd4f54","unresolved":false,"context_lines":[{"line_number":352,"context_line":""},{"line_number":353,"context_line":"def _sync_share_replicas(context, project_id, user_id, session,"},{"line_number":354,"context_line":"                         share_type_id\u003dNone):"},{"line_number":355,"context_line":"    share_replicas_count, _ \u003d share_replica_data_get_for_project("},{"line_number":356,"context_line":"        context, project_id, user_id, session, share_type_id\u003dshare_type_id)"},{"line_number":357,"context_line":"    return {\u0027share_replicas\u0027: share_replicas_count}"},{"line_number":358,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_3c7d8c1c","line":355,"range":{"start_line":355,"start_character":26,"end_line":355,"end_character":27},"in_reply_to":"df33271e_4c70a373","updated":"2020-03-26 19:43:52.000000000","message":"Done","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"221fbda738df3b9c29796f22cf0128acc298e5c7","unresolved":false,"context_lines":[{"line_number":359,"context_line":""},{"line_number":360,"context_line":"def _sync_replica_gigabytes(context, project_id, user_id, session,"},{"line_number":361,"context_line":"                            share_type_id\u003dNone):"},{"line_number":362,"context_line":"    _, replica_gigs \u003d share_replica_data_get_for_project("},{"line_number":363,"context_line":"        context, project_id, user_id, session, share_type_id\u003dshare_type_id)"},{"line_number":364,"context_line":"    return {\u0027replica_gigabytes\u0027: replica_gigs}"},{"line_number":365,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_2c0f1fe2","line":362,"range":{"start_line":362,"start_character":4,"end_line":362,"end_character":5},"updated":"2020-03-24 07:15:54.000000000","message":"same","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"214e2aa9aca148ccb92fd0e9df96d40cabdd4f54","unresolved":false,"context_lines":[{"line_number":359,"context_line":""},{"line_number":360,"context_line":"def _sync_replica_gigabytes(context, project_id, user_id, session,"},{"line_number":361,"context_line":"                            share_type_id\u003dNone):"},{"line_number":362,"context_line":"    _, replica_gigs \u003d share_replica_data_get_for_project("},{"line_number":363,"context_line":"        context, project_id, user_id, session, share_type_id\u003dshare_type_id)"},{"line_number":364,"context_line":"    return {\u0027replica_gigabytes\u0027: replica_gigs}"},{"line_number":365,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_1c7a4823","line":362,"range":{"start_line":362,"start_character":4,"end_line":362,"end_character":5},"in_reply_to":"df33271e_2c0f1fe2","updated":"2020-03-26 19:43:52.000000000","message":"Done","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"221fbda738df3b9c29796f22cf0128acc298e5c7","unresolved":false,"context_lines":[{"line_number":1480,"context_line":"def _update_share_instance_usages(context, share, instance_ref,"},{"line_number":1481,"context_line":"                                  is_replica\u003dFalse):"},{"line_number":1482,"context_line":"    deltas \u003d {}"},{"line_number":1483,"context_line":"    is_the_last_share \u003d len(share.instances) \u003d\u003d 0"},{"line_number":1484,"context_line":"    share_usages_to_release \u003d {\"shares\": -1, \"gigabytes\": -share[\u0027size\u0027]}"},{"line_number":1485,"context_line":"    replica_usages_to_release \u003d {\"share_replicas\": -1,"},{"line_number":1486,"context_line":"                                 \"replica_gigabytes\": -share[\u0027size\u0027]}"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_6c21274e","line":1483,"range":{"start_line":1483,"start_character":4,"end_line":1483,"end_character":21},"updated":"2020-03-24 07:15:54.000000000","message":"\"no_instances_remain\" ?","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"214e2aa9aca148ccb92fd0e9df96d40cabdd4f54","unresolved":false,"context_lines":[{"line_number":1480,"context_line":"def _update_share_instance_usages(context, share, instance_ref,"},{"line_number":1481,"context_line":"                                  is_replica\u003dFalse):"},{"line_number":1482,"context_line":"    deltas \u003d {}"},{"line_number":1483,"context_line":"    is_the_last_share \u003d len(share.instances) \u003d\u003d 0"},{"line_number":1484,"context_line":"    share_usages_to_release \u003d {\"shares\": -1, \"gigabytes\": -share[\u0027size\u0027]}"},{"line_number":1485,"context_line":"    replica_usages_to_release \u003d {\"share_replicas\": -1,"},{"line_number":1486,"context_line":"                                 \"replica_gigabytes\": -share[\u0027size\u0027]}"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_5c74d035","line":1483,"range":{"start_line":1483,"start_character":4,"end_line":1483,"end_character":21},"in_reply_to":"df33271e_6c21274e","updated":"2020-03-26 19:43:52.000000000","message":"sounds better, thanks!","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"221fbda738df3b9c29796f22cf0128acc298e5c7","unresolved":false,"context_lines":[{"line_number":1485,"context_line":"    replica_usages_to_release \u003d {\"share_replicas\": -1,"},{"line_number":1486,"context_line":"                                 \"replica_gigabytes\": -share[\u0027size\u0027]}"},{"line_number":1487,"context_line":""},{"line_number":1488,"context_line":"    if is_replica and is_the_last_share:"},{"line_number":1489,"context_line":"        # A share that had a replication_type is being deleted, so there\u0027s"},{"line_number":1490,"context_line":"        # need to update the share replica quotas and the share quotas"},{"line_number":1491,"context_line":"        deltas.update(replica_usages_to_release)"},{"line_number":1492,"context_line":"        deltas.update(share_usages_to_release)"},{"line_number":1493,"context_line":"    elif is_replica:"},{"line_number":1494,"context_line":"        # The user is deleting a share replica"},{"line_number":1495,"context_line":"        deltas.update(replica_usages_to_release)"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_770d743d","line":1492,"range":{"start_line":1488,"start_character":0,"end_line":1492,"end_character":46},"updated":"2020-03-24 07:15:54.000000000","message":"Missing unit test coverage: https://7d631b1292ebc5a23562-8c61a4fa8250eb01b1a81b20edeb2930.ssl.cf5.rackcdn.com/712675/2/check/openstack-tox-cover/0003c19/cover/manila_db_sqlalchemy_api_py.html\n\nWould encourage covering this","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"214e2aa9aca148ccb92fd0e9df96d40cabdd4f54","unresolved":false,"context_lines":[{"line_number":1485,"context_line":"    replica_usages_to_release \u003d {\"share_replicas\": -1,"},{"line_number":1486,"context_line":"                                 \"replica_gigabytes\": -share[\u0027size\u0027]}"},{"line_number":1487,"context_line":""},{"line_number":1488,"context_line":"    if is_replica and is_the_last_share:"},{"line_number":1489,"context_line":"        # A share that had a replication_type is being deleted, so there\u0027s"},{"line_number":1490,"context_line":"        # need to update the share replica quotas and the share quotas"},{"line_number":1491,"context_line":"        deltas.update(replica_usages_to_release)"},{"line_number":1492,"context_line":"        deltas.update(share_usages_to_release)"},{"line_number":1493,"context_line":"    elif is_replica:"},{"line_number":1494,"context_line":"        # The user is deleting a share replica"},{"line_number":1495,"context_line":"        deltas.update(replica_usages_to_release)"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_4bbd1f64","line":1492,"range":{"start_line":1488,"start_character":0,"end_line":1492,"end_character":46},"in_reply_to":"df33271e_770d743d","updated":"2020-03-26 19:43:52.000000000","message":"Done","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"221fbda738df3b9c29796f22cf0128acc298e5c7","unresolved":false,"context_lines":[{"line_number":4728,"context_line":"        models.Share.project_id \u003d\u003d project_id).filter("},{"line_number":4729,"context_line":"        models.ShareInstance.replica_state.isnot(None))"},{"line_number":4730,"context_line":""},{"line_number":4731,"context_line":"    if share_type_id:"},{"line_number":4732,"context_line":"        query \u003d query.filter("},{"line_number":4733,"context_line":"            models.ShareInstance.share_type_id \u003d\u003d share_type_id)"},{"line_number":4734,"context_line":"    elif user_id:"},{"line_number":4735,"context_line":"        query \u003d query.filter(models.Share.user_id \u003d\u003d user_id)"},{"line_number":4736,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_d203ae0c","line":4733,"range":{"start_line":4731,"start_character":0,"end_line":4733,"end_character":64},"updated":"2020-03-24 07:15:54.000000000","message":"Not covered by unit test","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"214e2aa9aca148ccb92fd0e9df96d40cabdd4f54","unresolved":false,"context_lines":[{"line_number":4728,"context_line":"        models.Share.project_id \u003d\u003d project_id).filter("},{"line_number":4729,"context_line":"        models.ShareInstance.replica_state.isnot(None))"},{"line_number":4730,"context_line":""},{"line_number":4731,"context_line":"    if share_type_id:"},{"line_number":4732,"context_line":"        query \u003d query.filter("},{"line_number":4733,"context_line":"            models.ShareInstance.share_type_id \u003d\u003d share_type_id)"},{"line_number":4734,"context_line":"    elif user_id:"},{"line_number":4735,"context_line":"        query \u003d query.filter(models.Share.user_id \u003d\u003d user_id)"},{"line_number":4736,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_35172da6","line":4733,"range":{"start_line":4731,"start_character":0,"end_line":4733,"end_character":64},"in_reply_to":"df33271e_d203ae0c","updated":"2020-03-26 19:43:52.000000000","message":"Done","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"474fc79fe7e14abf1e9e26c5380ee2f4624a47fe","unresolved":false,"context_lines":[{"line_number":1515,"context_line":"        resource_name \u003d ("},{"line_number":1516,"context_line":"            \u0027share replica\u0027 if is_replica else \u0027share\u0027)"},{"line_number":1517,"context_line":"        msg \u003d (_(\"Failed to update usages deleting %(resource_name)s \""},{"line_number":1518,"context_line":"                 \"\u0027%(id)s\u0027.\") % {\u0027id\u0027: share[\u0027id\u0027],"},{"line_number":1519,"context_line":"                                 \"resource_name\": resource_name})"},{"line_number":1520,"context_line":"        LOG.exception(msg)"},{"line_number":1521,"context_line":"        if reservations:"}],"source_content_type":"text/x-python","patch_set":3,"id":"df33271e_9fdfaf0b","line":1518,"range":{"start_line":1518,"start_character":33,"end_line":1518,"end_character":50},"updated":"2020-04-02 14:40:09.000000000","message":"If a replica is being deleted, shouldn\u0027t be the instance_ref[\u0027id\u0027]?","commit_id":"4a710a820feba8df5ddc3ab567544ee7279ba8e2"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"5d628b9e3a58020a47d86f361f5b9c20f8e325d9","unresolved":false,"context_lines":[{"line_number":1515,"context_line":"        resource_name \u003d ("},{"line_number":1516,"context_line":"            \u0027share replica\u0027 if is_replica else \u0027share\u0027)"},{"line_number":1517,"context_line":"        msg \u003d (_(\"Failed to update usages deleting %(resource_name)s \""},{"line_number":1518,"context_line":"                 \"\u0027%(id)s\u0027.\") % {\u0027id\u0027: share[\u0027id\u0027],"},{"line_number":1519,"context_line":"                                 \"resource_name\": resource_name})"},{"line_number":1520,"context_line":"        LOG.exception(msg)"},{"line_number":1521,"context_line":"        if reservations:"}],"source_content_type":"text/x-python","patch_set":3,"id":"df33271e_d8d94883","line":1518,"range":{"start_line":1518,"start_character":33,"end_line":1518,"end_character":50},"in_reply_to":"df33271e_9fdfaf0b","updated":"2020-04-04 13:30:42.000000000","message":"Yep, your point is right. Moreover, if I use the share instance id, it is not going to be the same id as the share that is being deleted, in this case, the right one would be instance_ref[\u0027share_id\u0027]. I\u0027ll assign this values to a variable, then I will be able to control it in a better way.","commit_id":"4a710a820feba8df5ddc3ab567544ee7279ba8e2"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"474fc79fe7e14abf1e9e26c5380ee2f4624a47fe","unresolved":false,"context_lines":[{"line_number":2592,"context_line":"        query \u003d query.filter_by(user_id\u003duser_id)"},{"line_number":2593,"context_line":"    result \u003d query.first()"},{"line_number":2594,"context_line":""},{"line_number":2595,"context_line":"    return (result[0] or 0, result[1] or 0)"},{"line_number":2596,"context_line":""},{"line_number":2597,"context_line":""},{"line_number":2598,"context_line":"@require_context"}],"source_content_type":"text/x-python","patch_set":3,"id":"df33271e_14dd46df","line":2595,"range":{"start_line":2595,"start_character":11,"end_line":2595,"end_character":12},"updated":"2020-04-02 14:40:09.000000000","message":"nit: redundant parentheses","commit_id":"4a710a820feba8df5ddc3ab567544ee7279ba8e2"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"5d628b9e3a58020a47d86f361f5b9c20f8e325d9","unresolved":false,"context_lines":[{"line_number":2592,"context_line":"        query \u003d query.filter_by(user_id\u003duser_id)"},{"line_number":2593,"context_line":"    result \u003d query.first()"},{"line_number":2594,"context_line":""},{"line_number":2595,"context_line":"    return (result[0] or 0, result[1] or 0)"},{"line_number":2596,"context_line":""},{"line_number":2597,"context_line":""},{"line_number":2598,"context_line":"@require_context"}],"source_content_type":"text/x-python","patch_set":3,"id":"df33271e_58c1b853","line":2595,"range":{"start_line":2595,"start_character":11,"end_line":2595,"end_character":12},"in_reply_to":"df33271e_14dd46df","updated":"2020-04-04 13:30:42.000000000","message":"Done","commit_id":"4a710a820feba8df5ddc3ab567544ee7279ba8e2"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"474fc79fe7e14abf1e9e26c5380ee2f4624a47fe","unresolved":false,"context_lines":[{"line_number":4735,"context_line":"        query \u003d query.filter(models.Share.user_id \u003d\u003d user_id)"},{"line_number":4736,"context_line":""},{"line_number":4737,"context_line":"    result \u003d query.first()"},{"line_number":4738,"context_line":"    return (result[0] or 0, result[1] or 0)"},{"line_number":4739,"context_line":""},{"line_number":4740,"context_line":""},{"line_number":4741,"context_line":"@require_context"}],"source_content_type":"text/x-python","patch_set":3,"id":"df33271e_94c95627","line":4738,"range":{"start_line":4738,"start_character":11,"end_line":4738,"end_character":12},"updated":"2020-04-02 14:40:09.000000000","message":"nit: redundant parentheses","commit_id":"4a710a820feba8df5ddc3ab567544ee7279ba8e2"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"5d628b9e3a58020a47d86f361f5b9c20f8e325d9","unresolved":false,"context_lines":[{"line_number":4735,"context_line":"        query \u003d query.filter(models.Share.user_id \u003d\u003d user_id)"},{"line_number":4736,"context_line":""},{"line_number":4737,"context_line":"    result \u003d query.first()"},{"line_number":4738,"context_line":"    return (result[0] or 0, result[1] or 0)"},{"line_number":4739,"context_line":""},{"line_number":4740,"context_line":""},{"line_number":4741,"context_line":"@require_context"}],"source_content_type":"text/x-python","patch_set":3,"id":"df33271e_f8fa4cba","line":4738,"range":{"start_line":4738,"start_character":11,"end_line":4738,"end_character":12},"in_reply_to":"df33271e_94c95627","updated":"2020-04-04 13:30:42.000000000","message":"Done","commit_id":"4a710a820feba8df5ddc3ab567544ee7279ba8e2"}],"manila/share/api.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"221fbda738df3b9c29796f22cf0128acc298e5c7","unresolved":false,"context_lines":[{"line_number":146,"context_line":"                         supported\u003dCONF.enabled_share_protocols))"},{"line_number":147,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        extra_deltas \u003d {}"},{"line_number":150,"context_line":"        share_type_attributes \u003d self.get_share_attributes_from_share_type("},{"line_number":151,"context_line":"            share_type)"},{"line_number":152,"context_line":"        share_type_supports_replication \u003d share_type_attributes.get("}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_b7c53c3f","line":149,"range":{"start_line":149,"start_character":8,"end_line":149,"end_character":25},"updated":"2020-03-24 07:15:54.000000000","message":"readability nit:\n\n deltas \u003d {\u0027shares\u0027: 1, \u0027gigabytes\u0027: size}\n ...\n if share_type_supports_replication:\n            deltas.update(\n                {\u0027share_replicas\u0027: 1, \u0027replica_gigabytes\u0027: size})","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"214e2aa9aca148ccb92fd0e9df96d40cabdd4f54","unresolved":false,"context_lines":[{"line_number":146,"context_line":"                         supported\u003dCONF.enabled_share_protocols))"},{"line_number":147,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        extra_deltas \u003d {}"},{"line_number":150,"context_line":"        share_type_attributes \u003d self.get_share_attributes_from_share_type("},{"line_number":151,"context_line":"            share_type)"},{"line_number":152,"context_line":"        share_type_supports_replication \u003d share_type_attributes.get("}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_dc4aa07e","line":149,"range":{"start_line":149,"start_character":8,"end_line":149,"end_character":25},"in_reply_to":"df33271e_b7c53c3f","updated":"2020-03-26 19:43:52.000000000","message":"looks better as you proposed. ty.","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"221fbda738df3b9c29796f22cf0128acc298e5c7","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            share_type)"},{"line_number":152,"context_line":"        share_type_supports_replication \u003d share_type_attributes.get("},{"line_number":153,"context_line":"            \u0027replication_type\u0027, None)"},{"line_number":154,"context_line":"        if share_type_supports_replication:"},{"line_number":155,"context_line":"            extra_deltas.update("},{"line_number":156,"context_line":"                {\u0027share_replicas\u0027: 1, \u0027replica_gigabytes\u0027: size})"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        try:"},{"line_number":159,"context_line":"            reservations \u003d QUOTAS.reserve("}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_520f9e2d","line":156,"range":{"start_line":154,"start_character":0,"end_line":156,"end_character":65},"updated":"2020-03-24 07:15:54.000000000","message":"Coverage for this is missing in unit tests: https://7d631b1292ebc5a23562-8c61a4fa8250eb01b1a81b20edeb2930.ssl.cf5.rackcdn.com/712675/2/check/openstack-tox-cover/0003c19/cover/manila_share_api_py.html","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"214e2aa9aca148ccb92fd0e9df96d40cabdd4f54","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            share_type)"},{"line_number":152,"context_line":"        share_type_supports_replication \u003d share_type_attributes.get("},{"line_number":153,"context_line":"            \u0027replication_type\u0027, None)"},{"line_number":154,"context_line":"        if share_type_supports_replication:"},{"line_number":155,"context_line":"            extra_deltas.update("},{"line_number":156,"context_line":"                {\u0027share_replicas\u0027: 1, \u0027replica_gigabytes\u0027: size})"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        try:"},{"line_number":159,"context_line":"            reservations \u003d QUOTAS.reserve("}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_058f802a","line":156,"range":{"start_line":154,"start_character":0,"end_line":156,"end_character":65},"in_reply_to":"df33271e_520f9e2d","updated":"2020-03-26 19:43:52.000000000","message":"Done","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"221fbda738df3b9c29796f22cf0128acc298e5c7","unresolved":false,"context_lines":[{"line_number":168,"context_line":"            def _consumed(name):"},{"line_number":169,"context_line":"                return (usages[name][\u0027reserved\u0027] + usages[name][\u0027in_use\u0027])"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"            if \u0027gigabytes\u0027 in overs:"},{"line_number":172,"context_line":"                LOG.warning(\"Quota exceeded for %(s_pid)s, \""},{"line_number":173,"context_line":"                            \"tried to create \""},{"line_number":174,"context_line":"                            \"%(s_size)sG share (%(d_consumed)dG of \""},{"line_number":175,"context_line":"                            \"%(d_quota)dG already consumed).\", {"},{"line_number":176,"context_line":"                                \u0027s_pid\u0027: context.project_id,"},{"line_number":177,"context_line":"                                \u0027s_size\u0027: size,"},{"line_number":178,"context_line":"                                \u0027d_consumed\u0027: _consumed(\u0027gigabytes\u0027),"},{"line_number":179,"context_line":"                                \u0027d_quota\u0027: quotas[\u0027gigabytes\u0027]})"},{"line_number":180,"context_line":"                raise exception.ShareSizeExceedsAvailableQuota()"},{"line_number":181,"context_line":"            elif \u0027shares\u0027 in overs:"},{"line_number":182,"context_line":"                LOG.warning(\"Quota exceeded for %(s_pid)s, \""},{"line_number":183,"context_line":"                            \"tried to create \""},{"line_number":184,"context_line":"                            \"share (%(d_consumed)d shares \""},{"line_number":185,"context_line":"                            \"already consumed).\", {"},{"line_number":186,"context_line":"                                \u0027s_pid\u0027: context.project_id,"},{"line_number":187,"context_line":"                                \u0027d_consumed\u0027: _consumed(\u0027shares\u0027)})"},{"line_number":188,"context_line":"                raise exception.ShareLimitExceeded(allowed\u003dquotas[\u0027shares\u0027])"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"        share_group \u003d None"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_370e4c8d","line":187,"range":{"start_line":171,"start_character":0,"end_line":187,"end_character":67},"updated":"2020-03-24 07:15:54.000000000","message":"Handle overquota exception for replicas and replica gigabytes?\n\nAlso dedupe these if possible, perhaps by pulling this out into a separate method and reuse?","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"214e2aa9aca148ccb92fd0e9df96d40cabdd4f54","unresolved":false,"context_lines":[{"line_number":168,"context_line":"            def _consumed(name):"},{"line_number":169,"context_line":"                return (usages[name][\u0027reserved\u0027] + usages[name][\u0027in_use\u0027])"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"            if \u0027gigabytes\u0027 in overs:"},{"line_number":172,"context_line":"                LOG.warning(\"Quota exceeded for %(s_pid)s, \""},{"line_number":173,"context_line":"                            \"tried to create \""},{"line_number":174,"context_line":"                            \"%(s_size)sG share (%(d_consumed)dG of \""},{"line_number":175,"context_line":"                            \"%(d_quota)dG already consumed).\", {"},{"line_number":176,"context_line":"                                \u0027s_pid\u0027: context.project_id,"},{"line_number":177,"context_line":"                                \u0027s_size\u0027: size,"},{"line_number":178,"context_line":"                                \u0027d_consumed\u0027: _consumed(\u0027gigabytes\u0027),"},{"line_number":179,"context_line":"                                \u0027d_quota\u0027: quotas[\u0027gigabytes\u0027]})"},{"line_number":180,"context_line":"                raise exception.ShareSizeExceedsAvailableQuota()"},{"line_number":181,"context_line":"            elif \u0027shares\u0027 in overs:"},{"line_number":182,"context_line":"                LOG.warning(\"Quota exceeded for %(s_pid)s, \""},{"line_number":183,"context_line":"                            \"tried to create \""},{"line_number":184,"context_line":"                            \"share (%(d_consumed)d shares \""},{"line_number":185,"context_line":"                            \"already consumed).\", {"},{"line_number":186,"context_line":"                                \u0027s_pid\u0027: context.project_id,"},{"line_number":187,"context_line":"                                \u0027d_consumed\u0027: _consumed(\u0027shares\u0027)})"},{"line_number":188,"context_line":"                raise exception.ShareLimitExceeded(allowed\u003dquotas[\u0027shares\u0027])"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"        share_group \u003d None"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_60091a2b","line":187,"range":{"start_line":171,"start_character":0,"end_line":187,"end_character":67},"in_reply_to":"df33271e_370e4c8d","updated":"2020-03-26 19:43:52.000000000","message":"Yeah, since we can hit an overquota for replicas and replica gigabytes now make sense to add add it here as well. Then I started to think as a user and doesn\u0027t it sound weird to hit a share replica over quota when you are creating a share? Should the message be improved?\nAnd yes, pulling it in a separate method sounds like a good plan.","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"221fbda738df3b9c29796f22cf0128acc298e5c7","unresolved":false,"context_lines":[{"line_number":525,"context_line":"        try:"},{"line_number":526,"context_line":"            reservations \u003d QUOTAS.reserve("},{"line_number":527,"context_line":"                context, share_replicas\u003d1, replica_gigabytes\u003dshare[\u0027size\u0027],"},{"line_number":528,"context_line":"                share_type_id\u003dshare_type[\u0027id\u0027], project_id\u003dshare[\u0027project_id\u0027]"},{"line_number":529,"context_line":"            )"},{"line_number":530,"context_line":"        except exception.OverQuota as e:"},{"line_number":531,"context_line":"            overs \u003d e.kwargs[\u0027overs\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_f77864f9","line":528,"range":{"start_line":528,"start_character":48,"end_line":528,"end_character":78},"updated":"2020-03-24 07:15:54.000000000","message":"this can be implied from the context..","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"214e2aa9aca148ccb92fd0e9df96d40cabdd4f54","unresolved":false,"context_lines":[{"line_number":525,"context_line":"        try:"},{"line_number":526,"context_line":"            reservations \u003d QUOTAS.reserve("},{"line_number":527,"context_line":"                context, share_replicas\u003d1, replica_gigabytes\u003dshare[\u0027size\u0027],"},{"line_number":528,"context_line":"                share_type_id\u003dshare_type[\u0027id\u0027], project_id\u003dshare[\u0027project_id\u0027]"},{"line_number":529,"context_line":"            )"},{"line_number":530,"context_line":"        except exception.OverQuota as e:"},{"line_number":531,"context_line":"            overs \u003d e.kwargs[\u0027overs\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_9c35b8fa","line":528,"range":{"start_line":528,"start_character":48,"end_line":528,"end_character":78},"in_reply_to":"df33271e_f77864f9","updated":"2020-03-26 19:43:52.000000000","message":"Done","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"221fbda738df3b9c29796f22cf0128acc298e5c7","unresolved":false,"context_lines":[{"line_number":537,"context_line":""},{"line_number":538,"context_line":"            if \u0027share_replicas\u0027 in overs:"},{"line_number":539,"context_line":"                LOG.warning(\"Quota exceeded for %(s_pid)s, \""},{"line_number":540,"context_line":"                            \"tried to create share-replica (%(d_consumed)d \""},{"line_number":541,"context_line":"                            \"of %(d_quota)d already consumed).\", {"},{"line_number":542,"context_line":"                                \u0027s_pid\u0027: context.project_id,"},{"line_number":543,"context_line":"                                \u0027d_consumed\u0027: _consumed(\u0027share_replicas\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_17d6a8c6","line":540,"range":{"start_line":540,"start_character":29,"end_line":540,"end_character":34},"updated":"2020-03-24 07:15:54.000000000","message":"unable?","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"214e2aa9aca148ccb92fd0e9df96d40cabdd4f54","unresolved":false,"context_lines":[{"line_number":537,"context_line":""},{"line_number":538,"context_line":"            if \u0027share_replicas\u0027 in overs:"},{"line_number":539,"context_line":"                LOG.warning(\"Quota exceeded for %(s_pid)s, \""},{"line_number":540,"context_line":"                            \"tried to create share-replica (%(d_consumed)d \""},{"line_number":541,"context_line":"                            \"of %(d_quota)d already consumed).\", {"},{"line_number":542,"context_line":"                                \u0027s_pid\u0027: context.project_id,"},{"line_number":543,"context_line":"                                \u0027d_consumed\u0027: _consumed(\u0027share_replicas\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_1c21a8b5","line":540,"range":{"start_line":540,"start_character":29,"end_line":540,"end_character":34},"in_reply_to":"df33271e_17d6a8c6","updated":"2020-03-26 19:43:52.000000000","message":"Done","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"221fbda738df3b9c29796f22cf0128acc298e5c7","unresolved":false,"context_lines":[{"line_number":545,"context_line":"                raise exception.ShareReplicasLimitExceeded()"},{"line_number":546,"context_line":"            elif \u0027replica_gigabytes\u0027 in overs:"},{"line_number":547,"context_line":"                LOG.warning(\"Quota exceeded for %(s_pid)s, \""},{"line_number":548,"context_line":"                            \"tried to create \""},{"line_number":549,"context_line":"                            \"%(s_size)sG share replica (%(d_consumed)dG of \""},{"line_number":550,"context_line":"                            \"%(d_quota)dG already consumed).\", {"},{"line_number":551,"context_line":"                                \u0027s_pid\u0027: context.project_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_57d790c0","line":548,"range":{"start_line":548,"start_character":29,"end_line":548,"end_character":34},"updated":"2020-03-24 07:15:54.000000000","message":"unable","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"214e2aa9aca148ccb92fd0e9df96d40cabdd4f54","unresolved":false,"context_lines":[{"line_number":545,"context_line":"                raise exception.ShareReplicasLimitExceeded()"},{"line_number":546,"context_line":"            elif \u0027replica_gigabytes\u0027 in overs:"},{"line_number":547,"context_line":"                LOG.warning(\"Quota exceeded for %(s_pid)s, \""},{"line_number":548,"context_line":"                            \"tried to create \""},{"line_number":549,"context_line":"                            \"%(s_size)sG share replica (%(d_consumed)dG of \""},{"line_number":550,"context_line":"                            \"%(d_quota)dG already consumed).\", {"},{"line_number":551,"context_line":"                                \u0027s_pid\u0027: context.project_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_5c2b3093","line":548,"range":{"start_line":548,"start_character":29,"end_line":548,"end_character":34},"in_reply_to":"df33271e_57d790c0","updated":"2020-03-26 19:43:52.000000000","message":"Done","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"221fbda738df3b9c29796f22cf0128acc298e5c7","unresolved":false,"context_lines":[{"line_number":546,"context_line":"            elif \u0027replica_gigabytes\u0027 in overs:"},{"line_number":547,"context_line":"                LOG.warning(\"Quota exceeded for %(s_pid)s, \""},{"line_number":548,"context_line":"                            \"tried to create \""},{"line_number":549,"context_line":"                            \"%(s_size)sG share replica (%(d_consumed)dG of \""},{"line_number":550,"context_line":"                            \"%(d_quota)dG already consumed).\", {"},{"line_number":551,"context_line":"                                \u0027s_pid\u0027: context.project_id,"},{"line_number":552,"context_line":"                                \u0027s_size\u0027: share[\u0027size\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_b7e41cae","line":549,"range":{"start_line":549,"start_character":29,"end_line":549,"end_character":55},"updated":"2020-03-24 07:15:54.000000000","message":"a share replica of size %(s_size)sG","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"214e2aa9aca148ccb92fd0e9df96d40cabdd4f54","unresolved":false,"context_lines":[{"line_number":546,"context_line":"            elif \u0027replica_gigabytes\u0027 in overs:"},{"line_number":547,"context_line":"                LOG.warning(\"Quota exceeded for %(s_pid)s, \""},{"line_number":548,"context_line":"                            \"tried to create \""},{"line_number":549,"context_line":"                            \"%(s_size)sG share replica (%(d_consumed)dG of \""},{"line_number":550,"context_line":"                            \"%(d_quota)dG already consumed).\", {"},{"line_number":551,"context_line":"                                \u0027s_pid\u0027: context.project_id,"},{"line_number":552,"context_line":"                                \u0027s_size\u0027: share[\u0027size\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_df0d7238","line":549,"range":{"start_line":549,"start_character":29,"end_line":549,"end_character":55},"in_reply_to":"df33271e_b7e41cae","updated":"2020-03-26 19:43:52.000000000","message":"Done","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"474fc79fe7e14abf1e9e26c5380ee2f4624a47fe","unresolved":false,"context_lines":[{"line_number":2019,"context_line":"    def get_share_network(self, context, share_net_id):"},{"line_number":2020,"context_line":"        return self.db.share_network_get(context, share_net_id)"},{"line_number":2021,"context_line":""},{"line_number":2022,"context_line":"    def extend(self, context, share, new_size):"},{"line_number":2023,"context_line":"        policy.check_policy(context, \u0027share\u0027, \u0027extend\u0027)"},{"line_number":2024,"context_line":""},{"line_number":2025,"context_line":"        if share[\u0027status\u0027] !\u003d constants.STATUS_AVAILABLE:"}],"source_content_type":"text/x-python","patch_set":3,"id":"df33271e_ee756a65","line":2022,"range":{"start_line":2022,"start_character":8,"end_line":2022,"end_character":14},"updated":"2020-04-02 14:40:09.000000000","message":"If this share supports replication, you\u0027ll need to update replica_gigabytes quotas.\nAlso, should we update the quotas for all replicas when extending/shrinking the share?","commit_id":"4a710a820feba8df5ddc3ab567544ee7279ba8e2"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"5d628b9e3a58020a47d86f361f5b9c20f8e325d9","unresolved":false,"context_lines":[{"line_number":2019,"context_line":"    def get_share_network(self, context, share_net_id):"},{"line_number":2020,"context_line":"        return self.db.share_network_get(context, share_net_id)"},{"line_number":2021,"context_line":""},{"line_number":2022,"context_line":"    def extend(self, context, share, new_size):"},{"line_number":2023,"context_line":"        policy.check_policy(context, \u0027share\u0027, \u0027extend\u0027)"},{"line_number":2024,"context_line":""},{"line_number":2025,"context_line":"        if share[\u0027status\u0027] !\u003d constants.STATUS_AVAILABLE:"}],"source_content_type":"text/x-python","patch_set":3,"id":"df33271e_1371d344","line":2022,"range":{"start_line":2022,"start_character":8,"end_line":2022,"end_character":14},"in_reply_to":"df33271e_ee756a65","updated":"2020-04-04 13:30:42.000000000","message":"yep. the same is valid for manage/unmanage of shares. will update both.","commit_id":"4a710a820feba8df5ddc3ab567544ee7279ba8e2"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"474fc79fe7e14abf1e9e26c5380ee2f4624a47fe","unresolved":false,"context_lines":[{"line_number":2077,"context_line":"        LOG.info(\"Extend share request issued successfully.\","},{"line_number":2078,"context_line":"                 resource\u003dshare)"},{"line_number":2079,"context_line":""},{"line_number":2080,"context_line":"    def shrink(self, context, share, new_size):"},{"line_number":2081,"context_line":"        policy.check_policy(context, \u0027share\u0027, \u0027shrink\u0027)"},{"line_number":2082,"context_line":""},{"line_number":2083,"context_line":"        status \u003d six.text_type(share[\u0027status\u0027]).lower()"}],"source_content_type":"text/x-python","patch_set":3,"id":"df33271e_0e67eeb8","line":2080,"range":{"start_line":2080,"start_character":8,"end_line":2080,"end_character":14},"updated":"2020-04-02 14:40:09.000000000","message":"If a shrink is requested, quotas aren\u0027t updated? At all?","commit_id":"4a710a820feba8df5ddc3ab567544ee7279ba8e2"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"5d628b9e3a58020a47d86f361f5b9c20f8e325d9","unresolved":false,"context_lines":[{"line_number":2077,"context_line":"        LOG.info(\"Extend share request issued successfully.\","},{"line_number":2078,"context_line":"                 resource\u003dshare)"},{"line_number":2079,"context_line":""},{"line_number":2080,"context_line":"    def shrink(self, context, share, new_size):"},{"line_number":2081,"context_line":"        policy.check_policy(context, \u0027share\u0027, \u0027shrink\u0027)"},{"line_number":2082,"context_line":""},{"line_number":2083,"context_line":"        status \u003d six.text_type(share[\u0027status\u0027]).lower()"}],"source_content_type":"text/x-python","patch_set":3,"id":"df33271e_f3a42fa8","line":2080,"range":{"start_line":2080,"start_character":8,"end_line":2080,"end_character":14},"in_reply_to":"df33271e_0e67eeb8","updated":"2020-04-04 13:30:42.000000000","message":"Yes, they are. This operation doesn\u0027t happen here, it happens in the share/manager. Will update the quotas there as well.","commit_id":"4a710a820feba8df5ddc3ab567544ee7279ba8e2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f720477b8232b11803a54b1bd76e779ae83a5908","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def _check_if_replica_quotas_exceeded(self, context, quota_exception,"},{"line_number":110,"context_line":"                                          replica_size,"},{"line_number":111,"context_line":"                                          resource_name\u003d\u0027share_replica\u0027):"},{"line_number":112,"context_line":"        overs \u003d quota_exception.kwargs[\u0027overs\u0027]"},{"line_number":113,"context_line":"        usages \u003d quota_exception.kwargs[\u0027usages\u0027]"},{"line_number":114,"context_line":"        quotas \u003d quota_exception.kwargs[\u0027quotas\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_ace5ef3a","line":111,"range":{"start_line":111,"start_character":42,"end_line":111,"end_character":55},"updated":"2020-04-06 04:41:14.000000000","message":"\"resource_type\" perhaps?","commit_id":"bf1b583f6a155e16d80cdc59c0a096d143824e41"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"aebd997fd6987e410bc01958301d738861eb6544","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def _check_if_replica_quotas_exceeded(self, context, quota_exception,"},{"line_number":110,"context_line":"                                          replica_size,"},{"line_number":111,"context_line":"                                          resource_name\u003d\u0027share_replica\u0027):"},{"line_number":112,"context_line":"        overs \u003d quota_exception.kwargs[\u0027overs\u0027]"},{"line_number":113,"context_line":"        usages \u003d quota_exception.kwargs[\u0027usages\u0027]"},{"line_number":114,"context_line":"        quotas \u003d quota_exception.kwargs[\u0027quotas\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_da610014","line":111,"range":{"start_line":111,"start_character":42,"end_line":111,"end_character":55},"in_reply_to":"df33271e_ace5ef3a","updated":"2020-04-06 13:18:46.000000000","message":"Sounds better. Ty.","commit_id":"bf1b583f6a155e16d80cdc59c0a096d143824e41"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f720477b8232b11803a54b1bd76e779ae83a5908","unresolved":false,"context_lines":[{"line_number":128,"context_line":"                msg \u003d _(\"Failed while creating a share with replication \""},{"line_number":129,"context_line":"                        \"support. Maximum number of allowed share-replicas \""},{"line_number":130,"context_line":"                        \"is exceeded.\")"},{"line_number":131,"context_line":"                exception_kwargs.update({\u0027message\u0027: msg})"},{"line_number":132,"context_line":"            raise exception.ShareReplicasLimitExceeded(**exception_kwargs)"},{"line_number":133,"context_line":"        elif \u0027replica_gigabytes\u0027 in overs:"},{"line_number":134,"context_line":"            LOG.warning(\"Quota exceeded for %(s_pid)s, \""}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_0cf7bbf7","line":131,"range":{"start_line":131,"start_character":16,"end_line":131,"end_character":57},"updated":"2020-04-06 04:41:14.000000000","message":"nit:\n exception_kwargs[\u0027message\u0027] \u003d msg","commit_id":"bf1b583f6a155e16d80cdc59c0a096d143824e41"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"aebd997fd6987e410bc01958301d738861eb6544","unresolved":false,"context_lines":[{"line_number":128,"context_line":"                msg \u003d _(\"Failed while creating a share with replication \""},{"line_number":129,"context_line":"                        \"support. Maximum number of allowed share-replicas \""},{"line_number":130,"context_line":"                        \"is exceeded.\")"},{"line_number":131,"context_line":"                exception_kwargs.update({\u0027message\u0027: msg})"},{"line_number":132,"context_line":"            raise exception.ShareReplicasLimitExceeded(**exception_kwargs)"},{"line_number":133,"context_line":"        elif \u0027replica_gigabytes\u0027 in overs:"},{"line_number":134,"context_line":"            LOG.warning(\"Quota exceeded for %(s_pid)s, \""}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_ba4fdc90","line":131,"range":{"start_line":131,"start_character":16,"end_line":131,"end_character":57},"in_reply_to":"df33271e_0cf7bbf7","updated":"2020-04-06 13:18:46.000000000","message":"Done","commit_id":"bf1b583f6a155e16d80cdc59c0a096d143824e41"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f720477b8232b11803a54b1bd76e779ae83a5908","unresolved":false,"context_lines":[{"line_number":144,"context_line":"                msg \u003d _(\"Failed while creating a share with replication \""},{"line_number":145,"context_line":"                        \"support. Requested share replica exceeds allowed \""},{"line_number":146,"context_line":"                        \"project/user or share type gigabytes quota.\")"},{"line_number":147,"context_line":"                exception_kwargs.update({\u0027message\u0027: msg})"},{"line_number":148,"context_line":"            raise exception.ShareReplicaSizeExceedsAvailableQuota("},{"line_number":149,"context_line":"                **exception_kwargs)"},{"line_number":150,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_6cdbe77c","line":147,"range":{"start_line":147,"start_character":15,"end_line":147,"end_character":57},"updated":"2020-04-06 04:41:14.000000000","message":"same","commit_id":"bf1b583f6a155e16d80cdc59c0a096d143824e41"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"aebd997fd6987e410bc01958301d738861eb6544","unresolved":false,"context_lines":[{"line_number":144,"context_line":"                msg \u003d _(\"Failed while creating a share with replication \""},{"line_number":145,"context_line":"                        \"support. Requested share replica exceeds allowed \""},{"line_number":146,"context_line":"                        \"project/user or share type gigabytes quota.\")"},{"line_number":147,"context_line":"                exception_kwargs.update({\u0027message\u0027: msg})"},{"line_number":148,"context_line":"            raise exception.ShareReplicaSizeExceedsAvailableQuota("},{"line_number":149,"context_line":"                **exception_kwargs)"},{"line_number":150,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_1a452871","line":147,"range":{"start_line":147,"start_character":15,"end_line":147,"end_character":57},"in_reply_to":"df33271e_6cdbe77c","updated":"2020-04-06 13:18:46.000000000","message":"Done","commit_id":"bf1b583f6a155e16d80cdc59c0a096d143824e41"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f720477b8232b11803a54b1bd76e779ae83a5908","unresolved":false,"context_lines":[{"line_number":2087,"context_line":"                    return (usages[name][\u0027reserved\u0027] + usages[name][\u0027in_use\u0027])"},{"line_number":2088,"context_line":""},{"line_number":2089,"context_line":"                if \u0027replica_gigabytes\u0027 in overs:"},{"line_number":2090,"context_line":"                    LOG.warning(\"Quota exceeded for %(s_pid)s, \""},{"line_number":2091,"context_line":"                                \"tried to extend \""},{"line_number":2092,"context_line":"                                \"%(s_size)sG share (%(d_consumed)dG of \""},{"line_number":2093,"context_line":"                                \"%(d_quota)dG already consumed).\", {"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_2c7d5f6e","line":2090,"range":{"start_line":2090,"start_character":33,"end_line":2090,"end_character":38},"updated":"2020-04-06 04:41:14.000000000","message":"Replica gigabytes quota","commit_id":"bf1b583f6a155e16d80cdc59c0a096d143824e41"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"aebd997fd6987e410bc01958301d738861eb6544","unresolved":false,"context_lines":[{"line_number":2087,"context_line":"                    return (usages[name][\u0027reserved\u0027] + usages[name][\u0027in_use\u0027])"},{"line_number":2088,"context_line":""},{"line_number":2089,"context_line":"                if \u0027replica_gigabytes\u0027 in overs:"},{"line_number":2090,"context_line":"                    LOG.warning(\"Quota exceeded for %(s_pid)s, \""},{"line_number":2091,"context_line":"                                \"tried to extend \""},{"line_number":2092,"context_line":"                                \"%(s_size)sG share (%(d_consumed)dG of \""},{"line_number":2093,"context_line":"                                \"%(d_quota)dG already consumed).\", {"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_9a581857","line":2090,"range":{"start_line":2090,"start_character":33,"end_line":2090,"end_character":38},"in_reply_to":"df33271e_2c7d5f6e","updated":"2020-04-06 13:18:46.000000000","message":"Done","commit_id":"bf1b583f6a155e16d80cdc59c0a096d143824e41"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f720477b8232b11803a54b1bd76e779ae83a5908","unresolved":false,"context_lines":[{"line_number":2097,"context_line":"                                        \u0027replica_gigabytes\u0027),"},{"line_number":2098,"context_line":"                                    \u0027d_quota\u0027: quotas[\u0027replica_gigabytes\u0027]})"},{"line_number":2099,"context_line":"                    msg \u003d _(\"Failed while extending a share with replication \""},{"line_number":2100,"context_line":"                            \"support. There are no available quotas to extend \""},{"line_number":2101,"context_line":"                            \"the share and its %(count)d replicas. Maximum \""},{"line_number":2102,"context_line":"                            \"number of allowed replica_gigabytes is \""},{"line_number":2103,"context_line":"                            \"exceeded.\") % {\u0027count\u0027: len(replicas)}"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_8c8d8b7d","line":2100,"range":{"start_line":2100,"start_character":44,"end_line":2100,"end_character":67},"updated":"2020-04-06 04:41:14.000000000","message":"is no available quota","commit_id":"bf1b583f6a155e16d80cdc59c0a096d143824e41"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"aebd997fd6987e410bc01958301d738861eb6544","unresolved":false,"context_lines":[{"line_number":2097,"context_line":"                                        \u0027replica_gigabytes\u0027),"},{"line_number":2098,"context_line":"                                    \u0027d_quota\u0027: quotas[\u0027replica_gigabytes\u0027]})"},{"line_number":2099,"context_line":"                    msg \u003d _(\"Failed while extending a share with replication \""},{"line_number":2100,"context_line":"                            \"support. There are no available quotas to extend \""},{"line_number":2101,"context_line":"                            \"the share and its %(count)d replicas. Maximum \""},{"line_number":2102,"context_line":"                            \"number of allowed replica_gigabytes is \""},{"line_number":2103,"context_line":"                            \"exceeded.\") % {\u0027count\u0027: len(replicas)}"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_da2f40a5","line":2100,"range":{"start_line":2100,"start_character":44,"end_line":2100,"end_character":67},"in_reply_to":"df33271e_8c8d8b7d","updated":"2020-04-06 13:18:46.000000000","message":"Done","commit_id":"bf1b583f6a155e16d80cdc59c0a096d143824e41"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"0938d0e923236909f2df261ea596bbc32683d746","unresolved":false,"context_lines":[{"line_number":2098,"context_line":"                                    \u0027d_quota\u0027: quotas[\u0027replica_gigabytes\u0027]})"},{"line_number":2099,"context_line":"                    msg \u003d _(\"Failed while extending a share with replication \""},{"line_number":2100,"context_line":"                            \"support. There is no available quota to extend \""},{"line_number":2101,"context_line":"                            \"the share and its %(count)d replicas. Maximum \""},{"line_number":2102,"context_line":"                            \"number of allowed replica_gigabytes is \""},{"line_number":2103,"context_line":"                            \"exceeded.\") % {\u0027count\u0027: len(replicas)}"},{"line_number":2104,"context_line":"                    raise exception.ShareReplicaSizeExceedsAvailableQuota("}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_9cfd8b3d","line":2101,"range":{"start_line":2101,"start_character":39,"end_line":2101,"end_character":65},"updated":"2020-04-07 21:43:36.000000000","message":"\u0027(it has $(count)d replicas)\u0027?\n\nThis message makes it sound like the primary share isn\u0027t considered a replica","commit_id":"dceced6d6eaa78ace3b62af843e09c7e3e6f7588"}],"manila/tests/api/v2/test_share_replicas.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"221fbda738df3b9c29796f22cf0128acc298e5c7","unresolved":false,"context_lines":[{"line_number":657,"context_line":""},{"line_number":658,"context_line":"    def test_force_delete_missing_replica(self):"},{"line_number":659,"context_line":"        replica, req \u003d self._create_replica_get_req()"},{"line_number":660,"context_line":"        self.mock_object(quota.QUOTAS, \u0027reserve\u0027,"},{"line_number":661,"context_line":"                         mock.Mock(return_value\u003d\u0027reservation\u0027))"},{"line_number":662,"context_line":"        self.mock_object(quota.QUOTAS, \u0027commit\u0027)"},{"line_number":663,"context_line":"        share_replicas.db.share_replica_delete("},{"line_number":664,"context_line":"            self.admin_context, replica[\u0027id\u0027])"},{"line_number":665,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_b2354add","line":662,"range":{"start_line":660,"start_character":0,"end_line":662,"end_character":48},"updated":"2020-03-24 07:15:54.000000000","message":"Please add some asserts","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"214e2aa9aca148ccb92fd0e9df96d40cabdd4f54","unresolved":false,"context_lines":[{"line_number":657,"context_line":""},{"line_number":658,"context_line":"    def test_force_delete_missing_replica(self):"},{"line_number":659,"context_line":"        replica, req \u003d self._create_replica_get_req()"},{"line_number":660,"context_line":"        self.mock_object(quota.QUOTAS, \u0027reserve\u0027,"},{"line_number":661,"context_line":"                         mock.Mock(return_value\u003d\u0027reservation\u0027))"},{"line_number":662,"context_line":"        self.mock_object(quota.QUOTAS, \u0027commit\u0027)"},{"line_number":663,"context_line":"        share_replicas.db.share_replica_delete("},{"line_number":664,"context_line":"            self.admin_context, replica[\u0027id\u0027])"},{"line_number":665,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_ba0a3c87","line":662,"range":{"start_line":660,"start_character":0,"end_line":662,"end_character":48},"in_reply_to":"df33271e_b2354add","updated":"2020-03-26 19:43:52.000000000","message":"Since I have the need_to_update_usages flag in the share_replica_delete method, I think that there is no need to mock this anymore.","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"221fbda738df3b9c29796f22cf0128acc298e5c7","unresolved":false,"context_lines":[{"line_number":668,"context_line":"    def test_resync_replica_not_found(self):"},{"line_number":669,"context_line":""},{"line_number":670,"context_line":"        replica, req \u003d self._create_replica_get_req()"},{"line_number":671,"context_line":"        self.mock_object(quota.QUOTAS, \u0027reserve\u0027,"},{"line_number":672,"context_line":"                         mock.Mock(return_value\u003d\u0027reservation\u0027))"},{"line_number":673,"context_line":"        self.mock_object(quota.QUOTAS, \u0027commit\u0027)"},{"line_number":674,"context_line":"        share_replicas.db.share_replica_delete("},{"line_number":675,"context_line":"            self.admin_context, replica[\u0027id\u0027])"},{"line_number":676,"context_line":"        share_api_call \u003d self.mock_object(self.controller.share_api,"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_1227d6b5","line":673,"range":{"start_line":671,"start_character":0,"end_line":673,"end_character":48},"updated":"2020-03-24 07:15:54.000000000","message":"This API shouldn\u0027t be calling into the quotas code?","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"214e2aa9aca148ccb92fd0e9df96d40cabdd4f54","unresolved":false,"context_lines":[{"line_number":668,"context_line":"    def test_resync_replica_not_found(self):"},{"line_number":669,"context_line":""},{"line_number":670,"context_line":"        replica, req \u003d self._create_replica_get_req()"},{"line_number":671,"context_line":"        self.mock_object(quota.QUOTAS, \u0027reserve\u0027,"},{"line_number":672,"context_line":"                         mock.Mock(return_value\u003d\u0027reservation\u0027))"},{"line_number":673,"context_line":"        self.mock_object(quota.QUOTAS, \u0027commit\u0027)"},{"line_number":674,"context_line":"        share_replicas.db.share_replica_delete("},{"line_number":675,"context_line":"            self.admin_context, replica[\u0027id\u0027])"},{"line_number":676,"context_line":"        share_api_call \u003d self.mock_object(self.controller.share_api,"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_7a9b9471","line":673,"range":{"start_line":671,"start_character":0,"end_line":673,"end_character":48},"in_reply_to":"df33271e_1227d6b5","updated":"2020-03-26 19:43:52.000000000","message":"The share replica usages are being updated in the share_instance_delete (which is called by the share_instance_delete method). So the reserve/commit of quotas were being called, since the need_to_update_usages flag was ever being set to true. But in the most recent version of this change, I have added a need_to_update_usages parameter to the share_replica_deleted method as well, and then I\u0027m able to make this unit test avoid the quotas reserve/commit by setting that flag to false.","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"}],"releasenotes/notes/add-tenant-quota-for-share-replicas-and-replicas-size-565ffca315afb6f0.yaml":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"221fbda738df3b9c29796f22cf0128acc298e5c7","unresolved":false,"context_lines":[{"line_number":5,"context_line":"upgrade:"},{"line_number":6,"context_line":"  - |"},{"line_number":7,"context_line":"    Two new config options are available for setting default quotas for share"},{"line_number":8,"context_line":"    replicas, being `quota_share_replicas` and `quota_share_replica_gigabytes`."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"df33271e_57ae702e","line":8,"range":{"start_line":8,"start_character":12,"end_line":8,"end_character":19},"updated":"2020-03-24 07:15:54.000000000","message":":","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"221fbda738df3b9c29796f22cf0128acc298e5c7","unresolved":false,"context_lines":[{"line_number":5,"context_line":"upgrade:"},{"line_number":6,"context_line":"  - |"},{"line_number":7,"context_line":"    Two new config options are available for setting default quotas for share"},{"line_number":8,"context_line":"    replicas, being `quota_share_replicas` and `quota_share_replica_gigabytes`."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"df33271e_77b1f48f","line":8,"range":{"start_line":8,"start_character":48,"end_line":8,"end_character":77},"updated":"2020-03-24 07:15:54.000000000","message":"quota_replica_gigabytes","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"214e2aa9aca148ccb92fd0e9df96d40cabdd4f54","unresolved":false,"context_lines":[{"line_number":5,"context_line":"upgrade:"},{"line_number":6,"context_line":"  - |"},{"line_number":7,"context_line":"    Two new config options are available for setting default quotas for share"},{"line_number":8,"context_line":"    replicas, being `quota_share_replicas` and `quota_share_replica_gigabytes`."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"df33271e_551471a0","line":8,"range":{"start_line":8,"start_character":12,"end_line":8,"end_character":19},"in_reply_to":"df33271e_57ae702e","updated":"2020-03-26 19:43:52.000000000","message":"Done","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"214e2aa9aca148ccb92fd0e9df96d40cabdd4f54","unresolved":false,"context_lines":[{"line_number":5,"context_line":"upgrade:"},{"line_number":6,"context_line":"  - |"},{"line_number":7,"context_line":"    Two new config options are available for setting default quotas for share"},{"line_number":8,"context_line":"    replicas, being `quota_share_replicas` and `quota_share_replica_gigabytes`."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"df33271e_353a8d97","line":8,"range":{"start_line":8,"start_character":48,"end_line":8,"end_character":77},"in_reply_to":"df33271e_77b1f48f","updated":"2020-03-26 19:43:52.000000000","message":"Done","commit_id":"e48516ea079311b43c184019e524e00cb6e1d81f"}]}
