)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"06b517a7a231e297e2412a62f196f01d37619b9c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"0df8b677_a797f20e","updated":"2021-12-01 04:36:09.000000000","message":"hi, there are some comments inline, please check it,\nthank you for your change about this.","commit_id":"4f9de437605b23e9cf5534bdd9177222e248cf01"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"0b6efb2a0a09124820bf8526a53f6e15e1f0d617","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"d6d2237f_98642fdc","in_reply_to":"0df8b677_a797f20e","updated":"2021-12-01 14:50:05.000000000","message":"thank you for the review!","commit_id":"4f9de437605b23e9cf5534bdd9177222e248cf01"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"6b5f6720b96e92b21c15d8541f66da4f2c85e6e7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"51a03870_cf485962","updated":"2021-12-07 21:28:59.000000000","message":"Thanks Ashley, some comments inline","commit_id":"96e406d37eb86d200212e556af16e19d6189c063"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"da53ab3cad56e83d34076358304a66e534c180d6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"7e817e70_f84fb502","updated":"2021-12-01 16:39:39.000000000","message":"recheck","commit_id":"96e406d37eb86d200212e556af16e19d6189c063"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"f46445c4757ee77c102eb52b26365935f21f505a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"bd2415e0_6adb10de","updated":"2021-12-03 09:19:27.000000000","message":"recheck","commit_id":"96e406d37eb86d200212e556af16e19d6189c063"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"6ef5230c35911d908819543c43f0a633ef63d4ac","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"bf1ed6b1_249421ac","updated":"2021-12-03 15:50:26.000000000","message":"recheck","commit_id":"96e406d37eb86d200212e556af16e19d6189c063"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"68f7cc431703b6a1149e83c88fc6ab0b9e4fb32c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"a382376b_b85846c2","updated":"2021-12-02 15:01:46.000000000","message":"run Pure Storage CI","commit_id":"96e406d37eb86d200212e556af16e19d6189c063"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"5e21f3d654f6013daa0a00d5fa812d45c55917f9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"fd3edb7b_226e4f4f","updated":"2022-04-19 19:23:45.000000000","message":"Looking good! Only one comment regarding a missing blank space in a message","commit_id":"3a9b3cd9003f4ecac35104f06616c71325fa1707"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"0eb41e9a0a273b6e31346afb85ea0bdcc76cf809","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"063d16a5_d7297ea6","updated":"2022-04-20 02:47:19.000000000","message":"here are some comments. please see inline.","commit_id":"3a9b3cd9003f4ecac35104f06616c71325fa1707"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"51ebc2f5923638e82236cd23737ba31790580b0c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"ac750df2_d6c76e1b","updated":"2022-04-25 06:41:17.000000000","message":"LGTM.","commit_id":"df0174c9cfdd34035dc651e7b546c72f58cbdea7"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"eff316d8b782caaa4e1f5f28f08962ac2943cc00","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"76025277_88d62319","updated":"2022-05-05 18:24:58.000000000","message":"Hi, sorry for the late breaking comments, please see them inline.. thanks for working on this","commit_id":"b65cf0124b9eede0f2f4d539d90894cabdc24c81"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"3681adf9e7d98195f3286adf07e13c9058d4e0a0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"40c7cdf2_6f1866e5","updated":"2022-04-26 07:47:33.000000000","message":"LGTM，thanks.","commit_id":"b65cf0124b9eede0f2f4d539d90894cabdc24c81"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"93e059f5999f92f8c4d93d06afaa9408442635ac","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"06c19a0a_da520524","updated":"2022-05-05 14:18:23.000000000","message":"Looks good, thank you!","commit_id":"b65cf0124b9eede0f2f4d539d90894cabdc24c81"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"5576a0445fc19ed662cb227e5fe5e47305ccbb67","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"eb9ae326_0b5badd0","updated":"2022-05-16 03:13:05.000000000","message":"should update manila tempest test, then depend on that patch, to maker sure zuul check.","commit_id":"b492057eb55659f157adc6e4a868e1bff1d2ef64"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"703a942ef0539c411f08d3b4e64a5f7a146fec67","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"d59c9fd5_4583847d","updated":"2022-06-20 17:56:56.000000000","message":"recheck","commit_id":"6b69f992c33fbad2667e1577965d17c460d31569"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"fecf4872fc67f021e9babd85eabdaedf6e492a3b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"ea72a44b_62431d7f","updated":"2022-09-13 16:22:10.000000000","message":"recheck refresh logs","commit_id":"6b69f992c33fbad2667e1577965d17c460d31569"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"d6f152ef42d160f0baeccb5761008888d042e2e7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"19a6be10_8e4d8abb","updated":"2023-01-25 14:05:30.000000000","message":"recheck\nLogs are gone","commit_id":"b8842d912ac71797bf355dd02da4311f88e1e71f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"c9a0768dab79a3cf76be66b12583dacdb9dd6717","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"2985a86c_7760884a","updated":"2024-07-10 14:22:49.000000000","message":"recheck\nGetting fresh logs","commit_id":"9b7bc37170301e25f7314c00fa6eef1e1d5e3035"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"4921f08c5b748980449632d5cc8d86b584e52d1d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"57f00b41_adf9524a","updated":"2024-12-17 15:25:15.000000000","message":"recheck\nlet\u0027s get a clean run","commit_id":"36d5c25b5214b5f61d2740abfe882ed561620931"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"986d2458bd8183fb42d49ee049fc6da2241e76ee","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"a912d99a_805c0b12","updated":"2024-09-10 19:40:07.000000000","message":"recheck old logs","commit_id":"36d5c25b5214b5f61d2740abfe882ed561620931"}],"manila/api/v2/share_group_type_specs.py":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"0c36790c102614f66a5d7c54fd79ccbc5af6a358","unresolved":true,"context_lines":[{"line_number":87,"context_line":"        self._verify_group_specs(specs)"},{"line_number":88,"context_line":"        self._check_key_names(specs.keys())"},{"line_number":89,"context_line":"        if \u0027consistent_snapshot_support\u0027 in specs.keys():"},{"line_number":90,"context_line":"            res \u003d bool_from_string(specs.get(\u0027consistent_snapshot_support\u0027))"},{"line_number":91,"context_line":"            if res is True:"},{"line_number":92,"context_line":"                group_ref \u003d share_group_types.get(context, id)"},{"line_number":93,"context_line":"                share_types \u003d []"},{"line_number":94,"context_line":"                for type in group_ref.get(\u0027share_types\u0027):"},{"line_number":95,"context_line":"                    share_types.append(type)"},{"line_number":96,"context_line":"                share_group_types.consistent_spec_validation("},{"line_number":97,"context_line":"                    context, share_types)"},{"line_number":98,"context_line":"        db.share_group_type_specs_update_or_create(context, id, specs)"},{"line_number":99,"context_line":"        return body"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ead33150_46f935a1","line":97,"range":{"start_line":90,"start_character":12,"end_line":97,"end_character":41},"updated":"2021-09-21 16:58:53.000000000","message":"As this fragment is being repeated here and below, a new method could be created so the code could be reused.\nNot a must I\u0027d say, but if we come to have another scenario where we need to do the exact same validation in the future, this new method would be reused.","commit_id":"9496e983d7d0de7c811ee21de25c40aa441d1862"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"0c36790c102614f66a5d7c54fd79ccbc5af6a358","unresolved":true,"context_lines":[{"line_number":93,"context_line":"                share_types \u003d []"},{"line_number":94,"context_line":"                for type in group_ref.get(\u0027share_types\u0027):"},{"line_number":95,"context_line":"                    share_types.append(type)"},{"line_number":96,"context_line":"                share_group_types.consistent_spec_validation("},{"line_number":97,"context_line":"                    context, share_types)"},{"line_number":98,"context_line":"        db.share_group_type_specs_update_or_create(context, id, specs)"},{"line_number":99,"context_line":"        return body"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"0f9bbc08_50c3f05b","line":97,"range":{"start_line":96,"start_character":16,"end_line":97,"end_character":41},"updated":"2021-09-21 16:58:53.000000000","message":"as exceptions are being raised inside this method, I\u0027d say it\u0027d a good thing to surround at least this statement with a try/except\nAlso, perhaps we could control what is the exception that is being raised.\nIf it was a NotFound, we just raise the exception, but if it is the InvalidGroupSpec, we should possibly raise HTTPConflict (that suggested message could even be used for this)","commit_id":"9496e983d7d0de7c811ee21de25c40aa441d1862"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"a2656bf0016ac1f77346bd3657b6f8123abc51f2","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                share_types \u003d []"},{"line_number":94,"context_line":"                for type in group_ref.get(\u0027share_types\u0027):"},{"line_number":95,"context_line":"                    share_types.append(type)"},{"line_number":96,"context_line":"                share_group_types.consistent_spec_validation("},{"line_number":97,"context_line":"                    context, share_types)"},{"line_number":98,"context_line":"        db.share_group_type_specs_update_or_create(context, id, specs)"},{"line_number":99,"context_line":"        return body"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1fcf923a_3b364dd5","line":97,"range":{"start_line":96,"start_character":16,"end_line":97,"end_character":41},"in_reply_to":"0f9bbc08_50c3f05b","updated":"2022-03-02 19:51:45.000000000","message":"Done","commit_id":"9496e983d7d0de7c811ee21de25c40aa441d1862"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"a2656bf0016ac1f77346bd3657b6f8123abc51f2","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        self._verify_group_specs(specs)"},{"line_number":88,"context_line":"        self._check_key_names(specs.keys())"},{"line_number":89,"context_line":"        if \u0027consistent_snapshot_support\u0027 in specs.keys():"},{"line_number":90,"context_line":"            res \u003d bool_from_string(specs.get(\u0027consistent_snapshot_support\u0027))"},{"line_number":91,"context_line":"            if res is True:"},{"line_number":92,"context_line":"                group_ref \u003d share_group_types.get(context, id)"},{"line_number":93,"context_line":"                share_types \u003d []"},{"line_number":94,"context_line":"                for type in group_ref.get(\u0027share_types\u0027):"},{"line_number":95,"context_line":"                    share_types.append(type)"},{"line_number":96,"context_line":"                share_group_types.consistent_spec_validation("},{"line_number":97,"context_line":"                    context, share_types)"},{"line_number":98,"context_line":"        db.share_group_type_specs_update_or_create(context, id, specs)"},{"line_number":99,"context_line":"        return body"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9a09b8ea_555216bf","line":97,"range":{"start_line":90,"start_character":12,"end_line":97,"end_character":41},"in_reply_to":"ead33150_46f935a1","updated":"2022-03-02 19:51:45.000000000","message":"Done","commit_id":"9496e983d7d0de7c811ee21de25c40aa441d1862"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"0c36790c102614f66a5d7c54fd79ccbc5af6a358","unresolved":true,"context_lines":[{"line_number":124,"context_line":"            res \u003d bool_from_string(body.get(\u0027consistent_snapshot_support\u0027))"},{"line_number":125,"context_line":"            if res is True:"},{"line_number":126,"context_line":"                group_ref \u003d share_group_types.get(context, id)"},{"line_number":127,"context_line":"                share_types \u003d []"},{"line_number":128,"context_line":"                for type in group_ref.get(\u0027share_types\u0027):"},{"line_number":129,"context_line":"                    share_types.append(type)"},{"line_number":130,"context_line":"                share_group_types.consistent_spec_validation("},{"line_number":131,"context_line":"                    context, share_types)"},{"line_number":132,"context_line":"        db.share_group_type_specs_update_or_create(context, id, body)"}],"source_content_type":"text/x-python","patch_set":2,"id":"b069ab3b_5fe96ae6","line":129,"range":{"start_line":127,"start_character":16,"end_line":129,"end_character":44},"updated":"2021-09-21 16:58:53.000000000","message":"a suggestion for here and the above statement\nas no additional thing is being done with the share_types list variable, I\u0027d say you could just forward it right away, and that would save the code from looping over the share types again just to append them to other list.\nan example:\nshare_group_types.consistent_spec_validation(\n     context, group_ref.get(\u0027share_types\u0027, []))\nthis would have the same behavior...","commit_id":"9496e983d7d0de7c811ee21de25c40aa441d1862"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"a2656bf0016ac1f77346bd3657b6f8123abc51f2","unresolved":false,"context_lines":[{"line_number":124,"context_line":"            res \u003d bool_from_string(body.get(\u0027consistent_snapshot_support\u0027))"},{"line_number":125,"context_line":"            if res is True:"},{"line_number":126,"context_line":"                group_ref \u003d share_group_types.get(context, id)"},{"line_number":127,"context_line":"                share_types \u003d []"},{"line_number":128,"context_line":"                for type in group_ref.get(\u0027share_types\u0027):"},{"line_number":129,"context_line":"                    share_types.append(type)"},{"line_number":130,"context_line":"                share_group_types.consistent_spec_validation("},{"line_number":131,"context_line":"                    context, share_types)"},{"line_number":132,"context_line":"        db.share_group_type_specs_update_or_create(context, id, body)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a02fa49_9c2bb3b6","line":129,"range":{"start_line":127,"start_character":16,"end_line":129,"end_character":44},"in_reply_to":"b069ab3b_5fe96ae6","updated":"2022-03-02 19:51:45.000000000","message":"Done","commit_id":"9496e983d7d0de7c811ee21de25c40aa441d1862"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"0c36790c102614f66a5d7c54fd79ccbc5af6a358","unresolved":true,"context_lines":[{"line_number":127,"context_line":"                share_types \u003d []"},{"line_number":128,"context_line":"                for type in group_ref.get(\u0027share_types\u0027):"},{"line_number":129,"context_line":"                    share_types.append(type)"},{"line_number":130,"context_line":"                share_group_types.consistent_spec_validation("},{"line_number":131,"context_line":"                    context, share_types)"},{"line_number":132,"context_line":"        db.share_group_type_specs_update_or_create(context, id, body)"},{"line_number":133,"context_line":"        return body"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"c66308b4_d85cbe4d","line":131,"range":{"start_line":130,"start_character":16,"end_line":131,"end_character":41},"updated":"2021-09-21 16:58:53.000000000","message":"same as above","commit_id":"9496e983d7d0de7c811ee21de25c40aa441d1862"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"a2656bf0016ac1f77346bd3657b6f8123abc51f2","unresolved":false,"context_lines":[{"line_number":127,"context_line":"                share_types \u003d []"},{"line_number":128,"context_line":"                for type in group_ref.get(\u0027share_types\u0027):"},{"line_number":129,"context_line":"                    share_types.append(type)"},{"line_number":130,"context_line":"                share_group_types.consistent_spec_validation("},{"line_number":131,"context_line":"                    context, share_types)"},{"line_number":132,"context_line":"        db.share_group_type_specs_update_or_create(context, id, body)"},{"line_number":133,"context_line":"        return body"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"f0855ed2_68c21e0a","line":131,"range":{"start_line":130,"start_character":16,"end_line":131,"end_character":41},"in_reply_to":"c66308b4_d85cbe4d","updated":"2022-03-02 19:51:45.000000000","message":"Done","commit_id":"9496e983d7d0de7c811ee21de25c40aa441d1862"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"59fa0156ec7ff1ff0565336a8526ff4cb69694dc","unresolved":true,"context_lines":[{"line_number":60,"context_line":"                }"},{"line_number":61,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dexpl)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def _validate(self, context, keys, body, id):"},{"line_number":64,"context_line":"        try:"},{"line_number":65,"context_line":"            if \u0027consistent_snapshot_support\u0027 in keys:"},{"line_number":66,"context_line":"                res \u003d bool_from_string(body.get(\u0027consistent_snapshot_support\u0027))"}],"source_content_type":"text/x-python","patch_set":3,"id":"5303a464_e2ccc030","line":63,"range":{"start_line":63,"start_character":8,"end_line":63,"end_character":17},"updated":"2021-09-24 14:51:50.000000000","message":"we could have this a bit more suggestive on what kind of validations this method is performing... In that way, it will be a nice indicative when someone else is reading the code seeking for a function to reuse, or just even trying to understand what is being performed.\nOne suggestion: _validate_sg_consistent_snap_support_matches_share_types","commit_id":"b09c404929486afb104794dee74b216310b0c0d1"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"a2656bf0016ac1f77346bd3657b6f8123abc51f2","unresolved":false,"context_lines":[{"line_number":60,"context_line":"                }"},{"line_number":61,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dexpl)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def _validate(self, context, keys, body, id):"},{"line_number":64,"context_line":"        try:"},{"line_number":65,"context_line":"            if \u0027consistent_snapshot_support\u0027 in keys:"},{"line_number":66,"context_line":"                res \u003d bool_from_string(body.get(\u0027consistent_snapshot_support\u0027))"}],"source_content_type":"text/x-python","patch_set":3,"id":"a45e3095_b062c79a","line":63,"range":{"start_line":63,"start_character":8,"end_line":63,"end_character":17},"in_reply_to":"5303a464_e2ccc030","updated":"2022-03-02 19:51:45.000000000","message":"Done","commit_id":"b09c404929486afb104794dee74b216310b0c0d1"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"59fa0156ec7ff1ff0565336a8526ff4cb69694dc","unresolved":true,"context_lines":[{"line_number":70,"context_line":"                        context, group_ref.get(\u0027share_types\u0027, []))"},{"line_number":71,"context_line":"        except exception.NotFound:"},{"line_number":72,"context_line":"            raise webob.exc.HTTPNotFound()"},{"line_number":73,"context_line":"        except exception.InvalidGroupSpec:"},{"line_number":74,"context_line":"            raise webob.exc.HTTPConflict()"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    @wsgi.Controller.authorize(\u0027index\u0027)"},{"line_number":77,"context_line":"    def _index(self, req, id):"}],"source_content_type":"text/x-python","patch_set":3,"id":"6fcc7b65_9d674d43","line":74,"range":{"start_line":73,"start_character":8,"end_line":74,"end_character":42},"updated":"2021-09-24 14:51:50.000000000","message":"you could use the InvalidGroupSpec message as an explanation here, so it\u0027d look like:\nexcept exception.InvalidGroupspec as ex:\n    raise webob.ext.HTTPConflict(explanation\u003dex.message)","commit_id":"b09c404929486afb104794dee74b216310b0c0d1"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"a2656bf0016ac1f77346bd3657b6f8123abc51f2","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                        context, group_ref.get(\u0027share_types\u0027, []))"},{"line_number":71,"context_line":"        except exception.NotFound:"},{"line_number":72,"context_line":"            raise webob.exc.HTTPNotFound()"},{"line_number":73,"context_line":"        except exception.InvalidGroupSpec:"},{"line_number":74,"context_line":"            raise webob.exc.HTTPConflict()"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    @wsgi.Controller.authorize(\u0027index\u0027)"},{"line_number":77,"context_line":"    def _index(self, req, id):"}],"source_content_type":"text/x-python","patch_set":3,"id":"f06d506e_555883b3","line":74,"range":{"start_line":73,"start_character":8,"end_line":74,"end_character":42},"in_reply_to":"6fcc7b65_9d674d43","updated":"2022-03-02 19:51:45.000000000","message":"Done","commit_id":"b09c404929486afb104794dee74b216310b0c0d1"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"06b517a7a231e297e2412a62f196f01d37619b9c","unresolved":true,"context_lines":[{"line_number":64,"context_line":"        try:"},{"line_number":65,"context_line":"            if \u0027consistent_snapshot_support\u0027 in keys:"},{"line_number":66,"context_line":"                res \u003d bool_from_string(body.get(\u0027consistent_snapshot_support\u0027))"},{"line_number":67,"context_line":"                if res is True:"},{"line_number":68,"context_line":"                    group_ref \u003d share_group_types.get(context, id)"},{"line_number":69,"context_line":"                    share_group_types.consistent_spec_validation("},{"line_number":70,"context_line":"                        context, group_ref.get(\u0027share_types\u0027, []))"}],"source_content_type":"text/x-python","patch_set":6,"id":"b9728ade_e3b6057f","line":67,"range":{"start_line":67,"start_character":16,"end_line":67,"end_character":31},"updated":"2021-12-01 04:36:09.000000000","message":"if res:","commit_id":"4f9de437605b23e9cf5534bdd9177222e248cf01"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"0b6efb2a0a09124820bf8526a53f6e15e1f0d617","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        try:"},{"line_number":65,"context_line":"            if \u0027consistent_snapshot_support\u0027 in keys:"},{"line_number":66,"context_line":"                res \u003d bool_from_string(body.get(\u0027consistent_snapshot_support\u0027))"},{"line_number":67,"context_line":"                if res is True:"},{"line_number":68,"context_line":"                    group_ref \u003d share_group_types.get(context, id)"},{"line_number":69,"context_line":"                    share_group_types.consistent_spec_validation("},{"line_number":70,"context_line":"                        context, group_ref.get(\u0027share_types\u0027, []))"}],"source_content_type":"text/x-python","patch_set":6,"id":"081da19f_aac5a891","line":67,"range":{"start_line":67,"start_character":16,"end_line":67,"end_character":31},"in_reply_to":"b9728ade_e3b6057f","updated":"2021-12-01 14:50:05.000000000","message":"Done","commit_id":"4f9de437605b23e9cf5534bdd9177222e248cf01"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"6b5f6720b96e92b21c15d8541f66da4f2c85e6e7","unresolved":true,"context_lines":[{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"import copy"},{"line_number":14,"context_line":"from oslo_utils.strutils import bool_from_string"},{"line_number":15,"context_line":"import six"},{"line_number":16,"context_line":"from six.moves import http_client"},{"line_number":17,"context_line":"import webob"}],"source_content_type":"text/x-python","patch_set":7,"id":"852248c7_e7f94a81","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":48},"updated":"2021-12-07 21:28:59.000000000","message":"import modules, not objects: https://docs.openstack.org/hacking/latest/user/hacking.html#imports\n\n\n from oslo_utils import strutils\n\n ..\n\n\n strutils.bool_from_string(..)","commit_id":"96e406d37eb86d200212e556af16e19d6189c063"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"a2656bf0016ac1f77346bd3657b6f8123abc51f2","unresolved":false,"context_lines":[{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"import copy"},{"line_number":14,"context_line":"from oslo_utils.strutils import bool_from_string"},{"line_number":15,"context_line":"import six"},{"line_number":16,"context_line":"from six.moves import http_client"},{"line_number":17,"context_line":"import webob"}],"source_content_type":"text/x-python","patch_set":7,"id":"65e52edb_5fcadd06","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":48},"in_reply_to":"852248c7_e7f94a81","updated":"2022-03-02 19:51:45.000000000","message":"Done","commit_id":"96e406d37eb86d200212e556af16e19d6189c063"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"6b5f6720b96e92b21c15d8541f66da4f2c85e6e7","unresolved":true,"context_lines":[{"line_number":60,"context_line":"                }"},{"line_number":61,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dexpl)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def _validate_all_sg_type_snapshot_support(self, context, keys, body, id):"},{"line_number":64,"context_line":"        try:"},{"line_number":65,"context_line":"            if \u0027consistent_snapshot_support\u0027 in keys:"},{"line_number":66,"context_line":"                res \u003d bool_from_string(body.get(\u0027consistent_snapshot_support\u0027))"},{"line_number":67,"context_line":"                if res:"},{"line_number":68,"context_line":"                    group_ref \u003d share_group_types.get(context, id)"},{"line_number":69,"context_line":"                    share_group_types.consistent_spec_validation("},{"line_number":70,"context_line":"                        context, group_ref.get(\u0027share_types\u0027, []))"},{"line_number":71,"context_line":"        except exception.NotFound:"},{"line_number":72,"context_line":"            raise webob.exc.HTTPNotFound()"},{"line_number":73,"context_line":"        except exception.InvalidGroupSpec as ex:"},{"line_number":74,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003dex.message)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    @wsgi.Controller.authorize(\u0027index\u0027)"},{"line_number":77,"context_line":"    def _index(self, req, id):"}],"source_content_type":"text/x-python","patch_set":7,"id":"f891939e_bd86c572","line":74,"range":{"start_line":63,"start_character":4,"end_line":74,"end_character":64},"updated":"2021-12-07 21:28:59.000000000","message":"feels like this validation can be folded into the _verify_group_specs method above instead of being a separate call;","commit_id":"96e406d37eb86d200212e556af16e19d6189c063"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"a2656bf0016ac1f77346bd3657b6f8123abc51f2","unresolved":false,"context_lines":[{"line_number":60,"context_line":"                }"},{"line_number":61,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dexpl)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def _validate_all_sg_type_snapshot_support(self, context, keys, body, id):"},{"line_number":64,"context_line":"        try:"},{"line_number":65,"context_line":"            if \u0027consistent_snapshot_support\u0027 in keys:"},{"line_number":66,"context_line":"                res \u003d bool_from_string(body.get(\u0027consistent_snapshot_support\u0027))"},{"line_number":67,"context_line":"                if res:"},{"line_number":68,"context_line":"                    group_ref \u003d share_group_types.get(context, id)"},{"line_number":69,"context_line":"                    share_group_types.consistent_spec_validation("},{"line_number":70,"context_line":"                        context, group_ref.get(\u0027share_types\u0027, []))"},{"line_number":71,"context_line":"        except exception.NotFound:"},{"line_number":72,"context_line":"            raise webob.exc.HTTPNotFound()"},{"line_number":73,"context_line":"        except exception.InvalidGroupSpec as ex:"},{"line_number":74,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003dex.message)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    @wsgi.Controller.authorize(\u0027index\u0027)"},{"line_number":77,"context_line":"    def _index(self, req, id):"}],"source_content_type":"text/x-python","patch_set":7,"id":"46144eb7_ee7173c7","line":74,"range":{"start_line":63,"start_character":4,"end_line":74,"end_character":64},"in_reply_to":"f891939e_bd86c572","updated":"2022-03-02 19:51:45.000000000","message":"Done","commit_id":"96e406d37eb86d200212e556af16e19d6189c063"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"0eb41e9a0a273b6e31346afb85ea0bdcc76cf809","unresolved":true,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        for k, v in body.items():"},{"line_number":71,"context_line":"            if is_valid_string(k) and isinstance(v, dict):"},{"line_number":72,"context_line":"                self._verify_group_specs(v)"},{"line_number":73,"context_line":"            elif not is_valid_spec(k, v):"},{"line_number":74,"context_line":"                expl \u003d _(\u0027Invalid extra_spec: %(key)s: %(value)s\u0027) % {"},{"line_number":75,"context_line":"                    \u0027key\u0027: k, \u0027value\u0027: v"}],"source_content_type":"text/x-python","patch_set":8,"id":"707c5e9a_c54b70b9","line":72,"range":{"start_line":72,"start_character":16,"end_line":72,"end_character":43},"updated":"2022-04-20 02:47:19.000000000","message":"Incorrect number of input arguments.\nmay be  self._verify_group_specs(context, keys, v, id)","commit_id":"3a9b3cd9003f4ecac35104f06616c71325fa1707"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"b15f683e91c781f7a87b2137cc0e870123357a43","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        for k, v in body.items():"},{"line_number":71,"context_line":"            if is_valid_string(k) and isinstance(v, dict):"},{"line_number":72,"context_line":"                self._verify_group_specs(v)"},{"line_number":73,"context_line":"            elif not is_valid_spec(k, v):"},{"line_number":74,"context_line":"                expl \u003d _(\u0027Invalid extra_spec: %(key)s: %(value)s\u0027) % {"},{"line_number":75,"context_line":"                    \u0027key\u0027: k, \u0027value\u0027: v"}],"source_content_type":"text/x-python","patch_set":8,"id":"f59548f5_8c85ff73","line":72,"range":{"start_line":72,"start_character":16,"end_line":72,"end_character":43},"in_reply_to":"707c5e9a_c54b70b9","updated":"2022-04-21 19:29:42.000000000","message":"Done","commit_id":"3a9b3cd9003f4ecac35104f06616c71325fa1707"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"eff316d8b782caaa4e1f5f28f08962ac2943cc00","unresolved":true,"context_lines":[{"line_number":76,"context_line":"                        group_ref \u003d share_group_types.get(context, id)"},{"line_number":77,"context_line":"                        consistent_spec_validation("},{"line_number":78,"context_line":"                            context, group_ref.get(\u0027share_types\u0027, []))"},{"line_number":79,"context_line":"            except exception.NotFound:"},{"line_number":80,"context_line":"                raise webob.exc.HTTPNotFound()"},{"line_number":81,"context_line":"            except exception.InvalidGroupSpec as ex:"},{"line_number":82,"context_line":"                raise webob.exc.HTTPConflict(explanation\u003dex.message)"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"f9484cb7_ed4b706f","line":80,"range":{"start_line":79,"start_character":12,"end_line":80,"end_character":46},"updated":"2022-05-05 18:24:58.000000000","message":"exception.NotFound as e:\n\n    raise webob.exc.HTTPNotFound(e.msg)","commit_id":"b65cf0124b9eede0f2f4d539d90894cabdc24c81"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"a9730ae22fc6f693f06237382756f5ee06aa09f8","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                        group_ref \u003d share_group_types.get(context, id)"},{"line_number":77,"context_line":"                        consistent_spec_validation("},{"line_number":78,"context_line":"                            context, group_ref.get(\u0027share_types\u0027, []))"},{"line_number":79,"context_line":"            except exception.NotFound:"},{"line_number":80,"context_line":"                raise webob.exc.HTTPNotFound()"},{"line_number":81,"context_line":"            except exception.InvalidGroupSpec as ex:"},{"line_number":82,"context_line":"                raise webob.exc.HTTPConflict(explanation\u003dex.message)"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"06ae3a6a_862ff9f5","line":80,"range":{"start_line":79,"start_character":12,"end_line":80,"end_character":46},"in_reply_to":"f9484cb7_ed4b706f","updated":"2022-05-10 19:42:03.000000000","message":"Done","commit_id":"b65cf0124b9eede0f2f4d539d90894cabdc24c81"}],"manila/db/sqlalchemy/api.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"eff316d8b782caaa4e1f5f28f08962ac2943cc00","unresolved":true,"context_lines":[{"line_number":5728,"context_line":"                share_type \u003d share_type_get_by_name_or_id(context, item)"},{"line_number":5729,"context_line":"                if not share_type:"},{"line_number":5730,"context_line":"                    raise exception.ShareTypeDoesNotExist(share_type\u003ditem)"},{"line_number":5731,"context_line":"                specs \u003d share_type[\u0027extra_specs\u0027]"},{"line_number":5732,"context_line":"                snap_support \u003d specs.get(\u0027snapshot_support\u0027)"},{"line_number":5733,"context_line":"                if snap_support:"},{"line_number":5734,"context_line":"                    res \u003d strutils.bool_from_string(snap_support)"},{"line_number":5735,"context_line":"                    if not res:"},{"line_number":5736,"context_line":"                        msg \u003d _(\"share type %s does not support snapshot\","},{"line_number":5737,"context_line":"                                item)"},{"line_number":5738,"context_line":"                        raise exception.InvalidShareType(reason\u003dmsg)"},{"line_number":5739,"context_line":"                mapping \u003d models.ShareGroupTypeShareTypeMapping()"},{"line_number":5740,"context_line":"                mapping[\u0027id\u0027] \u003d uuidutils.generate_uuid()"},{"line_number":5741,"context_line":"                mapping[\u0027share_type_id\u0027] \u003d share_type[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"40368256_30120bf9","line":5738,"range":{"start_line":5731,"start_character":16,"end_line":5738,"end_character":68},"updated":"2022-05-05 18:24:58.000000000","message":"i don\u0027t get the logic here.. \nDon\u0027t we need to do this only if the group_spec \"consistent_snapshot_support\" is set to True?","commit_id":"b65cf0124b9eede0f2f4d539d90894cabdc24c81"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"a9730ae22fc6f693f06237382756f5ee06aa09f8","unresolved":true,"context_lines":[{"line_number":5728,"context_line":"                share_type \u003d share_type_get_by_name_or_id(context, item)"},{"line_number":5729,"context_line":"                if not share_type:"},{"line_number":5730,"context_line":"                    raise exception.ShareTypeDoesNotExist(share_type\u003ditem)"},{"line_number":5731,"context_line":"                specs \u003d share_type[\u0027extra_specs\u0027]"},{"line_number":5732,"context_line":"                snap_support \u003d specs.get(\u0027snapshot_support\u0027)"},{"line_number":5733,"context_line":"                if snap_support:"},{"line_number":5734,"context_line":"                    res \u003d strutils.bool_from_string(snap_support)"},{"line_number":5735,"context_line":"                    if not res:"},{"line_number":5736,"context_line":"                        msg \u003d _(\"share type %s does not support snapshot\","},{"line_number":5737,"context_line":"                                item)"},{"line_number":5738,"context_line":"                        raise exception.InvalidShareType(reason\u003dmsg)"},{"line_number":5739,"context_line":"                mapping \u003d models.ShareGroupTypeShareTypeMapping()"},{"line_number":5740,"context_line":"                mapping[\u0027id\u0027] \u003d uuidutils.generate_uuid()"},{"line_number":5741,"context_line":"                mapping[\u0027share_type_id\u0027] \u003d share_type[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"63e2b31f_5b7cfa5c","line":5738,"range":{"start_line":5731,"start_character":16,"end_line":5738,"end_character":68},"in_reply_to":"40368256_30120bf9","updated":"2022-05-10 19:42:03.000000000","message":"ah youre right, i forgot to add the check against the group spec itself, good catch.","commit_id":"b65cf0124b9eede0f2f4d539d90894cabdc24c81"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"bc4164cd034ed3fc206ef0a2ce86d727cf81a478","unresolved":false,"context_lines":[{"line_number":5728,"context_line":"                share_type \u003d share_type_get_by_name_or_id(context, item)"},{"line_number":5729,"context_line":"                if not share_type:"},{"line_number":5730,"context_line":"                    raise exception.ShareTypeDoesNotExist(share_type\u003ditem)"},{"line_number":5731,"context_line":"                specs \u003d share_type[\u0027extra_specs\u0027]"},{"line_number":5732,"context_line":"                snap_support \u003d specs.get(\u0027snapshot_support\u0027)"},{"line_number":5733,"context_line":"                if snap_support:"},{"line_number":5734,"context_line":"                    res \u003d strutils.bool_from_string(snap_support)"},{"line_number":5735,"context_line":"                    if not res:"},{"line_number":5736,"context_line":"                        msg \u003d _(\"share type %s does not support snapshot\","},{"line_number":5737,"context_line":"                                item)"},{"line_number":5738,"context_line":"                        raise exception.InvalidShareType(reason\u003dmsg)"},{"line_number":5739,"context_line":"                mapping \u003d models.ShareGroupTypeShareTypeMapping()"},{"line_number":5740,"context_line":"                mapping[\u0027id\u0027] \u003d uuidutils.generate_uuid()"},{"line_number":5741,"context_line":"                mapping[\u0027share_type_id\u0027] \u003d share_type[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"ab5c0b7a_2a47a6c6","line":5738,"range":{"start_line":5731,"start_character":16,"end_line":5738,"end_character":68},"in_reply_to":"63e2b31f_5b7cfa5c","updated":"2023-09-21 13:44:19.000000000","message":"Done","commit_id":"b65cf0124b9eede0f2f4d539d90894cabdc24c81"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"6eeebf0764bd5c0102f5da03da392620d1f1b521","unresolved":true,"context_lines":[{"line_number":5738,"context_line":"                    group_specs[key] \u003d value"},{"line_number":5739,"context_line":"                con_snap_support \u003d group_specs.get("},{"line_number":5740,"context_line":"                    \u0027consistent_snapshot_support\u0027, False)"},{"line_number":5741,"context_line":"                if con_snap_support and snap_support:"},{"line_number":5742,"context_line":"                    res \u003d strutils.bool_from_string(snap_support)"},{"line_number":5743,"context_line":"                    if not res:"},{"line_number":5744,"context_line":"                        msg \u003d _(\"share type %s does not support snapshot\","}],"source_content_type":"text/x-python","patch_set":11,"id":"940b2096_dd0d889b","line":5741,"range":{"start_line":5741,"start_character":16,"end_line":5741,"end_character":53},"updated":"2022-05-06 12:02:02.000000000","message":"if con_snap_support and not snap_support\n\n\nCould you please add unit tests to cover this method and logic?","commit_id":"6bbd722e8ce88001bbbede8f1e32a1387cbeb92b"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"a9730ae22fc6f693f06237382756f5ee06aa09f8","unresolved":true,"context_lines":[{"line_number":5738,"context_line":"                    group_specs[key] \u003d value"},{"line_number":5739,"context_line":"                con_snap_support \u003d group_specs.get("},{"line_number":5740,"context_line":"                    \u0027consistent_snapshot_support\u0027, False)"},{"line_number":5741,"context_line":"                if con_snap_support and snap_support:"},{"line_number":5742,"context_line":"                    res \u003d strutils.bool_from_string(snap_support)"},{"line_number":5743,"context_line":"                    if not res:"},{"line_number":5744,"context_line":"                        msg \u003d _(\"share type %s does not support snapshot\","}],"source_content_type":"text/x-python","patch_set":11,"id":"e7037f08_c560112b","line":5741,"range":{"start_line":5741,"start_character":16,"end_line":5741,"end_character":53},"in_reply_to":"940b2096_dd0d889b","updated":"2022-05-10 19:42:03.000000000","message":"please check the unit test Ive added. I keep getting this error:  \nTypeError: f() takes 1 positional argument but 2 were given\non line 5744 where I raise the exception","commit_id":"6bbd722e8ce88001bbbede8f1e32a1387cbeb92b"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"bc4164cd034ed3fc206ef0a2ce86d727cf81a478","unresolved":false,"context_lines":[{"line_number":5738,"context_line":"                    group_specs[key] \u003d value"},{"line_number":5739,"context_line":"                con_snap_support \u003d group_specs.get("},{"line_number":5740,"context_line":"                    \u0027consistent_snapshot_support\u0027, False)"},{"line_number":5741,"context_line":"                if con_snap_support and snap_support:"},{"line_number":5742,"context_line":"                    res \u003d strutils.bool_from_string(snap_support)"},{"line_number":5743,"context_line":"                    if not res:"},{"line_number":5744,"context_line":"                        msg \u003d _(\"share type %s does not support snapshot\","}],"source_content_type":"text/x-python","patch_set":11,"id":"06c11487_a24abd03","line":5741,"range":{"start_line":5741,"start_character":16,"end_line":5741,"end_character":53},"in_reply_to":"e7037f08_c560112b","updated":"2023-09-21 13:44:19.000000000","message":"Done","commit_id":"6bbd722e8ce88001bbbede8f1e32a1387cbeb92b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"7fca6bf113631e1aba9d9e635c86732b440a80c4","unresolved":true,"context_lines":[{"line_number":1882,"context_line":""},{"line_number":1883,"context_line":"    query \u003d model_query(context, models.ShareInstance, session\u003dsession,"},{"line_number":1884,"context_line":"                        read_deleted\u003d\"no\")"},{"line_number":1885,"context_line":""},{"line_number":1886,"context_line":"    if not context.is_admin:"},{"line_number":1887,"context_line":"        query \u003d query.join("},{"line_number":1888,"context_line":"            models.Share,"},{"line_number":1889,"context_line":"            models.ShareInstance.share_id \u003d\u003d models.Share.id).filter("},{"line_number":1890,"context_line":"            models.Share.project_id \u003d\u003d context.project_id)"},{"line_number":1891,"context_line":""},{"line_number":1892,"context_line":"    if share_id is not None:"},{"line_number":1893,"context_line":"        query \u003d query.filter(models.ShareInstance.share_id \u003d\u003d share_id)"},{"line_number":1894,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"63bb4bf6_82441634","side":"PARENT","line":1891,"range":{"start_line":1885,"start_character":0,"end_line":1891,"end_character":0},"updated":"2023-03-01 19:17:08.000000000","message":"why is this being deleted? incorrect rebase?","commit_id":"6e8ed59a91934096a4ddc9b184ef50a633cbd1ec"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"bc4164cd034ed3fc206ef0a2ce86d727cf81a478","unresolved":false,"context_lines":[{"line_number":1882,"context_line":""},{"line_number":1883,"context_line":"    query \u003d model_query(context, models.ShareInstance, session\u003dsession,"},{"line_number":1884,"context_line":"                        read_deleted\u003d\"no\")"},{"line_number":1885,"context_line":""},{"line_number":1886,"context_line":"    if not context.is_admin:"},{"line_number":1887,"context_line":"        query \u003d query.join("},{"line_number":1888,"context_line":"            models.Share,"},{"line_number":1889,"context_line":"            models.ShareInstance.share_id \u003d\u003d models.Share.id).filter("},{"line_number":1890,"context_line":"            models.Share.project_id \u003d\u003d context.project_id)"},{"line_number":1891,"context_line":""},{"line_number":1892,"context_line":"    if share_id is not None:"},{"line_number":1893,"context_line":"        query \u003d query.filter(models.ShareInstance.share_id \u003d\u003d share_id)"},{"line_number":1894,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"dd016584_36823b27","side":"PARENT","line":1891,"range":{"start_line":1885,"start_character":0,"end_line":1891,"end_character":0},"in_reply_to":"63bb4bf6_82441634","updated":"2023-09-21 13:44:19.000000000","message":"correct, fixed.","commit_id":"6e8ed59a91934096a4ddc9b184ef50a633cbd1ec"}],"manila/exception.py":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"0c36790c102614f66a5d7c54fd79ccbc5af6a358","unresolved":true,"context_lines":[{"line_number":640,"context_line":""},{"line_number":641,"context_line":""},{"line_number":642,"context_line":"class InvalidGroupSpec(Invalid):"},{"line_number":643,"context_line":"    message \u003d _(\"Invalid extra_spec: %(reason)s.\")"},{"line_number":644,"context_line":""},{"line_number":645,"context_line":""},{"line_number":646,"context_line":"class VolumeNotFound(NotFound):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ab0a337d_a8c85dd6","line":643,"range":{"start_line":643,"start_character":25,"end_line":643,"end_character":35},"updated":"2021-09-21 16:58:53.000000000","message":"group type spec","commit_id":"9496e983d7d0de7c811ee21de25c40aa441d1862"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"a2656bf0016ac1f77346bd3657b6f8123abc51f2","unresolved":false,"context_lines":[{"line_number":640,"context_line":""},{"line_number":641,"context_line":""},{"line_number":642,"context_line":"class InvalidGroupSpec(Invalid):"},{"line_number":643,"context_line":"    message \u003d _(\"Invalid extra_spec: %(reason)s.\")"},{"line_number":644,"context_line":""},{"line_number":645,"context_line":""},{"line_number":646,"context_line":"class VolumeNotFound(NotFound):"}],"source_content_type":"text/x-python","patch_set":2,"id":"58efdadd_e7b44344","line":643,"range":{"start_line":643,"start_character":25,"end_line":643,"end_character":35},"in_reply_to":"ab0a337d_a8c85dd6","updated":"2022-03-02 19:51:45.000000000","message":"Done","commit_id":"9496e983d7d0de7c811ee21de25c40aa441d1862"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"5e21f3d654f6013daa0a00d5fa812d45c55917f9","unresolved":true,"context_lines":[{"line_number":641,"context_line":"class InvalidGroupSpec(Invalid):"},{"line_number":642,"context_line":"    message \u003d _("},{"line_number":643,"context_line":"        \"The requested operation can not be performed. At least one of the\""},{"line_number":644,"context_line":"        \"share types \u0027snapshot_support\u0027 extra spec is not compatible with the\""},{"line_number":645,"context_line":"        \"share group type \u0027consistent_snapshot_support\u0027 extra spec.\")"},{"line_number":646,"context_line":""},{"line_number":647,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"05b89ae9_2ca8d771","line":644,"range":{"start_line":644,"start_character":77,"end_line":644,"end_character":78},"updated":"2022-04-19 19:23:45.000000000","message":"missing a blank space here","commit_id":"3a9b3cd9003f4ecac35104f06616c71325fa1707"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"b15f683e91c781f7a87b2137cc0e870123357a43","unresolved":false,"context_lines":[{"line_number":641,"context_line":"class InvalidGroupSpec(Invalid):"},{"line_number":642,"context_line":"    message \u003d _("},{"line_number":643,"context_line":"        \"The requested operation can not be performed. At least one of the\""},{"line_number":644,"context_line":"        \"share types \u0027snapshot_support\u0027 extra spec is not compatible with the\""},{"line_number":645,"context_line":"        \"share group type \u0027consistent_snapshot_support\u0027 extra spec.\")"},{"line_number":646,"context_line":""},{"line_number":647,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"0c57b636_3984b9d9","line":644,"range":{"start_line":644,"start_character":77,"end_line":644,"end_character":78},"in_reply_to":"05b89ae9_2ca8d771","updated":"2022-04-21 19:29:42.000000000","message":"Done","commit_id":"3a9b3cd9003f4ecac35104f06616c71325fa1707"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"7fca6bf113631e1aba9d9e635c86732b440a80c4","unresolved":true,"context_lines":[{"line_number":650,"context_line":""},{"line_number":651,"context_line":"class InvalidGroupSpec(Invalid):"},{"line_number":652,"context_line":"    message \u003d _("},{"line_number":653,"context_line":"        \"The requested operation can not be performed. At least one of the\""},{"line_number":654,"context_line":"        \" share types \u0027snapshot_support\u0027 extra spec is not compatible with\""},{"line_number":655,"context_line":"        \" the share group type \u0027consistent_snapshot_support\u0027 extra spec.\")"},{"line_number":656,"context_line":""},{"line_number":657,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"b9f35796_02162216","line":654,"range":{"start_line":653,"start_character":55,"end_line":654,"end_character":51},"updated":"2023-03-01 19:17:08.000000000","message":"nit: grammar\n\nThe \u0027snapshot_support\u0027 extra spec in one of the share types specified is not compatible with the share group type\u0027s \u0027consistent_snapshot_support\u0027 extra spec","commit_id":"b8842d912ac71797bf355dd02da4311f88e1e71f"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"bc4164cd034ed3fc206ef0a2ce86d727cf81a478","unresolved":false,"context_lines":[{"line_number":650,"context_line":""},{"line_number":651,"context_line":"class InvalidGroupSpec(Invalid):"},{"line_number":652,"context_line":"    message \u003d _("},{"line_number":653,"context_line":"        \"The requested operation can not be performed. At least one of the\""},{"line_number":654,"context_line":"        \" share types \u0027snapshot_support\u0027 extra spec is not compatible with\""},{"line_number":655,"context_line":"        \" the share group type \u0027consistent_snapshot_support\u0027 extra spec.\")"},{"line_number":656,"context_line":""},{"line_number":657,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"1b99e18a_b429da60","line":654,"range":{"start_line":653,"start_character":55,"end_line":654,"end_character":51},"in_reply_to":"b9f35796_02162216","updated":"2023-09-21 13:44:19.000000000","message":"Done","commit_id":"b8842d912ac71797bf355dd02da4311f88e1e71f"}],"manila/share_group/share_group_types.py":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"0c36790c102614f66a5d7c54fd79ccbc5af6a358","unresolved":true,"context_lines":[{"line_number":33,"context_line":"            db.share_type_get(context, id)"},{"line_number":34,"context_line":"        except exception.ShareTypeNotFound:"},{"line_number":35,"context_line":"            msg \u003d _(\"Share Type not found.\")"},{"line_number":36,"context_line":"            LOG.exception(msg)"},{"line_number":37,"context_line":"        specs \u003d db.share_type_extra_specs_get(context, id)"},{"line_number":38,"context_line":"        print(specs)"},{"line_number":39,"context_line":"        if specs.get(\u0027snapshot_support\u0027) \u003d\u003d \"False\":"}],"source_content_type":"text/x-python","patch_set":2,"id":"d288db5d_490aa0c1","line":36,"range":{"start_line":36,"start_character":12,"end_line":36,"end_character":30},"updated":"2021-09-21 16:58:53.000000000","message":"shouldn\u0027t this be raising a NotFound exception?","commit_id":"9496e983d7d0de7c811ee21de25c40aa441d1862"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"a2656bf0016ac1f77346bd3657b6f8123abc51f2","unresolved":false,"context_lines":[{"line_number":33,"context_line":"            db.share_type_get(context, id)"},{"line_number":34,"context_line":"        except exception.ShareTypeNotFound:"},{"line_number":35,"context_line":"            msg \u003d _(\"Share Type not found.\")"},{"line_number":36,"context_line":"            LOG.exception(msg)"},{"line_number":37,"context_line":"        specs \u003d db.share_type_extra_specs_get(context, id)"},{"line_number":38,"context_line":"        print(specs)"},{"line_number":39,"context_line":"        if specs.get(\u0027snapshot_support\u0027) \u003d\u003d \"False\":"}],"source_content_type":"text/x-python","patch_set":2,"id":"8d51e37e_839ff953","line":36,"range":{"start_line":36,"start_character":12,"end_line":36,"end_character":30},"in_reply_to":"d288db5d_490aa0c1","updated":"2022-03-02 19:51:45.000000000","message":"Done","commit_id":"9496e983d7d0de7c811ee21de25c40aa441d1862"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"0c36790c102614f66a5d7c54fd79ccbc5af6a358","unresolved":true,"context_lines":[{"line_number":35,"context_line":"            msg \u003d _(\"Share Type not found.\")"},{"line_number":36,"context_line":"            LOG.exception(msg)"},{"line_number":37,"context_line":"        specs \u003d db.share_type_extra_specs_get(context, id)"},{"line_number":38,"context_line":"        print(specs)"},{"line_number":39,"context_line":"        if specs.get(\u0027snapshot_support\u0027) \u003d\u003d \"False\":"},{"line_number":40,"context_line":"            raise exception.InvalidGroupSpec("},{"line_number":41,"context_line":"                reason\u003d\u0027consistent_snapshot_support\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"2d71efc5_bcff3743","line":38,"range":{"start_line":38,"start_character":8,"end_line":38,"end_character":20},"updated":"2021-09-21 16:58:53.000000000","message":"please remove :)","commit_id":"9496e983d7d0de7c811ee21de25c40aa441d1862"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"a2656bf0016ac1f77346bd3657b6f8123abc51f2","unresolved":false,"context_lines":[{"line_number":35,"context_line":"            msg \u003d _(\"Share Type not found.\")"},{"line_number":36,"context_line":"            LOG.exception(msg)"},{"line_number":37,"context_line":"        specs \u003d db.share_type_extra_specs_get(context, id)"},{"line_number":38,"context_line":"        print(specs)"},{"line_number":39,"context_line":"        if specs.get(\u0027snapshot_support\u0027) \u003d\u003d \"False\":"},{"line_number":40,"context_line":"            raise exception.InvalidGroupSpec("},{"line_number":41,"context_line":"                reason\u003d\u0027consistent_snapshot_support\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"b81d0f37_fc2c7fba","line":38,"range":{"start_line":38,"start_character":8,"end_line":38,"end_character":20},"in_reply_to":"2d71efc5_bcff3743","updated":"2022-03-02 19:51:45.000000000","message":"Done","commit_id":"9496e983d7d0de7c811ee21de25c40aa441d1862"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"0c36790c102614f66a5d7c54fd79ccbc5af6a358","unresolved":true,"context_lines":[{"line_number":38,"context_line":"        print(specs)"},{"line_number":39,"context_line":"        if specs.get(\u0027snapshot_support\u0027) \u003d\u003d \"False\":"},{"line_number":40,"context_line":"            raise exception.InvalidGroupSpec("},{"line_number":41,"context_line":"                reason\u003d\u0027consistent_snapshot_support\u0027)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"def create(context, name, share_types, group_specs\u003dNone, is_public\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":2,"id":"f6f1b482_caa270eb","line":41,"range":{"start_line":41,"start_character":23,"end_line":41,"end_character":52},"updated":"2021-09-21 16:58:53.000000000","message":"I think we could add a message here, or in the caller layer... here goes a suggestion:\n\"The requested operation can not be performed. At least one of the share types \u0027snapshot_support\u0027 extra spec is not compatible with the share group type \u0027consistent_snapshot_support\u0027 extra spec.\"","commit_id":"9496e983d7d0de7c811ee21de25c40aa441d1862"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"a2656bf0016ac1f77346bd3657b6f8123abc51f2","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        print(specs)"},{"line_number":39,"context_line":"        if specs.get(\u0027snapshot_support\u0027) \u003d\u003d \"False\":"},{"line_number":40,"context_line":"            raise exception.InvalidGroupSpec("},{"line_number":41,"context_line":"                reason\u003d\u0027consistent_snapshot_support\u0027)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"def create(context, name, share_types, group_specs\u003dNone, is_public\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":2,"id":"f10a4552_44945c4f","line":41,"range":{"start_line":41,"start_character":23,"end_line":41,"end_character":52},"in_reply_to":"f6f1b482_caa270eb","updated":"2022-03-02 19:51:45.000000000","message":"Done","commit_id":"9496e983d7d0de7c811ee21de25c40aa441d1862"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"06b517a7a231e297e2412a62f196f01d37619b9c","unresolved":true,"context_lines":[{"line_number":36,"context_line":"            LOG.exception(msg)"},{"line_number":37,"context_line":"            raise exception.NotFound(message\u003dmsg)"},{"line_number":38,"context_line":"        specs \u003d db.share_type_extra_specs_get(context, id)"},{"line_number":39,"context_line":"        if specs.get(\u0027snapshot_support\u0027) \u003d\u003d \"False\":"},{"line_number":40,"context_line":"            raise exception.InvalidGroupSpec()"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"6ec86bef_6f0f282d","line":39,"range":{"start_line":39,"start_character":8,"end_line":39,"end_character":52},"updated":"2021-12-01 04:36:09.000000000","message":"the value of  snapshot_support maybe \"false\", \"0\", \"no\", \nin manila/share/share_types.py#345, we allow those values.\nso we need to do below:\nsnap_support \u003d specs.get(\u0027snapshot_support\u0027)\nif snap_support:\n    res \u003d bool_from_string(snap_support)\n    if not res:\n        raise exception.InvalidGroupSpec()","commit_id":"4f9de437605b23e9cf5534bdd9177222e248cf01"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"0b6efb2a0a09124820bf8526a53f6e15e1f0d617","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            LOG.exception(msg)"},{"line_number":37,"context_line":"            raise exception.NotFound(message\u003dmsg)"},{"line_number":38,"context_line":"        specs \u003d db.share_type_extra_specs_get(context, id)"},{"line_number":39,"context_line":"        if specs.get(\u0027snapshot_support\u0027) \u003d\u003d \"False\":"},{"line_number":40,"context_line":"            raise exception.InvalidGroupSpec()"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ad4101bd_0d3043e5","line":39,"range":{"start_line":39,"start_character":8,"end_line":39,"end_character":52},"in_reply_to":"6ec86bef_6f0f282d","updated":"2021-12-01 14:50:05.000000000","message":"Done","commit_id":"4f9de437605b23e9cf5534bdd9177222e248cf01"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"06b517a7a231e297e2412a62f196f01d37619b9c","unresolved":true,"context_lines":[{"line_number":48,"context_line":"    if \u0027consistent_snapshot_support\u0027 in group_specs:"},{"line_number":49,"context_line":"        res \u003d bool_from_string(group_specs.get("},{"line_number":50,"context_line":"            \u0027consistent_snapshot_support\u0027))"},{"line_number":51,"context_line":"        if res is True:"},{"line_number":52,"context_line":"            consistent_spec_validation(context, share_types)"},{"line_number":53,"context_line":"    try:"},{"line_number":54,"context_line":"        type_ref \u003d db.share_group_type_create("}],"source_content_type":"text/x-python","patch_set":6,"id":"fe9bbd16_ecfefa27","line":51,"range":{"start_line":51,"start_character":8,"end_line":51,"end_character":23},"updated":"2021-12-01 04:36:09.000000000","message":"if res:\nIt might be a little bit more concise to write it this way","commit_id":"4f9de437605b23e9cf5534bdd9177222e248cf01"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"0b6efb2a0a09124820bf8526a53f6e15e1f0d617","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    if \u0027consistent_snapshot_support\u0027 in group_specs:"},{"line_number":49,"context_line":"        res \u003d bool_from_string(group_specs.get("},{"line_number":50,"context_line":"            \u0027consistent_snapshot_support\u0027))"},{"line_number":51,"context_line":"        if res is True:"},{"line_number":52,"context_line":"            consistent_spec_validation(context, share_types)"},{"line_number":53,"context_line":"    try:"},{"line_number":54,"context_line":"        type_ref \u003d db.share_group_type_create("}],"source_content_type":"text/x-python","patch_set":6,"id":"8be2759b_b7050ae2","line":51,"range":{"start_line":51,"start_character":8,"end_line":51,"end_character":23},"in_reply_to":"fe9bbd16_ecfefa27","updated":"2021-12-01 14:50:05.000000000","message":"Done","commit_id":"4f9de437605b23e9cf5534bdd9177222e248cf01"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"6b5f6720b96e92b21c15d8541f66da4f2c85e6e7","unresolved":true,"context_lines":[{"line_number":48,"context_line":"    \"\"\"Creates share group types.\"\"\""},{"line_number":49,"context_line":"    group_specs \u003d group_specs or {}"},{"line_number":50,"context_line":"    projects \u003d projects or []"},{"line_number":51,"context_line":"    if \u0027consistent_snapshot_support\u0027 in group_specs:"},{"line_number":52,"context_line":"        res \u003d bool_from_string(group_specs.get("},{"line_number":53,"context_line":"            \u0027consistent_snapshot_support\u0027))"},{"line_number":54,"context_line":"        if res:"},{"line_number":55,"context_line":"            consistent_spec_validation(context, share_types)"},{"line_number":56,"context_line":"    try:"},{"line_number":57,"context_line":"        type_ref \u003d db.share_group_type_create("},{"line_number":58,"context_line":"            context,"}],"source_content_type":"text/x-python","patch_set":7,"id":"a70ed042_bf2ff0b5","line":55,"range":{"start_line":51,"start_character":4,"end_line":55,"end_character":60},"updated":"2021-12-07 21:28:59.000000000","message":"When creating a share group type in the database, we retrieve the list of share types indicated already here: https://github.com/openstack/manila/blob/de72cd473616bf0454749d6f105a17170cc3d5ce/manila/db/sqlalchemy/api.py#L5561\n\nIt\u0027d be efficient to do this retrieval just once","commit_id":"96e406d37eb86d200212e556af16e19d6189c063"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"0eb41e9a0a273b6e31346afb85ea0bdcc76cf809","unresolved":true,"context_lines":[{"line_number":48,"context_line":"    \"\"\"Creates share group types.\"\"\""},{"line_number":49,"context_line":"    group_specs \u003d group_specs or {}"},{"line_number":50,"context_line":"    projects \u003d projects or []"},{"line_number":51,"context_line":"    if \u0027consistent_snapshot_support\u0027 in group_specs:"},{"line_number":52,"context_line":"        res \u003d bool_from_string(group_specs.get("},{"line_number":53,"context_line":"            \u0027consistent_snapshot_support\u0027))"},{"line_number":54,"context_line":"        if res:"},{"line_number":55,"context_line":"            consistent_spec_validation(context, share_types)"},{"line_number":56,"context_line":"    try:"},{"line_number":57,"context_line":"        type_ref \u003d db.share_group_type_create("},{"line_number":58,"context_line":"            context,"}],"source_content_type":"text/x-python","patch_set":7,"id":"b8aea535_f974f0dd","line":55,"range":{"start_line":51,"start_character":4,"end_line":55,"end_character":60},"in_reply_to":"a70ed042_bf2ff0b5","updated":"2022-04-20 02:47:19.000000000","message":"hi, Ashley Rodriguez. the code like below(sqlalchemy/api.py):\n\ndef share_group_type_create(context, values, projects\u003dNone):\n    values \u003d ensure_model_dict_has_id(values)\n\n    projects \u003d projects or []\n\n    session \u003d get_session()\n    with session.begin():\n        try:\n            values[\u0027group_specs\u0027] \u003d _metadata_refs(\n                values.get(\u0027group_specs\u0027), models.ShareGroupTypeSpecs)\n            mappings \u003d []\n            for item in values.get(\u0027share_types\u0027, []):\n                share_type \u003d share_type_get_by_name_or_id(context, item)\n                if not share_type:\n                    raise exception.ShareTypeDoesNotExist(share_type\u003ditem)\n                #######begin new code#############\n                specs \u003d share_type[\u0027extra_specs\u0027]\n                snap_support \u003d specs.get(\u0027snapshot_support\u0027)\n                if snap_support:\n                    res \u003d strutils.bool_from_string(snap_support)\n                    if not res:\n                        msg \u003d _(\"share type %s do not support snapshot\", item)\n                        raise exception.InvalidShareType(reason\u003dmsg)\n                ##########end new code###########################\n                mapping \u003d models.ShareGroupTypeShareTypeMapping()\n                mapping[\u0027id\u0027] \u003d uuidutils.generate_uuid()\n                mapping[\u0027share_type_id\u0027] \u003d share_type[\u0027id\u0027]","commit_id":"96e406d37eb86d200212e556af16e19d6189c063"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"b15f683e91c781f7a87b2137cc0e870123357a43","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    \"\"\"Creates share group types.\"\"\""},{"line_number":49,"context_line":"    group_specs \u003d group_specs or {}"},{"line_number":50,"context_line":"    projects \u003d projects or []"},{"line_number":51,"context_line":"    if \u0027consistent_snapshot_support\u0027 in group_specs:"},{"line_number":52,"context_line":"        res \u003d bool_from_string(group_specs.get("},{"line_number":53,"context_line":"            \u0027consistent_snapshot_support\u0027))"},{"line_number":54,"context_line":"        if res:"},{"line_number":55,"context_line":"            consistent_spec_validation(context, share_types)"},{"line_number":56,"context_line":"    try:"},{"line_number":57,"context_line":"        type_ref \u003d db.share_group_type_create("},{"line_number":58,"context_line":"            context,"}],"source_content_type":"text/x-python","patch_set":7,"id":"79727912_4a39346f","line":55,"range":{"start_line":51,"start_character":4,"end_line":55,"end_character":60},"in_reply_to":"b8aea535_f974f0dd","updated":"2022-04-21 19:29:42.000000000","message":"Done","commit_id":"96e406d37eb86d200212e556af16e19d6189c063"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"0eb41e9a0a273b6e31346afb85ea0bdcc76cf809","unresolved":true,"context_lines":[{"line_number":38,"context_line":"        specs \u003d db.share_type_extra_specs_get(context, id)"},{"line_number":39,"context_line":"        snap_support \u003d specs.get(\u0027snapshot_support\u0027)"},{"line_number":40,"context_line":"        if snap_support:"},{"line_number":41,"context_line":"            res \u003d bool_from_string(snap_support)"},{"line_number":42,"context_line":"            if not res:"},{"line_number":43,"context_line":"                raise exception.InvalidGroupSpec()"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"88bb8275_4bfa57a5","line":41,"range":{"start_line":41,"start_character":12,"end_line":41,"end_character":48},"updated":"2022-04-20 02:47:19.000000000","message":"from oslo_utils import strutils\n...\n strutils.bool_from_string(..)","commit_id":"3a9b3cd9003f4ecac35104f06616c71325fa1707"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"b15f683e91c781f7a87b2137cc0e870123357a43","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        specs \u003d db.share_type_extra_specs_get(context, id)"},{"line_number":39,"context_line":"        snap_support \u003d specs.get(\u0027snapshot_support\u0027)"},{"line_number":40,"context_line":"        if snap_support:"},{"line_number":41,"context_line":"            res \u003d bool_from_string(snap_support)"},{"line_number":42,"context_line":"            if not res:"},{"line_number":43,"context_line":"                raise exception.InvalidGroupSpec()"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"4e6ccca8_2bc4c22d","line":41,"range":{"start_line":41,"start_character":12,"end_line":41,"end_character":48},"in_reply_to":"88bb8275_4bfa57a5","updated":"2022-04-21 19:29:42.000000000","message":"Done","commit_id":"3a9b3cd9003f4ecac35104f06616c71325fa1707"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"51ebc2f5923638e82236cd23737ba31790580b0c","unresolved":true,"context_lines":[{"line_number":15,"context_line":"from oslo_log import log"},{"line_number":16,"context_line":"from oslo_utils import uuidutils"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from manila.common import constants"},{"line_number":20,"context_line":"from manila import context"},{"line_number":21,"context_line":"from manila import db"}],"source_content_type":"text/x-python","patch_set":9,"id":"d5eb417d_bd27580f","line":18,"updated":"2022-04-25 06:41:17.000000000","message":"delete this blank line.","commit_id":"df0174c9cfdd34035dc651e7b546c72f58cbdea7"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"cbeb3fc94489d882ddce381c12857ffe5d18bca8","unresolved":false,"context_lines":[{"line_number":15,"context_line":"from oslo_log import log"},{"line_number":16,"context_line":"from oslo_utils import uuidutils"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from manila.common import constants"},{"line_number":20,"context_line":"from manila import context"},{"line_number":21,"context_line":"from manila import db"}],"source_content_type":"text/x-python","patch_set":9,"id":"dd94b9c3_be14bef4","line":18,"in_reply_to":"d5eb417d_bd27580f","updated":"2022-04-25 17:18:44.000000000","message":"Done","commit_id":"df0174c9cfdd34035dc651e7b546c72f58cbdea7"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"7fca6bf113631e1aba9d9e635c86732b440a80c4","unresolved":true,"context_lines":[{"line_number":15,"context_line":"from oslo_log import log"},{"line_number":16,"context_line":"from oslo_utils import uuidutils"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from manila.common import constants"},{"line_number":20,"context_line":"from manila import context"},{"line_number":21,"context_line":"from manila import db"}],"source_content_type":"text/x-python","patch_set":15,"id":"d54a64de_06d4eb69","line":18,"updated":"2023-03-01 19:17:08.000000000","message":"please undo this whitespace addition","commit_id":"b8842d912ac71797bf355dd02da4311f88e1e71f"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"bc4164cd034ed3fc206ef0a2ce86d727cf81a478","unresolved":false,"context_lines":[{"line_number":15,"context_line":"from oslo_log import log"},{"line_number":16,"context_line":"from oslo_utils import uuidutils"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from manila.common import constants"},{"line_number":20,"context_line":"from manila import context"},{"line_number":21,"context_line":"from manila import db"}],"source_content_type":"text/x-python","patch_set":15,"id":"5d655b08_b49e5f9f","line":18,"in_reply_to":"d54a64de_06d4eb69","updated":"2023-09-21 13:44:19.000000000","message":"Done","commit_id":"b8842d912ac71797bf355dd02da4311f88e1e71f"}],"manila/tests/api/v2/test_share_group_type_specs.py":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"59fa0156ec7ff1ff0565336a8526ff4cb69694dc","unresolved":true,"context_lines":[{"line_number":216,"context_line":""},{"line_number":217,"context_line":"    def _validate_create(self, data, microversion\u003d\u00272.31\u0027, experimental\u003dTrue):"},{"line_number":218,"context_line":"        body \u003d {\u0027group_specs\u0027: data}"},{"line_number":219,"context_line":"        self.mock_object("},{"line_number":220,"context_line":"            share_group_types, \u0027get\u0027,"},{"line_number":221,"context_line":"            mock.Mock(return_value\u003dself.fake_share_group_type))"},{"line_number":222,"context_line":"        self.mock_object(db, \u0027share_type_get\u0027, mock.Mock("},{"line_number":223,"context_line":"            return_value\u003dself.fake_share_type))"},{"line_number":224,"context_line":"        mock_spec_update_or_create \u003d self.mock_object("},{"line_number":225,"context_line":"            manila.db, \u0027share_group_type_specs_update_or_create\u0027,"},{"line_number":226,"context_line":"            mock.Mock(return_value\u003dreturn_create_share_group_type_specs))"}],"source_content_type":"text/x-python","patch_set":3,"id":"d6f97458_550dbb96","line":223,"range":{"start_line":219,"start_character":8,"end_line":223,"end_character":47},"updated":"2021-09-24 14:51:50.000000000","message":"You could just mock the entire validate method here.\nIt\u0027d look like:\n``self.mock_object(self.controller, \u0027_validate\u0027)``\nIn the unit tests, we are expected to test a single method at a time, so as these calls that I\u0027m singling out are operations performed inside another method, there is no need to let the create function to enter in the validation method. Ideally, we could just mock it and test everything pertaining to the _validate method inside the _validate tests :)","commit_id":"b09c404929486afb104794dee74b216310b0c0d1"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"a2656bf0016ac1f77346bd3657b6f8123abc51f2","unresolved":false,"context_lines":[{"line_number":216,"context_line":""},{"line_number":217,"context_line":"    def _validate_create(self, data, microversion\u003d\u00272.31\u0027, experimental\u003dTrue):"},{"line_number":218,"context_line":"        body \u003d {\u0027group_specs\u0027: data}"},{"line_number":219,"context_line":"        self.mock_object("},{"line_number":220,"context_line":"            share_group_types, \u0027get\u0027,"},{"line_number":221,"context_line":"            mock.Mock(return_value\u003dself.fake_share_group_type))"},{"line_number":222,"context_line":"        self.mock_object(db, \u0027share_type_get\u0027, mock.Mock("},{"line_number":223,"context_line":"            return_value\u003dself.fake_share_type))"},{"line_number":224,"context_line":"        mock_spec_update_or_create \u003d self.mock_object("},{"line_number":225,"context_line":"            manila.db, \u0027share_group_type_specs_update_or_create\u0027,"},{"line_number":226,"context_line":"            mock.Mock(return_value\u003dreturn_create_share_group_type_specs))"}],"source_content_type":"text/x-python","patch_set":3,"id":"cea0f89d_365481db","line":223,"range":{"start_line":219,"start_character":8,"end_line":223,"end_character":47},"in_reply_to":"d6f97458_550dbb96","updated":"2022-03-02 19:51:45.000000000","message":"Done","commit_id":"b09c404929486afb104794dee74b216310b0c0d1"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"59fa0156ec7ff1ff0565336a8526ff4cb69694dc","unresolved":true,"context_lines":[{"line_number":427,"context_line":"            req_context, self.resource_name, \u0027create\u0027)"},{"line_number":428,"context_line":""},{"line_number":429,"context_line":"    @ddt.data({CONSISTENT_SNAPSHOTS: \"True\"})"},{"line_number":430,"context_line":"    def test_create_with_consistent_spec_validation(self, data):"},{"line_number":431,"context_line":"        body \u003d {\u0027group_specs\u0027: data}"},{"line_number":432,"context_line":"        self.mock_object("},{"line_number":433,"context_line":"            share_group_types, \u0027get\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf07504e_9a321cca","line":430,"updated":"2021-09-24 14:51:50.000000000","message":"As the default purpose of this and the below tests are to test what is happening inside the validate method, these methods could be calling the validate method itself :)","commit_id":"b09c404929486afb104794dee74b216310b0c0d1"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"a2656bf0016ac1f77346bd3657b6f8123abc51f2","unresolved":false,"context_lines":[{"line_number":427,"context_line":"            req_context, self.resource_name, \u0027create\u0027)"},{"line_number":428,"context_line":""},{"line_number":429,"context_line":"    @ddt.data({CONSISTENT_SNAPSHOTS: \"True\"})"},{"line_number":430,"context_line":"    def test_create_with_consistent_spec_validation(self, data):"},{"line_number":431,"context_line":"        body \u003d {\u0027group_specs\u0027: data}"},{"line_number":432,"context_line":"        self.mock_object("},{"line_number":433,"context_line":"            share_group_types, \u0027get\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ee77ae1a_cc889094","line":430,"in_reply_to":"bf07504e_9a321cca","updated":"2022-03-02 19:51:45.000000000","message":"Done","commit_id":"b09c404929486afb104794dee74b216310b0c0d1"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"59fa0156ec7ff1ff0565336a8526ff4cb69694dc","unresolved":true,"context_lines":[{"line_number":461,"context_line":"        self.controller._update("},{"line_number":462,"context_line":"            req, self.fake_share_group_type[\u0027id\u0027], key, body)"},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"        mock_spec_validation.assert_called()"}],"source_content_type":"text/x-python","patch_set":3,"id":"106a45e4_80a51899","line":464,"updated":"2021-09-24 14:51:50.000000000","message":"Additionally, IMHO would be nice to have some unit tests to cover the exception scenarios:\nhttps://7b1977d96a8a4754ac67-3896b9963763fa6247d1df6a6045a92f.ssl.cf2.rackcdn.com/809004/3/check/openstack-tox-cover/0e5f430/cover/manila_api_v2_share_group_type_specs_py.html#t71","commit_id":"b09c404929486afb104794dee74b216310b0c0d1"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"a2656bf0016ac1f77346bd3657b6f8123abc51f2","unresolved":false,"context_lines":[{"line_number":461,"context_line":"        self.controller._update("},{"line_number":462,"context_line":"            req, self.fake_share_group_type[\u0027id\u0027], key, body)"},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"        mock_spec_validation.assert_called()"}],"source_content_type":"text/x-python","patch_set":3,"id":"e79c6040_299f8fca","line":464,"in_reply_to":"106a45e4_80a51899","updated":"2022-03-02 19:51:45.000000000","message":"Done","commit_id":"b09c404929486afb104794dee74b216310b0c0d1"}],"manila/tests/share_group/test_share_group_types.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"eff316d8b782caaa4e1f5f28f08962ac2943cc00","unresolved":true,"context_lines":[{"line_number":86,"context_line":"        \u0027share_group_type_id\u0027: fake_share_group_type_id,"},{"line_number":87,"context_line":"    }"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    fake_share_type_true \u003d {"},{"line_number":90,"context_line":"        \"share_type\": {"},{"line_number":91,"context_line":"            \"required_extra_specs\": {"},{"line_number":92,"context_line":"                \"driver_handles_share_servers\": True"},{"line_number":93,"context_line":"            },"},{"line_number":94,"context_line":"            \"share_type_access:is_public\": True,"},{"line_number":95,"context_line":"            \"extra_specs\": {"},{"line_number":96,"context_line":"                \"replication_type\": \"readable\","},{"line_number":97,"context_line":"                \"driver_handles_share_servers\": \"True\","},{"line_number":98,"context_line":"                \"mount_snapshot_support\": \"False\","},{"line_number":99,"context_line":"                \"revert_to_snapshot_support\": \"False\","},{"line_number":100,"context_line":"                \"create_share_from_snapshot_support\": \"True\","},{"line_number":101,"context_line":"                \"snapshot_support\": \"True\""},{"line_number":102,"context_line":"            },"},{"line_number":103,"context_line":"            \"id\": \"7fa1342b-de9d-4d89-bdc8-af67795c0e52\","},{"line_number":104,"context_line":"            \"name\": \"testing\","},{"line_number":105,"context_line":"            \"is_default\": False,"},{"line_number":106,"context_line":"            \"description\": \"share type description\""},{"line_number":107,"context_line":"        }"},{"line_number":108,"context_line":"    }"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    fake_share_type_false \u003d {"},{"line_number":111,"context_line":"        \"share_type\": {"},{"line_number":112,"context_line":"            \"required_extra_specs\": {"},{"line_number":113,"context_line":"                \"driver_handles_share_servers\": True"},{"line_number":114,"context_line":"            },"},{"line_number":115,"context_line":"            \"share_type_access:is_public\": True,"},{"line_number":116,"context_line":"            \"extra_specs\": {"},{"line_number":117,"context_line":"                \"replication_type\": \"readable\","},{"line_number":118,"context_line":"                \"driver_handles_share_servers\": \"False\","},{"line_number":119,"context_line":"                \"mount_snapshot_support\": \"False\","},{"line_number":120,"context_line":"                \"revert_to_snapshot_support\": \"False\","},{"line_number":121,"context_line":"                \"create_share_from_snapshot_support\": \"False\","},{"line_number":122,"context_line":"                \"snapshot_support\": \"False\""},{"line_number":123,"context_line":"            },"},{"line_number":124,"context_line":"            \"id\": \"7fa1342b-de9d-4d89-bdc8-af67795c0e51\","},{"line_number":125,"context_line":"            \"name\": \"testing\","},{"line_number":126,"context_line":"            \"is_default\": False,"},{"line_number":127,"context_line":"            \"description\": \"share type description\""},{"line_number":128,"context_line":"        }"},{"line_number":129,"context_line":"    }"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    def setUp(self):"},{"line_number":132,"context_line":"        super(ShareGroupTypesTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":10,"id":"384254da_2aeab1b9","line":129,"range":{"start_line":89,"start_character":0,"end_line":129,"end_character":5},"updated":"2022-05-05 18:24:58.000000000","message":"did you mean to use these in a unit test?","commit_id":"b65cf0124b9eede0f2f4d539d90894cabdc24c81"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"a9730ae22fc6f693f06237382756f5ee06aa09f8","unresolved":true,"context_lines":[{"line_number":86,"context_line":"        \u0027share_group_type_id\u0027: fake_share_group_type_id,"},{"line_number":87,"context_line":"    }"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    fake_share_type_true \u003d {"},{"line_number":90,"context_line":"        \"share_type\": {"},{"line_number":91,"context_line":"            \"required_extra_specs\": {"},{"line_number":92,"context_line":"                \"driver_handles_share_servers\": True"},{"line_number":93,"context_line":"            },"},{"line_number":94,"context_line":"            \"share_type_access:is_public\": True,"},{"line_number":95,"context_line":"            \"extra_specs\": {"},{"line_number":96,"context_line":"                \"replication_type\": \"readable\","},{"line_number":97,"context_line":"                \"driver_handles_share_servers\": \"True\","},{"line_number":98,"context_line":"                \"mount_snapshot_support\": \"False\","},{"line_number":99,"context_line":"                \"revert_to_snapshot_support\": \"False\","},{"line_number":100,"context_line":"                \"create_share_from_snapshot_support\": \"True\","},{"line_number":101,"context_line":"                \"snapshot_support\": \"True\""},{"line_number":102,"context_line":"            },"},{"line_number":103,"context_line":"            \"id\": \"7fa1342b-de9d-4d89-bdc8-af67795c0e52\","},{"line_number":104,"context_line":"            \"name\": \"testing\","},{"line_number":105,"context_line":"            \"is_default\": False,"},{"line_number":106,"context_line":"            \"description\": \"share type description\""},{"line_number":107,"context_line":"        }"},{"line_number":108,"context_line":"    }"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    fake_share_type_false \u003d {"},{"line_number":111,"context_line":"        \"share_type\": {"},{"line_number":112,"context_line":"            \"required_extra_specs\": {"},{"line_number":113,"context_line":"                \"driver_handles_share_servers\": True"},{"line_number":114,"context_line":"            },"},{"line_number":115,"context_line":"            \"share_type_access:is_public\": True,"},{"line_number":116,"context_line":"            \"extra_specs\": {"},{"line_number":117,"context_line":"                \"replication_type\": \"readable\","},{"line_number":118,"context_line":"                \"driver_handles_share_servers\": \"False\","},{"line_number":119,"context_line":"                \"mount_snapshot_support\": \"False\","},{"line_number":120,"context_line":"                \"revert_to_snapshot_support\": \"False\","},{"line_number":121,"context_line":"                \"create_share_from_snapshot_support\": \"False\","},{"line_number":122,"context_line":"                \"snapshot_support\": \"False\""},{"line_number":123,"context_line":"            },"},{"line_number":124,"context_line":"            \"id\": \"7fa1342b-de9d-4d89-bdc8-af67795c0e51\","},{"line_number":125,"context_line":"            \"name\": \"testing\","},{"line_number":126,"context_line":"            \"is_default\": False,"},{"line_number":127,"context_line":"            \"description\": \"share type description\""},{"line_number":128,"context_line":"        }"},{"line_number":129,"context_line":"    }"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    def setUp(self):"},{"line_number":132,"context_line":"        super(ShareGroupTypesTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":10,"id":"f82c4698_1f031cca","line":129,"range":{"start_line":89,"start_character":0,"end_line":129,"end_character":5},"in_reply_to":"384254da_2aeab1b9","updated":"2022-05-10 19:42:03.000000000","message":"ah yes these are leftovers from some tests ive moved, i can remove them thanks","commit_id":"b65cf0124b9eede0f2f4d539d90894cabdc24c81"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"bc4164cd034ed3fc206ef0a2ce86d727cf81a478","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        \u0027share_group_type_id\u0027: fake_share_group_type_id,"},{"line_number":87,"context_line":"    }"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    fake_share_type_true \u003d {"},{"line_number":90,"context_line":"        \"share_type\": {"},{"line_number":91,"context_line":"            \"required_extra_specs\": {"},{"line_number":92,"context_line":"                \"driver_handles_share_servers\": True"},{"line_number":93,"context_line":"            },"},{"line_number":94,"context_line":"            \"share_type_access:is_public\": True,"},{"line_number":95,"context_line":"            \"extra_specs\": {"},{"line_number":96,"context_line":"                \"replication_type\": \"readable\","},{"line_number":97,"context_line":"                \"driver_handles_share_servers\": \"True\","},{"line_number":98,"context_line":"                \"mount_snapshot_support\": \"False\","},{"line_number":99,"context_line":"                \"revert_to_snapshot_support\": \"False\","},{"line_number":100,"context_line":"                \"create_share_from_snapshot_support\": \"True\","},{"line_number":101,"context_line":"                \"snapshot_support\": \"True\""},{"line_number":102,"context_line":"            },"},{"line_number":103,"context_line":"            \"id\": \"7fa1342b-de9d-4d89-bdc8-af67795c0e52\","},{"line_number":104,"context_line":"            \"name\": \"testing\","},{"line_number":105,"context_line":"            \"is_default\": False,"},{"line_number":106,"context_line":"            \"description\": \"share type description\""},{"line_number":107,"context_line":"        }"},{"line_number":108,"context_line":"    }"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    fake_share_type_false \u003d {"},{"line_number":111,"context_line":"        \"share_type\": {"},{"line_number":112,"context_line":"            \"required_extra_specs\": {"},{"line_number":113,"context_line":"                \"driver_handles_share_servers\": True"},{"line_number":114,"context_line":"            },"},{"line_number":115,"context_line":"            \"share_type_access:is_public\": True,"},{"line_number":116,"context_line":"            \"extra_specs\": {"},{"line_number":117,"context_line":"                \"replication_type\": \"readable\","},{"line_number":118,"context_line":"                \"driver_handles_share_servers\": \"False\","},{"line_number":119,"context_line":"                \"mount_snapshot_support\": \"False\","},{"line_number":120,"context_line":"                \"revert_to_snapshot_support\": \"False\","},{"line_number":121,"context_line":"                \"create_share_from_snapshot_support\": \"False\","},{"line_number":122,"context_line":"                \"snapshot_support\": \"False\""},{"line_number":123,"context_line":"            },"},{"line_number":124,"context_line":"            \"id\": \"7fa1342b-de9d-4d89-bdc8-af67795c0e51\","},{"line_number":125,"context_line":"            \"name\": \"testing\","},{"line_number":126,"context_line":"            \"is_default\": False,"},{"line_number":127,"context_line":"            \"description\": \"share type description\""},{"line_number":128,"context_line":"        }"},{"line_number":129,"context_line":"    }"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    def setUp(self):"},{"line_number":132,"context_line":"        super(ShareGroupTypesTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":10,"id":"e5a5d327_2f0a08e3","line":129,"range":{"start_line":89,"start_character":0,"end_line":129,"end_character":5},"in_reply_to":"f82c4698_1f031cca","updated":"2023-09-21 13:44:19.000000000","message":"Done","commit_id":"b65cf0124b9eede0f2f4d539d90894cabdc24c81"}],"releasenotes/notes/groupt0type-validation-84e0c1733030b141.yaml":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"59fa0156ec7ff1ff0565336a8526ff4cb69694dc","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"376ab0f0_da4bfbcd","updated":"2021-09-24 14:51:50.000000000","message":"nit: reno content looks great to me, but there\u0027s a typo in the file name (groupt0type-validation-84e0c1733030b141.yaml)...\n\nAlso, if you come to change this, perhaps it\u0027s a nice idea to use the name pattern that other bugs have been using:\nbug-1936689-group-type-validation-84e0c1733030b141.yaml","commit_id":"b09c404929486afb104794dee74b216310b0c0d1"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"a2656bf0016ac1f77346bd3657b6f8123abc51f2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"db7669b5_a67f558c","in_reply_to":"376ab0f0_da4bfbcd","updated":"2022-03-02 19:51:45.000000000","message":"Done","commit_id":"b09c404929486afb104794dee74b216310b0c0d1"}]}
