)]}'
{"cinderclient/shell.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"97c11c25ab88b4dd5b06e0ae75568949ddc7f404","unresolved":false,"context_lines":[{"line_number":572,"context_line":""},{"line_number":573,"context_line":"        if len(set(filters)) !\u003d len(filters):"},{"line_number":574,"context_line":"            raise exc.CommandError("},{"line_number":575,"context_line":"                \"Filters are only allowed to be passed once.\")"},{"line_number":576,"context_line":""},{"line_number":577,"context_line":"    def main(self, argv):"},{"line_number":578,"context_line":"        # Parse args once to find version and debug settings"}],"source_content_type":"text/x-python","patch_set":5,"id":"5faad753_46ea6c0f","line":575,"updated":"2019-09-11 12:31:32.000000000","message":"I wonder if it would be better to just strip out the duplicate filters and just log a warning.","commit_id":"624b444226a6a5f14d1f381c1ba9301b192510d1"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"a79e2b91542f114c967354472952d71d38dfd26f","unresolved":false,"context_lines":[{"line_number":572,"context_line":""},{"line_number":573,"context_line":"        if len(set(filters)) !\u003d len(filters):"},{"line_number":574,"context_line":"            raise exc.CommandError("},{"line_number":575,"context_line":"                \"Filters are only allowed to be passed once.\")"},{"line_number":576,"context_line":""},{"line_number":577,"context_line":"    def main(self, argv):"},{"line_number":578,"context_line":"        # Parse args once to find version and debug settings"}],"source_content_type":"text/x-python","patch_set":5,"id":"5faad753_7a461c52","line":575,"in_reply_to":"5faad753_46ea6c0f","updated":"2019-09-11 12:59:55.000000000","message":"It was initially decided to fail [1] but can be changed.\n\n[1] L#393 https://etherpad.openstack.org/p/cinder-train-ptg-planning","commit_id":"624b444226a6a5f14d1f381c1ba9301b192510d1"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"97c11c25ab88b4dd5b06e0ae75568949ddc7f404","unresolved":false,"context_lines":[{"line_number":576,"context_line":""},{"line_number":577,"context_line":"    def main(self, argv):"},{"line_number":578,"context_line":"        # Parse args once to find version and debug settings"},{"line_number":579,"context_line":"        for filter in FILTER_CHECK:"},{"line_number":580,"context_line":"            if filter in argv:"},{"line_number":581,"context_line":"                self.check_duplicate_filters(argv, filter)"},{"line_number":582,"context_line":"                break"},{"line_number":583,"context_line":"        parser \u003d self.get_base_parser()"}],"source_content_type":"text/x-python","patch_set":5,"id":"5faad753_66d76825","line":580,"range":{"start_line":579,"start_character":8,"end_line":580,"end_character":30},"updated":"2019-09-11 12:31:32.000000000","message":"The command should always be argv[0] from what I can tell. Rather than looping through everything, it would be much more efficient to just do:\n\nif argv and argv[0] in FILTER_CHECK:\n    self.check_duplicate_filters(argv, argv[0])","commit_id":"624b444226a6a5f14d1f381c1ba9301b192510d1"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"a79e2b91542f114c967354472952d71d38dfd26f","unresolved":false,"context_lines":[{"line_number":576,"context_line":""},{"line_number":577,"context_line":"    def main(self, argv):"},{"line_number":578,"context_line":"        # Parse args once to find version and debug settings"},{"line_number":579,"context_line":"        for filter in FILTER_CHECK:"},{"line_number":580,"context_line":"            if filter in argv:"},{"line_number":581,"context_line":"                self.check_duplicate_filters(argv, filter)"},{"line_number":582,"context_line":"                break"},{"line_number":583,"context_line":"        parser \u003d self.get_base_parser()"}],"source_content_type":"text/x-python","patch_set":5,"id":"5faad753_9a6af8b0","line":580,"range":{"start_line":579,"start_character":8,"end_line":580,"end_character":30},"in_reply_to":"5faad753_66d76825","updated":"2019-09-11 12:59:55.000000000","message":"This will fail when some optional arguments are passed like\n\ncinder --os-volume-api-version 3.33 list","commit_id":"624b444226a6a5f14d1f381c1ba9301b192510d1"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"97c11c25ab88b4dd5b06e0ae75568949ddc7f404","unresolved":false,"context_lines":[{"line_number":578,"context_line":"        # Parse args once to find version and debug settings"},{"line_number":579,"context_line":"        for filter in FILTER_CHECK:"},{"line_number":580,"context_line":"            if filter in argv:"},{"line_number":581,"context_line":"                self.check_duplicate_filters(argv, filter)"},{"line_number":582,"context_line":"                break"},{"line_number":583,"context_line":"        parser \u003d self.get_base_parser()"},{"line_number":584,"context_line":"        (options, args) \u003d parser.parse_known_args(argv)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5faad753_e6e27801","line":581,"range":{"start_line":581,"start_character":51,"end_line":581,"end_character":57},"updated":"2019-09-11 12:31:32.000000000","message":"Filter is a little misleading for this variable name. It\u0027s the cinder command, not a filter.","commit_id":"624b444226a6a5f14d1f381c1ba9301b192510d1"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"a79e2b91542f114c967354472952d71d38dfd26f","unresolved":false,"context_lines":[{"line_number":578,"context_line":"        # Parse args once to find version and debug settings"},{"line_number":579,"context_line":"        for filter in FILTER_CHECK:"},{"line_number":580,"context_line":"            if filter in argv:"},{"line_number":581,"context_line":"                self.check_duplicate_filters(argv, filter)"},{"line_number":582,"context_line":"                break"},{"line_number":583,"context_line":"        parser \u003d self.get_base_parser()"},{"line_number":584,"context_line":"        (options, args) \u003d parser.parse_known_args(argv)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5faad753_7ae29c31","line":581,"range":{"start_line":581,"start_character":51,"end_line":581,"end_character":57},"in_reply_to":"5faad753_e6e27801","updated":"2019-09-11 12:59:55.000000000","message":"Will fix this in a followup.","commit_id":"624b444226a6a5f14d1f381c1ba9301b192510d1"}],"cinderclient/v3/shell.py":[{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"9f4217b3786ff7d02f1f5d5c27537accb5be0f6d","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    # pylint: disable\u003dfunction-redefined"},{"line_number":75,"context_line":"    search_opts \u003d {}"},{"line_number":76,"context_line":"    # Update search option with `filters`"},{"line_number":77,"context_line":"    global filters"},{"line_number":78,"context_line":"    if filters:"},{"line_number":79,"context_line":"        search_opts.update(shell_utils.extract_filters(filters))"},{"line_number":80,"context_line":"    vtypes \u003d cs.volume_types.list(search_opts\u003dsearch_opts)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_6f92764d","line":77,"updated":"2019-09-04 16:17:01.000000000","message":"can we do this differently.   I\u0027m not a fan of global vars, especially named \u0027filters\u0027","commit_id":"a6c1793471351fa6cca9c3b738cd5e1cc3bc24ad"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"af66e4049b17437836cad476a14dc077fe5c0884","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    # pylint: disable\u003dfunction-redefined"},{"line_number":75,"context_line":"    search_opts \u003d {}"},{"line_number":76,"context_line":"    # Update search option with `filters`"},{"line_number":77,"context_line":"    global filters"},{"line_number":78,"context_line":"    if filters:"},{"line_number":79,"context_line":"        search_opts.update(shell_utils.extract_filters(filters))"},{"line_number":80,"context_line":"    vtypes \u003d cs.volume_types.list(search_opts\u003dsearch_opts)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_6b1fb56f","line":77,"in_reply_to":"7faddb67_6f92764d","updated":"2019-09-05 13:14:24.000000000","message":"Done","commit_id":"a6c1793471351fa6cca9c3b738cd5e1cc3bc24ad"}]}
