)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5be535a8c406db62d01be910daf9c4e686ee4b11","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"cinder-manage cluster remove does not work"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"convert \u0027cluster-host\u0027 to \u0027cluster_host\u0027, which used as both CLI Opt and function argument"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I3f2a04b4c8e7bafe6e38fc86a69192dd3a94c0c5"},{"line_number":12,"context_line":"Closes-Bug: #1894381"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9f560f44_6852ab6a","line":9,"updated":"2020-09-15 21:05:44.000000000","message":"For future reference, please wrap lines.","commit_id":"b815ae69adac013afa1cf02baa23c1a42a458ca8"},{"author":{"_account_id":29156,"name":"JonCui","email":"czl389@163.com","username":"czl389"},"change_message_id":"a206984ecb7ed8468137b9c4ae05905bb7dfed1e","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"cinder-manage cluster remove does not work"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"convert \u0027cluster-host\u0027 to \u0027cluster_host\u0027, which used as both CLI Opt and function argument"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I3f2a04b4c8e7bafe6e38fc86a69192dd3a94c0c5"},{"line_number":12,"context_line":"Closes-Bug: #1894381"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9f560f44_0b2ddffc","line":9,"in_reply_to":"9f560f44_6852ab6a","updated":"2020-09-16 11:23:26.000000000","message":"Done","commit_id":"b815ae69adac013afa1cf02baa23c1a42a458ca8"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"a4fda9dfd57940d2f765c582cce50f9739f09aac","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     czl389 \u003cczl389@163.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-09-25 19:29:51 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"cinder-manage cluster remove does not work"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When geting the value of passed parameter \u0027cluster_name\u0027 from"},{"line_number":10,"context_line":"CONF.cluster_name, the following error occurs,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9f560f44_b020d34a","line":7,"updated":"2020-09-28 12:30:47.000000000","message":"Please tell what the patch does. Something like \"Fix cinder-manage cluster remove raising NoSuchOptError\" would be fine.","commit_id":"11c97356e89d26b1d55f32a947a4d4ea5bbd4494"},{"author":{"_account_id":29156,"name":"JonCui","email":"czl389@163.com","username":"czl389"},"change_message_id":"3ec1010e025d0bd56945bccaf15d0c106c9e0677","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     czl389 \u003cczl389@163.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-09-25 19:29:51 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"cinder-manage cluster remove does not work"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When geting the value of passed parameter \u0027cluster_name\u0027 from"},{"line_number":10,"context_line":"CONF.cluster_name, the following error occurs,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9f560f44_78fa8b11","line":7,"in_reply_to":"9f560f44_b020d34a","updated":"2020-09-29 14:45:53.000000000","message":"Done","commit_id":"11c97356e89d26b1d55f32a947a4d4ea5bbd4494"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"a4fda9dfd57940d2f765c582cce50f9739f09aac","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"cinder-manage cluster remove does not work"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When geting the value of passed parameter \u0027cluster_name\u0027 from"},{"line_number":10,"context_line":"CONF.cluster_name, the following error occurs,"},{"line_number":11,"context_line":"oslo_config.cfg.NoSuchOptError:no such option cluster_name in group"},{"line_number":12,"context_line":"[DEFAULT]"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9f560f44_901b0f1a","line":9,"range":{"start_line":9,"start_character":5,"end_line":9,"end_character":11},"updated":"2020-09-28 12:30:47.000000000","message":"getting","commit_id":"11c97356e89d26b1d55f32a947a4d4ea5bbd4494"},{"author":{"_account_id":29156,"name":"JonCui","email":"czl389@163.com","username":"czl389"},"change_message_id":"3ec1010e025d0bd56945bccaf15d0c106c9e0677","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"cinder-manage cluster remove does not work"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When geting the value of passed parameter \u0027cluster_name\u0027 from"},{"line_number":10,"context_line":"CONF.cluster_name, the following error occurs,"},{"line_number":11,"context_line":"oslo_config.cfg.NoSuchOptError:no such option cluster_name in group"},{"line_number":12,"context_line":"[DEFAULT]"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9f560f44_58ffc7ff","line":9,"range":{"start_line":9,"start_character":5,"end_line":9,"end_character":11},"in_reply_to":"9f560f44_901b0f1a","updated":"2020-09-29 14:45:53.000000000","message":"Done","commit_id":"11c97356e89d26b1d55f32a947a4d4ea5bbd4494"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"a4fda9dfd57940d2f765c582cce50f9739f09aac","unresolved":false,"context_lines":[{"line_number":7,"context_line":"cinder-manage cluster remove does not work"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When geting the value of passed parameter \u0027cluster_name\u0027 from"},{"line_number":10,"context_line":"CONF.cluster_name, the following error occurs,"},{"line_number":11,"context_line":"oslo_config.cfg.NoSuchOptError:no such option cluster_name in group"},{"line_number":12,"context_line":"[DEFAULT]"},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9f560f44_f016cbf1","line":10,"range":{"start_line":10,"start_character":45,"end_line":10,"end_character":46},"updated":"2020-09-28 12:30:47.000000000","message":":","commit_id":"11c97356e89d26b1d55f32a947a4d4ea5bbd4494"},{"author":{"_account_id":29156,"name":"JonCui","email":"czl389@163.com","username":"czl389"},"change_message_id":"3ec1010e025d0bd56945bccaf15d0c106c9e0677","unresolved":false,"context_lines":[{"line_number":7,"context_line":"cinder-manage cluster remove does not work"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When geting the value of passed parameter \u0027cluster_name\u0027 from"},{"line_number":10,"context_line":"CONF.cluster_name, the following error occurs,"},{"line_number":11,"context_line":"oslo_config.cfg.NoSuchOptError:no such option cluster_name in group"},{"line_number":12,"context_line":"[DEFAULT]"},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9f560f44_d80ab71c","line":10,"range":{"start_line":10,"start_character":45,"end_line":10,"end_character":46},"in_reply_to":"9f560f44_f016cbf1","updated":"2020-09-29 14:45:53.000000000","message":"Done","commit_id":"11c97356e89d26b1d55f32a947a4d4ea5bbd4494"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"a4fda9dfd57940d2f765c582cce50f9739f09aac","unresolved":false,"context_lines":[{"line_number":15,"context_line":"registerd in CONF is \u0027cluster-name\u0027, which mismatch with handler method"},{"line_number":16,"context_line":"parameter \u0027cluster_name\u0027."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"We do the following processing if positional argument name contains \u0027-\u0027,"},{"line_number":19,"context_line":"1.put it into automatic conversion from \u0027- to \u0027_\u0027, so that keep the same"},{"line_number":20,"context_line":"  name as handler method parameter, which can not contains a \u0027-\u0027."},{"line_number":21,"context_line":"2.add metavar if it doesn\u0027t already exist, and it will maintain the help"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9f560f44_90e02ffa","line":18,"range":{"start_line":18,"start_character":0,"end_line":18,"end_character":6},"updated":"2020-09-28 12:30:47.000000000","message":"To make it clear that you\u0027re not describing the bug anymore, and instead you\u0027re now describing the fix, you may tell: \"We fix it by doing ...\".","commit_id":"11c97356e89d26b1d55f32a947a4d4ea5bbd4494"},{"author":{"_account_id":29156,"name":"JonCui","email":"czl389@163.com","username":"czl389"},"change_message_id":"3ec1010e025d0bd56945bccaf15d0c106c9e0677","unresolved":false,"context_lines":[{"line_number":15,"context_line":"registerd in CONF is \u0027cluster-name\u0027, which mismatch with handler method"},{"line_number":16,"context_line":"parameter \u0027cluster_name\u0027."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"We do the following processing if positional argument name contains \u0027-\u0027,"},{"line_number":19,"context_line":"1.put it into automatic conversion from \u0027- to \u0027_\u0027, so that keep the same"},{"line_number":20,"context_line":"  name as handler method parameter, which can not contains a \u0027-\u0027."},{"line_number":21,"context_line":"2.add metavar if it doesn\u0027t already exist, and it will maintain the help"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9f560f44_38181375","line":18,"range":{"start_line":18,"start_character":0,"end_line":18,"end_character":6},"in_reply_to":"9f560f44_90e02ffa","updated":"2020-09-29 14:45:53.000000000","message":"Done","commit_id":"11c97356e89d26b1d55f32a947a4d4ea5bbd4494"}],"cinder/cmd/manage.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"db014ec7c85af2e774e3431cf24c2e315fc87d29","unresolved":false,"context_lines":[{"line_number":567,"context_line":"          help\u003d\u0027Delete associated hosts.\u0027)"},{"line_number":568,"context_line":"    @args(\u0027binary\u0027, type\u003dstr,"},{"line_number":569,"context_line":"          help\u003d\u0027Service to delete from the cluster.\u0027)"},{"line_number":570,"context_line":"    @args(\u0027cluster_name\u0027, type\u003dstr, help\u003d\u0027Cluster to delete.\u0027)"},{"line_number":571,"context_line":"    def remove(self, recursive, binary, cluster_name):"},{"line_number":572,"context_line":"        \"\"\"Completely removes a cluster.\"\"\""},{"line_number":573,"context_line":"        ctxt \u003d context.get_admin_context()"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_3afef46a","line":570,"range":{"start_line":570,"start_character":10,"end_line":570,"end_character":24},"updated":"2020-09-18 19:07:38.000000000","message":"With python-cinderclient, we\u0027ve tried to be consistent (and failed at times) with making sure command line arguments use - instead of _. We should keep that consistency here.\n\nBecause of that, and because this is an existing argument that has a small potential to break someone\u0027s scripts by changing it now, we should not change the arg name.\n\nThe better approach in this situation I think is to do:\n\n@args(\u0027cluster-name\u0027, dest\u003d\u0027cluster_name\u0027, ...)\n\nCould you try that and see if it works?\n\nIs this an actual issue though? It is passed in positionaly, so it should be fine if the name defined in the decorator is different than the name we give the method parameter.","commit_id":"1dc906adfed6ba9389833dea9969218c2ce95456"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"199e3eb3f8140292e549ac30a4590d992fdd48c5","unresolved":false,"context_lines":[{"line_number":567,"context_line":"          help\u003d\u0027Delete associated hosts.\u0027)"},{"line_number":568,"context_line":"    @args(\u0027binary\u0027, type\u003dstr,"},{"line_number":569,"context_line":"          help\u003d\u0027Service to delete from the cluster.\u0027)"},{"line_number":570,"context_line":"    @args(\u0027cluster_name\u0027, type\u003dstr, help\u003d\u0027Cluster to delete.\u0027)"},{"line_number":571,"context_line":"    def remove(self, recursive, binary, cluster_name):"},{"line_number":572,"context_line":"        \"\"\"Completely removes a cluster.\"\"\""},{"line_number":573,"context_line":"        ctxt \u003d context.get_admin_context()"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_4e07aa19","line":570,"range":{"start_line":570,"start_character":10,"end_line":570,"end_character":24},"in_reply_to":"9f560f44_3afef46a","updated":"2020-09-18 22:47:16.000000000","message":"\u003e Is this an actual issue though?\n\nWith the existing implementation:\n\n    @args(\u0027cluster-name\u0027, type\u003dstr, ...)\n\nI get the following error [0]:\n\n    oslo_config.cfg.NoSuchOptError: no such option cluster_name in group [DEFAULT]\n\n\u003e @args(\u0027cluster-name\u0027, dest\u003d\u0027cluster_name\u0027, ...)\n\u003e Could you try that and see if it works?\n\nI tried, but then I got the following error [1]:\n\n    ValueError: dest supplied twice for positional argument\n\nI guess it only works for double-dash parameters (e.g. --cluster-name).\n\n[0] http://paste.openstack.org/show/798095/\n[1] http://paste.openstack.org/show/798096/","commit_id":"1dc906adfed6ba9389833dea9969218c2ce95456"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"7eb6716bbded299c72711aaac15805d0c68c2033","unresolved":false,"context_lines":[{"line_number":567,"context_line":"          help\u003d\u0027Delete associated hosts.\u0027)"},{"line_number":568,"context_line":"    @args(\u0027binary\u0027, type\u003dstr,"},{"line_number":569,"context_line":"          help\u003d\u0027Service to delete from the cluster.\u0027)"},{"line_number":570,"context_line":"    @args(\u0027cluster_name\u0027, type\u003dstr, help\u003d\u0027Cluster to delete.\u0027)"},{"line_number":571,"context_line":"    def remove(self, recursive, binary, cluster_name):"},{"line_number":572,"context_line":"        \"\"\"Completely removes a cluster.\"\"\""},{"line_number":573,"context_line":"        ctxt \u003d context.get_admin_context()"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_eec79e10","line":570,"range":{"start_line":570,"start_character":10,"end_line":570,"end_character":24},"in_reply_to":"9f560f44_4e07aa19","updated":"2020-09-18 23:21:22.000000000","message":"Well, the root cause of the problem is described in the LP Bug #1894381:\n\n\u003e The problem is that option name registed in CONF is cluster-name, but arg in action_func is cluster_name,\n\nSo we might need to investigate it instead.","commit_id":"1dc906adfed6ba9389833dea9969218c2ce95456"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"9cee738fb133757a3b125f91dcb6571a7b50e030","unresolved":false,"context_lines":[{"line_number":567,"context_line":"          help\u003d\u0027Delete associated hosts.\u0027)"},{"line_number":568,"context_line":"    @args(\u0027binary\u0027, type\u003dstr,"},{"line_number":569,"context_line":"          help\u003d\u0027Service to delete from the cluster.\u0027)"},{"line_number":570,"context_line":"    @args(\u0027cluster_name\u0027, type\u003dstr, help\u003d\u0027Cluster to delete.\u0027)"},{"line_number":571,"context_line":"    def remove(self, recursive, binary, cluster_name):"},{"line_number":572,"context_line":"        \"\"\"Completely removes a cluster.\"\"\""},{"line_number":573,"context_line":"        ctxt \u003d context.get_admin_context()"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_d8a84479","line":570,"range":{"start_line":570,"start_character":10,"end_line":570,"end_character":24},"in_reply_to":"9f560f44_eec79e10","updated":"2020-09-24 11:38:50.000000000","message":"Apparently I forgot back then to test it and that positional arguments don\u0027t get dash to underscore replacement treatment.\n\nI think the change is acceptable, after all it\u0027s a positional argument and won\u0027t change any scripts calling this CLI command.\n\nIf we just don\u0027t want the help command output to change from\n\n  usage: cinder-manage cluster remove [-h] [--recursive] binary cluster-name\n\nto\n\n  usage: cinder-manage cluster remove [-h] [--recursive] binary cluster_name\n\nWe can add parameter `metavar\u003d\u0027cluser-name\u0027` and it will maintain the help output.\n\n    @args(\u0027cluster_name\u0027, metavar\u003d\u0027cluster-name\u0027, type\u003dstr,\n          help\u003d\u0027Cluster to delete.\u0027)\n\nThough I like Lucio\u0027s idea about changing the args decorator.","commit_id":"1dc906adfed6ba9389833dea9969218c2ce95456"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"b26305416d8a6f9d21a1f2a12889cc8c350137ff","unresolved":false,"context_lines":[{"line_number":700,"context_line":""},{"line_number":701,"context_line":"            action_kwargs \u003d []"},{"line_number":702,"context_line":"            for args, kwargs in getattr(action_fn, \u0027args\u0027, []):"},{"line_number":703,"context_line":"                parser.add_argument(*args, **kwargs)"},{"line_number":704,"context_line":""},{"line_number":705,"context_line":"            parser.set_defaults(action_fn\u003daction_fn)"},{"line_number":706,"context_line":"            parser.set_defaults(action_kwargs\u003daction_kwargs)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_4dd66bc5","line":703,"range":{"start_line":703,"start_character":16,"end_line":703,"end_character":52},"updated":"2020-09-22 12:07:38.000000000","message":"At this point, the argument is added as \u0027cluster-name\u0027 instead of \u0027cluster_name\u0027. That causes oslo_config.cfg.NoSuchOptError when trying to retrieve \u0027cluster_name\u0027 argument.\n\nSo we need to sanitize the argument with get_arg_string before adding it to the parser.\n\nMaybe in the definition of the `args` decorator?","commit_id":"1dc906adfed6ba9389833dea9969218c2ce95456"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"9cee738fb133757a3b125f91dcb6571a7b50e030","unresolved":false,"context_lines":[{"line_number":700,"context_line":""},{"line_number":701,"context_line":"            action_kwargs \u003d []"},{"line_number":702,"context_line":"            for args, kwargs in getattr(action_fn, \u0027args\u0027, []):"},{"line_number":703,"context_line":"                parser.add_argument(*args, **kwargs)"},{"line_number":704,"context_line":""},{"line_number":705,"context_line":"            parser.set_defaults(action_fn\u003daction_fn)"},{"line_number":706,"context_line":"            parser.set_defaults(action_kwargs\u003daction_kwargs)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_b82590c1","line":703,"range":{"start_line":703,"start_character":16,"end_line":703,"end_character":52},"in_reply_to":"9f560f44_283cc590","updated":"2020-09-24 11:38:50.000000000","message":"I like this idea.  We could make a generic fix so that positional arguments also get the automatic conversion.  The code would just replace the value and add metavar if it doesn\u0027t already exist.\n\nIt\u0027s just 4 more lines of code to the args decorator:\n\n   def args(*args, **kwargs):\n       def _decorator(func):\n           func.__dict__.setdefault(\u0027args\u0027, []).insert(0, (args, kwargs))\n           return func\n       if args[0][0] !\u003d \u0027-\u0027 and \u0027-\u0027 in args[0]:\n           args \u003d list(args)\n           kwargs.setdefault(\u0027metavar\u0027, args[0])\n           args[0] \u003d args[0].replace(\u0027-\u0027, \u0027_\u0027)\n       return _decorator","commit_id":"1dc906adfed6ba9389833dea9969218c2ce95456"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"7d3386c5efb1a0711c69acb3a7e0ce7725722c85","unresolved":false,"context_lines":[{"line_number":700,"context_line":""},{"line_number":701,"context_line":"            action_kwargs \u003d []"},{"line_number":702,"context_line":"            for args, kwargs in getattr(action_fn, \u0027args\u0027, []):"},{"line_number":703,"context_line":"                parser.add_argument(*args, **kwargs)"},{"line_number":704,"context_line":""},{"line_number":705,"context_line":"            parser.set_defaults(action_fn\u003daction_fn)"},{"line_number":706,"context_line":"            parser.set_defaults(action_kwargs\u003daction_kwargs)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_283cc590","line":703,"range":{"start_line":703,"start_character":16,"end_line":703,"end_character":52},"in_reply_to":"9f560f44_4dd66bc5","updated":"2020-09-22 12:13:38.000000000","message":"It worked when I replaced the content of args with the sanitized string:\nhttp://paste.openstack.org/show/798200/\n\nThough I think it\u0027s not very smart to modify its contents right here. We could add it in the `args` decorator definition at L126, but it still requires replacing tuples (which semantically means \"do not modify me\", so it sounds wrong).","commit_id":"1dc906adfed6ba9389833dea9969218c2ce95456"},{"author":{"_account_id":29156,"name":"JonCui","email":"czl389@163.com","username":"czl389"},"change_message_id":"55a8275015e23f7b05708832791e83b5f668e29e","unresolved":false,"context_lines":[{"line_number":700,"context_line":""},{"line_number":701,"context_line":"            action_kwargs \u003d []"},{"line_number":702,"context_line":"            for args, kwargs in getattr(action_fn, \u0027args\u0027, []):"},{"line_number":703,"context_line":"                parser.add_argument(*args, **kwargs)"},{"line_number":704,"context_line":""},{"line_number":705,"context_line":"            parser.set_defaults(action_fn\u003daction_fn)"},{"line_number":706,"context_line":"            parser.set_defaults(action_kwargs\u003daction_kwargs)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_aac08de1","line":703,"range":{"start_line":703,"start_character":16,"end_line":703,"end_character":52},"in_reply_to":"9f560f44_b82590c1","updated":"2020-09-24 21:36:22.000000000","message":"Thks, I agree with the idea about changing args decorator, which keep consistency that CLI arguments use dash. Let me try to fix it.","commit_id":"1dc906adfed6ba9389833dea9969218c2ce95456"}],"cinder/tests/unit/test_cmd.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"1d0e121b31a64d5cb356cc982af23203ba8c9c92","unresolved":false,"context_lines":[{"line_number":951,"context_line":"            self.assertDictEqual(expected,"},{"line_number":952,"context_line":"                                 cinder_manage.fetch_func_args(my_func))"},{"line_number":953,"context_line":""},{"line_number":954,"context_line":"    def test_args_decorator(self):"},{"line_number":955,"context_line":"        @cinder_manage.args(\u0027host-name\u0027)"},{"line_number":956,"context_line":"        @cinder_manage.args(\u0027cluster-name\u0027, metavar\u003d\u0027cluster\u0027)"},{"line_number":957,"context_line":"        @cinder_manage.args(\u0027--debug\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_9fff72ff","line":954,"range":{"start_line":954,"start_character":8,"end_line":954,"end_character":27},"updated":"2020-09-30 14:31:56.000000000","message":"This test tests a new code but doesn\u0027t test that described bug is fixed. It\u0027s not clear for me how it works, please add more tests to cover bug scenario","commit_id":"652959e66589f4ce3e04cc8415f89948efeae6ba"},{"author":{"_account_id":29156,"name":"JonCui","email":"czl389@163.com","username":"czl389"},"change_message_id":"2ac9ceb8fd835ccb3b538b4381a4bccd5af25e00","unresolved":false,"context_lines":[{"line_number":951,"context_line":"            self.assertDictEqual(expected,"},{"line_number":952,"context_line":"                                 cinder_manage.fetch_func_args(my_func))"},{"line_number":953,"context_line":""},{"line_number":954,"context_line":"    def test_args_decorator(self):"},{"line_number":955,"context_line":"        @cinder_manage.args(\u0027host-name\u0027)"},{"line_number":956,"context_line":"        @cinder_manage.args(\u0027cluster-name\u0027, metavar\u003d\u0027cluster\u0027)"},{"line_number":957,"context_line":"        @cinder_manage.args(\u0027--debug\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_992db3b0","line":954,"range":{"start_line":954,"start_character":8,"end_line":954,"end_character":27},"in_reply_to":"9f560f44_9fff72ff","updated":"2020-10-02 09:24:09.000000000","message":"Done","commit_id":"652959e66589f4ce3e04cc8415f89948efeae6ba"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"bf139c8d055f4ebf393eeb14d91afbfe51ca0d75","unresolved":false,"context_lines":[{"line_number":1139,"context_line":"        self.assertTrue(hasattr(cinder_manage.CONF.category, \u0027cluster_name\u0027))"},{"line_number":1140,"context_line":"        get_admin_mock.assert_called_with()"},{"line_number":1141,"context_line":"        get_cluster_mock.assert_called_with(get_admin_mock.return_value,"},{"line_number":1142,"context_line":"                                           None, name\u003d\u0027acluster\u0027,"},{"line_number":1143,"context_line":"                                           binary\u003d\u0027abinary\u0027,"},{"line_number":1144,"context_line":"                                           get_services\u003dFalse)"},{"line_number":1145,"context_line":"        cluster \u003d get_cluster_mock.return_value"}],"source_content_type":"text/x-python","patch_set":13,"id":"9f560f44_3f7d1de6","line":1142,"updated":"2020-10-08 04:10:40.000000000","message":"pep8: E128 continuation line under-indented for visual indent","commit_id":"f4bb2084294863ec7f73f566a3afc4a419a67408"},{"author":{"_account_id":29156,"name":"JonCui","email":"czl389@163.com","username":"czl389"},"change_message_id":"0d388e115894aad9cc0e887fc99b1d485c909358","unresolved":false,"context_lines":[{"line_number":1139,"context_line":"        self.assertTrue(hasattr(cinder_manage.CONF.category, \u0027cluster_name\u0027))"},{"line_number":1140,"context_line":"        get_admin_mock.assert_called_with()"},{"line_number":1141,"context_line":"        get_cluster_mock.assert_called_with(get_admin_mock.return_value,"},{"line_number":1142,"context_line":"                                           None, name\u003d\u0027acluster\u0027,"},{"line_number":1143,"context_line":"                                           binary\u003d\u0027abinary\u0027,"},{"line_number":1144,"context_line":"                                           get_services\u003dFalse)"},{"line_number":1145,"context_line":"        cluster \u003d get_cluster_mock.return_value"}],"source_content_type":"text/x-python","patch_set":13,"id":"9f560f44_ffc44510","line":1142,"in_reply_to":"9f560f44_3f7d1de6","updated":"2020-10-08 04:21:52.000000000","message":"Done","commit_id":"f4bb2084294863ec7f73f566a3afc4a419a67408"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"bf139c8d055f4ebf393eeb14d91afbfe51ca0d75","unresolved":false,"context_lines":[{"line_number":1140,"context_line":"        get_admin_mock.assert_called_with()"},{"line_number":1141,"context_line":"        get_cluster_mock.assert_called_with(get_admin_mock.return_value,"},{"line_number":1142,"context_line":"                                           None, name\u003d\u0027acluster\u0027,"},{"line_number":1143,"context_line":"                                           binary\u003d\u0027abinary\u0027,"},{"line_number":1144,"context_line":"                                           get_services\u003dFalse)"},{"line_number":1145,"context_line":"        cluster \u003d get_cluster_mock.return_value"},{"line_number":1146,"context_line":"        cluster.destroy.assert_called()"}],"source_content_type":"text/x-python","patch_set":13,"id":"9f560f44_1f82d9c7","line":1143,"updated":"2020-10-08 04:10:40.000000000","message":"pep8: E128 continuation line under-indented for visual indent","commit_id":"f4bb2084294863ec7f73f566a3afc4a419a67408"},{"author":{"_account_id":29156,"name":"JonCui","email":"czl389@163.com","username":"czl389"},"change_message_id":"0d388e115894aad9cc0e887fc99b1d485c909358","unresolved":false,"context_lines":[{"line_number":1140,"context_line":"        get_admin_mock.assert_called_with()"},{"line_number":1141,"context_line":"        get_cluster_mock.assert_called_with(get_admin_mock.return_value,"},{"line_number":1142,"context_line":"                                           None, name\u003d\u0027acluster\u0027,"},{"line_number":1143,"context_line":"                                           binary\u003d\u0027abinary\u0027,"},{"line_number":1144,"context_line":"                                           get_services\u003dFalse)"},{"line_number":1145,"context_line":"        cluster \u003d get_cluster_mock.return_value"},{"line_number":1146,"context_line":"        cluster.destroy.assert_called()"}],"source_content_type":"text/x-python","patch_set":13,"id":"9f560f44_3fcb5d1d","line":1143,"in_reply_to":"9f560f44_1f82d9c7","updated":"2020-10-08 04:21:52.000000000","message":"Done","commit_id":"f4bb2084294863ec7f73f566a3afc4a419a67408"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"bf139c8d055f4ebf393eeb14d91afbfe51ca0d75","unresolved":false,"context_lines":[{"line_number":1141,"context_line":"        get_cluster_mock.assert_called_with(get_admin_mock.return_value,"},{"line_number":1142,"context_line":"                                           None, name\u003d\u0027acluster\u0027,"},{"line_number":1143,"context_line":"                                           binary\u003d\u0027abinary\u0027,"},{"line_number":1144,"context_line":"                                           get_services\u003dFalse)"},{"line_number":1145,"context_line":"        cluster \u003d get_cluster_mock.return_value"},{"line_number":1146,"context_line":"        cluster.destroy.assert_called()"},{"line_number":1147,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"9f560f44_7f6af51a","line":1144,"updated":"2020-10-08 04:10:40.000000000","message":"pep8: E128 continuation line under-indented for visual indent","commit_id":"f4bb2084294863ec7f73f566a3afc4a419a67408"},{"author":{"_account_id":29156,"name":"JonCui","email":"czl389@163.com","username":"czl389"},"change_message_id":"0d388e115894aad9cc0e887fc99b1d485c909358","unresolved":false,"context_lines":[{"line_number":1141,"context_line":"        get_cluster_mock.assert_called_with(get_admin_mock.return_value,"},{"line_number":1142,"context_line":"                                           None, name\u003d\u0027acluster\u0027,"},{"line_number":1143,"context_line":"                                           binary\u003d\u0027abinary\u0027,"},{"line_number":1144,"context_line":"                                           get_services\u003dFalse)"},{"line_number":1145,"context_line":"        cluster \u003d get_cluster_mock.return_value"},{"line_number":1146,"context_line":"        cluster.destroy.assert_called()"},{"line_number":1147,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"9f560f44_1fd019c8","line":1144,"in_reply_to":"9f560f44_7f6af51a","updated":"2020-10-08 04:21:52.000000000","message":"Done","commit_id":"f4bb2084294863ec7f73f566a3afc4a419a67408"}]}
