)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"53c2d9e095229c01ada5ec10e3c7a53b1b9ddf23","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     haixin \u003chaixin@inspur.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-07-10 17:28:00 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"wip:Add update share-type API to Share Types"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, only the name and description and public access of share-type"},{"line_number":10,"context_line":"is set when the share-type is created, and not allowed to be edited"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"7faddb67_48147144","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":4},"updated":"2019-07-16 08:03:22.000000000","message":"I think it\u0027s can be review now.\nRemove \u0027wip\u0027.","commit_id":"744f7e7960b9706ab52883bc03bf7bd8d31d10dd"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e8bc187def5dfd36958dd6f068c226543f02be5b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     haixin \u003chaixin@inspur.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-07-10 17:28:00 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"wip:Add update share-type API to Share Types"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, only the name and description and public access of share-type"},{"line_number":10,"context_line":"is set when the share-type is created, and not allowed to be edited"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"7faddb67_7126f817","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":4},"in_reply_to":"7faddb67_48147144","updated":"2019-07-16 08:48:49.000000000","message":"Done","commit_id":"744f7e7960b9706ab52883bc03bf7bd8d31d10dd"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":12,"context_line":"But not name or description or public access for share-type."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Co-Authored-By: Brin Zhang \u003czhangbailin@inspur.com\u003e"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Implements: blueprint update-share-type-name-or-description"},{"line_number":17,"context_line":"Change-Id: I4c7bdd601d48b40c01639b5089d4bff259a7b3af"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"7faddb67_8dbc70bb","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":0},"updated":"2019-08-06 21:16:50.000000000","message":"APIImpact\n\n^ please add this flag on one line, on its own.","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"15e36d86fea5ec767a1df85d669a29a3fe9b429f","unresolved":false,"context_lines":[{"line_number":12,"context_line":"But not name or description or public access for share-type."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Co-Authored-By: Brin Zhang \u003czhangbailin@inspur.com\u003e"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Implements: blueprint update-share-type-name-or-description"},{"line_number":17,"context_line":"Change-Id: I4c7bdd601d48b40c01639b5089d4bff259a7b3af"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"7faddb67_e28c1f81","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":0},"in_reply_to":"7faddb67_388ef8d0","updated":"2019-09-05 17:41:16.000000000","message":"This change was not made in PS 19, though","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"3ff07ca9804acb13599eacc69bb8c9dfc8c8106d","unresolved":false,"context_lines":[{"line_number":12,"context_line":"But not name or description or public access for share-type."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Co-Authored-By: Brin Zhang \u003czhangbailin@inspur.com\u003e"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Implements: blueprint update-share-type-name-or-description"},{"line_number":17,"context_line":"Change-Id: I4c7bdd601d48b40c01639b5089d4bff259a7b3af"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"7faddb67_388ef8d0","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":0},"in_reply_to":"7faddb67_8dbc70bb","updated":"2019-09-05 10:01:25.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9a8fa59853f3609ad3008bcb636de90512a1eb47","unresolved":false,"context_lines":[{"line_number":12,"context_line":"But not name or description or public access for share-type."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Co-Authored-By: Brin Zhang \u003czhangbailin@inspur.com\u003e"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Implements: blueprint update-share-type-name-or-description"},{"line_number":17,"context_line":"Change-Id: I4c7bdd601d48b40c01639b5089d4bff259a7b3af"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"7faddb67_7a7825f7","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":0},"updated":"2019-09-04 21:23:31.000000000","message":"Please see comment on patchset 12: https://review.opendev.org/#/c/669651/12..14//COMMIT_MSG","commit_id":"0e319a7f9c6339afa4e55cb2dcb8ff6e62903412"}],"api-ref/source/parameters.yaml":[{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"651da16e65cc1f98abcf922f54fb397e4b490faf","unresolved":false,"context_lines":[{"line_number":2411,"context_line":"  required: false"},{"line_number":2412,"context_line":"  type: boolean"},{"line_number":2413,"context_line":"  min_version: 2.7"},{"line_number":2414,"context_line":"share_type_access:is_public_body:"},{"line_number":2415,"context_line":"  description: |"},{"line_number":2416,"context_line":"    Indicates whether a share type is accessible by all projects (tenants)"},{"line_number":2417,"context_line":"    in the cloud."},{"line_number":2418,"context_line":"  in: body"},{"line_number":2419,"context_line":"  required: true"},{"line_number":2420,"context_line":"  type: boolean"},{"line_number":2421,"context_line":"share_type_access:is_public_update_request:"},{"line_number":2422,"context_line":"  description: |"},{"line_number":2423,"context_line":"    Indicates whether a share type update it\u0027s"}],"source_content_type":"text/x-yaml","patch_set":17,"id":"7faddb67_fa65914a","line":2420,"range":{"start_line":2414,"start_character":0,"end_line":2420,"end_character":15},"updated":"2019-08-22 14:36:23.000000000","message":"This is the only one that is missing the min_version, any reason for that?","commit_id":"375871fd9b1752a5cb1a4aa7c51ec4ab1217c073"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"2822d4e1848e0fa7996791dba85db14fb7ce8bb7","unresolved":false,"context_lines":[{"line_number":2411,"context_line":"  required: false"},{"line_number":2412,"context_line":"  type: boolean"},{"line_number":2413,"context_line":"  min_version: 2.7"},{"line_number":2414,"context_line":"share_type_access:is_public_body:"},{"line_number":2415,"context_line":"  description: |"},{"line_number":2416,"context_line":"    Indicates whether a share type is accessible by all projects (tenants)"},{"line_number":2417,"context_line":"    in the cloud."},{"line_number":2418,"context_line":"  in: body"},{"line_number":2419,"context_line":"  required: true"},{"line_number":2420,"context_line":"  type: boolean"},{"line_number":2421,"context_line":"share_type_access:is_public_update_request:"},{"line_number":2422,"context_line":"  description: |"},{"line_number":2423,"context_line":"    Indicates whether a share type update it\u0027s"}],"source_content_type":"text/x-yaml","patch_set":17,"id":"7faddb67_2e0c3938","line":2420,"range":{"start_line":2414,"start_character":0,"end_line":2420,"end_character":15},"in_reply_to":"7faddb67_fa65914a","updated":"2019-08-23 06:37:25.000000000","message":"sorry, i miss the min_version. i have added it.","commit_id":"375871fd9b1752a5cb1a4aa7c51ec4ab1217c073"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9a8fa59853f3609ad3008bcb636de90512a1eb47","unresolved":false,"context_lines":[{"line_number":821,"context_line":"  in: body"},{"line_number":822,"context_line":"  required: false"},{"line_number":823,"context_line":"  type: boolean"},{"line_number":824,"context_line":"  min_version: 2.50"},{"line_number":825,"context_line":"created_at:"},{"line_number":826,"context_line":"  description: |"},{"line_number":827,"context_line":"    The date and time stamp when the resource was created within the service\u0027s"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"7faddb67_ccdb754b","line":824,"range":{"start_line":824,"start_character":0,"end_line":824,"end_character":19},"updated":"2019-09-04 21:23:31.000000000","message":"This annotation is not required for any of these parameters; because the API itself is being introduced in version 2.50. the \"versionadded\" annotation below the API name should suffice: \n\nhttps://openstack.fortnebula.com:13808/v1/AUTH_e8fd161dc34c421a979a9e6421f823e9/logs_51/669651/18/check/build-openstack-api-ref/f3afc1c/docs/?expanded\u003dupdate-share-type-since-api-v2-50-detail#update-share-type-since-api-v2-50\n\nIt would be inconsistent to include the \"min_version\" annotation on some parameters but not others. See how this is rendered here: \n\nhttps://openstack.fortnebula.com:13808/v1/AUTH_e8fd161dc34c421a979a9e6421f823e9/logs_51/669651/18/check/build-openstack-api-ref/f3afc1c/docs/?expanded\u003dupdate-share-type-since-api-v2-50-detail#id382\n\nand \n\nhttps://openstack.fortnebula.com:13808/v1/AUTH_e8fd161dc34c421a979a9e6421f823e9/logs_51/669651/18/check/build-openstack-api-ref/f3afc1c/docs/?expanded\u003dupdate-share-type-since-api-v2-50-detail#id384","commit_id":"e74e7f158e24e2f29ac22f829a70812f4c2e1ea7"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"15e36d86fea5ec767a1df85d669a29a3fe9b429f","unresolved":false,"context_lines":[{"line_number":821,"context_line":"  in: body"},{"line_number":822,"context_line":"  required: false"},{"line_number":823,"context_line":"  type: boolean"},{"line_number":824,"context_line":"  min_version: 2.50"},{"line_number":825,"context_line":"created_at:"},{"line_number":826,"context_line":"  description: |"},{"line_number":827,"context_line":"    The date and time stamp when the resource was created within the service\u0027s"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"7faddb67_c2eb230f","line":824,"range":{"start_line":824,"start_character":0,"end_line":824,"end_character":19},"in_reply_to":"7faddb67_9d783e2b","updated":"2019-09-05 17:41:16.000000000","message":"This change was not made in PS 19, though","commit_id":"e74e7f158e24e2f29ac22f829a70812f4c2e1ea7"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"3ff07ca9804acb13599eacc69bb8c9dfc8c8106d","unresolved":false,"context_lines":[{"line_number":821,"context_line":"  in: body"},{"line_number":822,"context_line":"  required: false"},{"line_number":823,"context_line":"  type: boolean"},{"line_number":824,"context_line":"  min_version: 2.50"},{"line_number":825,"context_line":"created_at:"},{"line_number":826,"context_line":"  description: |"},{"line_number":827,"context_line":"    The date and time stamp when the resource was created within the service\u0027s"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"7faddb67_9d783e2b","line":824,"range":{"start_line":824,"start_character":0,"end_line":824,"end_character":19},"in_reply_to":"7faddb67_ccdb754b","updated":"2019-09-05 10:01:25.000000000","message":"Done","commit_id":"e74e7f158e24e2f29ac22f829a70812f4c2e1ea7"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9a8fa59853f3609ad3008bcb636de90512a1eb47","unresolved":false,"context_lines":[{"line_number":2421,"context_line":"  min_version: 2.50"},{"line_number":2422,"context_line":"share_type_access:is_public_update_request:"},{"line_number":2423,"context_line":"  description: |"},{"line_number":2424,"context_line":"    Indicates whether a share type update it\u0027s"},{"line_number":2425,"context_line":"    accessible. Default is not update."},{"line_number":2426,"context_line":"  in: body"},{"line_number":2427,"context_line":"  required: false"},{"line_number":2428,"context_line":"  type: boolean"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"7faddb67_2c180974","line":2425,"range":{"start_line":2424,"start_character":4,"end_line":2425,"end_character":38},"updated":"2019-09-04 21:23:31.000000000","message":"Indicates whether the share type should be accessible by all projects (tenants) in the cloud. If not specified, the visibility of the share type is not altered.","commit_id":"e74e7f158e24e2f29ac22f829a70812f4c2e1ea7"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"15e36d86fea5ec767a1df85d669a29a3fe9b429f","unresolved":false,"context_lines":[{"line_number":2421,"context_line":"  min_version: 2.50"},{"line_number":2422,"context_line":"share_type_access:is_public_update_request:"},{"line_number":2423,"context_line":"  description: |"},{"line_number":2424,"context_line":"    Indicates whether a share type update it\u0027s"},{"line_number":2425,"context_line":"    accessible. Default is not update."},{"line_number":2426,"context_line":"  in: body"},{"line_number":2427,"context_line":"  required: false"},{"line_number":2428,"context_line":"  type: boolean"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"7faddb67_62eeef21","line":2425,"range":{"start_line":2424,"start_character":4,"end_line":2425,"end_character":38},"in_reply_to":"7faddb67_1d63eeb2","updated":"2019-09-05 17:41:16.000000000","message":"This change was not made in PS 19, though","commit_id":"e74e7f158e24e2f29ac22f829a70812f4c2e1ea7"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"3ff07ca9804acb13599eacc69bb8c9dfc8c8106d","unresolved":false,"context_lines":[{"line_number":2421,"context_line":"  min_version: 2.50"},{"line_number":2422,"context_line":"share_type_access:is_public_update_request:"},{"line_number":2423,"context_line":"  description: |"},{"line_number":2424,"context_line":"    Indicates whether a share type update it\u0027s"},{"line_number":2425,"context_line":"    accessible. Default is not update."},{"line_number":2426,"context_line":"  in: body"},{"line_number":2427,"context_line":"  required: false"},{"line_number":2428,"context_line":"  type: boolean"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"7faddb67_1d63eeb2","line":2425,"range":{"start_line":2424,"start_character":4,"end_line":2425,"end_character":38},"in_reply_to":"7faddb67_2c180974","updated":"2019-09-05 10:01:25.000000000","message":"Done","commit_id":"e74e7f158e24e2f29ac22f829a70812f4c2e1ea7"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9a8fa59853f3609ad3008bcb636de90512a1eb47","unresolved":false,"context_lines":[{"line_number":2451,"context_line":"  min_version: 2.41"},{"line_number":2452,"context_line":"share_type_description_update_request:"},{"line_number":2453,"context_line":"  description: |"},{"line_number":2454,"context_line":"    The description of the share type for update."},{"line_number":2455,"context_line":"  in: body"},{"line_number":2456,"context_line":"  required: false"},{"line_number":2457,"context_line":"  type: string"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"7faddb67_4c4b0527","line":2454,"range":{"start_line":2454,"start_character":8,"end_line":2454,"end_character":49},"updated":"2019-09-04 21:23:31.000000000","message":"new description for the share type.","commit_id":"e74e7f158e24e2f29ac22f829a70812f4c2e1ea7"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"3ff07ca9804acb13599eacc69bb8c9dfc8c8106d","unresolved":false,"context_lines":[{"line_number":2451,"context_line":"  min_version: 2.41"},{"line_number":2452,"context_line":"share_type_description_update_request:"},{"line_number":2453,"context_line":"  description: |"},{"line_number":2454,"context_line":"    The description of the share type for update."},{"line_number":2455,"context_line":"  in: body"},{"line_number":2456,"context_line":"  required: false"},{"line_number":2457,"context_line":"  type: string"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"7faddb67_ddb476f3","line":2454,"range":{"start_line":2454,"start_character":8,"end_line":2454,"end_character":49},"in_reply_to":"7faddb67_4c4b0527","updated":"2019-09-05 10:01:25.000000000","message":"Done","commit_id":"e74e7f158e24e2f29ac22f829a70812f4c2e1ea7"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"15e36d86fea5ec767a1df85d669a29a3fe9b429f","unresolved":false,"context_lines":[{"line_number":2451,"context_line":"  min_version: 2.41"},{"line_number":2452,"context_line":"share_type_description_update_request:"},{"line_number":2453,"context_line":"  description: |"},{"line_number":2454,"context_line":"    The description of the share type for update."},{"line_number":2455,"context_line":"  in: body"},{"line_number":2456,"context_line":"  required: false"},{"line_number":2457,"context_line":"  type: string"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"7faddb67_22dc7772","line":2454,"range":{"start_line":2454,"start_character":8,"end_line":2454,"end_character":49},"in_reply_to":"7faddb67_ddb476f3","updated":"2019-09-05 17:41:16.000000000","message":"This change was not made in PS 19, though","commit_id":"e74e7f158e24e2f29ac22f829a70812f4c2e1ea7"}],"api-ref/source/share-types.inc":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8e3e477cf7a843265c9ce1028412fc51ae450dbd","unresolved":false,"context_lines":[{"line_number":653,"context_line":"   - extra_specs: extra_specs"},{"line_number":654,"context_line":"   - driver_handles_share_servers: driver_handles_share_servers"},{"line_number":655,"context_line":"   - snapshot_support: snapshot_support_1"},{"line_number":656,"context_line":"   - os-share-type-access:is_public: os-share-type-access:is_public"},{"line_number":657,"context_line":"   - share_type_access:is_public: share_type_access:is_public"},{"line_number":658,"context_line":"   - name: share_type_name"},{"line_number":659,"context_line":"   - replication_type: replication_type"}],"source_content_type":"text/x-c++src","patch_set":10,"id":"7faddb67_898d272c","line":656,"range":{"start_line":656,"start_character":5,"end_line":656,"end_character":35},"updated":"2019-07-23 06:25:55.000000000","message":"you mean \"share-type-access:is_public\"","commit_id":"a76f8e55a7908fb06c5a284d4c0f5dd29b9d7c37"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ef8c263e2876f594e3d36b4925f614ab996faee6","unresolved":false,"context_lines":[{"line_number":653,"context_line":"   - extra_specs: extra_specs"},{"line_number":654,"context_line":"   - driver_handles_share_servers: driver_handles_share_servers"},{"line_number":655,"context_line":"   - snapshot_support: snapshot_support_1"},{"line_number":656,"context_line":"   - os-share-type-access:is_public: os-share-type-access:is_public"},{"line_number":657,"context_line":"   - share_type_access:is_public: share_type_access:is_public"},{"line_number":658,"context_line":"   - name: share_type_name"},{"line_number":659,"context_line":"   - replication_type: replication_type"}],"source_content_type":"text/x-c++src","patch_set":10,"id":"7faddb67_df3e63d9","line":656,"range":{"start_line":656,"start_character":5,"end_line":656,"end_character":35},"in_reply_to":"7faddb67_1b189e73","updated":"2019-07-23 21:58:39.000000000","message":"We deprecated this parameter in manila API 2.7; Since the update API  is only added in version 2.50, you don\u0027t need to honor the old name.","commit_id":"a76f8e55a7908fb06c5a284d4c0f5dd29b9d7c37"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"c98a3f1fd431bcc0e37480914490fd2d05eb2ceb","unresolved":false,"context_lines":[{"line_number":653,"context_line":"   - extra_specs: extra_specs"},{"line_number":654,"context_line":"   - driver_handles_share_servers: driver_handles_share_servers"},{"line_number":655,"context_line":"   - snapshot_support: snapshot_support_1"},{"line_number":656,"context_line":"   - os-share-type-access:is_public: os-share-type-access:is_public"},{"line_number":657,"context_line":"   - share_type_access:is_public: share_type_access:is_public"},{"line_number":658,"context_line":"   - name: share_type_name"},{"line_number":659,"context_line":"   - replication_type: replication_type"}],"source_content_type":"text/x-c++src","patch_set":10,"id":"7faddb67_1b189e73","line":656,"range":{"start_line":656,"start_character":5,"end_line":656,"end_character":35},"in_reply_to":"7faddb67_898d272c","updated":"2019-07-23 07:34:16.000000000","message":"Refer to the return parameter list of the create share type API, \u0027os-share-type-access:is_public\u0027 is supported by MV 2.6, \u0027share_type_access:is_public\u0027 is supported by MV 2.7.\nIf these parameters all exist in the share type, do we need to return them all? Or remove \u0027os-share-type-access:is_public\u0027(a deprecated parameter) from MV 2.50?","commit_id":"a76f8e55a7908fb06c5a284d4c0f5dd29b9d7c37"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"12c13023e501c083c887a7b1432a2f60dcd0314f","unresolved":false,"context_lines":[{"line_number":653,"context_line":"   - extra_specs: extra_specs"},{"line_number":654,"context_line":"   - driver_handles_share_servers: driver_handles_share_servers"},{"line_number":655,"context_line":"   - snapshot_support: snapshot_support_1"},{"line_number":656,"context_line":"   - os-share-type-access:is_public: os-share-type-access:is_public"},{"line_number":657,"context_line":"   - share_type_access:is_public: share_type_access:is_public"},{"line_number":658,"context_line":"   - name: share_type_name"},{"line_number":659,"context_line":"   - replication_type: replication_type"}],"source_content_type":"text/x-c++src","patch_set":10,"id":"7faddb67_a7a839db","line":656,"range":{"start_line":656,"start_character":5,"end_line":656,"end_character":35},"in_reply_to":"7faddb67_df3e63d9","updated":"2019-07-24 01:22:35.000000000","message":"Ok, thanks Goutham. I will remove this parameter.","commit_id":"a76f8e55a7908fb06c5a284d4c0f5dd29b9d7c37"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":604,"context_line":"   - share_type_id: share_type_id"},{"line_number":605,"context_line":""},{"line_number":606,"context_line":""},{"line_number":607,"context_line":"Update share type"},{"line_number":608,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":609,"context_line":""},{"line_number":610,"context_line":".. rest_method::  PUT /v2/{project_id}/types/{share_type_id}"},{"line_number":611,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":12,"id":"7faddb67_05fb7a78","line":608,"range":{"start_line":607,"start_character":0,"end_line":608,"end_character":18},"updated":"2019-08-06 21:16:50.000000000","message":"add \"(since API v2.50)\" to the end of this.","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"63d19528f0e83978b49c984d0eef528883d82fa0","unresolved":false,"context_lines":[{"line_number":604,"context_line":"   - share_type_id: share_type_id"},{"line_number":605,"context_line":""},{"line_number":606,"context_line":""},{"line_number":607,"context_line":"Update share type"},{"line_number":608,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":609,"context_line":""},{"line_number":610,"context_line":".. rest_method::  PUT /v2/{project_id}/types/{share_type_id}"},{"line_number":611,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":12,"id":"7faddb67_ef663156","line":608,"range":{"start_line":607,"start_character":0,"end_line":608,"end_character":18},"in_reply_to":"7faddb67_05fb7a78","updated":"2019-08-07 11:08:28.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":608,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":609,"context_line":""},{"line_number":610,"context_line":".. rest_method::  PUT /v2/{project_id}/types/{share_type_id}"},{"line_number":611,"context_line":""},{"line_number":612,"context_line":"Update a share type."},{"line_number":613,"context_line":""},{"line_number":614,"context_line":"Response codes"}],"source_content_type":"text/x-c++src","patch_set":12,"id":"7faddb67_e5d2defc","line":611,"range":{"start_line":611,"start_character":0,"end_line":611,"end_character":0},"updated":"2019-08-06 21:16:50.000000000","message":"Add the version added annotation here:\n\nhttps://github.com/openstack/manila/blob/2736d4adcc7d5f8d8d41ae040d31557a77a2a717/api-ref/source/shares.inc#L409","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"63d19528f0e83978b49c984d0eef528883d82fa0","unresolved":false,"context_lines":[{"line_number":608,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":609,"context_line":""},{"line_number":610,"context_line":".. rest_method::  PUT /v2/{project_id}/types/{share_type_id}"},{"line_number":611,"context_line":""},{"line_number":612,"context_line":"Update a share type."},{"line_number":613,"context_line":""},{"line_number":614,"context_line":"Response codes"}],"source_content_type":"text/x-c++src","patch_set":12,"id":"7faddb67_ef4f11bc","line":611,"range":{"start_line":611,"start_character":0,"end_line":611,"end_character":0},"in_reply_to":"7faddb67_e5d2defc","updated":"2019-08-07 11:08:28.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":624,"context_line":"   - 401"},{"line_number":625,"context_line":"   - 403"},{"line_number":626,"context_line":"   - 404"},{"line_number":627,"context_line":"   - 409"},{"line_number":628,"context_line":""},{"line_number":629,"context_line":"Request"},{"line_number":630,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":12,"id":"7faddb67_65358e44","line":627,"range":{"start_line":627,"start_character":5,"end_line":627,"end_character":8},"updated":"2019-08-06 21:16:50.000000000","message":"this error code isn\u0027t valid for this API?","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"edeb30ca6653327eb80bbe795e1534b71d0798c5","unresolved":false,"context_lines":[{"line_number":624,"context_line":"   - 401"},{"line_number":625,"context_line":"   - 403"},{"line_number":626,"context_line":"   - 404"},{"line_number":627,"context_line":"   - 409"},{"line_number":628,"context_line":""},{"line_number":629,"context_line":"Request"},{"line_number":630,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":12,"id":"7faddb67_d39bc263","line":627,"range":{"start_line":627,"start_character":5,"end_line":627,"end_character":8},"in_reply_to":"7faddb67_2fd3e9d7","updated":"2019-08-08 16:46:52.000000000","message":"Hi, \n\nI added this comment before I noticed this: https://review.opendev.org/#/c/669651/13/manila/api/v2/share_types.py@337 - \n\nhowever, I didn\u0027t come back to rectify my comment. Looks like you can get HTTP409 if you try to update the name of the share type to another existing share type. So this is a Valid code.","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"63d19528f0e83978b49c984d0eef528883d82fa0","unresolved":false,"context_lines":[{"line_number":624,"context_line":"   - 401"},{"line_number":625,"context_line":"   - 403"},{"line_number":626,"context_line":"   - 404"},{"line_number":627,"context_line":"   - 409"},{"line_number":628,"context_line":""},{"line_number":629,"context_line":"Request"},{"line_number":630,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":12,"id":"7faddb67_2fd3e9d7","line":627,"range":{"start_line":627,"start_character":5,"end_line":627,"end_character":8},"in_reply_to":"7faddb67_4beae073","updated":"2019-08-07 11:08:28.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e3a01a994c27ce45a5a1b129e0d1cad4fa2cba5f","unresolved":false,"context_lines":[{"line_number":624,"context_line":"   - 401"},{"line_number":625,"context_line":"   - 403"},{"line_number":626,"context_line":"   - 404"},{"line_number":627,"context_line":"   - 409"},{"line_number":628,"context_line":""},{"line_number":629,"context_line":"Request"},{"line_number":630,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":12,"id":"7faddb67_4beae073","line":627,"range":{"start_line":627,"start_character":5,"end_line":627,"end_character":8},"in_reply_to":"7faddb67_65358e44","updated":"2019-08-07 00:26:38.000000000","message":"I also suggest to remove this error code, who will update who will come first.","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":633,"context_line":""},{"line_number":634,"context_line":"   - project_id: project_id_path"},{"line_number":635,"context_line":"   - share_type_id: share_type_id"},{"line_number":636,"context_line":"   - name: share_type_name"},{"line_number":637,"context_line":"   - share_type_access:is_public: share_type_access:is_public"},{"line_number":638,"context_line":"   - description: share_type_description"},{"line_number":639,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":12,"id":"7faddb67_458092bf","line":636,"range":{"start_line":636,"start_character":11,"end_line":636,"end_character":26},"updated":"2019-08-06 21:16:50.000000000","message":"The parameter you\u0027re reusing sets this as \"required\". You want this one instead: share_type_name_request \n\nhttps://github.com/openstack/manila/blob/2736d4adcc7d5f8d8d41ae040d31557a77a2a717/api-ref/source/parameters.yaml#L2395","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"63d19528f0e83978b49c984d0eef528883d82fa0","unresolved":false,"context_lines":[{"line_number":633,"context_line":""},{"line_number":634,"context_line":"   - project_id: project_id_path"},{"line_number":635,"context_line":"   - share_type_id: share_type_id"},{"line_number":636,"context_line":"   - name: share_type_name"},{"line_number":637,"context_line":"   - share_type_access:is_public: share_type_access:is_public"},{"line_number":638,"context_line":"   - description: share_type_description"},{"line_number":639,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":12,"id":"7faddb67_0f114d5e","line":636,"range":{"start_line":636,"start_character":11,"end_line":636,"end_character":26},"in_reply_to":"7faddb67_458092bf","updated":"2019-08-07 11:08:28.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":634,"context_line":"   - project_id: project_id_path"},{"line_number":635,"context_line":"   - share_type_id: share_type_id"},{"line_number":636,"context_line":"   - name: share_type_name"},{"line_number":637,"context_line":"   - share_type_access:is_public: share_type_access:is_public"},{"line_number":638,"context_line":"   - description: share_type_description"},{"line_number":639,"context_line":""},{"line_number":640,"context_line":"Request example"}],"source_content_type":"text/x-c++src","patch_set":12,"id":"7faddb67_c54c82c9","line":637,"range":{"start_line":637,"start_character":34,"end_line":637,"end_character":61},"updated":"2019-08-06 21:16:50.000000000","message":"This parameter has a \"min_version\" annotation that is not appropriate for this API since this API itself is being added in v2.50. \n\nI suggest copying this parameter: https://github.com/openstack/manila/blob/2736d4adcc7d5f8d8d41ae040d31557a77a2a717/api-ref/source/parameters.yaml#L2360\n\nand creating a new optional parameter, perhaps call it \"share_type_access:is_public_update_request\".","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"63d19528f0e83978b49c984d0eef528883d82fa0","unresolved":false,"context_lines":[{"line_number":634,"context_line":"   - project_id: project_id_path"},{"line_number":635,"context_line":"   - share_type_id: share_type_id"},{"line_number":636,"context_line":"   - name: share_type_name"},{"line_number":637,"context_line":"   - share_type_access:is_public: share_type_access:is_public"},{"line_number":638,"context_line":"   - description: share_type_description"},{"line_number":639,"context_line":""},{"line_number":640,"context_line":"Request example"}],"source_content_type":"text/x-c++src","patch_set":12,"id":"7faddb67_2f168957","line":637,"range":{"start_line":637,"start_character":34,"end_line":637,"end_character":61},"in_reply_to":"7faddb67_c54c82c9","updated":"2019-08-07 11:08:28.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":635,"context_line":"   - share_type_id: share_type_id"},{"line_number":636,"context_line":"   - name: share_type_name"},{"line_number":637,"context_line":"   - share_type_access:is_public: share_type_access:is_public"},{"line_number":638,"context_line":"   - description: share_type_description"},{"line_number":639,"context_line":""},{"line_number":640,"context_line":"Request example"},{"line_number":641,"context_line":"---------------"}],"source_content_type":"text/x-c++src","patch_set":12,"id":"7faddb67_a599461f","line":638,"range":{"start_line":638,"start_character":18,"end_line":638,"end_character":40},"updated":"2019-08-06 21:16:50.000000000","message":"This has a \"min_version\" annotation that is not appropriate for this API since this API itself is being added in v2.50. Further the parameter is not \"required\" - so,\n\nI suggest copying this parameter: https://github.com/openstack/manila/blob/2736d4adcc7d5f8d8d41ae040d31557a77a2a717/api-ref/source/parameters.yaml#L2375\n\nand creating a new optional parameter, perhaps call it \"share_type_description_update_request\"","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"63d19528f0e83978b49c984d0eef528883d82fa0","unresolved":false,"context_lines":[{"line_number":635,"context_line":"   - share_type_id: share_type_id"},{"line_number":636,"context_line":"   - name: share_type_name"},{"line_number":637,"context_line":"   - share_type_access:is_public: share_type_access:is_public"},{"line_number":638,"context_line":"   - description: share_type_description"},{"line_number":639,"context_line":""},{"line_number":640,"context_line":"Request example"},{"line_number":641,"context_line":"---------------"}],"source_content_type":"text/x-c++src","patch_set":12,"id":"7faddb67_5afce50b","line":638,"range":{"start_line":638,"start_character":18,"end_line":638,"end_character":40},"in_reply_to":"7faddb67_a599461f","updated":"2019-08-07 11:08:28.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":653,"context_line":"   - extra_specs: extra_specs"},{"line_number":654,"context_line":"   - driver_handles_share_servers: driver_handles_share_servers"},{"line_number":655,"context_line":"   - snapshot_support: snapshot_support_1"},{"line_number":656,"context_line":"   - share_type_access:is_public: share_type_access:is_public"},{"line_number":657,"context_line":"   - name: share_type_name"},{"line_number":658,"context_line":"   - replication_type: replication_type"},{"line_number":659,"context_line":"   - mount_snapshot_support: mount_snapshot_support"}],"source_content_type":"text/x-c++src","patch_set":12,"id":"7faddb67_255c7649","line":656,"range":{"start_line":656,"start_character":34,"end_line":656,"end_character":61},"updated":"2019-08-06 21:16:50.000000000","message":"This parameter is a \"required\" parameter in the API\u0027s body, but the one you chose is an optional parameter: \n\nhttps://github.com/openstack/manila/blob/2736d4adcc7d5f8d8d41ae040d31557a77a2a717/api-ref/source/parameters.yaml#L2360\n\nI would suggest copying that parameter and creating a new one:\n\n\n \n\nshare_type_access:is_public_body:\n  description: |\n    Indicates whether a share type is accessible by all projects (tenants)\n    in the cloud.\n  in: body\n  required: true\n  type: boolean","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"63d19528f0e83978b49c984d0eef528883d82fa0","unresolved":false,"context_lines":[{"line_number":653,"context_line":"   - extra_specs: extra_specs"},{"line_number":654,"context_line":"   - driver_handles_share_servers: driver_handles_share_servers"},{"line_number":655,"context_line":"   - snapshot_support: snapshot_support_1"},{"line_number":656,"context_line":"   - share_type_access:is_public: share_type_access:is_public"},{"line_number":657,"context_line":"   - name: share_type_name"},{"line_number":658,"context_line":"   - replication_type: replication_type"},{"line_number":659,"context_line":"   - mount_snapshot_support: mount_snapshot_support"}],"source_content_type":"text/x-c++src","patch_set":12,"id":"7faddb67_7a78c18e","line":656,"range":{"start_line":656,"start_character":34,"end_line":656,"end_character":61},"in_reply_to":"7faddb67_255c7649","updated":"2019-08-07 11:08:28.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":655,"context_line":"   - snapshot_support: snapshot_support_1"},{"line_number":656,"context_line":"   - share_type_access:is_public: share_type_access:is_public"},{"line_number":657,"context_line":"   - name: share_type_name"},{"line_number":658,"context_line":"   - replication_type: replication_type"},{"line_number":659,"context_line":"   - mount_snapshot_support: mount_snapshot_support"},{"line_number":660,"context_line":"   - revert_to_snapshot_support: revert_to_snapshot_support"},{"line_number":661,"context_line":"   - create_share_from_snapshot_support: create_share_from_snapshot_support"}],"source_content_type":"text/x-c++src","patch_set":12,"id":"7faddb67_c556c22a","line":658,"range":{"start_line":658,"start_character":23,"end_line":658,"end_character":39},"updated":"2019-08-06 21:16:50.000000000","message":"This parameter has a \"min_version\" annotation that is not appropriate for this API since this API itself is being added in v2.50.","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"63d19528f0e83978b49c984d0eef528883d82fa0","unresolved":false,"context_lines":[{"line_number":655,"context_line":"   - snapshot_support: snapshot_support_1"},{"line_number":656,"context_line":"   - share_type_access:is_public: share_type_access:is_public"},{"line_number":657,"context_line":"   - name: share_type_name"},{"line_number":658,"context_line":"   - replication_type: replication_type"},{"line_number":659,"context_line":"   - mount_snapshot_support: mount_snapshot_support"},{"line_number":660,"context_line":"   - revert_to_snapshot_support: revert_to_snapshot_support"},{"line_number":661,"context_line":"   - create_share_from_snapshot_support: create_share_from_snapshot_support"}],"source_content_type":"text/x-c++src","patch_set":12,"id":"7faddb67_7a39a1a1","line":658,"range":{"start_line":658,"start_character":23,"end_line":658,"end_character":39},"in_reply_to":"7faddb67_c556c22a","updated":"2019-08-07 11:08:28.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":656,"context_line":"   - share_type_access:is_public: share_type_access:is_public"},{"line_number":657,"context_line":"   - name: share_type_name"},{"line_number":658,"context_line":"   - replication_type: replication_type"},{"line_number":659,"context_line":"   - mount_snapshot_support: mount_snapshot_support"},{"line_number":660,"context_line":"   - revert_to_snapshot_support: revert_to_snapshot_support"},{"line_number":661,"context_line":"   - create_share_from_snapshot_support: create_share_from_snapshot_support"},{"line_number":662,"context_line":"   - description: share_type_description"}],"source_content_type":"text/x-c++src","patch_set":12,"id":"7faddb67_e5517e31","line":659,"range":{"start_line":659,"start_character":29,"end_line":659,"end_character":51},"updated":"2019-08-06 21:16:50.000000000","message":"This parameter has a \"min_version\" annotation that is not appropriate for this API since this API itself is being added in v2.50.","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"63d19528f0e83978b49c984d0eef528883d82fa0","unresolved":false,"context_lines":[{"line_number":656,"context_line":"   - share_type_access:is_public: share_type_access:is_public"},{"line_number":657,"context_line":"   - name: share_type_name"},{"line_number":658,"context_line":"   - replication_type: replication_type"},{"line_number":659,"context_line":"   - mount_snapshot_support: mount_snapshot_support"},{"line_number":660,"context_line":"   - revert_to_snapshot_support: revert_to_snapshot_support"},{"line_number":661,"context_line":"   - create_share_from_snapshot_support: create_share_from_snapshot_support"},{"line_number":662,"context_line":"   - description: share_type_description"}],"source_content_type":"text/x-c++src","patch_set":12,"id":"7faddb67_3a5c89ec","line":659,"range":{"start_line":659,"start_character":29,"end_line":659,"end_character":51},"in_reply_to":"7faddb67_e5517e31","updated":"2019-08-07 11:08:28.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":657,"context_line":"   - name: share_type_name"},{"line_number":658,"context_line":"   - replication_type: replication_type"},{"line_number":659,"context_line":"   - mount_snapshot_support: mount_snapshot_support"},{"line_number":660,"context_line":"   - revert_to_snapshot_support: revert_to_snapshot_support"},{"line_number":661,"context_line":"   - create_share_from_snapshot_support: create_share_from_snapshot_support"},{"line_number":662,"context_line":"   - description: share_type_description"},{"line_number":663,"context_line":"   - is_default: is_default_type"}],"source_content_type":"text/x-c++src","patch_set":12,"id":"7faddb67_a535c6f8","line":660,"range":{"start_line":660,"start_character":33,"end_line":660,"end_character":59},"updated":"2019-08-06 21:16:50.000000000","message":"This parameter has a \"min_version\" annotation that is not appropriate for this API since this API itself is being added in v2.50.","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"63d19528f0e83978b49c984d0eef528883d82fa0","unresolved":false,"context_lines":[{"line_number":657,"context_line":"   - name: share_type_name"},{"line_number":658,"context_line":"   - replication_type: replication_type"},{"line_number":659,"context_line":"   - mount_snapshot_support: mount_snapshot_support"},{"line_number":660,"context_line":"   - revert_to_snapshot_support: revert_to_snapshot_support"},{"line_number":661,"context_line":"   - create_share_from_snapshot_support: create_share_from_snapshot_support"},{"line_number":662,"context_line":"   - description: share_type_description"},{"line_number":663,"context_line":"   - is_default: is_default_type"}],"source_content_type":"text/x-c++src","patch_set":12,"id":"7faddb67_faf271e3","line":660,"range":{"start_line":660,"start_character":33,"end_line":660,"end_character":59},"in_reply_to":"7faddb67_a535c6f8","updated":"2019-08-07 11:08:28.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":658,"context_line":"   - replication_type: replication_type"},{"line_number":659,"context_line":"   - mount_snapshot_support: mount_snapshot_support"},{"line_number":660,"context_line":"   - revert_to_snapshot_support: revert_to_snapshot_support"},{"line_number":661,"context_line":"   - create_share_from_snapshot_support: create_share_from_snapshot_support"},{"line_number":662,"context_line":"   - description: share_type_description"},{"line_number":663,"context_line":"   - is_default: is_default_type"},{"line_number":664,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":12,"id":"7faddb67_653b4ee9","line":661,"range":{"start_line":661,"start_character":41,"end_line":661,"end_character":75},"updated":"2019-08-06 21:16:50.000000000","message":"This parameter has a \"min_version\" annotation that is not appropriate for this API since this API itself is being added in v2.50.","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"63d19528f0e83978b49c984d0eef528883d82fa0","unresolved":false,"context_lines":[{"line_number":658,"context_line":"   - replication_type: replication_type"},{"line_number":659,"context_line":"   - mount_snapshot_support: mount_snapshot_support"},{"line_number":660,"context_line":"   - revert_to_snapshot_support: revert_to_snapshot_support"},{"line_number":661,"context_line":"   - create_share_from_snapshot_support: create_share_from_snapshot_support"},{"line_number":662,"context_line":"   - description: share_type_description"},{"line_number":663,"context_line":"   - is_default: is_default_type"},{"line_number":664,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":12,"id":"7faddb67_9a181d1f","line":661,"range":{"start_line":661,"start_character":41,"end_line":661,"end_character":75},"in_reply_to":"7faddb67_653b4ee9","updated":"2019-08-07 11:08:28.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":659,"context_line":"   - mount_snapshot_support: mount_snapshot_support"},{"line_number":660,"context_line":"   - revert_to_snapshot_support: revert_to_snapshot_support"},{"line_number":661,"context_line":"   - create_share_from_snapshot_support: create_share_from_snapshot_support"},{"line_number":662,"context_line":"   - description: share_type_description"},{"line_number":663,"context_line":"   - is_default: is_default_type"},{"line_number":664,"context_line":""},{"line_number":665,"context_line":"Response example"}],"source_content_type":"text/x-c++src","patch_set":12,"id":"7faddb67_c52b2292","line":662,"range":{"start_line":662,"start_character":18,"end_line":662,"end_character":40},"updated":"2019-08-06 21:16:50.000000000","message":"This parameter has a \"min_version\" annotation that is not appropriate for this API since this API itself is being added in v2.50.","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"63d19528f0e83978b49c984d0eef528883d82fa0","unresolved":false,"context_lines":[{"line_number":659,"context_line":"   - mount_snapshot_support: mount_snapshot_support"},{"line_number":660,"context_line":"   - revert_to_snapshot_support: revert_to_snapshot_support"},{"line_number":661,"context_line":"   - create_share_from_snapshot_support: create_share_from_snapshot_support"},{"line_number":662,"context_line":"   - description: share_type_description"},{"line_number":663,"context_line":"   - is_default: is_default_type"},{"line_number":664,"context_line":""},{"line_number":665,"context_line":"Response example"}],"source_content_type":"text/x-c++src","patch_set":12,"id":"7faddb67_ba15d9e7","line":662,"range":{"start_line":662,"start_character":18,"end_line":662,"end_character":40},"in_reply_to":"7faddb67_c52b2292","updated":"2019-08-07 11:08:28.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":660,"context_line":"   - revert_to_snapshot_support: revert_to_snapshot_support"},{"line_number":661,"context_line":"   - create_share_from_snapshot_support: create_share_from_snapshot_support"},{"line_number":662,"context_line":"   - description: share_type_description"},{"line_number":663,"context_line":"   - is_default: is_default_type"},{"line_number":664,"context_line":""},{"line_number":665,"context_line":"Response example"},{"line_number":666,"context_line":"----------------"}],"source_content_type":"text/x-c++src","patch_set":12,"id":"7faddb67_851bea7e","line":663,"range":{"start_line":663,"start_character":17,"end_line":663,"end_character":32},"updated":"2019-08-06 21:16:50.000000000","message":"This parameter has a \"min_version\" annotation that is not appropriate for this API since this API itself is being added in v2.50.","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"63d19528f0e83978b49c984d0eef528883d82fa0","unresolved":false,"context_lines":[{"line_number":660,"context_line":"   - revert_to_snapshot_support: revert_to_snapshot_support"},{"line_number":661,"context_line":"   - create_share_from_snapshot_support: create_share_from_snapshot_support"},{"line_number":662,"context_line":"   - description: share_type_description"},{"line_number":663,"context_line":"   - is_default: is_default_type"},{"line_number":664,"context_line":""},{"line_number":665,"context_line":"Response example"},{"line_number":666,"context_line":"----------------"}],"source_content_type":"text/x-c++src","patch_set":12,"id":"7faddb67_5ad0652c","line":663,"range":{"start_line":663,"start_character":17,"end_line":663,"end_character":32},"in_reply_to":"7faddb67_851bea7e","updated":"2019-08-07 11:08:28.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9a8fa59853f3609ad3008bcb636de90512a1eb47","unresolved":false,"context_lines":[{"line_number":611,"context_line":""},{"line_number":612,"context_line":".. versionadded:: 2.50"},{"line_number":613,"context_line":""},{"line_number":614,"context_line":"Update a share type."},{"line_number":615,"context_line":""},{"line_number":616,"context_line":"Response codes"},{"line_number":617,"context_line":"--------------"}],"source_content_type":"text/x-c++src","patch_set":18,"id":"7faddb67_ec899125","line":614,"range":{"start_line":614,"start_character":19,"end_line":614,"end_character":20},"updated":"2019-09-04 21:23:31.000000000","message":"Please add:\n\nShare type extra-specs cannot be updated with this API. Please use the respective APIs to `set extra specs \u003c#set-extra-spec-for-share-type\u003e`_ or `unset extra specs \u003c#unset-an-extra-spec\u003e`_.","commit_id":"e74e7f158e24e2f29ac22f829a70812f4c2e1ea7"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"3ff07ca9804acb13599eacc69bb8c9dfc8c8106d","unresolved":false,"context_lines":[{"line_number":611,"context_line":""},{"line_number":612,"context_line":".. versionadded:: 2.50"},{"line_number":613,"context_line":""},{"line_number":614,"context_line":"Update a share type."},{"line_number":615,"context_line":""},{"line_number":616,"context_line":"Response codes"},{"line_number":617,"context_line":"--------------"}],"source_content_type":"text/x-c++src","patch_set":18,"id":"7faddb67_02186673","line":614,"range":{"start_line":614,"start_character":19,"end_line":614,"end_character":20},"in_reply_to":"7faddb67_ec899125","updated":"2019-09-05 10:01:25.000000000","message":"Done","commit_id":"e74e7f158e24e2f29ac22f829a70812f4c2e1ea7"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"0592666c569b1c07a25d045a8b73b4220483e6f5","unresolved":false,"context_lines":[{"line_number":611,"context_line":""},{"line_number":612,"context_line":".. versionadded:: 2.50"},{"line_number":613,"context_line":""},{"line_number":614,"context_line":"Update a share type, Share type extra-specs cannot be updated"},{"line_number":615,"context_line":"with this API. Please use the respective APIs to `set extra specs"},{"line_number":616,"context_line":"\u003c#set-extra-spec-for-share-type\u003e`_ or `unset extra specs"},{"line_number":617,"context_line":"\u003c#unset-an-extra-spec\u003e`_."}],"source_content_type":"text/x-c++src","patch_set":21,"id":"5faad753_b83aa1e4","line":614,"range":{"start_line":614,"start_character":19,"end_line":614,"end_character":20},"updated":"2019-09-08 18:10:19.000000000","message":".","commit_id":"d76e269f98d91447730a4c1653dd9f5c8546127d"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"fa341c6ce1242ddbcac25d02a8f60fe847bc4365","unresolved":false,"context_lines":[{"line_number":611,"context_line":""},{"line_number":612,"context_line":".. versionadded:: 2.50"},{"line_number":613,"context_line":""},{"line_number":614,"context_line":"Update a share type, Share type extra-specs cannot be updated"},{"line_number":615,"context_line":"with this API. Please use the respective APIs to `set extra specs"},{"line_number":616,"context_line":"\u003c#set-extra-spec-for-share-type\u003e`_ or `unset extra specs"},{"line_number":617,"context_line":"\u003c#unset-an-extra-spec\u003e`_."}],"source_content_type":"text/x-c++src","patch_set":21,"id":"5faad753_1e0b9d8e","line":614,"range":{"start_line":614,"start_character":19,"end_line":614,"end_character":20},"in_reply_to":"5faad753_b83aa1e4","updated":"2019-09-09 11:23:31.000000000","message":"Done","commit_id":"d76e269f98d91447730a4c1653dd9f5c8546127d"}],"manila/api/v2/share_types.py":[{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"53c2d9e095229c01ada5ec10e3c7a53b1b9ddf23","unresolved":false,"context_lines":[{"line_number":292,"context_line":"            sha_type.get(\u0027share_type_access:is_public\u0027),"},{"line_number":293,"context_line":"        )"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        if is_public is not None:"},{"line_number":296,"context_line":"            is_public \u003d strutils.bool_from_string(is_public, strict\u003dTrue)"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"        # If name specified, name can not be empty."}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_a6043719","line":295,"range":{"start_line":295,"start_character":11,"end_line":295,"end_character":32},"updated":"2019-07-16 08:03:22.000000000","message":"s/not is_public","commit_id":"744f7e7960b9706ab52883bc03bf7bd8d31d10dd"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e8bc187def5dfd36958dd6f068c226543f02be5b","unresolved":false,"context_lines":[{"line_number":292,"context_line":"            sha_type.get(\u0027share_type_access:is_public\u0027),"},{"line_number":293,"context_line":"        )"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        if is_public is not None:"},{"line_number":296,"context_line":"            is_public \u003d strutils.bool_from_string(is_public, strict\u003dTrue)"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"        # If name specified, name can not be empty."}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_d17a4cef","line":295,"range":{"start_line":295,"start_character":11,"end_line":295,"end_character":32},"in_reply_to":"7faddb67_a6043719","updated":"2019-07-16 08:48:49.000000000","message":"Done","commit_id":"744f7e7960b9706ab52883bc03bf7bd8d31d10dd"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"53c2d9e095229c01ada5ec10e3c7a53b1b9ddf23","unresolved":false,"context_lines":[{"line_number":302,"context_line":""},{"line_number":303,"context_line":"        # Name, description and is_public can not be None."},{"line_number":304,"context_line":"        # Specify one of them, or a combination thereof."},{"line_number":305,"context_line":"        if name is None and description is None and is_public is None:"},{"line_number":306,"context_line":"            msg \u003d _(\"Specify share type name, description, is_public or \""},{"line_number":307,"context_line":"                    \"a combination thereof.\")"},{"line_number":308,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_e60eaf39","line":305,"range":{"start_line":305,"start_character":11,"end_line":305,"end_character":69},"updated":"2019-07-16 08:03:22.000000000","message":"s/not name and not description and not is_public","commit_id":"744f7e7960b9706ab52883bc03bf7bd8d31d10dd"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e8bc187def5dfd36958dd6f068c226543f02be5b","unresolved":false,"context_lines":[{"line_number":302,"context_line":""},{"line_number":303,"context_line":"        # Name, description and is_public can not be None."},{"line_number":304,"context_line":"        # Specify one of them, or a combination thereof."},{"line_number":305,"context_line":"        if name is None and description is None and is_public is None:"},{"line_number":306,"context_line":"            msg \u003d _(\"Specify share type name, description, is_public or \""},{"line_number":307,"context_line":"                    \"a combination thereof.\")"},{"line_number":308,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_f17f48dd","line":305,"range":{"start_line":305,"start_character":11,"end_line":305,"end_character":69},"in_reply_to":"7faddb67_e60eaf39","updated":"2019-07-16 08:48:49.000000000","message":"Done","commit_id":"744f7e7960b9706ab52883bc03bf7bd8d31d10dd"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8e3e477cf7a843265c9ce1028412fc51ae450dbd","unresolved":false,"context_lines":[{"line_number":273,"context_line":"        return webob.Response(status_int\u003dhttp_client.ACCEPTED)"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    @wsgi.action(\"update\")"},{"line_number":276,"context_line":"    def update(self, req, id, body):"},{"line_number":277,"context_line":"        \"\"\"Update name or description for a given share type.\"\"\""},{"line_number":278,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":279,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_a9bb43c2","line":276,"range":{"start_line":276,"start_character":0,"end_line":276,"end_character":36},"updated":"2019-07-23 06:25:55.000000000","message":"You need to bump up the API Microversion; this API cannot be available in all/old/stable/published versions of Manila API. Please see https://docs.openstack.org/manila/latest/contributor/api_microversion_dev.html\n\nThe current maximum API version in the repository is 2.49 [1], so this API must be introduced in 2.50.\n\n  @wsgi.Controller.api_version(\"2.50\")\n\n[1] https://github.com/openstack/manila/blob/0ed8c74dc49c87d3de9c27303602ec97357fa8ad/manila/api/openstack/api_version_request.py#L134","commit_id":"a76f8e55a7908fb06c5a284d4c0f5dd29b9d7c37"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e97a0e541717553035bce5a3e5014b2bc41f38a3","unresolved":false,"context_lines":[{"line_number":273,"context_line":"        return webob.Response(status_int\u003dhttp_client.ACCEPTED)"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    @wsgi.action(\"update\")"},{"line_number":276,"context_line":"    def update(self, req, id, body):"},{"line_number":277,"context_line":"        \"\"\"Update name or description for a given share type.\"\"\""},{"line_number":278,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":279,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_fe5250de","line":276,"range":{"start_line":276,"start_character":0,"end_line":276,"end_character":36},"in_reply_to":"7faddb67_a9bb43c2","updated":"2019-07-23 08:36:33.000000000","message":"Done","commit_id":"a76f8e55a7908fb06c5a284d4c0f5dd29b9d7c37"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8e3e477cf7a843265c9ce1028412fc51ae450dbd","unresolved":false,"context_lines":[{"line_number":288,"context_line":"        name \u003d sha_type.get(\u0027name\u0027)"},{"line_number":289,"context_line":"        description \u003d sha_type.get(\u0027description\u0027)"},{"line_number":290,"context_line":"        is_public \u003d sha_type.get("},{"line_number":291,"context_line":"            \u0027os-share-type-access:is_public\u0027,"},{"line_number":292,"context_line":"            sha_type.get(\u0027share_type_access:is_public\u0027),"},{"line_number":293,"context_line":"        )"},{"line_number":294,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_49b08fde","line":291,"range":{"start_line":291,"start_character":13,"end_line":291,"end_character":43},"updated":"2019-07-23 06:25:55.000000000","message":"This is a deprecated parameter. You don\u0027t need to accept this.","commit_id":"a76f8e55a7908fb06c5a284d4c0f5dd29b9d7c37"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e97a0e541717553035bce5a3e5014b2bc41f38a3","unresolved":false,"context_lines":[{"line_number":288,"context_line":"        name \u003d sha_type.get(\u0027name\u0027)"},{"line_number":289,"context_line":"        description \u003d sha_type.get(\u0027description\u0027)"},{"line_number":290,"context_line":"        is_public \u003d sha_type.get("},{"line_number":291,"context_line":"            \u0027os-share-type-access:is_public\u0027,"},{"line_number":292,"context_line":"            sha_type.get(\u0027share_type_access:is_public\u0027),"},{"line_number":293,"context_line":"        )"},{"line_number":294,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_1e508cd4","line":291,"range":{"start_line":291,"start_character":13,"end_line":291,"end_character":43},"in_reply_to":"7faddb67_49b08fde","updated":"2019-07-23 08:36:33.000000000","message":"Done","commit_id":"a76f8e55a7908fb06c5a284d4c0f5dd29b9d7c37"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    @wsgi.action(\"update\")"},{"line_number":276,"context_line":"    @wsgi.Controller.api_version(\"2.50\")"},{"line_number":277,"context_line":"    def update(self, req, id, body):"},{"line_number":278,"context_line":"        \"\"\"Update name or description for a given share type.\"\"\""},{"line_number":279,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":280,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_cd42683b","line":277,"range":{"start_line":277,"start_character":0,"end_line":277,"end_character":36},"updated":"2019-08-06 21:16:50.000000000","message":"Missing an API RBAC/policy check:\n\n@wsgi.Controller.authorize(\u0027update\u0027)\n\nYou\u0027ll need to add the RBAC to: https://github.com/openstack/manila/blob/d7161e38bb29eadcc97d52a175f00c640e10af54/manila/policies/share_type.py#L23","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"63d19528f0e83978b49c984d0eef528883d82fa0","unresolved":false,"context_lines":[{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    @wsgi.action(\"update\")"},{"line_number":276,"context_line":"    @wsgi.Controller.api_version(\"2.50\")"},{"line_number":277,"context_line":"    def update(self, req, id, body):"},{"line_number":278,"context_line":"        \"\"\"Update name or description for a given share type.\"\"\""},{"line_number":279,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":280,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_8cb54b35","line":277,"range":{"start_line":277,"start_character":0,"end_line":277,"end_character":36},"in_reply_to":"7faddb67_cd42683b","updated":"2019-08-07 11:08:28.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":275,"context_line":"    @wsgi.action(\"update\")"},{"line_number":276,"context_line":"    @wsgi.Controller.api_version(\"2.50\")"},{"line_number":277,"context_line":"    def update(self, req, id, body):"},{"line_number":278,"context_line":"        \"\"\"Update name or description for a given share type.\"\"\""},{"line_number":279,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"        if (not self.is_valid_body(body, \u0027share_type\u0027) and"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_c504821a","line":278,"range":{"start_line":278,"start_character":18,"end_line":278,"end_character":37},"updated":"2019-08-06 21:16:50.000000000","message":"name, description, is_public","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"63d19528f0e83978b49c984d0eef528883d82fa0","unresolved":false,"context_lines":[{"line_number":275,"context_line":"    @wsgi.action(\"update\")"},{"line_number":276,"context_line":"    @wsgi.Controller.api_version(\"2.50\")"},{"line_number":277,"context_line":"    def update(self, req, id, body):"},{"line_number":278,"context_line":"        \"\"\"Update name or description for a given share type.\"\"\""},{"line_number":279,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"        if (not self.is_valid_body(body, \u0027share_type\u0027) and"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_2c80d746","line":278,"range":{"start_line":278,"start_character":18,"end_line":278,"end_character":37},"in_reply_to":"7faddb67_c504821a","updated":"2019-08-07 11:08:28.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":290,"context_line":"        description \u003d sha_type.get(\u0027description\u0027)"},{"line_number":291,"context_line":"        is_public \u003d sha_type.get(\u0027share_type_access:is_public\u0027, None)"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"        if not is_public:"},{"line_number":294,"context_line":"            is_public \u003d strutils.bool_from_string(is_public, strict\u003dTrue)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        # If name specified, name can not be empty."}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_fadb5ce9","line":293,"range":{"start_line":293,"start_character":8,"end_line":293,"end_character":24},"updated":"2019-08-06 21:16:50.000000000","message":"if is_public is not None:","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"63d19528f0e83978b49c984d0eef528883d82fa0","unresolved":false,"context_lines":[{"line_number":290,"context_line":"        description \u003d sha_type.get(\u0027description\u0027)"},{"line_number":291,"context_line":"        is_public \u003d sha_type.get(\u0027share_type_access:is_public\u0027, None)"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"        if not is_public:"},{"line_number":294,"context_line":"            is_public \u003d strutils.bool_from_string(is_public, strict\u003dTrue)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        # If name specified, name can not be empty."}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_8c8eab77","line":293,"range":{"start_line":293,"start_character":8,"end_line":293,"end_character":24},"in_reply_to":"7faddb67_fadb5ce9","updated":"2019-08-07 11:08:28.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        is_public \u003d sha_type.get(\u0027share_type_access:is_public\u0027, None)"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"        if not is_public:"},{"line_number":294,"context_line":"            is_public \u003d strutils.bool_from_string(is_public, strict\u003dTrue)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        # If name specified, name can not be empty."},{"line_number":297,"context_line":"        if name and len(name.strip()) \u003d\u003d 0:"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_adbccc05","line":294,"range":{"start_line":294,"start_character":0,"end_line":294,"end_character":73},"updated":"2019-08-06 21:16:50.000000000","message":"try...except and sanitize the error message appropriately.","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"63d19528f0e83978b49c984d0eef528883d82fa0","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        is_public \u003d sha_type.get(\u0027share_type_access:is_public\u0027, None)"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"        if not is_public:"},{"line_number":294,"context_line":"            is_public \u003d strutils.bool_from_string(is_public, strict\u003dTrue)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        # If name specified, name can not be empty."},{"line_number":297,"context_line":"        if name and len(name.strip()) \u003d\u003d 0:"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_4c9e736a","line":294,"range":{"start_line":294,"start_character":0,"end_line":294,"end_character":73},"in_reply_to":"7faddb67_adbccc05","updated":"2019-08-07 11:08:28.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":297,"context_line":"        if name and len(name.strip()) \u003d\u003d 0:"},{"line_number":298,"context_line":"            msg \u003d _(\"Share type name can not be empty.\")"},{"line_number":299,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        # Name, description and is_public can not be None."},{"line_number":302,"context_line":"        # Specify one of them, or a combination thereof."},{"line_number":303,"context_line":"        if not name and not description and not is_public:"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_4d22f8a4","line":300,"range":{"start_line":300,"start_character":0,"end_line":300,"end_character":0},"updated":"2019-08-06 21:16:50.000000000","message":"You can fail here early if description is \u003e 255 characters","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"63d19528f0e83978b49c984d0eef528883d82fa0","unresolved":false,"context_lines":[{"line_number":297,"context_line":"        if name and len(name.strip()) \u003d\u003d 0:"},{"line_number":298,"context_line":"            msg \u003d _(\"Share type name can not be empty.\")"},{"line_number":299,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        # Name, description and is_public can not be None."},{"line_number":302,"context_line":"        # Specify one of them, or a combination thereof."},{"line_number":303,"context_line":"        if not name and not description and not is_public:"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_0c387bec","line":300,"range":{"start_line":300,"start_character":0,"end_line":300,"end_character":0},"in_reply_to":"7faddb67_4d22f8a4","updated":"2019-08-07 11:08:28.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        # Name, description and is_public can not be None."},{"line_number":302,"context_line":"        # Specify one of them, or a combination thereof."},{"line_number":303,"context_line":"        if not name and not description and not is_public:"},{"line_number":304,"context_line":"            msg \u003d _(\"Specify share type name, description, is_public or \""},{"line_number":305,"context_line":"                    \"a combination thereof.\")"},{"line_number":306,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_9a67c825","line":303,"range":{"start_line":303,"start_character":11,"end_line":303,"end_character":57},"updated":"2019-08-06 21:16:50.000000000","message":"this will fail if you only want to update the share type from public to non-public... \n\nYou should check if \u0027is_public is not None\u0027 rather...","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"63d19528f0e83978b49c984d0eef528883d82fa0","unresolved":false,"context_lines":[{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        # Name, description and is_public can not be None."},{"line_number":302,"context_line":"        # Specify one of them, or a combination thereof."},{"line_number":303,"context_line":"        if not name and not description and not is_public:"},{"line_number":304,"context_line":"            msg \u003d _(\"Specify share type name, description, is_public or \""},{"line_number":305,"context_line":"                    \"a combination thereof.\")"},{"line_number":306,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_cc0a6326","line":303,"range":{"start_line":303,"start_character":11,"end_line":303,"end_character":57},"in_reply_to":"7faddb67_9a67c825","updated":"2019-08-07 11:08:28.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":315,"context_line":"                context, \u0027share_type.update\u0027, sha_type)"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"        except exception.ShareTypeNotFound as err:"},{"line_number":318,"context_line":"            notifier_err \u003d dict(id\u003did, error_message\u003dsix.text_type(err))"},{"line_number":319,"context_line":"            self._notify_share_type_error("},{"line_number":320,"context_line":"                context, \u0027share_type.update\u0027, notifier_err)"},{"line_number":321,"context_line":"            # Not found exception will be handled at the wsgi level"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_5a3b90e8","line":318,"range":{"start_line":318,"start_character":53,"end_line":318,"end_character":66},"updated":"2019-08-06 21:16:50.000000000","message":"This isn\u0027t necessary, the exception originates in manila and has been converted into text_type as appropriate:\n\nhttps://github.com/openstack/manila/blob/6995b9f9758f4b8526011954670da5602acb60cb/manila/exception.py#L61-L109","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":315,"context_line":"                context, \u0027share_type.update\u0027, sha_type)"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"        except exception.ShareTypeNotFound as err:"},{"line_number":318,"context_line":"            notifier_err \u003d dict(id\u003did, error_message\u003dsix.text_type(err))"},{"line_number":319,"context_line":"            self._notify_share_type_error("},{"line_number":320,"context_line":"                context, \u0027share_type.update\u0027, notifier_err)"},{"line_number":321,"context_line":"            # Not found exception will be handled at the wsgi level"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_7a1bec7f","line":318,"range":{"start_line":318,"start_character":27,"end_line":318,"end_character":32},"updated":"2019-08-06 21:16:50.000000000","message":"use {} instead of dict() - https://doughellmann.com/blog/2012/11/12/the-performance-impact-of-using-dict-instead-of-in-cpython-2-7-2/","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"63d19528f0e83978b49c984d0eef528883d82fa0","unresolved":false,"context_lines":[{"line_number":315,"context_line":"                context, \u0027share_type.update\u0027, sha_type)"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"        except exception.ShareTypeNotFound as err:"},{"line_number":318,"context_line":"            notifier_err \u003d dict(id\u003did, error_message\u003dsix.text_type(err))"},{"line_number":319,"context_line":"            self._notify_share_type_error("},{"line_number":320,"context_line":"                context, \u0027share_type.update\u0027, notifier_err)"},{"line_number":321,"context_line":"            # Not found exception will be handled at the wsgi level"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_4f3425ad","line":318,"range":{"start_line":318,"start_character":53,"end_line":318,"end_character":66},"in_reply_to":"7faddb67_5a3b90e8","updated":"2019-08-07 11:08:28.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"63d19528f0e83978b49c984d0eef528883d82fa0","unresolved":false,"context_lines":[{"line_number":315,"context_line":"                context, \u0027share_type.update\u0027, sha_type)"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"        except exception.ShareTypeNotFound as err:"},{"line_number":318,"context_line":"            notifier_err \u003d dict(id\u003did, error_message\u003dsix.text_type(err))"},{"line_number":319,"context_line":"            self._notify_share_type_error("},{"line_number":320,"context_line":"                context, \u0027share_type.update\u0027, notifier_err)"},{"line_number":321,"context_line":"            # Not found exception will be handled at the wsgi level"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_6f39e1a1","line":318,"range":{"start_line":318,"start_character":27,"end_line":318,"end_character":32},"in_reply_to":"7faddb67_7a1bec7f","updated":"2019-08-07 11:08:28.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":321,"context_line":"            # Not found exception will be handled at the wsgi level"},{"line_number":322,"context_line":"            raise"},{"line_number":323,"context_line":"        except exception.ShareTypeExists as err:"},{"line_number":324,"context_line":"            notifier_err \u003d dict(share_type\u003dsha_type,"},{"line_number":325,"context_line":"                                error_message\u003dsix.text_type(err))"},{"line_number":326,"context_line":"            self._notify_share_type_error("},{"line_number":327,"context_line":"                context, \u0027share_type.update\u0027, notifier_err)"},{"line_number":328,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003dsix.text_type(err))"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_fa0efc38","line":325,"range":{"start_line":324,"start_character":27,"end_line":325,"end_character":65},"updated":"2019-08-06 21:16:50.000000000","message":"same comments as above","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"63d19528f0e83978b49c984d0eef528883d82fa0","unresolved":false,"context_lines":[{"line_number":321,"context_line":"            # Not found exception will be handled at the wsgi level"},{"line_number":322,"context_line":"            raise"},{"line_number":323,"context_line":"        except exception.ShareTypeExists as err:"},{"line_number":324,"context_line":"            notifier_err \u003d dict(share_type\u003dsha_type,"},{"line_number":325,"context_line":"                                error_message\u003dsix.text_type(err))"},{"line_number":326,"context_line":"            self._notify_share_type_error("},{"line_number":327,"context_line":"                context, \u0027share_type.update\u0027, notifier_err)"},{"line_number":328,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003dsix.text_type(err))"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_af67d9b7","line":325,"range":{"start_line":324,"start_character":27,"end_line":325,"end_character":65},"in_reply_to":"7faddb67_fa0efc38","updated":"2019-08-07 11:08:28.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":327,"context_line":"                context, \u0027share_type.update\u0027, notifier_err)"},{"line_number":328,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003dsix.text_type(err))"},{"line_number":329,"context_line":"        except exception.ShareTypeUpdateFailed as err:"},{"line_number":330,"context_line":"            notifier_err \u003d dict(share_type\u003dsha_type,"},{"line_number":331,"context_line":"                                error_message\u003dsix.text_type(err))"},{"line_number":332,"context_line":"            self._notify_share_type_error("},{"line_number":333,"context_line":"                context, \u0027share_type.update\u0027, notifier_err)"},{"line_number":334,"context_line":"            raise webob.exc.HTTPInternalServerError("}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_1a0af824","line":331,"range":{"start_line":330,"start_character":12,"end_line":331,"end_character":65},"updated":"2019-08-06 21:16:50.000000000","message":"same comments as above","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"63d19528f0e83978b49c984d0eef528883d82fa0","unresolved":false,"context_lines":[{"line_number":327,"context_line":"                context, \u0027share_type.update\u0027, notifier_err)"},{"line_number":328,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003dsix.text_type(err))"},{"line_number":329,"context_line":"        except exception.ShareTypeUpdateFailed as err:"},{"line_number":330,"context_line":"            notifier_err \u003d dict(share_type\u003dsha_type,"},{"line_number":331,"context_line":"                                error_message\u003dsix.text_type(err))"},{"line_number":332,"context_line":"            self._notify_share_type_error("},{"line_number":333,"context_line":"                context, \u0027share_type.update\u0027, notifier_err)"},{"line_number":334,"context_line":"            raise webob.exc.HTTPInternalServerError("}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_4f02e5bc","line":331,"range":{"start_line":330,"start_character":12,"end_line":331,"end_character":65},"in_reply_to":"7faddb67_1a0af824","updated":"2019-08-07 11:08:28.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":23950,"name":"Eric Xie","email":"eric_xiett@163.com","username":"ericxie"},"change_message_id":"4e59b1b9817b30395877ac7a3f0e8e72c13489ac","unresolved":false,"context_lines":[{"line_number":279,"context_line":"        \"\"\"Update name description is_public for a given share type.\"\"\""},{"line_number":280,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"        if (not self.is_valid_body(body, \u0027share_type\u0027) and"},{"line_number":283,"context_line":"                not self.is_valid_body(body, \u0027volume_type\u0027)):"},{"line_number":284,"context_line":"            raise webob.exc.HTTPBadRequest()"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        elif self.is_valid_body(body, \u0027share_type\u0027):"},{"line_number":287,"context_line":"            sha_type \u003d body[\u0027share_type\u0027]"},{"line_number":288,"context_line":"        else:"},{"line_number":289,"context_line":"            sha_type \u003d body[\u0027volume_type\u0027]"},{"line_number":290,"context_line":"        name \u003d sha_type.get(\u0027name\u0027)"},{"line_number":291,"context_line":"        description \u003d sha_type.get(\u0027description\u0027)"},{"line_number":292,"context_line":"        is_public \u003d sha_type.get(\u0027share_type_access:is_public\u0027, None)"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"        if is_public is not None:"},{"line_number":295,"context_line":"            try:"},{"line_number":296,"context_line":"                is_public \u003d strutils.bool_from_string(is_public, strict\u003dTrue)"},{"line_number":297,"context_line":"            except ValueError:"},{"line_number":298,"context_line":"                msg \u003d _(\"is_public has unrecognized value.\")"},{"line_number":299,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        # If name specified, name can not be empty."},{"line_number":302,"context_line":"        if name and len(name.strip()) \u003d\u003d 0:"},{"line_number":303,"context_line":"            msg \u003d _(\"Share type name can not be empty.\")"},{"line_number":304,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"        # If description specified, length can not greater than 255."},{"line_number":307,"context_line":"        if description and len(description) \u003e 255:"},{"line_number":308,"context_line":"            msg \u003d _(\"Share type description can not greater than 255.\")"},{"line_number":309,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"        # Name, description and is_public can not be None."},{"line_number":312,"context_line":"        # Specify one of them, or a combination thereof."}],"source_content_type":"text/x-python","patch_set":15,"id":"7faddb67_882b3093","line":309,"range":{"start_line":282,"start_character":8,"end_line":309,"end_character":59},"updated":"2019-08-20 00:21:48.000000000","message":"Add some unittests?","commit_id":"4f7bfb6428b03f5f7c64660d07df600a529b405f"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"00973fe2cef5882afc10de14dfa48512c2318a64","unresolved":false,"context_lines":[{"line_number":279,"context_line":"        \"\"\"Update name description is_public for a given share type.\"\"\""},{"line_number":280,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"        if (not self.is_valid_body(body, \u0027share_type\u0027) and"},{"line_number":283,"context_line":"                not self.is_valid_body(body, \u0027volume_type\u0027)):"},{"line_number":284,"context_line":"            raise webob.exc.HTTPBadRequest()"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        elif self.is_valid_body(body, \u0027share_type\u0027):"},{"line_number":287,"context_line":"            sha_type \u003d body[\u0027share_type\u0027]"},{"line_number":288,"context_line":"        else:"},{"line_number":289,"context_line":"            sha_type \u003d body[\u0027volume_type\u0027]"},{"line_number":290,"context_line":"        name \u003d sha_type.get(\u0027name\u0027)"},{"line_number":291,"context_line":"        description \u003d sha_type.get(\u0027description\u0027)"},{"line_number":292,"context_line":"        is_public \u003d sha_type.get(\u0027share_type_access:is_public\u0027, None)"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"        if is_public is not None:"},{"line_number":295,"context_line":"            try:"},{"line_number":296,"context_line":"                is_public \u003d strutils.bool_from_string(is_public, strict\u003dTrue)"},{"line_number":297,"context_line":"            except ValueError:"},{"line_number":298,"context_line":"                msg \u003d _(\"is_public has unrecognized value.\")"},{"line_number":299,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        # If name specified, name can not be empty."},{"line_number":302,"context_line":"        if name and len(name.strip()) \u003d\u003d 0:"},{"line_number":303,"context_line":"            msg \u003d _(\"Share type name can not be empty.\")"},{"line_number":304,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"        # If description specified, length can not greater than 255."},{"line_number":307,"context_line":"        if description and len(description) \u003e 255:"},{"line_number":308,"context_line":"            msg \u003d _(\"Share type description can not greater than 255.\")"},{"line_number":309,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"        # Name, description and is_public can not be None."},{"line_number":312,"context_line":"        # Specify one of them, or a combination thereof."}],"source_content_type":"text/x-python","patch_set":15,"id":"7faddb67_5be184cf","line":309,"range":{"start_line":282,"start_character":8,"end_line":309,"end_character":59},"in_reply_to":"7faddb67_882b3093","updated":"2019-08-20 02:22:24.000000000","message":"en,i will add some unittests about parameter check.","commit_id":"4f7bfb6428b03f5f7c64660d07df600a529b405f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"4bac90ed44aa2fd34981c1e84647a6182f1ad1db","unresolved":false,"context_lines":[{"line_number":275,"context_line":"    @wsgi.action(\"update\")"},{"line_number":276,"context_line":"    @wsgi.Controller.api_version(\"2.50\")"},{"line_number":277,"context_line":"    @wsgi.Controller.authorize(\u0027update\u0027)"},{"line_number":278,"context_line":"    def update(self, req, id, body):"},{"line_number":279,"context_line":"        \"\"\"Update name description is_public for a given share type.\"\"\""},{"line_number":280,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":281,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"7faddb67_bff3a472","line":278,"range":{"start_line":278,"start_character":4,"end_line":278,"end_character":36},"updated":"2019-08-21 11:58:56.000000000","message":"Some parts of this method are not being covered by unit tests as shown in [1]. Could you please add more unit tests to cover these scenarios?\n[1] https://openstack.fortnebula.com:13808/v1/AUTH_e8fd161dc34c421a979a9e6421f823e9/logs_51/669651/16/check/openstack-tox-cover/53f3346/cover/manila_api_v2_share_types_py.html#n278","commit_id":"3ae85093ff5e3de94b508fe2c5e751ecd6b5b3a6"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"9abfabd8e714d1690f3c4d945af1e6d96a61feda","unresolved":false,"context_lines":[{"line_number":275,"context_line":"    @wsgi.action(\"update\")"},{"line_number":276,"context_line":"    @wsgi.Controller.api_version(\"2.50\")"},{"line_number":277,"context_line":"    @wsgi.Controller.authorize(\u0027update\u0027)"},{"line_number":278,"context_line":"    def update(self, req, id, body):"},{"line_number":279,"context_line":"        \"\"\"Update name description is_public for a given share type.\"\"\""},{"line_number":280,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":281,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"7faddb67_6d4c949d","line":278,"range":{"start_line":278,"start_character":4,"end_line":278,"end_character":36},"in_reply_to":"7faddb67_bff3a472","updated":"2019-08-22 05:38:00.000000000","message":"thanks, I have supplemented the test case. covered all parts.","commit_id":"3ae85093ff5e3de94b508fe2c5e751ecd6b5b3a6"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"187c95030c0b7b4bab793626bea18075eebbc9d1","unresolved":false,"context_lines":[{"line_number":305,"context_line":""},{"line_number":306,"context_line":"        # If description specified, length can not greater than 255."},{"line_number":307,"context_line":"        if description and len(description) \u003e 255:"},{"line_number":308,"context_line":"            msg \u003d _(\"Share type description can not greater than 255.\")"},{"line_number":309,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"        # Name, description and is_public can not be None."}],"source_content_type":"text/x-python","patch_set":17,"id":"7faddb67_2fb769f8","line":308,"range":{"start_line":308,"start_character":51,"end_line":308,"end_character":52},"updated":"2019-08-22 12:55:41.000000000","message":"... can not be ...","commit_id":"375871fd9b1752a5cb1a4aa7c51ec4ab1217c073"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"2822d4e1848e0fa7996791dba85db14fb7ce8bb7","unresolved":false,"context_lines":[{"line_number":305,"context_line":""},{"line_number":306,"context_line":"        # If description specified, length can not greater than 255."},{"line_number":307,"context_line":"        if description and len(description) \u003e 255:"},{"line_number":308,"context_line":"            msg \u003d _(\"Share type description can not greater than 255.\")"},{"line_number":309,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"        # Name, description and is_public can not be None."}],"source_content_type":"text/x-python","patch_set":17,"id":"7faddb67_83ec2693","line":308,"range":{"start_line":308,"start_character":51,"end_line":308,"end_character":52},"in_reply_to":"7faddb67_2fb769f8","updated":"2019-08-23 06:37:25.000000000","message":"Done","commit_id":"375871fd9b1752a5cb1a4aa7c51ec4ab1217c073"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9a8fa59853f3609ad3008bcb636de90512a1eb47","unresolved":false,"context_lines":[{"line_number":295,"context_line":"            try:"},{"line_number":296,"context_line":"                is_public \u003d strutils.bool_from_string(is_public, strict\u003dTrue)"},{"line_number":297,"context_line":"            except ValueError:"},{"line_number":298,"context_line":"                msg \u003d _(\"is_public has unrecognized value.\")"},{"line_number":299,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        # If name specified, name can not be empty."}],"source_content_type":"text/x-python","patch_set":18,"id":"7faddb67_ccb055df","line":298,"range":{"start_line":298,"start_character":39,"end_line":298,"end_character":51},"updated":"2019-09-04 21:23:31.000000000","message":"a non-boolean","commit_id":"e74e7f158e24e2f29ac22f829a70812f4c2e1ea7"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9a8fa59853f3609ad3008bcb636de90512a1eb47","unresolved":false,"context_lines":[{"line_number":295,"context_line":"            try:"},{"line_number":296,"context_line":"                is_public \u003d strutils.bool_from_string(is_public, strict\u003dTrue)"},{"line_number":297,"context_line":"            except ValueError:"},{"line_number":298,"context_line":"                msg \u003d _(\"is_public has unrecognized value.\")"},{"line_number":299,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        # If name specified, name can not be empty."}],"source_content_type":"text/x-python","patch_set":18,"id":"7faddb67_0cbbcdc3","line":298,"range":{"start_line":298,"start_character":25,"end_line":298,"end_character":34},"updated":"2019-09-04 21:23:31.000000000","message":"share_type_access:is_public","commit_id":"e74e7f158e24e2f29ac22f829a70812f4c2e1ea7"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"3ff07ca9804acb13599eacc69bb8c9dfc8c8106d","unresolved":false,"context_lines":[{"line_number":295,"context_line":"            try:"},{"line_number":296,"context_line":"                is_public \u003d strutils.bool_from_string(is_public, strict\u003dTrue)"},{"line_number":297,"context_line":"            except ValueError:"},{"line_number":298,"context_line":"                msg \u003d _(\"is_public has unrecognized value.\")"},{"line_number":299,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        # If name specified, name can not be empty."}],"source_content_type":"text/x-python","patch_set":18,"id":"7faddb67_bdfbba78","line":298,"range":{"start_line":298,"start_character":25,"end_line":298,"end_character":34},"in_reply_to":"7faddb67_0cbbcdc3","updated":"2019-09-05 10:01:25.000000000","message":"Done","commit_id":"e74e7f158e24e2f29ac22f829a70812f4c2e1ea7"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"3ff07ca9804acb13599eacc69bb8c9dfc8c8106d","unresolved":false,"context_lines":[{"line_number":295,"context_line":"            try:"},{"line_number":296,"context_line":"                is_public \u003d strutils.bool_from_string(is_public, strict\u003dTrue)"},{"line_number":297,"context_line":"            except ValueError:"},{"line_number":298,"context_line":"                msg \u003d _(\"is_public has unrecognized value.\")"},{"line_number":299,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        # If name specified, name can not be empty."}],"source_content_type":"text/x-python","patch_set":18,"id":"7faddb67_ddfeb668","line":298,"range":{"start_line":298,"start_character":39,"end_line":298,"end_character":51},"in_reply_to":"7faddb67_ccb055df","updated":"2019-09-05 10:01:25.000000000","message":"Done","commit_id":"e74e7f158e24e2f29ac22f829a70812f4c2e1ea7"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9a8fa59853f3609ad3008bcb636de90512a1eb47","unresolved":false,"context_lines":[{"line_number":304,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"        # If description specified, length can not greater than 255."},{"line_number":307,"context_line":"        if description and len(description) \u003e 255:"},{"line_number":308,"context_line":"            msg \u003d _(\"Share type description can not be greater than 255.\")"},{"line_number":309,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":310,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"7faddb67_4cfea506","line":307,"range":{"start_line":307,"start_character":8,"end_line":307,"end_character":22},"updated":"2019-09-04 21:23:31.000000000","message":"This prevents description from being unset - \n\nWe should allow updated description to be null/empty.","commit_id":"e74e7f158e24e2f29ac22f829a70812f4c2e1ea7"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"3ff07ca9804acb13599eacc69bb8c9dfc8c8106d","unresolved":false,"context_lines":[{"line_number":304,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"        # If description specified, length can not greater than 255."},{"line_number":307,"context_line":"        if description and len(description) \u003e 255:"},{"line_number":308,"context_line":"            msg \u003d _(\"Share type description can not be greater than 255.\")"},{"line_number":309,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":310,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"7faddb67_586414b3","line":307,"range":{"start_line":307,"start_character":8,"end_line":307,"end_character":22},"in_reply_to":"7faddb67_4cfea506","updated":"2019-09-05 10:01:25.000000000","message":"i think here is ok, here just check whether we get description from request body,if we not get description,we no need to check it\u0027s length.if we want to unset description,we get a empty str from request body,like \"\",we should change below file to support this.\nhttps://review.opendev.org/#/c/669651/19/manila/share/share_types.py@78","commit_id":"e74e7f158e24e2f29ac22f829a70812f4c2e1ea7"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9a8fa59853f3609ad3008bcb636de90512a1eb47","unresolved":false,"context_lines":[{"line_number":311,"context_line":"        # Name, description and is_public can not be None."},{"line_number":312,"context_line":"        # Specify one of them, or a combination thereof."},{"line_number":313,"context_line":"        if not name and not description and is_public is None:"},{"line_number":314,"context_line":"            msg \u003d _(\"Specify share type name, description, is_public or \""},{"line_number":315,"context_line":"                    \"a combination thereof.\")"},{"line_number":316,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":317,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"7faddb67_9b04d115","line":314,"range":{"start_line":314,"start_character":59,"end_line":314,"end_character":68},"updated":"2019-09-04 21:23:31.000000000","message":"share_type_access:is_public","commit_id":"e74e7f158e24e2f29ac22f829a70812f4c2e1ea7"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"3ff07ca9804acb13599eacc69bb8c9dfc8c8106d","unresolved":false,"context_lines":[{"line_number":311,"context_line":"        # Name, description and is_public can not be None."},{"line_number":312,"context_line":"        # Specify one of them, or a combination thereof."},{"line_number":313,"context_line":"        if not name and not description and is_public is None:"},{"line_number":314,"context_line":"            msg \u003d _(\"Specify share type name, description, is_public or \""},{"line_number":315,"context_line":"                    \"a combination thereof.\")"},{"line_number":316,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":317,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"7faddb67_58c0944a","line":314,"range":{"start_line":314,"start_character":59,"end_line":314,"end_character":68},"in_reply_to":"7faddb67_9b04d115","updated":"2019-09-05 10:01:25.000000000","message":"Done","commit_id":"e74e7f158e24e2f29ac22f829a70812f4c2e1ea7"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"15e36d86fea5ec767a1df85d669a29a3fe9b429f","unresolved":false,"context_lines":[{"line_number":312,"context_line":"        # Name, description and is_public can not be None."},{"line_number":313,"context_line":"        # Specify one of them, or a combination thereof."},{"line_number":314,"context_line":"        if not name and not description and is_public is None:"},{"line_number":315,"context_line":"            msg \u003d _(\"Specify share type name, description,\""},{"line_number":316,"context_line":"                    \"share_type_access:is_public or a combination thereof.\")"},{"line_number":317,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":318,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"7faddb67_62c7cf99","line":315,"range":{"start_line":315,"start_character":58,"end_line":315,"end_character":59},"updated":"2019-09-05 17:41:16.000000000","message":"missing space","commit_id":"3a173485d24b7b6a49da3400c8ed31064492c339"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"fe56e59182f45fd4e3ea9f8f8fe6937be8582686","unresolved":false,"context_lines":[{"line_number":312,"context_line":"        # Name, description and is_public can not be None."},{"line_number":313,"context_line":"        # Specify one of them, or a combination thereof."},{"line_number":314,"context_line":"        if not name and not description and is_public is None:"},{"line_number":315,"context_line":"            msg \u003d _(\"Specify share type name, description,\""},{"line_number":316,"context_line":"                    \"share_type_access:is_public or a combination thereof.\")"},{"line_number":317,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":318,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"5faad753_2e2c4b46","line":315,"range":{"start_line":315,"start_character":58,"end_line":315,"end_character":59},"in_reply_to":"7faddb67_62c7cf99","updated":"2019-09-06 01:08:12.000000000","message":"Done","commit_id":"3a173485d24b7b6a49da3400c8ed31064492c339"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"0592666c569b1c07a25d045a8b73b4220483e6f5","unresolved":false,"context_lines":[{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        return webob.Response(status_int\u003dhttp_client.ACCEPTED)"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    @wsgi.action(\"update\")"},{"line_number":276,"context_line":"    @wsgi.Controller.api_version(\"2.50\")"},{"line_number":277,"context_line":"    @wsgi.Controller.authorize(\u0027update\u0027)"},{"line_number":278,"context_line":"    def update(self, req, id, body):"}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_780d093d","line":275,"range":{"start_line":275,"start_character":4,"end_line":275,"end_character":26},"updated":"2019-09-08 18:10:19.000000000","message":"This needs to go below the api_version decorator.. see: https://github.com/openstack/manila/blob/7f17a7bc2717dc5177ba44a1d552f96990e90720/manila/api/openstack/wsgi.py#L1086","commit_id":"d76e269f98d91447730a4c1653dd9f5c8546127d"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"fa341c6ce1242ddbcac25d02a8f60fe847bc4365","unresolved":false,"context_lines":[{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        return webob.Response(status_int\u003dhttp_client.ACCEPTED)"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    @wsgi.action(\"update\")"},{"line_number":276,"context_line":"    @wsgi.Controller.api_version(\"2.50\")"},{"line_number":277,"context_line":"    @wsgi.Controller.authorize(\u0027update\u0027)"},{"line_number":278,"context_line":"    def update(self, req, id, body):"}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_3e769908","line":275,"range":{"start_line":275,"start_character":4,"end_line":275,"end_character":26},"in_reply_to":"5faad753_780d093d","updated":"2019-09-09 11:23:31.000000000","message":"Done","commit_id":"d76e269f98d91447730a4c1653dd9f5c8546127d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"0592666c569b1c07a25d045a8b73b4220483e6f5","unresolved":false,"context_lines":[{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    @wsgi.action(\"update\")"},{"line_number":276,"context_line":"    @wsgi.Controller.api_version(\"2.50\")"},{"line_number":277,"context_line":"    @wsgi.Controller.authorize(\u0027update\u0027)"},{"line_number":278,"context_line":"    def update(self, req, id, body):"},{"line_number":279,"context_line":"        \"\"\"Update name description is_public for a given share type.\"\"\""},{"line_number":280,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_181f356d","line":277,"range":{"start_line":277,"start_character":30,"end_line":277,"end_character":40},"updated":"2019-09-08 18:10:19.000000000","message":"Don\u0027t need to pass this as an argument if it matches the name of the method - the policy check decorator uses the name of the function and the resource name to look up the policy if no arguments are passed.","commit_id":"d76e269f98d91447730a4c1653dd9f5c8546127d"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"fa341c6ce1242ddbcac25d02a8f60fe847bc4365","unresolved":false,"context_lines":[{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    @wsgi.action(\"update\")"},{"line_number":276,"context_line":"    @wsgi.Controller.api_version(\"2.50\")"},{"line_number":277,"context_line":"    @wsgi.Controller.authorize(\u0027update\u0027)"},{"line_number":278,"context_line":"    def update(self, req, id, body):"},{"line_number":279,"context_line":"        \"\"\"Update name description is_public for a given share type.\"\"\""},{"line_number":280,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_5e735516","line":277,"range":{"start_line":277,"start_character":30,"end_line":277,"end_character":40},"in_reply_to":"5faad753_181f356d","updated":"2019-09-09 11:23:31.000000000","message":"Done","commit_id":"d76e269f98d91447730a4c1653dd9f5c8546127d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e8841a1fcb0ef0806fb14aeb66fdf864c1386a3f","unresolved":false,"context_lines":[{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    @wsgi.action(\"update\")"},{"line_number":276,"context_line":"    @wsgi.Controller.api_version(\"2.50\")"},{"line_number":277,"context_line":"    @wsgi.Controller.authorize(\u0027update\u0027)"},{"line_number":278,"context_line":"    def update(self, req, id, body):"},{"line_number":279,"context_line":"        \"\"\"Update name description is_public for a given share type.\"\"\""},{"line_number":280,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_7abf33fb","line":277,"range":{"start_line":277,"start_character":30,"end_line":277,"end_character":40},"in_reply_to":"5faad753_5e735516","updated":"2019-09-09 14:17:25.000000000","message":"I didn\u0027t mean that you should remove the policy check... You should keep it, just without using the arg \"update\"","commit_id":"d76e269f98d91447730a4c1653dd9f5c8546127d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8222216f69b3b2bfd05235bdf40ba480d597f876","unresolved":false,"context_lines":[{"line_number":300,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"        # If name specified, name can not be empty."},{"line_number":303,"context_line":"        if name and len(name.strip()) \u003d\u003d 0:"},{"line_number":304,"context_line":"            msg \u003d _(\"Share type name can not be empty.\")"},{"line_number":305,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"        # If description specified, length can not greater than 255."},{"line_number":308,"context_line":"        if description and len(description) \u003e 255:"}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_238f622b","line":305,"range":{"start_line":303,"start_character":8,"end_line":305,"end_character":59},"updated":"2019-09-08 18:54:02.000000000","message":"This here allows the name to be \"\", which is an invalid name\n\n  \u003e\u003e\u003e name  \u003d \"\"\n  \u003e\u003e\u003e if name and len(name.strip()) \u003d\u003d 0:\n    ...     print \"invalid\"\n    ...\n  \u003e\u003e\u003e\n\n\nPlease add, \n     or name \u003d \"\"\n\nto this condition","commit_id":"d76e269f98d91447730a4c1653dd9f5c8546127d"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"fa341c6ce1242ddbcac25d02a8f60fe847bc4365","unresolved":false,"context_lines":[{"line_number":300,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"        # If name specified, name can not be empty."},{"line_number":303,"context_line":"        if name and len(name.strip()) \u003d\u003d 0:"},{"line_number":304,"context_line":"            msg \u003d _(\"Share type name can not be empty.\")"},{"line_number":305,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"        # If description specified, length can not greater than 255."},{"line_number":308,"context_line":"        if description and len(description) \u003e 255:"}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_5efa7542","line":305,"range":{"start_line":303,"start_character":8,"end_line":305,"end_character":59},"in_reply_to":"5faad753_238f622b","updated":"2019-09-09 11:23:31.000000000","message":"yes, i think add \nif name is not None\nto this condition is also work.","commit_id":"d76e269f98d91447730a4c1653dd9f5c8546127d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"0592666c569b1c07a25d045a8b73b4220483e6f5","unresolved":false,"context_lines":[{"line_number":311,"context_line":""},{"line_number":312,"context_line":"        # Name, description and is_public can not be None."},{"line_number":313,"context_line":"        # Specify one of them, or a combination thereof."},{"line_number":314,"context_line":"        if not name and not description and is_public is None:"},{"line_number":315,"context_line":"            msg \u003d _(\"Specify share type name, description, \""},{"line_number":316,"context_line":"                    \"share_type_access:is_public or a combination thereof.\")"},{"line_number":317,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_a30fd22c","line":314,"range":{"start_line":314,"start_character":11,"end_line":314,"end_character":61},"updated":"2019-09-08 18:10:19.000000000","message":"This doesn\u0027t allow unsetting just the description:\n\n \u003e\u003e\u003e name \u003d None\n \u003e\u003e\u003e description \u003d \"\"\n \u003e\u003e\u003e is_public \u003d None\n \u003e\u003e\u003e not name and not description and is_public is None\n True","commit_id":"d76e269f98d91447730a4c1653dd9f5c8546127d"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"fa341c6ce1242ddbcac25d02a8f60fe847bc4365","unresolved":false,"context_lines":[{"line_number":311,"context_line":""},{"line_number":312,"context_line":"        # Name, description and is_public can not be None."},{"line_number":313,"context_line":"        # Specify one of them, or a combination thereof."},{"line_number":314,"context_line":"        if not name and not description and is_public is None:"},{"line_number":315,"context_line":"            msg \u003d _(\"Specify share type name, description, \""},{"line_number":316,"context_line":"                    \"share_type_access:is_public or a combination thereof.\")"},{"line_number":317,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_dea3c54e","line":314,"range":{"start_line":314,"start_character":11,"end_line":314,"end_character":61},"in_reply_to":"5faad753_a30fd22c","updated":"2019-09-09 11:23:31.000000000","message":"yes, we need to check it by\nif name is None and description is None and is_public is None:","commit_id":"d76e269f98d91447730a4c1653dd9f5c8546127d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"0592666c569b1c07a25d045a8b73b4220483e6f5","unresolved":false,"context_lines":[{"line_number":335,"context_line":"            notifier_err \u003d {\"share_type\": sha_type, \"error_message\": err}"},{"line_number":336,"context_line":"            self._notify_share_type_error("},{"line_number":337,"context_line":"                context, \u0027share_type.update\u0027, notifier_err)"},{"line_number":338,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003dsix.text_type(err))"},{"line_number":339,"context_line":"        except exception.ShareTypeUpdateFailed as err:"},{"line_number":340,"context_line":"            notifier_err \u003d {\"share_type\": sha_type, \"error_message\": err}"},{"line_number":341,"context_line":"            self._notify_share_type_error("}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_232d2295","line":338,"range":{"start_line":338,"start_character":53,"end_line":338,"end_character":71},"updated":"2019-09-08 18:10:19.000000000","message":"err.msg\n\nNo need to cast the whole exception object into a string - we have the formatted string in the \"msg\" attribute..","commit_id":"d76e269f98d91447730a4c1653dd9f5c8546127d"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"fa341c6ce1242ddbcac25d02a8f60fe847bc4365","unresolved":false,"context_lines":[{"line_number":335,"context_line":"            notifier_err \u003d {\"share_type\": sha_type, \"error_message\": err}"},{"line_number":336,"context_line":"            self._notify_share_type_error("},{"line_number":337,"context_line":"                context, \u0027share_type.update\u0027, notifier_err)"},{"line_number":338,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003dsix.text_type(err))"},{"line_number":339,"context_line":"        except exception.ShareTypeUpdateFailed as err:"},{"line_number":340,"context_line":"            notifier_err \u003d {\"share_type\": sha_type, \"error_message\": err}"},{"line_number":341,"context_line":"            self._notify_share_type_error("}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_3e9219f8","line":338,"range":{"start_line":338,"start_character":53,"end_line":338,"end_character":71},"in_reply_to":"5faad753_232d2295","updated":"2019-09-09 11:23:31.000000000","message":"Done","commit_id":"d76e269f98d91447730a4c1653dd9f5c8546127d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"0592666c569b1c07a25d045a8b73b4220483e6f5","unresolved":false,"context_lines":[{"line_number":341,"context_line":"            self._notify_share_type_error("},{"line_number":342,"context_line":"                context, \u0027share_type.update\u0027, notifier_err)"},{"line_number":343,"context_line":"            raise webob.exc.HTTPInternalServerError("},{"line_number":344,"context_line":"                explanation\u003dsix.text_type(err))"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"        return self._view_builder.show(req, sha_type)"},{"line_number":347,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_4335bed9","line":344,"range":{"start_line":344,"start_character":28,"end_line":344,"end_character":46},"updated":"2019-09-08 18:10:19.000000000","message":"err.msg here as well.","commit_id":"d76e269f98d91447730a4c1653dd9f5c8546127d"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"fa341c6ce1242ddbcac25d02a8f60fe847bc4365","unresolved":false,"context_lines":[{"line_number":341,"context_line":"            self._notify_share_type_error("},{"line_number":342,"context_line":"                context, \u0027share_type.update\u0027, notifier_err)"},{"line_number":343,"context_line":"            raise webob.exc.HTTPInternalServerError("},{"line_number":344,"context_line":"                explanation\u003dsix.text_type(err))"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"        return self._view_builder.show(req, sha_type)"},{"line_number":347,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_1ec39def","line":344,"range":{"start_line":344,"start_character":28,"end_line":344,"end_character":46},"in_reply_to":"5faad753_4335bed9","updated":"2019-09-09 11:23:31.000000000","message":"Done","commit_id":"d76e269f98d91447730a4c1653dd9f5c8546127d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e8841a1fcb0ef0806fb14aeb66fdf864c1386a3f","unresolved":false,"context_lines":[{"line_number":273,"context_line":"        return webob.Response(status_int\u003dhttp_client.ACCEPTED)"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    @wsgi.Controller.api_version(\"2.50\")"},{"line_number":276,"context_line":"    @wsgi.action(\"update\")"},{"line_number":277,"context_line":"    def update(self, req, id, body):"},{"line_number":278,"context_line":"        \"\"\"Update name description is_public for a given share type.\"\"\""},{"line_number":279,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"}],"source_content_type":"text/x-python","patch_set":22,"id":"5faad753_ba4a8b24","line":276,"range":{"start_line":276,"start_character":0,"end_line":276,"end_character":26},"updated":"2019-09-09 14:17:25.000000000","message":"Also add:\n\n   @wsgi.Controller.authorize","commit_id":"2d8760f48203acd35493fcbae2a6ff48cc05c2f8"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"bd3a3a4833442876bd69bc4004b3018965bb6014","unresolved":false,"context_lines":[{"line_number":273,"context_line":"        return webob.Response(status_int\u003dhttp_client.ACCEPTED)"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    @wsgi.Controller.api_version(\"2.50\")"},{"line_number":276,"context_line":"    @wsgi.action(\"update\")"},{"line_number":277,"context_line":"    def update(self, req, id, body):"},{"line_number":278,"context_line":"        \"\"\"Update name description is_public for a given share type.\"\"\""},{"line_number":279,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"}],"source_content_type":"text/x-python","patch_set":22,"id":"5faad753_0a62603f","line":276,"range":{"start_line":276,"start_character":0,"end_line":276,"end_character":26},"in_reply_to":"5faad753_ba4a8b24","updated":"2019-09-10 01:01:39.000000000","message":"Done","commit_id":"2d8760f48203acd35493fcbae2a6ff48cc05c2f8"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e8841a1fcb0ef0806fb14aeb66fdf864c1386a3f","unresolved":false,"context_lines":[{"line_number":299,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        # If name specified, name can not be empty."},{"line_number":302,"context_line":"        if name is not None and len(name.strip()) \u003d\u003d 0:"},{"line_number":303,"context_line":"            msg \u003d _(\"Share type name can not be empty.\")"},{"line_number":304,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":305,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"5faad753_ba212b50","line":302,"range":{"start_line":302,"start_character":11,"end_line":302,"end_character":54},"updated":"2019-09-09 14:17:25.000000000","message":"please check that name is also under 255 characters..","commit_id":"2d8760f48203acd35493fcbae2a6ff48cc05c2f8"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"bd3a3a4833442876bd69bc4004b3018965bb6014","unresolved":false,"context_lines":[{"line_number":299,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        # If name specified, name can not be empty."},{"line_number":302,"context_line":"        if name is not None and len(name.strip()) \u003d\u003d 0:"},{"line_number":303,"context_line":"            msg \u003d _(\"Share type name can not be empty.\")"},{"line_number":304,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":305,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"5faad753_aad78cbf","line":302,"range":{"start_line":302,"start_character":11,"end_line":302,"end_character":54},"in_reply_to":"5faad753_ba212b50","updated":"2019-09-10 01:01:39.000000000","message":"Done","commit_id":"2d8760f48203acd35493fcbae2a6ff48cc05c2f8"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b2e1b14e3d964a34585132913388756d5cf77651","unresolved":false,"context_lines":[{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    @wsgi.Controller.api_version(\"2.50\")"},{"line_number":276,"context_line":"    @wsgi.action(\"update\")"},{"line_number":277,"context_line":"    @wsgi.Controller.authorize(\u0027update\u0027)"},{"line_number":278,"context_line":"    def update(self, req, id, body):"},{"line_number":279,"context_line":"        \"\"\"Update name description is_public for a given share type.\"\"\""},{"line_number":280,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"}],"source_content_type":"text/x-python","patch_set":23,"id":"5faad753_8d842960","line":277,"range":{"start_line":277,"start_character":30,"end_line":277,"end_character":40},"updated":"2019-09-10 02:42:05.000000000","message":"You don\u0027t need this part: (\u0027update\u0027) - see the authorize method here to understand why: https://github.com/openstack/manila/blob/7f17a7bc2717dc5177ba44a1d552f96990e90720/manila/api/openstack/wsgi.py#L1143-L1149","commit_id":"5553283983530433030ca2c726128ecdb741e4a9"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"8918b07279694a8500de253ea496aa3670a54366","unresolved":false,"context_lines":[{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    @wsgi.Controller.api_version(\"2.50\")"},{"line_number":276,"context_line":"    @wsgi.action(\"update\")"},{"line_number":277,"context_line":"    @wsgi.Controller.authorize(\u0027update\u0027)"},{"line_number":278,"context_line":"    def update(self, req, id, body):"},{"line_number":279,"context_line":"        \"\"\"Update name description is_public for a given share type.\"\"\""},{"line_number":280,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"}],"source_content_type":"text/x-python","patch_set":23,"id":"5faad753_edba7d08","line":277,"range":{"start_line":277,"start_character":30,"end_line":277,"end_character":40},"in_reply_to":"5faad753_8d842960","updated":"2019-09-10 03:03:15.000000000","message":"Done","commit_id":"5553283983530433030ca2c726128ecdb741e4a9"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b2e1b14e3d964a34585132913388756d5cf77651","unresolved":false,"context_lines":[{"line_number":306,"context_line":""},{"line_number":307,"context_line":"        # If name specified, length can not greater than 255."},{"line_number":308,"context_line":"        if name is not None and len(name) \u003e 255:"},{"line_number":309,"context_line":"            msg \u003d _(\"Share type name can not be greater than 255.\")"},{"line_number":310,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"        # If description specified, length can not greater than 255."}],"source_content_type":"text/x-python","patch_set":23,"id":"5faad753_ad87a561","line":309,"range":{"start_line":309,"start_character":64,"end_line":309,"end_character":65},"updated":"2019-09-10 02:42:05.000000000","message":"characters.","commit_id":"5553283983530433030ca2c726128ecdb741e4a9"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"8918b07279694a8500de253ea496aa3670a54366","unresolved":false,"context_lines":[{"line_number":306,"context_line":""},{"line_number":307,"context_line":"        # If name specified, length can not greater than 255."},{"line_number":308,"context_line":"        if name is not None and len(name) \u003e 255:"},{"line_number":309,"context_line":"            msg \u003d _(\"Share type name can not be greater than 255.\")"},{"line_number":310,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"        # If description specified, length can not greater than 255."}],"source_content_type":"text/x-python","patch_set":23,"id":"5faad753_8d0509c5","line":309,"range":{"start_line":309,"start_character":64,"end_line":309,"end_character":65},"in_reply_to":"5faad753_ad87a561","updated":"2019-09-10 03:03:15.000000000","message":"Done","commit_id":"5553283983530433030ca2c726128ecdb741e4a9"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b2e1b14e3d964a34585132913388756d5cf77651","unresolved":false,"context_lines":[{"line_number":300,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"        # If name specified, name can not be empty."},{"line_number":303,"context_line":"        if name is not None and len(name.strip()) \u003d\u003d 0:"},{"line_number":304,"context_line":"            msg \u003d _(\"Share type name can not be empty.\")"},{"line_number":305,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"        # If name specified, length can not greater than 255."},{"line_number":308,"context_line":"        if name is not None and len(name) \u003e 255:"},{"line_number":309,"context_line":"            msg \u003d _(\"Share type name can not be greater than 255.\")"},{"line_number":310,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"        # If description specified, length can not greater than 255."},{"line_number":313,"context_line":"        if description and len(description) \u003e 255:"}],"source_content_type":"text/x-python","patch_set":23,"id":"5faad753_2d93b5a5","line":310,"range":{"start_line":303,"start_character":8,"end_line":310,"end_character":59},"updated":"2019-09-10 02:42:05.000000000","message":"maybe combine this check?\n\n   if name is not None:\n        if len(name.strip()) \u003d\u003d 0:\n            msg \u003d _(\"Share type name cannot be empty.\")\n            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)    \n        if len(name) \u003e 255:\n            msg \u003d _(\"Share type name cannot be greater than 255 characters in length.\")","commit_id":"5553283983530433030ca2c726128ecdb741e4a9"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"8918b07279694a8500de253ea496aa3670a54366","unresolved":false,"context_lines":[{"line_number":300,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"        # If name specified, name can not be empty."},{"line_number":303,"context_line":"        if name is not None and len(name.strip()) \u003d\u003d 0:"},{"line_number":304,"context_line":"            msg \u003d _(\"Share type name can not be empty.\")"},{"line_number":305,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"        # If name specified, length can not greater than 255."},{"line_number":308,"context_line":"        if name is not None and len(name) \u003e 255:"},{"line_number":309,"context_line":"            msg \u003d _(\"Share type name can not be greater than 255.\")"},{"line_number":310,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"        # If description specified, length can not greater than 255."},{"line_number":313,"context_line":"        if description and len(description) \u003e 255:"}],"source_content_type":"text/x-python","patch_set":23,"id":"5faad753_ad0805d9","line":310,"range":{"start_line":303,"start_character":8,"end_line":310,"end_character":59},"in_reply_to":"5faad753_2d93b5a5","updated":"2019-09-10 03:03:15.000000000","message":"Done","commit_id":"5553283983530433030ca2c726128ecdb741e4a9"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b2e1b14e3d964a34585132913388756d5cf77651","unresolved":false,"context_lines":[{"line_number":311,"context_line":""},{"line_number":312,"context_line":"        # If description specified, length can not greater than 255."},{"line_number":313,"context_line":"        if description and len(description) \u003e 255:"},{"line_number":314,"context_line":"            msg \u003d _(\"Share type description can not be greater than 255.\")"},{"line_number":315,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"        # Name, description and is_public can not be None."}],"source_content_type":"text/x-python","patch_set":23,"id":"5faad753_cd91c19b","line":314,"range":{"start_line":314,"start_character":21,"end_line":314,"end_character":72},"updated":"2019-09-10 02:42:05.000000000","message":"Share type description cannot be greater than 255 characters in length","commit_id":"5553283983530433030ca2c726128ecdb741e4a9"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"8918b07279694a8500de253ea496aa3670a54366","unresolved":false,"context_lines":[{"line_number":311,"context_line":""},{"line_number":312,"context_line":"        # If description specified, length can not greater than 255."},{"line_number":313,"context_line":"        if description and len(description) \u003e 255:"},{"line_number":314,"context_line":"            msg \u003d _(\"Share type description can not be greater than 255.\")"},{"line_number":315,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"        # Name, description and is_public can not be None."}],"source_content_type":"text/x-python","patch_set":23,"id":"5faad753_4d0f11e1","line":314,"range":{"start_line":314,"start_character":21,"end_line":314,"end_character":72},"in_reply_to":"5faad753_cd91c19b","updated":"2019-09-10 03:03:15.000000000","message":"Done","commit_id":"5553283983530433030ca2c726128ecdb741e4a9"}],"manila/db/api.py":[{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"53c2d9e095229c01ada5ec10e3c7a53b1b9ddf23","unresolved":false,"context_lines":[{"line_number":950,"context_line":""},{"line_number":951,"context_line":""},{"line_number":952,"context_line":"def share_type_update(context, share_type_id, values):"},{"line_number":953,"context_line":"    return IMPL.share_type_update(context, share_type_id, values)"},{"line_number":954,"context_line":""},{"line_number":955,"context_line":""},{"line_number":956,"context_line":"def share_type_get_all(context, inactive\u003dFalse, filters\u003dNone):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_2817b547","line":953,"updated":"2019-07-16 08:03:22.000000000","message":"Need to add the comment of this function.","commit_id":"744f7e7960b9706ab52883bc03bf7bd8d31d10dd"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e8bc187def5dfd36958dd6f068c226543f02be5b","unresolved":false,"context_lines":[{"line_number":950,"context_line":""},{"line_number":951,"context_line":""},{"line_number":952,"context_line":"def share_type_update(context, share_type_id, values):"},{"line_number":953,"context_line":"    return IMPL.share_type_update(context, share_type_id, values)"},{"line_number":954,"context_line":""},{"line_number":955,"context_line":""},{"line_number":956,"context_line":"def share_type_get_all(context, inactive\u003dFalse, filters\u003dNone):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_b18550d1","line":953,"in_reply_to":"7faddb67_2817b547","updated":"2019-07-16 08:48:49.000000000","message":"Done","commit_id":"744f7e7960b9706ab52883bc03bf7bd8d31d10dd"}],"manila/db/sqlalchemy/api.py":[{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"53c2d9e095229c01ada5ec10e3c7a53b1b9ddf23","unresolved":false,"context_lines":[{"line_number":216,"context_line":"        try:"},{"line_number":217,"context_line":"            return f(*args, **kwargs)"},{"line_number":218,"context_line":"        except db_exc.DBDataError:"},{"line_number":219,"context_line":"            msg \u003d _(\u0027Error writing field to database\u0027)"},{"line_number":220,"context_line":"            LOG.exception(msg)"},{"line_number":221,"context_line":"            raise exception.Invalid(msg)"},{"line_number":222,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_483d51c2","line":219,"range":{"start_line":219,"start_character":52,"end_line":219,"end_character":53},"updated":"2019-07-16 08:03:22.000000000","message":".","commit_id":"744f7e7960b9706ab52883bc03bf7bd8d31d10dd"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e8bc187def5dfd36958dd6f068c226543f02be5b","unresolved":false,"context_lines":[{"line_number":216,"context_line":"        try:"},{"line_number":217,"context_line":"            return f(*args, **kwargs)"},{"line_number":218,"context_line":"        except db_exc.DBDataError:"},{"line_number":219,"context_line":"            msg \u003d _(\u0027Error writing field to database\u0027)"},{"line_number":220,"context_line":"            LOG.exception(msg)"},{"line_number":221,"context_line":"            raise exception.Invalid(msg)"},{"line_number":222,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_516e5c2f","line":219,"range":{"start_line":219,"start_character":52,"end_line":219,"end_character":53},"in_reply_to":"7faddb67_483d51c2","updated":"2019-07-16 08:48:49.000000000","message":"Done","commit_id":"744f7e7960b9706ab52883bc03bf7bd8d31d10dd"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":3958,"context_line":""},{"line_number":3959,"context_line":""},{"line_number":3960,"context_line":"@handle_db_data_error"},{"line_number":3961,"context_line":"@require_admin_context"},{"line_number":3962,"context_line":"def _type_update(context, type_id, values, is_group):"},{"line_number":3963,"context_line":"    if is_group:"},{"line_number":3964,"context_line":"        model \u003d models.ShareGroupTypes"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_6d38149f","line":3961,"range":{"start_line":3961,"start_character":0,"end_line":3961,"end_character":22},"updated":"2019-08-06 21:16:50.000000000","message":"Don\u0027t need this - the API should be protected with RBAC policy, we can\u0027t use hard coded policy checks here - hard-coding will defeat the policy mechanism enforced in the API","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"63d19528f0e83978b49c984d0eef528883d82fa0","unresolved":false,"context_lines":[{"line_number":3958,"context_line":""},{"line_number":3959,"context_line":""},{"line_number":3960,"context_line":"@handle_db_data_error"},{"line_number":3961,"context_line":"@require_admin_context"},{"line_number":3962,"context_line":"def _type_update(context, type_id, values, is_group):"},{"line_number":3963,"context_line":"    if is_group:"},{"line_number":3964,"context_line":"        model \u003d models.ShareGroupTypes"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_89e3fd34","line":3961,"range":{"start_line":3961,"start_character":0,"end_line":3961,"end_character":22},"in_reply_to":"7faddb67_6d38149f","updated":"2019-08-07 11:08:28.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":3981,"context_line":"        if values[\u0027name\u0027] is None:"},{"line_number":3982,"context_line":"            del values[\u0027name\u0027]"},{"line_number":3983,"context_line":"        else:"},{"line_number":3984,"context_line":"            # Group type name is unique. If change to a name that belongs to"},{"line_number":3985,"context_line":"            # a different group_type, it should be prevented."},{"line_number":3986,"context_line":"            conditions \u003d and_(model.name \u003d\u003d values[\u0027name\u0027],"},{"line_number":3987,"context_line":"                              model.id !\u003d type_id, ~model.deleted)"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_8d3b109a","line":3984,"range":{"start_line":3984,"start_character":14,"end_line":3984,"end_character":19},"updated":"2019-08-06 21:16:50.000000000","message":"delete \"Group\", makes sense to share types too","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"63d19528f0e83978b49c984d0eef528883d82fa0","unresolved":false,"context_lines":[{"line_number":3981,"context_line":"        if values[\u0027name\u0027] is None:"},{"line_number":3982,"context_line":"            del values[\u0027name\u0027]"},{"line_number":3983,"context_line":"        else:"},{"line_number":3984,"context_line":"            # Group type name is unique. If change to a name that belongs to"},{"line_number":3985,"context_line":"            # a different group_type, it should be prevented."},{"line_number":3986,"context_line":"            conditions \u003d and_(model.name \u003d\u003d values[\u0027name\u0027],"},{"line_number":3987,"context_line":"                              model.id !\u003d type_id, ~model.deleted)"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_69d48148","line":3984,"range":{"start_line":3984,"start_character":14,"end_line":3984,"end_character":19},"in_reply_to":"7faddb67_8d3b109a","updated":"2019-08-07 11:08:28.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":3982,"context_line":"            del values[\u0027name\u0027]"},{"line_number":3983,"context_line":"        else:"},{"line_number":3984,"context_line":"            # Group type name is unique. If change to a name that belongs to"},{"line_number":3985,"context_line":"            # a different group_type, it should be prevented."},{"line_number":3986,"context_line":"            conditions \u003d and_(model.name \u003d\u003d values[\u0027name\u0027],"},{"line_number":3987,"context_line":"                              model.id !\u003d type_id, ~model.deleted)"},{"line_number":3988,"context_line":"            query \u003d session.query(sql.exists().where(conditions))"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_8d09d0dd","line":3985,"range":{"start_line":3985,"start_character":26,"end_line":3985,"end_character":36},"updated":"2019-08-06 21:16:50.000000000","message":"type","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"63d19528f0e83978b49c984d0eef528883d82fa0","unresolved":false,"context_lines":[{"line_number":3982,"context_line":"            del values[\u0027name\u0027]"},{"line_number":3983,"context_line":"        else:"},{"line_number":3984,"context_line":"            # Group type name is unique. If change to a name that belongs to"},{"line_number":3985,"context_line":"            # a different group_type, it should be prevented."},{"line_number":3986,"context_line":"            conditions \u003d and_(model.name \u003d\u003d values[\u0027name\u0027],"},{"line_number":3987,"context_line":"                              model.id !\u003d type_id, ~model.deleted)"},{"line_number":3988,"context_line":"            query \u003d session.query(sql.exists().where(conditions))"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_09c94dab","line":3985,"range":{"start_line":3985,"start_character":26,"end_line":3985,"end_character":36},"in_reply_to":"7faddb67_8d09d0dd","updated":"2019-08-07 11:08:28.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":23950,"name":"Eric Xie","email":"eric_xiett@163.com","username":"ericxie"},"change_message_id":"4e59b1b9817b30395877ac7a3f0e8e72c13489ac","unresolved":false,"context_lines":[{"line_number":3994,"context_line":"            if is_group:"},{"line_number":3995,"context_line":"                raise exception.ShareGroupTypeNotFound(group_type_id\u003dtype_id)"},{"line_number":3996,"context_line":"            else:"},{"line_number":3997,"context_line":"                raise exception.ShareTypeNotFound(volume_type_id\u003dtype_id)"},{"line_number":3998,"context_line":""},{"line_number":3999,"context_line":""},{"line_number":4000,"context_line":"def share_type_update(context, share_type_id, values):"}],"source_content_type":"text/x-python","patch_set":15,"id":"7faddb67_6867d426","line":3997,"range":{"start_line":3997,"start_character":50,"end_line":3997,"end_character":64},"updated":"2019-08-20 00:21:48.000000000","message":"Should be share_type_id?","commit_id":"4f7bfb6428b03f5f7c64660d07df600a529b405f"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"00973fe2cef5882afc10de14dfa48512c2318a64","unresolved":false,"context_lines":[{"line_number":3994,"context_line":"            if is_group:"},{"line_number":3995,"context_line":"                raise exception.ShareGroupTypeNotFound(group_type_id\u003dtype_id)"},{"line_number":3996,"context_line":"            else:"},{"line_number":3997,"context_line":"                raise exception.ShareTypeNotFound(volume_type_id\u003dtype_id)"},{"line_number":3998,"context_line":""},{"line_number":3999,"context_line":""},{"line_number":4000,"context_line":"def share_type_update(context, share_type_id, values):"}],"source_content_type":"text/x-python","patch_set":15,"id":"7faddb67_9bbdbcb2","line":3997,"range":{"start_line":3997,"start_character":50,"end_line":3997,"end_character":64},"in_reply_to":"7faddb67_6867d426","updated":"2019-08-20 02:22:24.000000000","message":"yes,should be share_type_id.","commit_id":"4f7bfb6428b03f5f7c64660d07df600a529b405f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"4bac90ed44aa2fd34981c1e84647a6182f1ad1db","unresolved":false,"context_lines":[{"line_number":3968,"context_line":""},{"line_number":3969,"context_line":"    session \u003d get_session()"},{"line_number":3970,"context_line":"    with session.begin():"},{"line_number":3971,"context_line":"        # No description change"},{"line_number":3972,"context_line":"        if values[\u0027description\u0027] is None:"},{"line_number":3973,"context_line":"            del values[\u0027description\u0027]"},{"line_number":3974,"context_line":""},{"line_number":3975,"context_line":"        # No is_public change"},{"line_number":3976,"context_line":"        if values[\u0027is_public\u0027] is None:"},{"line_number":3977,"context_line":"            del values[\u0027is_public\u0027]"},{"line_number":3978,"context_line":""},{"line_number":3979,"context_line":"        # No name change"},{"line_number":3980,"context_line":"        if values[\u0027name\u0027] is None:"},{"line_number":3981,"context_line":"            del values[\u0027name\u0027]"},{"line_number":3982,"context_line":"        else:"},{"line_number":3983,"context_line":"            # type name is unique. If change to a name that belongs to"},{"line_number":3984,"context_line":"            # a different type, it should be prevented."}],"source_content_type":"text/x-python","patch_set":16,"id":"7faddb67_7f5bec84","line":3981,"range":{"start_line":3971,"start_character":0,"end_line":3981,"end_character":30},"updated":"2019-08-21 11:58:56.000000000","message":"IIRC you don\u0027t need to remove a value if it is None. The engine will automatically ignore it. Could you please test it?\nIf it is correct, you will only need to have the below else statement. And it will become something like:\nif values[\u0027name\u0027] is not None:","commit_id":"3ae85093ff5e3de94b508fe2c5e751ecd6b5b3a6"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"9abfabd8e714d1690f3c4d945af1e6d96a61feda","unresolved":false,"context_lines":[{"line_number":3968,"context_line":""},{"line_number":3969,"context_line":"    session \u003d get_session()"},{"line_number":3970,"context_line":"    with session.begin():"},{"line_number":3971,"context_line":"        # No description change"},{"line_number":3972,"context_line":"        if values[\u0027description\u0027] is None:"},{"line_number":3973,"context_line":"            del values[\u0027description\u0027]"},{"line_number":3974,"context_line":""},{"line_number":3975,"context_line":"        # No is_public change"},{"line_number":3976,"context_line":"        if values[\u0027is_public\u0027] is None:"},{"line_number":3977,"context_line":"            del values[\u0027is_public\u0027]"},{"line_number":3978,"context_line":""},{"line_number":3979,"context_line":"        # No name change"},{"line_number":3980,"context_line":"        if values[\u0027name\u0027] is None:"},{"line_number":3981,"context_line":"            del values[\u0027name\u0027]"},{"line_number":3982,"context_line":"        else:"},{"line_number":3983,"context_line":"            # type name is unique. If change to a name that belongs to"},{"line_number":3984,"context_line":"            # a different type, it should be prevented."}],"source_content_type":"text/x-python","patch_set":16,"id":"7faddb67_4d343849","line":3981,"range":{"start_line":3971,"start_character":0,"end_line":3981,"end_character":30},"in_reply_to":"7faddb67_026ffb5f","updated":"2019-08-22 05:38:00.000000000","message":"https://review.opendev.org/#/c/669651/16/manila/share/share_types.py@77. the values is a dict contain name description and is_public.so we must check here.","commit_id":"3ae85093ff5e3de94b508fe2c5e751ecd6b5b3a6"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"9abfabd8e714d1690f3c4d945af1e6d96a61feda","unresolved":false,"context_lines":[{"line_number":3968,"context_line":""},{"line_number":3969,"context_line":"    session \u003d get_session()"},{"line_number":3970,"context_line":"    with session.begin():"},{"line_number":3971,"context_line":"        # No description change"},{"line_number":3972,"context_line":"        if values[\u0027description\u0027] is None:"},{"line_number":3973,"context_line":"            del values[\u0027description\u0027]"},{"line_number":3974,"context_line":""},{"line_number":3975,"context_line":"        # No is_public change"},{"line_number":3976,"context_line":"        if values[\u0027is_public\u0027] is None:"},{"line_number":3977,"context_line":"            del values[\u0027is_public\u0027]"},{"line_number":3978,"context_line":""},{"line_number":3979,"context_line":"        # No name change"},{"line_number":3980,"context_line":"        if values[\u0027name\u0027] is None:"},{"line_number":3981,"context_line":"            del values[\u0027name\u0027]"},{"line_number":3982,"context_line":"        else:"},{"line_number":3983,"context_line":"            # type name is unique. If change to a name that belongs to"},{"line_number":3984,"context_line":"            # a different type, it should be prevented."}],"source_content_type":"text/x-python","patch_set":16,"id":"7faddb67_ed3e4427","line":3981,"range":{"start_line":3971,"start_character":0,"end_line":3981,"end_character":30},"in_reply_to":"7faddb67_7f5bec84","updated":"2019-08-22 05:38:00.000000000","message":"Done","commit_id":"3ae85093ff5e3de94b508fe2c5e751ecd6b5b3a6"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"ab841c1b1de770ae18c0ba1de8c02d444f044326","unresolved":false,"context_lines":[{"line_number":3968,"context_line":""},{"line_number":3969,"context_line":"    session \u003d get_session()"},{"line_number":3970,"context_line":"    with session.begin():"},{"line_number":3971,"context_line":"        # No description change"},{"line_number":3972,"context_line":"        if values[\u0027description\u0027] is None:"},{"line_number":3973,"context_line":"            del values[\u0027description\u0027]"},{"line_number":3974,"context_line":""},{"line_number":3975,"context_line":"        # No is_public change"},{"line_number":3976,"context_line":"        if values[\u0027is_public\u0027] is None:"},{"line_number":3977,"context_line":"            del values[\u0027is_public\u0027]"},{"line_number":3978,"context_line":""},{"line_number":3979,"context_line":"        # No name change"},{"line_number":3980,"context_line":"        if values[\u0027name\u0027] is None:"},{"line_number":3981,"context_line":"            del values[\u0027name\u0027]"},{"line_number":3982,"context_line":"        else:"},{"line_number":3983,"context_line":"            # type name is unique. If change to a name that belongs to"},{"line_number":3984,"context_line":"            # a different type, it should be prevented."}],"source_content_type":"text/x-python","patch_set":16,"id":"7faddb67_026ffb5f","line":3981,"range":{"start_line":3971,"start_character":0,"end_line":3981,"end_character":30},"in_reply_to":"7faddb67_7f5bec84","updated":"2019-08-21 12:35:49.000000000","message":"Looking again, I\u0027m a bit unsure about my above comment since you are updating the values and there are cases where some of this values can be None. I think my comment does not apply to your scenario.","commit_id":"3ae85093ff5e3de94b508fe2c5e751ecd6b5b3a6"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"187c95030c0b7b4bab793626bea18075eebbc9d1","unresolved":false,"context_lines":[{"line_number":3968,"context_line":""},{"line_number":3969,"context_line":"    session \u003d get_session()"},{"line_number":3970,"context_line":"    with session.begin():"},{"line_number":3971,"context_line":"        # No description change"},{"line_number":3972,"context_line":"        if values[\u0027description\u0027] is None:"},{"line_number":3973,"context_line":"            del values[\u0027description\u0027]"},{"line_number":3974,"context_line":""},{"line_number":3975,"context_line":"        # No is_public change"},{"line_number":3976,"context_line":"        if values[\u0027is_public\u0027] is None:"},{"line_number":3977,"context_line":"            del values[\u0027is_public\u0027]"},{"line_number":3978,"context_line":""},{"line_number":3979,"context_line":"        # No name change"},{"line_number":3980,"context_line":"        if values[\u0027name\u0027] is None:"},{"line_number":3981,"context_line":"            del values[\u0027name\u0027]"},{"line_number":3982,"context_line":"        else:"},{"line_number":3983,"context_line":"            # type name is unique. If change to a name that belongs to"},{"line_number":3984,"context_line":"            # a different type, it should be prevented."},{"line_number":3985,"context_line":"            conditions \u003d and_(model.name \u003d\u003d values[\u0027name\u0027],"},{"line_number":3986,"context_line":"                              model.id !\u003d type_id, ~model.deleted)"},{"line_number":3987,"context_line":"            query \u003d session.query(sql.exists().where(conditions))"},{"line_number":3988,"context_line":"            if query.scalar():"},{"line_number":3989,"context_line":"                raise exists_exc(id\u003dvalues[\u0027name\u0027])"},{"line_number":3990,"context_line":""},{"line_number":3991,"context_line":"        query \u003d model_query(context, model, project_only\u003dTrue, session\u003dsession)"},{"line_number":3992,"context_line":"        result \u003d query.filter_by(id\u003dtype_id).update(values)"}],"source_content_type":"text/x-python","patch_set":17,"id":"7faddb67_afa4b94c","line":3989,"range":{"start_line":3971,"start_character":8,"end_line":3989,"end_character":51},"updated":"2019-08-22 12:55:41.000000000","message":"Another quick question I tought after commenting yestarday is: is there any specific reason that caused you to add this field validation here? My question motive is that mostly the validations are done in the API layer, what makes the database layer have almost no complexity.","commit_id":"375871fd9b1752a5cb1a4aa7c51ec4ab1217c073"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"651da16e65cc1f98abcf922f54fb397e4b490faf","unresolved":false,"context_lines":[{"line_number":3968,"context_line":""},{"line_number":3969,"context_line":"    session \u003d get_session()"},{"line_number":3970,"context_line":"    with session.begin():"},{"line_number":3971,"context_line":"        # No description change"},{"line_number":3972,"context_line":"        if values[\u0027description\u0027] is None:"},{"line_number":3973,"context_line":"            del values[\u0027description\u0027]"},{"line_number":3974,"context_line":""},{"line_number":3975,"context_line":"        # No is_public change"},{"line_number":3976,"context_line":"        if values[\u0027is_public\u0027] is None:"},{"line_number":3977,"context_line":"            del values[\u0027is_public\u0027]"},{"line_number":3978,"context_line":""},{"line_number":3979,"context_line":"        # No name change"},{"line_number":3980,"context_line":"        if values[\u0027name\u0027] is None:"},{"line_number":3981,"context_line":"            del values[\u0027name\u0027]"},{"line_number":3982,"context_line":"        else:"},{"line_number":3983,"context_line":"            # type name is unique. If change to a name that belongs to"},{"line_number":3984,"context_line":"            # a different type, it should be prevented."},{"line_number":3985,"context_line":"            conditions \u003d and_(model.name \u003d\u003d values[\u0027name\u0027],"},{"line_number":3986,"context_line":"                              model.id !\u003d type_id, ~model.deleted)"},{"line_number":3987,"context_line":"            query \u003d session.query(sql.exists().where(conditions))"},{"line_number":3988,"context_line":"            if query.scalar():"},{"line_number":3989,"context_line":"                raise exists_exc(id\u003dvalues[\u0027name\u0027])"},{"line_number":3990,"context_line":""},{"line_number":3991,"context_line":"        query \u003d model_query(context, model, project_only\u003dTrue, session\u003dsession)"},{"line_number":3992,"context_line":"        result \u003d query.filter_by(id\u003dtype_id).update(values)"}],"source_content_type":"text/x-python","patch_set":17,"id":"7faddb67_f5060222","line":3989,"range":{"start_line":3971,"start_character":8,"end_line":3989,"end_character":51},"in_reply_to":"7faddb67_afa4b94c","updated":"2019-08-22 14:36:23.000000000","message":"Agree with Carlos, all validation should be made on API layer and the db layer should receive the dict only with the info that will be updated.","commit_id":"375871fd9b1752a5cb1a4aa7c51ec4ab1217c073"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"2822d4e1848e0fa7996791dba85db14fb7ce8bb7","unresolved":false,"context_lines":[{"line_number":3968,"context_line":""},{"line_number":3969,"context_line":"    session \u003d get_session()"},{"line_number":3970,"context_line":"    with session.begin():"},{"line_number":3971,"context_line":"        # No description change"},{"line_number":3972,"context_line":"        if values[\u0027description\u0027] is None:"},{"line_number":3973,"context_line":"            del values[\u0027description\u0027]"},{"line_number":3974,"context_line":""},{"line_number":3975,"context_line":"        # No is_public change"},{"line_number":3976,"context_line":"        if values[\u0027is_public\u0027] is None:"},{"line_number":3977,"context_line":"            del values[\u0027is_public\u0027]"},{"line_number":3978,"context_line":""},{"line_number":3979,"context_line":"        # No name change"},{"line_number":3980,"context_line":"        if values[\u0027name\u0027] is None:"},{"line_number":3981,"context_line":"            del values[\u0027name\u0027]"},{"line_number":3982,"context_line":"        else:"},{"line_number":3983,"context_line":"            # type name is unique. If change to a name that belongs to"},{"line_number":3984,"context_line":"            # a different type, it should be prevented."},{"line_number":3985,"context_line":"            conditions \u003d and_(model.name \u003d\u003d values[\u0027name\u0027],"},{"line_number":3986,"context_line":"                              model.id !\u003d type_id, ~model.deleted)"},{"line_number":3987,"context_line":"            query \u003d session.query(sql.exists().where(conditions))"},{"line_number":3988,"context_line":"            if query.scalar():"},{"line_number":3989,"context_line":"                raise exists_exc(id\u003dvalues[\u0027name\u0027])"},{"line_number":3990,"context_line":""},{"line_number":3991,"context_line":"        query \u003d model_query(context, model, project_only\u003dTrue, session\u003dsession)"},{"line_number":3992,"context_line":"        result \u003d query.filter_by(id\u003dtype_id).update(values)"}],"source_content_type":"text/x-python","patch_set":17,"id":"7faddb67_c303fe0f","line":3989,"range":{"start_line":3971,"start_character":8,"end_line":3989,"end_character":51},"in_reply_to":"7faddb67_f5060222","updated":"2019-08-23 06:37:25.000000000","message":"yeah, in order to make database layer more concise, i have move validation to up layer(https://review.opendev.org/#/c/669651/17/manila/share/share_types.py@73). here we just check the new share type name is unique.","commit_id":"375871fd9b1752a5cb1a4aa7c51ec4ab1217c073"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"0592666c569b1c07a25d045a8b73b4220483e6f5","unresolved":false,"context_lines":[{"line_number":3958,"context_line":""},{"line_number":3959,"context_line":""},{"line_number":3960,"context_line":"@handle_db_data_error"},{"line_number":3961,"context_line":"def _type_update(context, type_id, values, is_group):"},{"line_number":3962,"context_line":"    if is_group:"},{"line_number":3963,"context_line":"        model \u003d models.ShareGroupTypes"},{"line_number":3964,"context_line":"        exists_exc \u003d exception.ShareGroupTypeExists"}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_c3f20e07","line":3961,"range":{"start_line":3961,"start_character":0,"end_line":3961,"end_character":53},"updated":"2019-09-08 18:10:19.000000000","message":"This method is not covered by unit tests: https://storage.gra1.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_081/669651/21/check/openstack-tox-cover/0811a83/cover/manila_db_sqlalchemy_api_py.html\n\nCan you please add some here: https://github.com/openstack/manila/blob/master/manila/tests/db/sqlalchemy/test_api.py","commit_id":"d76e269f98d91447730a4c1653dd9f5c8546127d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"0592666c569b1c07a25d045a8b73b4220483e6f5","unresolved":false,"context_lines":[{"line_number":3958,"context_line":""},{"line_number":3959,"context_line":""},{"line_number":3960,"context_line":"@handle_db_data_error"},{"line_number":3961,"context_line":"def _type_update(context, type_id, values, is_group):"},{"line_number":3962,"context_line":"    if is_group:"},{"line_number":3963,"context_line":"        model \u003d models.ShareGroupTypes"},{"line_number":3964,"context_line":"        exists_exc \u003d exception.ShareGroupTypeExists"}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_c3568e07","line":3961,"range":{"start_line":3961,"start_character":0,"end_line":3961,"end_character":53},"updated":"2019-09-08 18:10:19.000000000","message":"Usually, for update methods, we add a retry decorator - to handle the rare cases where the object may be locked for update:\n\nYou could add this as after the @handle_db_data_error decorator\n\n@oslo_db_api.wrap_db_retry(max_retries\u003d5, retry_on_deadlock\u003dTrue)","commit_id":"d76e269f98d91447730a4c1653dd9f5c8546127d"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"fa341c6ce1242ddbcac25d02a8f60fe847bc4365","unresolved":false,"context_lines":[{"line_number":3958,"context_line":""},{"line_number":3959,"context_line":""},{"line_number":3960,"context_line":"@handle_db_data_error"},{"line_number":3961,"context_line":"def _type_update(context, type_id, values, is_group):"},{"line_number":3962,"context_line":"    if is_group:"},{"line_number":3963,"context_line":"        model \u003d models.ShareGroupTypes"},{"line_number":3964,"context_line":"        exists_exc \u003d exception.ShareGroupTypeExists"}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_be6cc908","line":3961,"range":{"start_line":3961,"start_character":0,"end_line":3961,"end_character":53},"in_reply_to":"5faad753_c3568e07","updated":"2019-09-09 11:23:31.000000000","message":"Done","commit_id":"d76e269f98d91447730a4c1653dd9f5c8546127d"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"fa341c6ce1242ddbcac25d02a8f60fe847bc4365","unresolved":false,"context_lines":[{"line_number":3958,"context_line":""},{"line_number":3959,"context_line":""},{"line_number":3960,"context_line":"@handle_db_data_error"},{"line_number":3961,"context_line":"def _type_update(context, type_id, values, is_group):"},{"line_number":3962,"context_line":"    if is_group:"},{"line_number":3963,"context_line":"        model \u003d models.ShareGroupTypes"},{"line_number":3964,"context_line":"        exists_exc \u003d exception.ShareGroupTypeExists"}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_121b911b","line":3961,"range":{"start_line":3961,"start_character":0,"end_line":3961,"end_character":53},"in_reply_to":"5faad753_c3f20e07","updated":"2019-09-09 11:23:31.000000000","message":"i have added tests about it.","commit_id":"d76e269f98d91447730a4c1653dd9f5c8546127d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"0592666c569b1c07a25d045a8b73b4220483e6f5","unresolved":false,"context_lines":[{"line_number":3983,"context_line":"        result \u003d query.filter_by(id\u003dtype_id).update(values)"},{"line_number":3984,"context_line":"        if not result:"},{"line_number":3985,"context_line":"            if is_group:"},{"line_number":3986,"context_line":"                raise exception.ShareGroupTypeNotFound(group_type_id\u003dtype_id)"},{"line_number":3987,"context_line":"            else:"},{"line_number":3988,"context_line":"                raise exception.ShareTypeNotFound(share_type_id\u003dtype_id)"},{"line_number":3989,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_a394b28c","line":3986,"range":{"start_line":3986,"start_character":55,"end_line":3986,"end_character":68},"updated":"2019-09-08 18:10:19.000000000","message":"The expected kwarg here is \"type_id\" -\u003e this should have failed a unit test: https://github.com/openstack/manila/blob/da69392d308e00b8d684e125306866823b605255/manila/exception.py#L610","commit_id":"d76e269f98d91447730a4c1653dd9f5c8546127d"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"fa341c6ce1242ddbcac25d02a8f60fe847bc4365","unresolved":false,"context_lines":[{"line_number":3983,"context_line":"        result \u003d query.filter_by(id\u003dtype_id).update(values)"},{"line_number":3984,"context_line":"        if not result:"},{"line_number":3985,"context_line":"            if is_group:"},{"line_number":3986,"context_line":"                raise exception.ShareGroupTypeNotFound(group_type_id\u003dtype_id)"},{"line_number":3987,"context_line":"            else:"},{"line_number":3988,"context_line":"                raise exception.ShareTypeNotFound(share_type_id\u003dtype_id)"},{"line_number":3989,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_35d797f0","line":3986,"range":{"start_line":3986,"start_character":55,"end_line":3986,"end_character":68},"in_reply_to":"5faad753_a394b28c","updated":"2019-09-09 11:23:31.000000000","message":"Done","commit_id":"d76e269f98d91447730a4c1653dd9f5c8546127d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ef0987f820026ab0161bc58d66fab1cff7b49d38","unresolved":false,"context_lines":[{"line_number":3975,"context_line":"            # type name is unique. If change to a name that belongs to"},{"line_number":3976,"context_line":"            # a different type, it should be prevented."},{"line_number":3977,"context_line":"            conditions \u003d and_(model.name \u003d\u003d values[\u0027name\u0027],"},{"line_number":3978,"context_line":"                              model.id !\u003d type_id, ~model.deleted)"},{"line_number":3979,"context_line":"            query \u003d session.query(sql.exists().where(conditions))"},{"line_number":3980,"context_line":"            if query.scalar():"},{"line_number":3981,"context_line":"                raise exists_exc(id\u003dvalues[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":24,"id":"5faad753_0ddb59ed","line":3978,"range":{"start_line":3978,"start_character":51,"end_line":3978,"end_character":65},"updated":"2019-09-10 04:06:14.000000000","message":"I get an error here - models in Manila\u0027s database do not have a boolean \"deleted\" column - the columns are strings so, you have to set this to \n\n   model.deleted !\u003d \"False\"\n\n\n\nError traceback: http://paste.openstack.org/show/774664/","commit_id":"13e103acc49df52f1138e6f5d4c325e5132de2af"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ef0987f820026ab0161bc58d66fab1cff7b49d38","unresolved":false,"context_lines":[{"line_number":3975,"context_line":"            # type name is unique. If change to a name that belongs to"},{"line_number":3976,"context_line":"            # a different type, it should be prevented."},{"line_number":3977,"context_line":"            conditions \u003d and_(model.name \u003d\u003d values[\u0027name\u0027],"},{"line_number":3978,"context_line":"                              model.id !\u003d type_id, ~model.deleted)"},{"line_number":3979,"context_line":"            query \u003d session.query(sql.exists().where(conditions))"},{"line_number":3980,"context_line":"            if query.scalar():"},{"line_number":3981,"context_line":"                raise exists_exc(id\u003dvalues[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":24,"id":"5faad753_8dbe6963","line":3978,"range":{"start_line":3978,"start_character":65,"end_line":3978,"end_character":66},"updated":"2019-09-10 04:06:14.000000000","message":"Interestingly this mismatch is found only when using Postgres database I guess, since we\u0027ve been testing your code on mysql, we didn\u0027t find this issue..","commit_id":"13e103acc49df52f1138e6f5d4c325e5132de2af"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"c40646e176cd8adf7fcae2a2961a1a6871e0a5c3","unresolved":false,"context_lines":[{"line_number":3975,"context_line":"            # type name is unique. If change to a name that belongs to"},{"line_number":3976,"context_line":"            # a different type, it should be prevented."},{"line_number":3977,"context_line":"            conditions \u003d and_(model.name \u003d\u003d values[\u0027name\u0027],"},{"line_number":3978,"context_line":"                              model.id !\u003d type_id, ~model.deleted)"},{"line_number":3979,"context_line":"            query \u003d session.query(sql.exists().where(conditions))"},{"line_number":3980,"context_line":"            if query.scalar():"},{"line_number":3981,"context_line":"                raise exists_exc(id\u003dvalues[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":24,"id":"5faad753_e191269b","line":3978,"range":{"start_line":3978,"start_character":65,"end_line":3978,"end_character":66},"in_reply_to":"5faad753_30722ee5","updated":"2019-09-10 07:59:20.000000000","message":"if i change ~model.deleted to model.deleted !\u003d \"False\".it will lead to unit test failed.\nhttps://ce298eee25173aa90c34-ca4b089b4b338eb03b97f6a00e3061e2.ssl.cf2.rackcdn.com/669651/25/check/openstack-tox-py27/49413f1/job-output.txt","commit_id":"13e103acc49df52f1138e6f5d4c325e5132de2af"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"4f5dc75710c928787d4fe6c746a627921d150dd2","unresolved":false,"context_lines":[{"line_number":3975,"context_line":"            # type name is unique. If change to a name that belongs to"},{"line_number":3976,"context_line":"            # a different type, it should be prevented."},{"line_number":3977,"context_line":"            conditions \u003d and_(model.name \u003d\u003d values[\u0027name\u0027],"},{"line_number":3978,"context_line":"                              model.id !\u003d type_id, ~model.deleted)"},{"line_number":3979,"context_line":"            query \u003d session.query(sql.exists().where(conditions))"},{"line_number":3980,"context_line":"            if query.scalar():"},{"line_number":3981,"context_line":"                raise exists_exc(id\u003dvalues[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":24,"id":"5faad753_30722ee5","line":3978,"range":{"start_line":3978,"start_character":65,"end_line":3978,"end_character":66},"in_reply_to":"5faad753_8dbe6963","updated":"2019-09-10 05:39:00.000000000","message":"i also use mysql, thank you for find this.","commit_id":"13e103acc49df52f1138e6f5d4c325e5132de2af"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"173cf543e5c53fb1b13d3b1df72d9e6b5803c99b","unresolved":false,"context_lines":[{"line_number":3975,"context_line":"            # type name is unique. If change to a name that belongs to"},{"line_number":3976,"context_line":"            # a different type, it should be prevented."},{"line_number":3977,"context_line":"            conditions \u003d and_(model.name \u003d\u003d values[\u0027name\u0027],"},{"line_number":3978,"context_line":"                              model.id !\u003d type_id, model.deleted !\u003d \"False\")"},{"line_number":3979,"context_line":"            query \u003d session.query(sql.exists().where(conditions))"},{"line_number":3980,"context_line":"            if query.scalar():"},{"line_number":3981,"context_line":"                raise exists_exc(id\u003dvalues[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":26,"id":"5faad753_f94f9aba","line":3978,"updated":"2019-09-10 12:38:06.000000000","message":"i get that error again,\nhttps://9c10c9171bbf6c241ae5-63329dcd236a98c48b3784d0d458e269.ssl.cf1.rackcdn.com/669651/26/check/openstack-tox-py27/a4a4277/testr_results.html.gz\ni try to roolback it, i guess mysql and Postgres database can\u0027t not be both satisfied.i will create a manila bug about it to follow-up it,and resolve it.","commit_id":"9b998fa8b1080cdcd7f3c9d126cc72ce74384d03"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"7b58201a10c6528d455b29116eff957283a4ff62","unresolved":false,"context_lines":[{"line_number":3975,"context_line":"            # type name is unique. If change to a name that belongs to"},{"line_number":3976,"context_line":"            # a different type, it should be prevented."},{"line_number":3977,"context_line":"            conditions \u003d and_(model.name \u003d\u003d values[\u0027name\u0027],"},{"line_number":3978,"context_line":"                              model.id !\u003d type_id, model.deleted !\u003d \"False\")"},{"line_number":3979,"context_line":"            query \u003d session.query(sql.exists().where(conditions))"},{"line_number":3980,"context_line":"            if query.scalar():"},{"line_number":3981,"context_line":"                raise exists_exc(id\u003dvalues[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":26,"id":"5faad753_30e0d8fa","line":3978,"in_reply_to":"5faad753_2a738e4f","updated":"2019-09-10 20:24:19.000000000","message":"Hmmm, that\u0027s weird - so I just did some digging, this code probably makes sense to cinder, but it doesn\u0027t make sense to manila \n\nIn manila, we have a uniqueness constraint for (name, deleted) for both Share Types and Share Group Types [1][2][3][4]. So this lookup isn\u0027t necessary at all, the database will throw an error in case there is a constraint issue. \n\nThe uniqueness constraint for some reason doesn\u0027t work on sqlite which we use in our unit tests on the CI/gate. We can open a bug for that and do the right thing here... \n\n[1] https://opendev.org/openstack/manila/src/branch/master/manila/db/migrations/alembic/versions/162a3e673105_manila_init.py#L367\n[2] https://opendev.org/openstack/manila/src/branch/master/manila/db/migrations/alembic/versions/38e632621e5a_change_volume_type_to_share_type.py#L47\n[3]  https://opendev.org/openstack/manila/src/commit/f1e10ec2ff44445a7a6e10eba3f270e1dbd3a889/manila/db/migrations/alembic/versions/e1949a93157a_add_share_group_types_table.py#L49-L51\n[4] https://opendev.org/openstack/manila/src/commit/f1e10ec2ff44445a7a6e10eba3f270e1dbd3a889/manila/db/sqlalchemy/models.py#L1068-L1070","commit_id":"9b998fa8b1080cdcd7f3c9d126cc72ce74384d03"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"bc9feda3e6d2c0cf62baf26f7b5bd68b15ba3fff","unresolved":false,"context_lines":[{"line_number":3975,"context_line":"            # type name is unique. If change to a name that belongs to"},{"line_number":3976,"context_line":"            # a different type, it should be prevented."},{"line_number":3977,"context_line":"            conditions \u003d and_(model.name \u003d\u003d values[\u0027name\u0027],"},{"line_number":3978,"context_line":"                              model.id !\u003d type_id, model.deleted !\u003d \"False\")"},{"line_number":3979,"context_line":"            query \u003d session.query(sql.exists().where(conditions))"},{"line_number":3980,"context_line":"            if query.scalar():"},{"line_number":3981,"context_line":"                raise exists_exc(id\u003dvalues[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":26,"id":"5faad753_2a738e4f","line":3978,"in_reply_to":"5faad753_f94f9aba","updated":"2019-09-10 13:31:53.000000000","message":"the manila bug is:\nhttps://bugs.launchpad.net/manila/+bug/1843436","commit_id":"9b998fa8b1080cdcd7f3c9d126cc72ce74384d03"}],"manila/share/share_types.py":[{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"53c2d9e095229c01ada5ec10e3c7a53b1b9ddf23","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"def update(context, id, name, description, is_public\u003dNone):"},{"line_number":74,"context_line":"    \"\"\"Update share type by id.\"\"\""},{"line_number":75,"context_line":"    if id is None:"},{"line_number":76,"context_line":"        msg \u003d _(\"id cannot be None\")"},{"line_number":77,"context_line":"        raise exception.InvalidShareType(reason\u003dmsg)"},{"line_number":78,"context_line":"    elevated \u003d context if context.is_admin else context.elevated()"},{"line_number":79,"context_line":"    try:"},{"line_number":80,"context_line":"        db.share_type_update(elevated, id,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_c885c15b","line":77,"range":{"start_line":75,"start_character":0,"end_line":77,"end_character":52},"updated":"2019-07-16 08:03:22.000000000","message":"This judgement is redunant, if the id is None, that request will be raised a 404.","commit_id":"744f7e7960b9706ab52883bc03bf7bd8d31d10dd"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e8bc187def5dfd36958dd6f068c226543f02be5b","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"def update(context, id, name, description, is_public\u003dNone):"},{"line_number":74,"context_line":"    \"\"\"Update share type by id.\"\"\""},{"line_number":75,"context_line":"    if id is None:"},{"line_number":76,"context_line":"        msg \u003d _(\"id cannot be None\")"},{"line_number":77,"context_line":"        raise exception.InvalidShareType(reason\u003dmsg)"},{"line_number":78,"context_line":"    elevated \u003d context if context.is_admin else context.elevated()"},{"line_number":79,"context_line":"    try:"},{"line_number":80,"context_line":"        db.share_type_update(elevated, id,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_117464fd","line":77,"range":{"start_line":75,"start_character":0,"end_line":77,"end_character":52},"in_reply_to":"7faddb67_c885c15b","updated":"2019-07-16 08:48:49.000000000","message":"Done","commit_id":"744f7e7960b9706ab52883bc03bf7bd8d31d10dd"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"def update(context, id, name, description, is_public\u003dNone):"},{"line_number":74,"context_line":"    \"\"\"Update share type by id.\"\"\""},{"line_number":75,"context_line":"    elevated \u003d context if context.is_admin else context.elevated()"},{"line_number":76,"context_line":"    try:"},{"line_number":77,"context_line":"        db.share_type_update(elevated, id,"},{"line_number":78,"context_line":"                             dict(name\u003dname, description\u003ddescription,"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_8d3230a6","line":75,"range":{"start_line":75,"start_character":4,"end_line":75,"end_character":66},"updated":"2019-08-06 21:16:50.000000000","message":"not necessary, please add RBAC to the API instead as suggested.","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"63d19528f0e83978b49c984d0eef528883d82fa0","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"def update(context, id, name, description, is_public\u003dNone):"},{"line_number":74,"context_line":"    \"\"\"Update share type by id.\"\"\""},{"line_number":75,"context_line":"    elevated \u003d context if context.is_admin else context.elevated()"},{"line_number":76,"context_line":"    try:"},{"line_number":77,"context_line":"        db.share_type_update(elevated, id,"},{"line_number":78,"context_line":"                             dict(name\u003dname, description\u003ddescription,"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_6f3001a0","line":75,"range":{"start_line":75,"start_character":4,"end_line":75,"end_character":66},"in_reply_to":"7faddb67_8d3230a6","updated":"2019-08-07 11:08:28.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":23950,"name":"Eric Xie","email":"eric_xiett@163.com","username":"ericxie"},"change_message_id":"4e59b1b9817b30395877ac7a3f0e8e72c13489ac","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                             dict(name\u003dname, description\u003ddescription,"},{"line_number":78,"context_line":"                                  is_public\u003dis_public))"},{"line_number":79,"context_line":"    except db_exception.DBError:"},{"line_number":80,"context_line":"        LOG.exception(\u0027DB error:\u0027)"},{"line_number":81,"context_line":"        raise exception.ShareTypeUpdateFailed(id\u003did)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"7faddb67_a8514c32","line":80,"range":{"start_line":80,"start_character":8,"end_line":80,"end_character":34},"updated":"2019-08-20 00:21:48.000000000","message":"I think the error should be detailed","commit_id":"4f7bfb6428b03f5f7c64660d07df600a529b405f"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"00973fe2cef5882afc10de14dfa48512c2318a64","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                             dict(name\u003dname, description\u003ddescription,"},{"line_number":78,"context_line":"                                  is_public\u003dis_public))"},{"line_number":79,"context_line":"    except db_exception.DBError:"},{"line_number":80,"context_line":"        LOG.exception(\u0027DB error:\u0027)"},{"line_number":81,"context_line":"        raise exception.ShareTypeUpdateFailed(id\u003did)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"7faddb67_bbfaf871","line":80,"range":{"start_line":80,"start_character":8,"end_line":80,"end_character":34},"in_reply_to":"7faddb67_a8514c32","updated":"2019-08-20 02:22:24.000000000","message":"just like create_share_type,line:59.This is a general term for database errors。","commit_id":"4f7bfb6428b03f5f7c64660d07df600a529b405f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"4b196095a8d11ad41555aabe59eb9e2f5af0a615","unresolved":false,"context_lines":[{"line_number":73,"context_line":"def update(context, id, name, description, is_public\u003dNone):"},{"line_number":74,"context_line":"    \"\"\"Update share type by id.\"\"\""},{"line_number":75,"context_line":"    values \u003d {}"},{"line_number":76,"context_line":"    if name or name \u003d\u003d \"\":"},{"line_number":77,"context_line":"        values.update({\u0027name\u0027: name})"},{"line_number":78,"context_line":"    if description or description \u003d\u003d \"\":"},{"line_number":79,"context_line":"        values.update({\u0027description\u0027: description})"}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_a3c27284","line":76,"range":{"start_line":76,"start_character":15,"end_line":76,"end_character":25},"updated":"2019-09-08 18:17:19.000000000","message":"\"\" isn\u0027t a valid share type name... \nYou shouldn\u0027t allow a share type\u0027s name to be unset! That\u0027d be invalid and break stuff..","commit_id":"d76e269f98d91447730a4c1653dd9f5c8546127d"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"fa341c6ce1242ddbcac25d02a8f60fe847bc4365","unresolved":false,"context_lines":[{"line_number":73,"context_line":"def update(context, id, name, description, is_public\u003dNone):"},{"line_number":74,"context_line":"    \"\"\"Update share type by id.\"\"\""},{"line_number":75,"context_line":"    values \u003d {}"},{"line_number":76,"context_line":"    if name or name \u003d\u003d \"\":"},{"line_number":77,"context_line":"        values.update({\u0027name\u0027: name})"},{"line_number":78,"context_line":"    if description or description \u003d\u003d \"\":"},{"line_number":79,"context_line":"        values.update({\u0027description\u0027: description})"}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_35f0f790","line":76,"range":{"start_line":76,"start_character":15,"end_line":76,"end_character":25},"in_reply_to":"5faad753_a3c27284","updated":"2019-09-09 11:23:31.000000000","message":"Done","commit_id":"d76e269f98d91447730a4c1653dd9f5c8546127d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"4b196095a8d11ad41555aabe59eb9e2f5af0a615","unresolved":false,"context_lines":[{"line_number":75,"context_line":"    values \u003d {}"},{"line_number":76,"context_line":"    if name or name \u003d\u003d \"\":"},{"line_number":77,"context_line":"        values.update({\u0027name\u0027: name})"},{"line_number":78,"context_line":"    if description or description \u003d\u003d \"\":"},{"line_number":79,"context_line":"        values.update({\u0027description\u0027: description})"},{"line_number":80,"context_line":"    if is_public is not None:"},{"line_number":81,"context_line":"        values.update({\u0027is_public\u0027: is_public})"},{"line_number":82,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_43bffefa","line":79,"range":{"start_line":78,"start_character":19,"end_line":79,"end_character":51},"updated":"2019-09-08 18:17:19.000000000","message":"Handle the case of description \u003d \"\" separately... \n\nIf description is \"\", the update needs to make the description \"null\"\n\n   \n  if description \u003d\u003d \"\":\n     values.update({\u0027description\u0027: None})\n  elif description:\n     values.update({\u0027description\u0027: description})","commit_id":"d76e269f98d91447730a4c1653dd9f5c8546127d"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"fa341c6ce1242ddbcac25d02a8f60fe847bc4365","unresolved":false,"context_lines":[{"line_number":75,"context_line":"    values \u003d {}"},{"line_number":76,"context_line":"    if name or name \u003d\u003d \"\":"},{"line_number":77,"context_line":"        values.update({\u0027name\u0027: name})"},{"line_number":78,"context_line":"    if description or description \u003d\u003d \"\":"},{"line_number":79,"context_line":"        values.update({\u0027description\u0027: description})"},{"line_number":80,"context_line":"    if is_public is not None:"},{"line_number":81,"context_line":"        values.update({\u0027is_public\u0027: is_public})"},{"line_number":82,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_d513a3b7","line":79,"range":{"start_line":78,"start_character":19,"end_line":79,"end_character":51},"in_reply_to":"5faad753_43bffefa","updated":"2019-09-09 11:23:31.000000000","message":"Done","commit_id":"d76e269f98d91447730a4c1653dd9f5c8546127d"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"3bbb41072117761b77c8486d3c9bdbaab5cbfa3c","unresolved":false,"context_lines":[{"line_number":75,"context_line":"    values \u003d {}"},{"line_number":76,"context_line":"    if name or name \u003d\u003d \"\":"},{"line_number":77,"context_line":"        values.update({\u0027name\u0027: name})"},{"line_number":78,"context_line":"    if description or description \u003d\u003d \"\":"},{"line_number":79,"context_line":"        values.update({\u0027description\u0027: description})"},{"line_number":80,"context_line":"    if is_public is not None:"},{"line_number":81,"context_line":"        values.update({\u0027is_public\u0027: is_public})"},{"line_number":82,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_bcf35573","line":79,"range":{"start_line":78,"start_character":19,"end_line":79,"end_character":51},"in_reply_to":"5faad753_43bffefa","updated":"2019-09-10 09:28:42.000000000","message":"after i change this, i get an error\nhttps://6b503f0db45c120402d7-f1ca70434eb1a6e0aabfc1f83dc7e0ab.ssl.cf5.rackcdn.com/670750/23/check/manilaclient-dsvm-neutron-functional/4bc0441/testr_results.html.gz\nit means when description is \"\",it write str \u0027None\u0027 to database,i try to rollback it.","commit_id":"d76e269f98d91447730a4c1653dd9f5c8546127d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d5dc4a43de770dfd26b4fcb023ea7fd5e2fdb716","unresolved":false,"context_lines":[{"line_number":75,"context_line":"    values \u003d {}"},{"line_number":76,"context_line":"    if name or name \u003d\u003d \"\":"},{"line_number":77,"context_line":"        values.update({\u0027name\u0027: name})"},{"line_number":78,"context_line":"    if description or description \u003d\u003d \"\":"},{"line_number":79,"context_line":"        values.update({\u0027description\u0027: description})"},{"line_number":80,"context_line":"    if is_public is not None:"},{"line_number":81,"context_line":"        values.update({\u0027is_public\u0027: is_public})"},{"line_number":82,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_70bbb0c3","line":79,"range":{"start_line":78,"start_character":19,"end_line":79,"end_character":51},"in_reply_to":"5faad753_bcf35573","updated":"2019-09-10 20:30:58.000000000","message":"No it doesn\u0027t write a string \u0027None\u0027 to the database - it sets the column to null as we\u0027d expect. The problem you point out is in the client. You\u0027re testing the command line shell client - which uses the SDK to talk to the API, and post processes the result into a valid display format. The code there converts JSON \u0027null\u0027 values to the string \u0027None\u0027 [1]\n\n[1] https://opendev.org/openstack/python-manilaclient/src/commit/e627decb4df947011bad5931c319e464c0294c7c/manilaclient/common/cliutils.py#L183-L186","commit_id":"d76e269f98d91447730a4c1653dd9f5c8546127d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"0592666c569b1c07a25d045a8b73b4220483e6f5","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    return extra_specs"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"def update(context, id, name, description, is_public\u003dNone):"},{"line_number":74,"context_line":"    \"\"\"Update share type by id.\"\"\""},{"line_number":75,"context_line":"    values \u003d {}"},{"line_number":76,"context_line":"    if name or name \u003d\u003d \"\":"},{"line_number":77,"context_line":"        values.update({\u0027name\u0027: name})"},{"line_number":78,"context_line":"    if description or description \u003d\u003d \"\":"},{"line_number":79,"context_line":"        values.update({\u0027description\u0027: description})"},{"line_number":80,"context_line":"    if is_public is not None:"},{"line_number":81,"context_line":"        values.update({\u0027is_public\u0027: is_public})"},{"line_number":82,"context_line":"    try:"},{"line_number":83,"context_line":"        db.share_type_update(context, id, values)"},{"line_number":84,"context_line":"    except db_exception.DBError:"},{"line_number":85,"context_line":"        LOG.exception(\u0027DB error.\u0027)"},{"line_number":86,"context_line":"        raise exception.ShareTypeUpdateFailed(id\u003did)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"def destroy(context, id):"}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_63e31a35","line":86,"range":{"start_line":73,"start_character":0,"end_line":86,"end_character":52},"updated":"2019-09-08 18:10:19.000000000","message":"This method is not covered by unit tests: https://storage.gra1.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_081/669651/21/check/openstack-tox-cover/0811a83/cover/manila_share_share_types_py.html#n73 \n\nCan you add some unit tests here: https://github.com/openstack/manila/blob/master/manila/tests/share/test_share_types.py","commit_id":"d76e269f98d91447730a4c1653dd9f5c8546127d"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"fa341c6ce1242ddbcac25d02a8f60fe847bc4365","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    return extra_specs"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"def update(context, id, name, description, is_public\u003dNone):"},{"line_number":74,"context_line":"    \"\"\"Update share type by id.\"\"\""},{"line_number":75,"context_line":"    values \u003d {}"},{"line_number":76,"context_line":"    if name or name \u003d\u003d \"\":"},{"line_number":77,"context_line":"        values.update({\u0027name\u0027: name})"},{"line_number":78,"context_line":"    if description or description \u003d\u003d \"\":"},{"line_number":79,"context_line":"        values.update({\u0027description\u0027: description})"},{"line_number":80,"context_line":"    if is_public is not None:"},{"line_number":81,"context_line":"        values.update({\u0027is_public\u0027: is_public})"},{"line_number":82,"context_line":"    try:"},{"line_number":83,"context_line":"        db.share_type_update(context, id, values)"},{"line_number":84,"context_line":"    except db_exception.DBError:"},{"line_number":85,"context_line":"        LOG.exception(\u0027DB error.\u0027)"},{"line_number":86,"context_line":"        raise exception.ShareTypeUpdateFailed(id\u003did)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"def destroy(context, id):"}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_487636db","line":86,"range":{"start_line":73,"start_character":0,"end_line":86,"end_character":52},"in_reply_to":"5faad753_63e31a35","updated":"2019-09-09 11:23:31.000000000","message":"have added.","commit_id":"d76e269f98d91447730a4c1653dd9f5c8546127d"}],"manila/tests/api/v2/test_share_types.py":[{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"53c2d9e095229c01ada5ec10e3c7a53b1b9ddf23","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    }"},{"line_number":48,"context_line":"    if id \u003d\u003d 4:"},{"line_number":49,"context_line":"        name \u003d \u0027update_share_type_%s\u0027 % str(id)"},{"line_number":50,"context_line":"        description \u003d \u0027update_description_%s\u0027 % str(id)"},{"line_number":51,"context_line":"    else:"},{"line_number":52,"context_line":"        name \u003d \u0027share_type_%s\u0027 % str(id)"},{"line_number":53,"context_line":"        description \u003d \u0027description_%s\u0027 % str(id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_e656af5c","line":50,"updated":"2019-07-16 08:03:22.000000000","message":"Add  is_public \u003d \u0027update_share_type_access:is_public_%s\u0027 % str(id)","commit_id":"744f7e7960b9706ab52883bc03bf7bd8d31d10dd"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e8bc187def5dfd36958dd6f068c226543f02be5b","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    }"},{"line_number":48,"context_line":"    if id \u003d\u003d 4:"},{"line_number":49,"context_line":"        name \u003d \u0027update_share_type_%s\u0027 % str(id)"},{"line_number":50,"context_line":"        description \u003d \u0027update_description_%s\u0027 % str(id)"},{"line_number":51,"context_line":"    else:"},{"line_number":52,"context_line":"        name \u003d \u0027share_type_%s\u0027 % str(id)"},{"line_number":53,"context_line":"        description \u003d \u0027description_%s\u0027 % str(id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_3171600d","line":50,"in_reply_to":"7faddb67_e656af5c","updated":"2019-07-16 08:48:49.000000000","message":"Done","commit_id":"744f7e7960b9706ab52883bc03bf7bd8d31d10dd"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"53c2d9e095229c01ada5ec10e3c7a53b1b9ddf23","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        description \u003d \u0027update_description_%s\u0027 % str(id)"},{"line_number":51,"context_line":"    else:"},{"line_number":52,"context_line":"        name \u003d \u0027share_type_%s\u0027 % str(id)"},{"line_number":53,"context_line":"        description \u003d \u0027description_%s\u0027 % str(id)"},{"line_number":54,"context_line":"    return dict("},{"line_number":55,"context_line":"        id\u003did,"},{"line_number":56,"context_line":"        name\u003dname,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_a64c37c8","line":53,"updated":"2019-07-16 08:03:22.000000000","message":"Add is_public \u003d \u0027share_type_access:is_public_%s\u0027 % str(id)","commit_id":"744f7e7960b9706ab52883bc03bf7bd8d31d10dd"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e8bc187def5dfd36958dd6f068c226543f02be5b","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        description \u003d \u0027update_description_%s\u0027 % str(id)"},{"line_number":51,"context_line":"    else:"},{"line_number":52,"context_line":"        name \u003d \u0027share_type_%s\u0027 % str(id)"},{"line_number":53,"context_line":"        description \u003d \u0027description_%s\u0027 % str(id)"},{"line_number":54,"context_line":"    return dict("},{"line_number":55,"context_line":"        id\u003did,"},{"line_number":56,"context_line":"        name\u003dname,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_f168a81d","line":53,"in_reply_to":"7faddb67_a64c37c8","updated":"2019-07-16 08:48:49.000000000","message":"Done","commit_id":"744f7e7960b9706ab52883bc03bf7bd8d31d10dd"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"53c2d9e095229c01ada5ec10e3c7a53b1b9ddf23","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        description \u003d \u0027description_%s\u0027 % str(id)"},{"line_number":54,"context_line":"    return dict("},{"line_number":55,"context_line":"        id\u003did,"},{"line_number":56,"context_line":"        name\u003dname,"},{"line_number":57,"context_line":"        description\u003ddescription,"},{"line_number":58,"context_line":"        extra_specs\u003dspecs,"},{"line_number":59,"context_line":"        required_extra_specs\u003d{"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_067c2b1d","line":56,"range":{"start_line":56,"start_character":13,"end_line":56,"end_character":17},"updated":"2019-07-16 08:03:22.000000000","message":"It is normal to ensure that id!\u003d4 is guaranteed. So I think this should be set as \"name\u003dname or \u0027share_type_%s\u0027 % str(id)\".","commit_id":"744f7e7960b9706ab52883bc03bf7bd8d31d10dd"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e8bc187def5dfd36958dd6f068c226543f02be5b","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        description \u003d \u0027description_%s\u0027 % str(id)"},{"line_number":54,"context_line":"    return dict("},{"line_number":55,"context_line":"        id\u003did,"},{"line_number":56,"context_line":"        name\u003dname,"},{"line_number":57,"context_line":"        description\u003ddescription,"},{"line_number":58,"context_line":"        extra_specs\u003dspecs,"},{"line_number":59,"context_line":"        required_extra_specs\u003d{"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_9159348f","line":56,"range":{"start_line":56,"start_character":13,"end_line":56,"end_character":17},"in_reply_to":"7faddb67_067c2b1d","updated":"2019-07-16 08:48:49.000000000","message":"Done","commit_id":"744f7e7960b9706ab52883bc03bf7bd8d31d10dd"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"53c2d9e095229c01ada5ec10e3c7a53b1b9ddf23","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    return dict("},{"line_number":55,"context_line":"        id\u003did,"},{"line_number":56,"context_line":"        name\u003dname,"},{"line_number":57,"context_line":"        description\u003ddescription,"},{"line_number":58,"context_line":"        extra_specs\u003dspecs,"},{"line_number":59,"context_line":"        required_extra_specs\u003d{"},{"line_number":60,"context_line":"            constants.ExtraSpecs.DRIVER_HANDLES_SHARE_SERVERS: \"true\","}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_a6743737","line":57,"range":{"start_line":57,"start_character":8,"end_line":57,"end_character":32},"updated":"2019-07-16 08:03:22.000000000","message":"ditto name.","commit_id":"744f7e7960b9706ab52883bc03bf7bd8d31d10dd"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e8bc187def5dfd36958dd6f068c226543f02be5b","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    return dict("},{"line_number":55,"context_line":"        id\u003did,"},{"line_number":56,"context_line":"        name\u003dname,"},{"line_number":57,"context_line":"        description\u003ddescription,"},{"line_number":58,"context_line":"        extra_specs\u003dspecs,"},{"line_number":59,"context_line":"        required_extra_specs\u003d{"},{"line_number":60,"context_line":"            constants.ExtraSpecs.DRIVER_HANDLES_SHARE_SERVERS: \"true\","}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_b15eb073","line":57,"range":{"start_line":57,"start_character":8,"end_line":57,"end_character":32},"in_reply_to":"7faddb67_a6743737","updated":"2019-07-16 08:48:49.000000000","message":"Done","commit_id":"744f7e7960b9706ab52883bc03bf7bd8d31d10dd"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"53c2d9e095229c01ada5ec10e3c7a53b1b9ddf23","unresolved":false,"context_lines":[{"line_number":115,"context_line":"    pre_share_type \u003d stub_share_type(int(id))"},{"line_number":116,"context_line":"    new_name \u003d name"},{"line_number":117,"context_line":"    new_description \u003d description"},{"line_number":118,"context_line":"    return pre_share_type.update({\"name\": new_name,"},{"line_number":119,"context_line":"                                  \"descripton\": new_description})"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"def return_share_types_get_by_name(context, name):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_46ad4399","line":119,"range":{"start_line":118,"start_character":10,"end_line":119,"end_character":65},"updated":"2019-07-16 08:03:22.000000000","message":"\u0027share_type_access:is_public\u0027 attribute should be added.","commit_id":"744f7e7960b9706ab52883bc03bf7bd8d31d10dd"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e8bc187def5dfd36958dd6f068c226543f02be5b","unresolved":false,"context_lines":[{"line_number":115,"context_line":"    pre_share_type \u003d stub_share_type(int(id))"},{"line_number":116,"context_line":"    new_name \u003d name"},{"line_number":117,"context_line":"    new_description \u003d description"},{"line_number":118,"context_line":"    return pre_share_type.update({\"name\": new_name,"},{"line_number":119,"context_line":"                                  \"descripton\": new_description})"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"def return_share_types_get_by_name(context, name):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_51573c59","line":119,"range":{"start_line":118,"start_character":10,"end_line":119,"end_character":65},"in_reply_to":"7faddb67_46ad4399","updated":"2019-07-16 08:48:49.000000000","message":"Done","commit_id":"744f7e7960b9706ab52883bc03bf7bd8d31d10dd"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"53c2d9e095229c01ada5ec10e3c7a53b1b9ddf23","unresolved":false,"context_lines":[{"line_number":163,"context_line":"    return body"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"def make_update_body(name\u003dNone, description\u003dNone):"},{"line_number":167,"context_line":"    body \u003d {\"share_type\": {}}"},{"line_number":168,"context_line":"    if name:"},{"line_number":169,"context_line":"        body[\"share_type\"].update({\"name\": name})"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_86681b1d","line":166,"range":{"start_line":166,"start_character":0,"end_line":166,"end_character":50},"updated":"2019-07-16 08:03:22.000000000","message":"Add the \u0027is_public\u0027 request parameter.\ndef make_update_body(name\u003dNone, description\u003dNone, is_public\u003dNone):\n ...","commit_id":"744f7e7960b9706ab52883bc03bf7bd8d31d10dd"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e8bc187def5dfd36958dd6f068c226543f02be5b","unresolved":false,"context_lines":[{"line_number":163,"context_line":"    return body"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"def make_update_body(name\u003dNone, description\u003dNone):"},{"line_number":167,"context_line":"    body \u003d {\"share_type\": {}}"},{"line_number":168,"context_line":"    if name:"},{"line_number":169,"context_line":"        body[\"share_type\"].update({\"name\": name})"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_114d44c3","line":166,"range":{"start_line":166,"start_character":0,"end_line":166,"end_character":50},"in_reply_to":"7faddb67_86681b1d","updated":"2019-07-16 08:48:49.000000000","message":"Done","commit_id":"744f7e7960b9706ab52883bc03bf7bd8d31d10dd"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"53c2d9e095229c01ada5ec10e3c7a53b1b9ddf23","unresolved":false,"context_lines":[{"line_number":168,"context_line":"    if name:"},{"line_number":169,"context_line":"        body[\"share_type\"].update({\"name\": name})"},{"line_number":170,"context_line":"    if description:"},{"line_number":171,"context_line":"        body[\"share_type\"].update({\"description\": description})"},{"line_number":172,"context_line":"    return body"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_a673d715","line":171,"updated":"2019-07-16 08:03:22.000000000","message":"body[\"share_type\"].update({\"share_type_access:is_public\": is_public})","commit_id":"744f7e7960b9706ab52883bc03bf7bd8d31d10dd"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e8bc187def5dfd36958dd6f068c226543f02be5b","unresolved":false,"context_lines":[{"line_number":168,"context_line":"    if name:"},{"line_number":169,"context_line":"        body[\"share_type\"].update({\"name\": name})"},{"line_number":170,"context_line":"    if description:"},{"line_number":171,"context_line":"        body[\"share_type\"].update({\"description\": description})"},{"line_number":172,"context_line":"    return body"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_314ac0ab","line":171,"in_reply_to":"7faddb67_a673d715","updated":"2019-07-16 08:48:49.000000000","message":"Done","commit_id":"744f7e7960b9706ab52883bc03bf7bd8d31d10dd"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"53c2d9e095229c01ada5ec10e3c7a53b1b9ddf23","unresolved":false,"context_lines":[{"line_number":427,"context_line":"                                      version\u003dversion,"},{"line_number":428,"context_line":"                                      use_admin_context\u003dadmin)"},{"line_number":429,"context_line":"        self.assertEqual(0, len(fake_notifier.NOTIFICATIONS))"},{"line_number":430,"context_line":"        body \u003d make_update_body(\"update_share_type_4\","},{"line_number":431,"context_line":"                                \"update_description_4\")"},{"line_number":432,"context_line":"        res_dict \u003d self.controller.update(req, 4, body)"},{"line_number":433,"context_line":"        self.assertEqual(1, len(fake_notifier.NOTIFICATIONS))"},{"line_number":434,"context_line":"        self.assertEqual(2, len(res_dict))"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_066bcb1d","line":431,"range":{"start_line":430,"start_character":0,"end_line":431,"end_character":55},"updated":"2019-07-16 08:03:22.000000000","message":"Add the \u0027is_public\u0027 parameter.\n        body \u003d make_update_body(\"update_share_type_4\",\n                                \"update_description_4\",\n                                is_public\u003dFalse)","commit_id":"744f7e7960b9706ab52883bc03bf7bd8d31d10dd"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e8bc187def5dfd36958dd6f068c226543f02be5b","unresolved":false,"context_lines":[{"line_number":427,"context_line":"                                      version\u003dversion,"},{"line_number":428,"context_line":"                                      use_admin_context\u003dadmin)"},{"line_number":429,"context_line":"        self.assertEqual(0, len(fake_notifier.NOTIFICATIONS))"},{"line_number":430,"context_line":"        body \u003d make_update_body(\"update_share_type_4\","},{"line_number":431,"context_line":"                                \"update_description_4\")"},{"line_number":432,"context_line":"        res_dict \u003d self.controller.update(req, 4, body)"},{"line_number":433,"context_line":"        self.assertEqual(1, len(fake_notifier.NOTIFICATIONS))"},{"line_number":434,"context_line":"        self.assertEqual(2, len(res_dict))"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_d1c80c23","line":431,"range":{"start_line":430,"start_character":0,"end_line":431,"end_character":55},"in_reply_to":"7faddb67_066bcb1d","updated":"2019-07-16 08:48:49.000000000","message":"Done","commit_id":"744f7e7960b9706ab52883bc03bf7bd8d31d10dd"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"53c2d9e095229c01ada5ec10e3c7a53b1b9ddf23","unresolved":false,"context_lines":[{"line_number":435,"context_line":""},{"line_number":436,"context_line":"        self.assertEqual(\u0027update_share_type_4\u0027, res_dict[\u0027share_type\u0027][\u0027name\u0027])"},{"line_number":437,"context_line":"        self.assertEqual(\u0027update_share_type_4\u0027,"},{"line_number":438,"context_line":"                         res_dict[\u0027volume_type\u0027][\u0027name\u0027])"},{"line_number":439,"context_line":"        if self.is_microversion_ge(version, \u00272.41\u0027):"},{"line_number":440,"context_line":"            self.assertEqual(\u0027update_description_4\u0027,"},{"line_number":441,"context_line":"                             res_dict[\u0027share_type\u0027][\u0027description\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_468543ce","line":438,"updated":"2019-07-16 08:03:22.000000000","message":"Added self.assertEqual(\u0027update_share_type_access:is_public_4\u0027,\n                       res_dict[\u0027share_type\u0027][\u0027share_type_access:is_public\u0027])","commit_id":"744f7e7960b9706ab52883bc03bf7bd8d31d10dd"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e8bc187def5dfd36958dd6f068c226543f02be5b","unresolved":false,"context_lines":[{"line_number":435,"context_line":""},{"line_number":436,"context_line":"        self.assertEqual(\u0027update_share_type_4\u0027, res_dict[\u0027share_type\u0027][\u0027name\u0027])"},{"line_number":437,"context_line":"        self.assertEqual(\u0027update_share_type_4\u0027,"},{"line_number":438,"context_line":"                         res_dict[\u0027volume_type\u0027][\u0027name\u0027])"},{"line_number":439,"context_line":"        if self.is_microversion_ge(version, \u00272.41\u0027):"},{"line_number":440,"context_line":"            self.assertEqual(\u0027update_description_4\u0027,"},{"line_number":441,"context_line":"                             res_dict[\u0027share_type\u0027][\u0027description\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_f1cd0831","line":438,"in_reply_to":"7faddb67_468543ce","updated":"2019-07-16 08:48:49.000000000","message":"Done","commit_id":"744f7e7960b9706ab52883bc03bf7bd8d31d10dd"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":448,"context_line":"        self.assertEqual(False,"},{"line_number":449,"context_line":"                         res_dict[\u0027share_type\u0027][\u0027share_type_access:is_public\u0027])"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"        if self.is_microversion_ge(version, \u00272.41\u0027):"},{"line_number":452,"context_line":"            self.assertEqual(\u0027update_description_4\u0027,"},{"line_number":453,"context_line":"                             res_dict[\u0027share_type\u0027][\u0027description\u0027])"},{"line_number":454,"context_line":"            self.assertEqual(\u0027update_description_4\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_ed95e440","line":451,"range":{"start_line":451,"start_character":0,"end_line":451,"end_character":52},"updated":"2019-08-06 21:16:50.000000000","message":"needs to be removed..","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"63d19528f0e83978b49c984d0eef528883d82fa0","unresolved":false,"context_lines":[{"line_number":448,"context_line":"        self.assertEqual(False,"},{"line_number":449,"context_line":"                         res_dict[\u0027share_type\u0027][\u0027share_type_access:is_public\u0027])"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"        if self.is_microversion_ge(version, \u00272.41\u0027):"},{"line_number":452,"context_line":"            self.assertEqual(\u0027update_description_4\u0027,"},{"line_number":453,"context_line":"                             res_dict[\u0027share_type\u0027][\u0027description\u0027])"},{"line_number":454,"context_line":"            self.assertEqual(\u0027update_description_4\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_6fbec1d5","line":451,"range":{"start_line":451,"start_character":0,"end_line":451,"end_character":52},"in_reply_to":"7faddb67_ed95e440","updated":"2019-08-07 11:08:28.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":454,"context_line":"            self.assertEqual(\u0027update_description_4\u0027,"},{"line_number":455,"context_line":"                             res_dict[\u0027volume_type\u0027][\u0027description\u0027])"},{"line_number":456,"context_line":""},{"line_number":457,"context_line":"    @ddt.unpack"},{"line_number":458,"context_line":"    def test_share_types_update_pre_v250(self):"},{"line_number":459,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v2/fake/types/4\u0027,"},{"line_number":460,"context_line":"                                      version\u003d\u00272.49\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_0d916052","line":457,"range":{"start_line":457,"start_character":9,"end_line":457,"end_character":15},"updated":"2019-08-06 21:16:50.000000000","message":"nothing to unpack?","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"63d19528f0e83978b49c984d0eef528883d82fa0","unresolved":false,"context_lines":[{"line_number":454,"context_line":"            self.assertEqual(\u0027update_description_4\u0027,"},{"line_number":455,"context_line":"                             res_dict[\u0027volume_type\u0027][\u0027description\u0027])"},{"line_number":456,"context_line":""},{"line_number":457,"context_line":"    @ddt.unpack"},{"line_number":458,"context_line":"    def test_share_types_update_pre_v250(self):"},{"line_number":459,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v2/fake/types/4\u0027,"},{"line_number":460,"context_line":"                                      version\u003d\u00272.49\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_2fb8c9e3","line":457,"range":{"start_line":457,"start_character":9,"end_line":457,"end_character":15},"in_reply_to":"7faddb67_0d916052","updated":"2019-08-07 11:08:28.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e2621be0ea49a051f51a6d2e3cd261ebc251851a","unresolved":false,"context_lines":[{"line_number":467,"context_line":"                          req, 4, body)"},{"line_number":468,"context_line":"        self.assertEqual(0, len(fake_notifier.NOTIFICATIONS))"},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"    def test_share_types_update_not_found(self):"},{"line_number":471,"context_line":"        self.assertEqual(0, len(fake_notifier.NOTIFICATIONS))"},{"line_number":472,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v2/fake/types/777\u0027,"},{"line_number":473,"context_line":"                                      version\u003d\u00272.50\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_0d9f2050","line":470,"range":{"start_line":470,"start_character":32,"end_line":470,"end_character":41},"updated":"2019-08-06 21:16:50.000000000","message":"Not Found gives you 404, DB error gives you HTTPInternalServerError per the code...","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"63d19528f0e83978b49c984d0eef528883d82fa0","unresolved":false,"context_lines":[{"line_number":467,"context_line":"                          req, 4, body)"},{"line_number":468,"context_line":"        self.assertEqual(0, len(fake_notifier.NOTIFICATIONS))"},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"    def test_share_types_update_not_found(self):"},{"line_number":471,"context_line":"        self.assertEqual(0, len(fake_notifier.NOTIFICATIONS))"},{"line_number":472,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v2/fake/types/777\u0027,"},{"line_number":473,"context_line":"                                      version\u003d\u00272.50\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_cfcd755f","line":470,"range":{"start_line":470,"start_character":32,"end_line":470,"end_character":41},"in_reply_to":"7faddb67_0d9f2050","updated":"2019-08-07 11:08:28.000000000","message":"Done","commit_id":"139519db28c6a44230d8d2a189054508dfdb9219"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"4bac90ed44aa2fd34981c1e84647a6182f1ad1db","unresolved":false,"context_lines":[{"line_number":461,"context_line":"        self.assertEqual(\u0027update_share_type_4\u0027, res_dict[\u0027share_type\u0027][\u0027name\u0027])"},{"line_number":462,"context_line":"        self.assertEqual(\u0027update_share_type_4\u0027,"},{"line_number":463,"context_line":"                         res_dict[\u0027volume_type\u0027][\u0027name\u0027])"},{"line_number":464,"context_line":"        self.assertEqual(False,"},{"line_number":465,"context_line":"                         res_dict[\u0027share_type\u0027][\u0027share_type_access:is_public\u0027])"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":"        self.assertEqual(\u0027update_description_4\u0027,"}],"source_content_type":"text/x-python","patch_set":16,"id":"7faddb67_5f3dd08b","line":464,"range":{"start_line":464,"start_character":13,"end_line":464,"end_character":24},"updated":"2019-08-21 11:58:56.000000000","message":"Please use assertFalse here","commit_id":"3ae85093ff5e3de94b508fe2c5e751ecd6b5b3a6"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"9abfabd8e714d1690f3c4d945af1e6d96a61feda","unresolved":false,"context_lines":[{"line_number":461,"context_line":"        self.assertEqual(\u0027update_share_type_4\u0027, res_dict[\u0027share_type\u0027][\u0027name\u0027])"},{"line_number":462,"context_line":"        self.assertEqual(\u0027update_share_type_4\u0027,"},{"line_number":463,"context_line":"                         res_dict[\u0027volume_type\u0027][\u0027name\u0027])"},{"line_number":464,"context_line":"        self.assertEqual(False,"},{"line_number":465,"context_line":"                         res_dict[\u0027share_type\u0027][\u0027share_type_access:is_public\u0027])"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":"        self.assertEqual(\u0027update_description_4\u0027,"}],"source_content_type":"text/x-python","patch_set":16,"id":"7faddb67_d0a2ff3e","line":464,"range":{"start_line":464,"start_character":13,"end_line":464,"end_character":24},"in_reply_to":"7faddb67_5f3dd08b","updated":"2019-08-22 05:38:00.000000000","message":"Done","commit_id":"3ae85093ff5e3de94b508fe2c5e751ecd6b5b3a6"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9a8fa59853f3609ad3008bcb636de90512a1eb47","unresolved":false,"context_lines":[{"line_number":451,"context_line":"            self, name, description, is_public):"},{"line_number":452,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v2/fake/types/4\u0027,"},{"line_number":453,"context_line":"                                      version\u003d\u00272.50\u0027)"},{"line_number":454,"context_line":"        self.assertEqual(0, len(fake_notifier.NOTIFICATIONS))"},{"line_number":455,"context_line":"        body \u003d make_update_body(name, description, is_public)"},{"line_number":456,"context_line":"        self.assertRaises(webob.exc.HTTPBadRequest,"},{"line_number":457,"context_line":"                          self.controller.update,"}],"source_content_type":"text/x-python","patch_set":18,"id":"7faddb67_5bf9797d","line":454,"range":{"start_line":454,"start_character":0,"end_line":454,"end_character":61},"updated":"2019-09-04 21:23:31.000000000","message":"Why assert this before invoking the method you\u0027re testing?","commit_id":"e74e7f158e24e2f29ac22f829a70812f4c2e1ea7"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"3ff07ca9804acb13599eacc69bb8c9dfc8c8106d","unresolved":false,"context_lines":[{"line_number":451,"context_line":"            self, name, description, is_public):"},{"line_number":452,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v2/fake/types/4\u0027,"},{"line_number":453,"context_line":"                                      version\u003d\u00272.50\u0027)"},{"line_number":454,"context_line":"        self.assertEqual(0, len(fake_notifier.NOTIFICATIONS))"},{"line_number":455,"context_line":"        body \u003d make_update_body(name, description, is_public)"},{"line_number":456,"context_line":"        self.assertRaises(webob.exc.HTTPBadRequest,"},{"line_number":457,"context_line":"                          self.controller.update,"}],"source_content_type":"text/x-python","patch_set":18,"id":"7faddb67_786c7035","line":454,"range":{"start_line":454,"start_character":0,"end_line":454,"end_character":61},"in_reply_to":"7faddb67_5bf9797d","updated":"2019-09-05 10:01:25.000000000","message":"yes, That\u0027s redundant.i remove it.","commit_id":"e74e7f158e24e2f29ac22f829a70812f4c2e1ea7"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9a8fa59853f3609ad3008bcb636de90512a1eb47","unresolved":false,"context_lines":[{"line_number":461,"context_line":"    def test_share_types_update_with_invalid_body(self):"},{"line_number":462,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v2/fake/types/4\u0027,"},{"line_number":463,"context_line":"                                      version\u003d\u00272.50\u0027)"},{"line_number":464,"context_line":"        self.assertEqual(0, len(fake_notifier.NOTIFICATIONS))"},{"line_number":465,"context_line":"        body \u003d {\u0027share_type\u0027: \u0027i_am_invalid_body\u0027}"},{"line_number":466,"context_line":"        self.assertRaises(webob.exc.HTTPBadRequest,"},{"line_number":467,"context_line":"                          self.controller.update,"}],"source_content_type":"text/x-python","patch_set":18,"id":"7faddb67_7bf47587","line":464,"range":{"start_line":464,"start_character":0,"end_line":464,"end_character":61},"updated":"2019-09-04 21:23:31.000000000","message":"same here, and in all the tests..","commit_id":"e74e7f158e24e2f29ac22f829a70812f4c2e1ea7"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"3ff07ca9804acb13599eacc69bb8c9dfc8c8106d","unresolved":false,"context_lines":[{"line_number":461,"context_line":"    def test_share_types_update_with_invalid_body(self):"},{"line_number":462,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v2/fake/types/4\u0027,"},{"line_number":463,"context_line":"                                      version\u003d\u00272.50\u0027)"},{"line_number":464,"context_line":"        self.assertEqual(0, len(fake_notifier.NOTIFICATIONS))"},{"line_number":465,"context_line":"        body \u003d {\u0027share_type\u0027: \u0027i_am_invalid_body\u0027}"},{"line_number":466,"context_line":"        self.assertRaises(webob.exc.HTTPBadRequest,"},{"line_number":467,"context_line":"                          self.controller.update,"}],"source_content_type":"text/x-python","patch_set":18,"id":"7faddb67_38727813","line":464,"range":{"start_line":464,"start_character":0,"end_line":464,"end_character":61},"in_reply_to":"7faddb67_7bf47587","updated":"2019-09-05 10:01:25.000000000","message":"Done","commit_id":"e74e7f158e24e2f29ac22f829a70812f4c2e1ea7"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9a8fa59853f3609ad3008bcb636de90512a1eb47","unresolved":false,"context_lines":[{"line_number":482,"context_line":"        self.assertEqual(\u0027update_share_type_4\u0027, res_dict[\u0027share_type\u0027][\u0027name\u0027])"},{"line_number":483,"context_line":"        self.assertEqual(\u0027update_share_type_4\u0027,"},{"line_number":484,"context_line":"                         res_dict[\u0027volume_type\u0027][\u0027name\u0027])"},{"line_number":485,"context_line":"        self.assertFalse(res_dict[\u0027share_type\u0027][\u0027share_type_access:is_public\u0027])"},{"line_number":486,"context_line":""},{"line_number":487,"context_line":"        self.assertEqual(\u0027update_description_4\u0027,"},{"line_number":488,"context_line":"                         res_dict[\u0027share_type\u0027][\u0027description\u0027])"}],"source_content_type":"text/x-python","patch_set":18,"id":"7faddb67_9be291d3","line":485,"range":{"start_line":485,"start_character":13,"end_line":485,"end_character":24},"updated":"2019-09-04 21:23:31.000000000","message":"assertIs(False, res_dict[\u0027share_type\u0027][\u0027share_type_access:is_public\u0027])\n\nhttps://jamescooke.info/python-unittest-asserttrue-is-truthy-assertfalse-is-falsy.html","commit_id":"e74e7f158e24e2f29ac22f829a70812f4c2e1ea7"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"3ff07ca9804acb13599eacc69bb8c9dfc8c8106d","unresolved":false,"context_lines":[{"line_number":482,"context_line":"        self.assertEqual(\u0027update_share_type_4\u0027, res_dict[\u0027share_type\u0027][\u0027name\u0027])"},{"line_number":483,"context_line":"        self.assertEqual(\u0027update_share_type_4\u0027,"},{"line_number":484,"context_line":"                         res_dict[\u0027volume_type\u0027][\u0027name\u0027])"},{"line_number":485,"context_line":"        self.assertFalse(res_dict[\u0027share_type\u0027][\u0027share_type_access:is_public\u0027])"},{"line_number":486,"context_line":""},{"line_number":487,"context_line":"        self.assertEqual(\u0027update_description_4\u0027,"},{"line_number":488,"context_line":"                         res_dict[\u0027share_type\u0027][\u0027description\u0027])"}],"source_content_type":"text/x-python","patch_set":18,"id":"7faddb67_98fe0c36","line":485,"range":{"start_line":485,"start_character":13,"end_line":485,"end_character":24},"in_reply_to":"7faddb67_9be291d3","updated":"2019-09-05 10:01:25.000000000","message":"greate, it looks better.","commit_id":"e74e7f158e24e2f29ac22f829a70812f4c2e1ea7"}],"manila/tests/db/sqlalchemy/test_api.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"16b38484d641ab7875f1a2f9301df52f394fdf9b","unresolved":false,"context_lines":[{"line_number":3275,"context_line":"        self.assertRaises(exception.DefaultShareTypeNotConfigured,"},{"line_number":3276,"context_line":"                          db_api.share_type_get, self.ctxt, None)"},{"line_number":3277,"context_line":""},{"line_number":3278,"context_line":"    def test_share_type_update_name_exist(self):"},{"line_number":3279,"context_line":"        db_utils.create_share_type("},{"line_number":3280,"context_line":"            name\u003d\u0027exist_name\u0027, extra_specs\u003d{\u0027somekey\u0027: \u0027someval\u0027})"},{"line_number":3281,"context_line":"        share_type \u003d db_utils.create_share_type(name\u003d\u0027regalia\u0027)"},{"line_number":3282,"context_line":"        values \u003d {\"name\": \"exist_name\"}"},{"line_number":3283,"context_line":"        self.assertRaises(exception.ShareTypeExists,"},{"line_number":3284,"context_line":"                          db_api.share_type_update,"},{"line_number":3285,"context_line":"                          self.ctxt, share_type[\u0027id\u0027], values)"},{"line_number":3286,"context_line":""},{"line_number":3287,"context_line":"    @ddt.data("},{"line_number":3288,"context_line":"        {\u0027name\u0027: \u0027st_1\u0027, \u0027description\u0027: \u0027des_1\u0027, \u0027is_public\u0027: True},"}],"source_content_type":"text/x-python","patch_set":27,"id":"5faad753_30d458bd","line":3285,"range":{"start_line":3278,"start_character":1,"end_line":3285,"end_character":62},"updated":"2019-09-10 20:40:43.000000000","message":"I had to delete this unit test - please see the explanation [1] and the associated launchpad bug [2]\n\n[1] https://review.opendev.org/#/c/669651/26/manila/db/sqlalchemy/api.py@3978\n[2] https://bugs.launchpad.net/manila/+bug/1843498","commit_id":"74de132145853a722ac00d8fb37472ca1b9ef955"}],"releasenotes/notes/bp-update-share-type-name-or-description-a39c5991b930932f.yaml":[{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"651da16e65cc1f98abcf922f54fb397e4b490faf","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added update share-type API to Share Types."},{"line_number":4,"context_line":"deprecations:"},{"line_number":5,"context_line":"  - |"},{"line_number":6,"context_line":"    In API version ``2.50``, Manila support update the ``name``,"},{"line_number":7,"context_line":"    ``description`` and/or ``share_type_access:is_public`` attribute"},{"line_number":8,"context_line":"    of ``share-type`` after create a share type."}],"source_content_type":"text/x-yaml","patch_set":17,"id":"7faddb67_7b852359","line":8,"range":{"start_line":4,"start_character":0,"end_line":8,"end_character":48},"updated":"2019-08-22 14:36:23.000000000","message":"Hi, I didn\u0027t understand why this information is under deprecations section.","commit_id":"375871fd9b1752a5cb1a4aa7c51ec4ab1217c073"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"2822d4e1848e0fa7996791dba85db14fb7ce8bb7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added update share-type API to Share Types."},{"line_number":4,"context_line":"deprecations:"},{"line_number":5,"context_line":"  - |"},{"line_number":6,"context_line":"    In API version ``2.50``, Manila support update the ``name``,"},{"line_number":7,"context_line":"    ``description`` and/or ``share_type_access:is_public`` attribute"},{"line_number":8,"context_line":"    of ``share-type`` after create a share type."}],"source_content_type":"text/x-yaml","patch_set":17,"id":"7faddb67_ce69e58c","line":8,"range":{"start_line":4,"start_character":0,"end_line":8,"end_character":48},"in_reply_to":"7faddb67_7b852359","updated":"2019-08-23 06:37:25.000000000","message":"my mistake, I misread the word deprecations as description.","commit_id":"375871fd9b1752a5cb1a4aa7c51ec4ab1217c073"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9a8fa59853f3609ad3008bcb636de90512a1eb47","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - In microversion ``2.50``, add update share-type API to Manila Share Types,"},{"line_number":4,"context_line":"    to support update the ``name``, ``description`` and/or"},{"line_number":5,"context_line":"    ``share_type_access:is_public`` attribute of ``share-type`` after create"},{"line_number":6,"context_line":"    a share type."}],"source_content_type":"text/x-yaml","patch_set":18,"id":"7faddb67_dbe80917","line":6,"range":{"start_line":3,"start_character":4,"end_line":6,"end_character":17},"updated":"2019-09-04 21:23:31.000000000","message":"suggest a rewrite since this has to be written in simple past tense:\n\n    The ``name``, ``description`` and/or ``share_type_access:is_public``\n    attributes of share types can be updated with API version ``2.50``\n    and beyond.","commit_id":"e74e7f158e24e2f29ac22f829a70812f4c2e1ea7"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"15e36d86fea5ec767a1df85d669a29a3fe9b429f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - In microversion ``2.50``, add update share-type API to Manila Share Types,"},{"line_number":4,"context_line":"    to support update the ``name``, ``description`` and/or"},{"line_number":5,"context_line":"    ``share_type_access:is_public`` attribute of ``share-type`` after create"},{"line_number":6,"context_line":"    a share type."}],"source_content_type":"text/x-yaml","patch_set":18,"id":"7faddb67_224a3726","line":6,"range":{"start_line":3,"start_character":4,"end_line":6,"end_character":17},"in_reply_to":"7faddb67_98836ca9","updated":"2019-09-05 17:41:16.000000000","message":"This change was not made in PS 19, though","commit_id":"e74e7f158e24e2f29ac22f829a70812f4c2e1ea7"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"3ff07ca9804acb13599eacc69bb8c9dfc8c8106d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - In microversion ``2.50``, add update share-type API to Manila Share Types,"},{"line_number":4,"context_line":"    to support update the ``name``, ``description`` and/or"},{"line_number":5,"context_line":"    ``share_type_access:is_public`` attribute of ``share-type`` after create"},{"line_number":6,"context_line":"    a share type."}],"source_content_type":"text/x-yaml","patch_set":18,"id":"7faddb67_98836ca9","line":6,"range":{"start_line":3,"start_character":4,"end_line":6,"end_character":17},"in_reply_to":"7faddb67_dbe80917","updated":"2019-09-05 10:01:25.000000000","message":"Done","commit_id":"e74e7f158e24e2f29ac22f829a70812f4c2e1ea7"}]}
