)]}'
{"manila_ui/api/manila.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cc1d8e04ccdfae7c659ff62ae6ba7d4a9b1329d6","unresolved":true,"context_lines":[{"line_number":28,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"MANILA_UI_USER_AGENT_REPR \u003d \"manila_ui_plugin_for_horizon\""},{"line_number":31,"context_line":"MANILA_VERSION \u003d \"2.43\""},{"line_number":32,"context_line":"MANILA_SERVICE_TYPE \u003d \"sharev2\""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"# API static values"}],"source_content_type":"text/x-python","patch_set":3,"id":"73825e7a_d3dbe5c0","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":23},"updated":"2021-03-12 08:02:01.000000000","message":"Hi Dina, this filtering enhancement is pretty cool, but, it doesn\u0027t really use the manila API version 2.43 to retrieve the list of share types.","commit_id":"8be7d236769578ec6eedf43ae54e0ab27f5d15b2"},{"author":{"_account_id":32531,"name":"Dina Saparbaeva","email":"dinas27@outlook.com","username":"disap"},"change_message_id":"ff89d5a901cd1c2276fe091a29297c48b3cf9f20","unresolved":false,"context_lines":[{"line_number":28,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"MANILA_UI_USER_AGENT_REPR \u003d \"manila_ui_plugin_for_horizon\""},{"line_number":31,"context_line":"MANILA_VERSION \u003d \"2.43\""},{"line_number":32,"context_line":"MANILA_SERVICE_TYPE \u003d \"sharev2\""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"# API static values"}],"source_content_type":"text/x-python","patch_set":3,"id":"ddc3eea3_d6d6a4be","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":23},"in_reply_to":"73825e7a_d3dbe5c0","updated":"2021-03-12 09:18:59.000000000","message":"Done","commit_id":"8be7d236769578ec6eedf43ae54e0ab27f5d15b2"}],"manila_ui/dashboards/admin/share_types/tables.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cc1d8e04ccdfae7c659ff62ae6ba7d4a9b1329d6","unresolved":true,"context_lines":[{"line_number":84,"context_line":"class ShareTypesFilterAction(tables.FilterAction):"},{"line_number":85,"context_line":"    filter_type \u003d \"server\""},{"line_number":86,"context_line":"    filter_choices \u003d ("},{"line_number":87,"context_line":"        (\u0027name\u0027, _(\"Name \u003d\"), True),"},{"line_number":88,"context_line":"        (\u0027extra_specs\u0027, _(\"Extra Spec \u003d\"), True),"},{"line_number":89,"context_line":"    )"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"0b7903bd_4508d71e","line":87,"range":{"start_line":87,"start_character":25,"end_line":87,"end_character":26},"updated":"2021-03-12 08:02:01.000000000","message":"nit: this \"\u003d\" isn\u0027t necessary","commit_id":"8be7d236769578ec6eedf43ae54e0ab27f5d15b2"},{"author":{"_account_id":32531,"name":"Dina Saparbaeva","email":"dinas27@outlook.com","username":"disap"},"change_message_id":"ff89d5a901cd1c2276fe091a29297c48b3cf9f20","unresolved":false,"context_lines":[{"line_number":84,"context_line":"class ShareTypesFilterAction(tables.FilterAction):"},{"line_number":85,"context_line":"    filter_type \u003d \"server\""},{"line_number":86,"context_line":"    filter_choices \u003d ("},{"line_number":87,"context_line":"        (\u0027name\u0027, _(\"Name \u003d\"), True),"},{"line_number":88,"context_line":"        (\u0027extra_specs\u0027, _(\"Extra Spec \u003d\"), True),"},{"line_number":89,"context_line":"    )"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"aa5c6fd5_e81cc09d","line":87,"range":{"start_line":87,"start_character":25,"end_line":87,"end_character":26},"in_reply_to":"0b7903bd_4508d71e","updated":"2021-03-12 09:18:59.000000000","message":"Done","commit_id":"8be7d236769578ec6eedf43ae54e0ab27f5d15b2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cc1d8e04ccdfae7c659ff62ae6ba7d4a9b1329d6","unresolved":true,"context_lines":[{"line_number":85,"context_line":"    filter_type \u003d \"server\""},{"line_number":86,"context_line":"    filter_choices \u003d ("},{"line_number":87,"context_line":"        (\u0027name\u0027, _(\"Name \u003d\"), True),"},{"line_number":88,"context_line":"        (\u0027extra_specs\u0027, _(\"Extra Spec \u003d\"), True),"},{"line_number":89,"context_line":"    )"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"918603e8_3e184dd5","line":88,"range":{"start_line":88,"start_character":38,"end_line":88,"end_character":39},"updated":"2021-03-12 08:02:01.000000000","message":"same","commit_id":"8be7d236769578ec6eedf43ae54e0ab27f5d15b2"},{"author":{"_account_id":32531,"name":"Dina Saparbaeva","email":"dinas27@outlook.com","username":"disap"},"change_message_id":"ff89d5a901cd1c2276fe091a29297c48b3cf9f20","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    filter_type \u003d \"server\""},{"line_number":86,"context_line":"    filter_choices \u003d ("},{"line_number":87,"context_line":"        (\u0027name\u0027, _(\"Name \u003d\"), True),"},{"line_number":88,"context_line":"        (\u0027extra_specs\u0027, _(\"Extra Spec \u003d\"), True),"},{"line_number":89,"context_line":"    )"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"e9f2f48a_41820992","line":88,"range":{"start_line":88,"start_character":38,"end_line":88,"end_character":39},"in_reply_to":"918603e8_3e184dd5","updated":"2021-03-12 09:18:59.000000000","message":"Done","commit_id":"8be7d236769578ec6eedf43ae54e0ab27f5d15b2"}],"manila_ui/dashboards/admin/share_types/views.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cc1d8e04ccdfae7c659ff62ae6ba7d4a9b1329d6","unresolved":true,"context_lines":[{"line_number":67,"context_line":"                        filtered_data.append(st)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"                if filter_field \u003d\u003d \u0027extra_specs\u0027:"},{"line_number":70,"context_line":"                    if filter_string in st.extra_specs:"},{"line_number":71,"context_line":"                        filtered_data.append(st)"},{"line_number":72,"context_line":"            return filtered_data"},{"line_number":73,"context_line":"        else:"},{"line_number":74,"context_line":"            return share_types"}],"source_content_type":"text/x-python","patch_set":3,"id":"b3c8e7b4_96b84bfc","line":71,"range":{"start_line":70,"start_character":20,"end_line":71,"end_character":48},"updated":"2021-03-12 08:02:01.000000000","message":"wouldn\u0027t it make sense to filter by value as well? Something along the lines of:\n\n   spec \u003d filter_string.split(\"\u003d\")\n   spec_key \u003d spec[0].strip()\n   spec_match \u003d spec_key in st.extra_specs\n   if spec_match and len(spec) \u003d\u003d 2:\n      spec_value \u003d spec[1].strip()\n      if st.extra_specs[spec_key] \u003d\u003d spec_value:\n         filtered_data.append(st)\n   elif spec_match:\n       filtered_data.append(st)","commit_id":"8be7d236769578ec6eedf43ae54e0ab27f5d15b2"},{"author":{"_account_id":32531,"name":"Dina Saparbaeva","email":"dinas27@outlook.com","username":"disap"},"change_message_id":"ff89d5a901cd1c2276fe091a29297c48b3cf9f20","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                        filtered_data.append(st)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"                if filter_field \u003d\u003d \u0027extra_specs\u0027:"},{"line_number":70,"context_line":"                    if filter_string in st.extra_specs:"},{"line_number":71,"context_line":"                        filtered_data.append(st)"},{"line_number":72,"context_line":"            return filtered_data"},{"line_number":73,"context_line":"        else:"},{"line_number":74,"context_line":"            return share_types"}],"source_content_type":"text/x-python","patch_set":3,"id":"eef3cf5f_4bd0a321","line":71,"range":{"start_line":70,"start_character":20,"end_line":71,"end_character":48},"in_reply_to":"b3c8e7b4_96b84bfc","updated":"2021-03-12 09:18:59.000000000","message":"Filtering by value means \"snapshot_support \u003d True\" and check that is True or False? Currently function it already does that. If user enters \"snapshot_support \u003d True\" it won\u0027t list \"snapshot_support \u003d True\" as well. On line #51 function common_utils.metadata_to_str converts dictionary to string, this line \"if st.extra_specs[spec_key] \u003d\u003d spec_value\" would result in error. If you could elaborate on what is the concern here. I can move filter before line 51 and compare dictionary keys or remove everything and implement another way, like:\n\n if filter_field \u003d\u003d \u0027extra_specs\u0027:\n    spec \u003d filter_string.split(\"\u003d\")\n   spec_key \u003d spec[0].strip()\n   spec_match \u003d spec_key in st.extra_specs\n   if spec_match and len(spec) \u003d\u003d 2:\n      spec_value \u003d spec[1].strip()\n    share_types \u003d share_types \u003d manila.share_type_list(self.request, search_opts \u003d {spec_key :spec_value}) #I think API call works this way\n    for st in share_types:\n        st.extra_specs \u003d common_utils.metadata_to_str(st.extra_specs, 8, 45)\n \nthen return share_types.\n    \n \nBut I think this is unnecessary complication, maybe I am not seeing something. Will it work better?","commit_id":"8be7d236769578ec6eedf43ae54e0ab27f5d15b2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"65c99d53a955fedfbf265c29fbc5e179e9125aa9","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                        filtered_data.append(st)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"                if filter_field \u003d\u003d \u0027extra_specs\u0027:"},{"line_number":70,"context_line":"                    if filter_string in st.extra_specs:"},{"line_number":71,"context_line":"                        filtered_data.append(st)"},{"line_number":72,"context_line":"            return filtered_data"},{"line_number":73,"context_line":"        else:"},{"line_number":74,"context_line":"            return share_types"}],"source_content_type":"text/x-python","patch_set":3,"id":"6475a6c4_7a068f71","line":71,"range":{"start_line":70,"start_character":20,"end_line":71,"end_character":48},"in_reply_to":"eef3cf5f_4bd0a321","updated":"2021-03-17 22:21:28.000000000","message":"\u003e But I think this is unnecessary complication, maybe I am not seeing something. Will it work better?\n\nYeah, that\u0027s overkill for now. We don\u0027t expect there to be hundreds of types in a cloud. the filtering this patch adds is still helpful","commit_id":"8be7d236769578ec6eedf43ae54e0ab27f5d15b2"}]}
