)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6825,"name":"Gary W. Smith","email":"garysmith123@gmail.com","username":"gary-w-smith"},"change_message_id":"225da86a8d8a434dfc9a037e1591626aecfc3adb","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     rajiv \u003crajiv.kumar@nectechnologies.in\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-02-17 13:50:19 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"cinderclient accepts arguments after metadata without -- seprator"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Added a function, which parse arguments and add -- seprator"},{"line_number":10,"context_line":"after metadata subcommand"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ba7be1f8_21ed168c","line":7,"updated":"2015-02-24 04:08:13.000000000","message":"please fix spelling: should be \"separator\"","commit_id":"933bdd2d2940172c065eb2d778881d92086b4a58"},{"author":{"_account_id":6825,"name":"Gary W. Smith","email":"garysmith123@gmail.com","username":"gary-w-smith"},"change_message_id":"225da86a8d8a434dfc9a037e1591626aecfc3adb","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"cinderclient accepts arguments after metadata without -- seprator"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Added a function, which parse arguments and add -- seprator"},{"line_number":10,"context_line":"after metadata subcommand"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I907eb89209d549dcdad361d88352491110eaadb9"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ba7be1f8_4103ea41","line":9,"updated":"2015-02-24 04:08:13.000000000","message":"Ditto","commit_id":"933bdd2d2940172c065eb2d778881d92086b4a58"}],"cinderclient/shell.py":[{"author":{"_account_id":6825,"name":"Gary W. Smith","email":"garysmith123@gmail.com","username":"gary-w-smith"},"change_message_id":"225da86a8d8a434dfc9a037e1591626aecfc3adb","unresolved":false,"context_lines":[{"line_number":514,"context_line":"        ks_logger \u003d logging.getLogger(\"keystoneclient\")"},{"line_number":515,"context_line":"        ks_logger.setLevel(logging.DEBUG)"},{"line_number":516,"context_line":""},{"line_number":517,"context_line":"    def _process_metadata(self, argv):"},{"line_number":518,"context_line":"        word \u003d \u0027--metadata\u0027"},{"line_number":519,"context_line":"        tmp \u003d []"},{"line_number":520,"context_line":"        flag \u003d False"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_0146527c","line":517,"updated":"2015-02-24 04:08:13.000000000","message":"This needs some explanation about what it is doing. \"process\" metadata does not really help much.","commit_id":"933bdd2d2940172c065eb2d778881d92086b4a58"},{"author":{"_account_id":6825,"name":"Gary W. Smith","email":"garysmith123@gmail.com","username":"gary-w-smith"},"change_message_id":"225da86a8d8a434dfc9a037e1591626aecfc3adb","unresolved":false,"context_lines":[{"line_number":517,"context_line":"    def _process_metadata(self, argv):"},{"line_number":518,"context_line":"        word \u003d \u0027--metadata\u0027"},{"line_number":519,"context_line":"        tmp \u003d []"},{"line_number":520,"context_line":"        flag \u003d False"},{"line_number":521,"context_line":"        if word in argv:"},{"line_number":522,"context_line":"            for arg in argv:"},{"line_number":523,"context_line":"                if arg \u003d\u003d word:"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_242524ab","line":520,"updated":"2015-02-24 04:08:13.000000000","message":"What does \"flag\" mean?  This variable needs a more meaningful name.","commit_id":"933bdd2d2940172c065eb2d778881d92086b4a58"},{"author":{"_account_id":6825,"name":"Gary W. Smith","email":"garysmith123@gmail.com","username":"gary-w-smith"},"change_message_id":"225da86a8d8a434dfc9a037e1591626aecfc3adb","unresolved":false,"context_lines":[{"line_number":528,"context_line":"                            flag \u003d False"},{"line_number":529,"context_line":"                    elif \u0027--\u0027 in arg:"},{"line_number":530,"context_line":"                        flag \u003d False"},{"line_number":531,"context_line":"                    elif \u0027--\u0027 not in arg:"},{"line_number":532,"context_line":"                        tmp.append(u\u0027--\u0027)"},{"line_number":533,"context_line":"                        flag \u003d False"},{"line_number":534,"context_line":"                tmp.append(arg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_64363ce9","line":531,"updated":"2015-02-24 04:08:13.000000000","message":"elif is unnecessary","commit_id":"933bdd2d2940172c065eb2d778881d92086b4a58"},{"author":{"_account_id":6825,"name":"Gary W. Smith","email":"garysmith123@gmail.com","username":"gary-w-smith"},"change_message_id":"225da86a8d8a434dfc9a037e1591626aecfc3adb","unresolved":false,"context_lines":[{"line_number":535,"context_line":"            return tmp"},{"line_number":536,"context_line":"        else:"},{"line_number":537,"context_line":"            return argv"},{"line_number":538,"context_line":""},{"line_number":539,"context_line":"    def main(self, argv):"},{"line_number":540,"context_line":"        # Parse args once to find version and debug settings"},{"line_number":541,"context_line":"        parser \u003d self.get_base_parser()"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_8491709b","line":538,"updated":"2015-02-24 04:08:13.000000000","message":"This logic is overly complicated for the simple task of returning the input list with a \u0027--\u0027 at the appropriate spot.","commit_id":"933bdd2d2940172c065eb2d778881d92086b4a58"},{"author":{"_account_id":6825,"name":"Gary W. Smith","email":"garysmith123@gmail.com","username":"gary-w-smith"},"change_message_id":"225da86a8d8a434dfc9a037e1591626aecfc3adb","unresolved":false,"context_lines":[{"line_number":564,"context_line":"            subcommand_parser.print_help()"},{"line_number":565,"context_line":"            return 0"},{"line_number":566,"context_line":""},{"line_number":567,"context_line":"        self._process_metadata(argv)"},{"line_number":568,"context_line":"        args \u003d subcommand_parser.parse_args(argv)"},{"line_number":569,"context_line":"        self._run_extension_hooks(\u0027__post_parse_args__\u0027, args)"},{"line_number":570,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_415f6a41","line":567,"updated":"2015-02-24 04:08:13.000000000","message":"This just discards the results of the function.  There is no way this works.","commit_id":"933bdd2d2940172c065eb2d778881d92086b4a58"},{"author":{"_account_id":6825,"name":"Gary W. Smith","email":"garysmith123@gmail.com","username":"gary-w-smith"},"change_message_id":"64b3053edfdafbfbd3162b15894018fab642765a","unresolved":false,"context_lines":[{"line_number":514,"context_line":"        ks_logger \u003d logging.getLogger(\"keystoneclient\")"},{"line_number":515,"context_line":"        ks_logger.setLevel(logging.DEBUG)"},{"line_number":516,"context_line":""},{"line_number":517,"context_line":"    def _process_metadata(self, argv):"},{"line_number":518,"context_line":"        \"\"\"This function adds -- separator at the appropriate spot"},{"line_number":519,"context_line":"        \"\"\""},{"line_number":520,"context_line":"        word \u003d \u0027--metadata\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_2bb9eccb","line":517,"updated":"2015-02-26 17:08:04.000000000","message":"As suggested before, _process_metadata is too generic a name.  It needs to give developers some idea of what it is doing without having to infer it from the code. Perhaps  _delimit_metadata_args?   Also, it would be nice to mention in the comments why this is needed, perhaps with the simple example from the bug report.","commit_id":"cd5c1a619ffb43052eba38d45de791c559b451d1"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"3299d446d55bfd9c6779055e2de1edd032216b12","unresolved":false,"context_lines":[{"line_number":514,"context_line":"        ks_logger \u003d logging.getLogger(\"keystoneclient\")"},{"line_number":515,"context_line":"        ks_logger.setLevel(logging.DEBUG)"},{"line_number":516,"context_line":""},{"line_number":517,"context_line":"    def _delimit_metadata_args(self, argv):"},{"line_number":518,"context_line":"        \"\"\"This function adds -- separator at the appropriate spot"},{"line_number":519,"context_line":"        \"\"\""},{"line_number":520,"context_line":"        word \u003d \u0027--metadata\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_0b50060a","line":517,"updated":"2015-03-06 19:21:56.000000000","message":"I would prefer if you would just inserted the \u0027--\u0027 in argv instead of constructing a new list.\nYou can use argv.index(\u0027--metadata\u0027) to find where to start looking for the end of the metadata. But that\u0027s just my preference, you can ignore this comment if you want. :)","commit_id":"f9bc4f4120da897f0526b4a763c9bb149fb7e96f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"3299d446d55bfd9c6779055e2de1edd032216b12","unresolved":false,"context_lines":[{"line_number":526,"context_line":"                if arg \u003d\u003d word:"},{"line_number":527,"context_line":"                    metadata_options \u003d True"},{"line_number":528,"context_line":"                elif metadata_options:"},{"line_number":529,"context_line":"                    if \u0027--\u0027 in arg:"},{"line_number":530,"context_line":"                        metadata_options \u003d False"},{"line_number":531,"context_line":"                    elif \u0027\u003d\u0027 not in arg:"},{"line_number":532,"context_line":"                        tmp.append(u\u0027--\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_2b55cafa","line":529,"updated":"2015-03-06 19:21:56.000000000","message":"Must change to arg.startswith(\u0027--\u0027)\nOtherwise any metadata that includes -- like in the case of mykey\u003d\u0027--myval\u0027 will make you misinterpret it. :(","commit_id":"f9bc4f4120da897f0526b4a763c9bb149fb7e96f"}],"cinderclient/tests/v1/test_shell.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"3299d446d55bfd9c6779055e2de1edd032216b12","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        self.run_command(\u0027list\u0027)"},{"line_number":112,"context_line":"        # NOTE(jdg): we default to detail currently"},{"line_number":113,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/volumes/detail\u0027)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def test_delimit_metadata_args(self):"},{"line_number":116,"context_line":"        self.run_command(\u0027create --metadata key1\u003d\"test1\" key2\u003d\"test2\" 1\u0027)"},{"line_number":117,"context_line":"        self.assert_called(\u0027POST\u0027, \u0027/volumes\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_8b3cf6c9","line":114,"updated":"2015-03-06 19:21:56.000000000","message":"Please add another test for --metadata key1\u003d\u0027--test1\u0027 ....","commit_id":"f9bc4f4120da897f0526b4a763c9bb149fb7e96f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"3299d446d55bfd9c6779055e2de1edd032216b12","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def test_delimit_metadata_args(self):"},{"line_number":116,"context_line":"        self.run_command(\u0027create --metadata key1\u003d\"test1\" key2\u003d\"test2\" 1\u0027)"},{"line_number":117,"context_line":"        self.assert_called(\u0027POST\u0027, \u0027/volumes\u0027)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    def test_delimit_metadata_args_display_name(self):"},{"line_number":120,"context_line":"        self.run_command(\u0027create --metadata key1\u003d\"t1\" --display-name\u003d\"t\" 1\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_ab39bad8","line":117,"updated":"2015-03-06 19:21:56.000000000","message":"You also have to actually test that the metadata is passed correctly and I would recommend using self.assert_called_anytime\nIt should be possible to use assert_called_anytime using partial_body (if you add it to the method arguments and pass it along) but there seems to be bug in self.shell.cs.assert_called_anytime when using partial_body.\nSo the solution is to pass all the body contents on the assert like:\nexpected \u003d {\u0027volume\u0027: {\u0027status\u0027: \u0027creating\u0027,\n                       \u0027availability_zone\u0027: None,\n                       \u0027source_volid\u0027: None,\n                       \u0027display_description\u0027: None,\n                       \u0027snapshot_id\u0027: None,\n                       \u0027user_id\u0027: None,\n                       \u0027size\u0027: 1,\n                       \u0027display_name\u0027: None, \u0027imageRef\u0027: None,\n                       \u0027attach_status\u0027: \u0027detached\u0027,\n                       \u0027volume_type\u0027: None,\n                       \u0027project_id\u0027: None,\n                       \u0027metadata\u0027: {\u0027key2\u0027: \u0027\"test2\"\u0027,\n                                    \u0027key1\u0027: \u0027\"test1\"\u0027}}}\nself.assert_called_anytime(\u0027POST\u0027, \u0027/volumes\u0027, expected)","commit_id":"f9bc4f4120da897f0526b4a763c9bb149fb7e96f"}],"cinderclient/tests/v2/test_shell.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"3299d446d55bfd9c6779055e2de1edd032216b12","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        self.run_command(\u0027list\u0027)"},{"line_number":84,"context_line":"        # NOTE(jdg): we default to detail currently"},{"line_number":85,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/volumes/detail\u0027)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def test_delimit_metadata_args(self):"},{"line_number":88,"context_line":"        self.run_command(\u0027create --metadata key1\u003d\"test1\" key2\u003d\"test2\" 1\u0027)"},{"line_number":89,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/volumes/1234\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_cb326ef1","line":86,"updated":"2015-03-06 19:21:56.000000000","message":"It would be nice to have here the same test as I mentioned before about key1\u003d\u0027--test1\u0027 altough it\u0027s not necessary.","commit_id":"f9bc4f4120da897f0526b4a763c9bb149fb7e96f"},{"author":{"_account_id":14271,"name":"Kallebe Monteiro","email":"kallebe.monteiro@lsbd.ufc.br","username":"kallebe"},"change_message_id":"5c0b468568ac38735a044b23c0bba0381ff8ad50","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def test_delimit_metadata_args(self):"},{"line_number":88,"context_line":"        self.run_command(\u0027create --metadata key1\u003d\"test1\" key2\u003d\"test2\" 1\u0027)"},{"line_number":89,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/volumes/1234\u0027)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def test_delimit_metadata_args_display_name(self):"},{"line_number":92,"context_line":"        self.run_command(\u0027create --metadata key1\u003d\"t1\" --display-name\u003d\"t\" 1\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_af5e6243","line":89,"updated":"2015-03-05 18:57:05.000000000","message":"Why is the assert used for GET? In your v1 unit test you used POST.\nDoes not create use POST as well?\nIn the other create* unit tests there are asserts for POST and GET.","commit_id":"f9bc4f4120da897f0526b4a763c9bb149fb7e96f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"3299d446d55bfd9c6779055e2de1edd032216b12","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def test_delimit_metadata_args(self):"},{"line_number":88,"context_line":"        self.run_command(\u0027create --metadata key1\u003d\"test1\" key2\u003d\"test2\" 1\u0027)"},{"line_number":89,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/volumes/1234\u0027)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def test_delimit_metadata_args_display_name(self):"},{"line_number":92,"context_line":"        self.run_command(\u0027create --metadata key1\u003d\"t1\" --display-name\u003d\"t\" 1\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_eb2f3286","line":89,"updated":"2015-03-06 19:21:56.000000000","message":"You should use method assert_called_anytime instead to make sure POST method is also called with the right arguments.","commit_id":"f9bc4f4120da897f0526b4a763c9bb149fb7e96f"},{"author":{"_account_id":14271,"name":"Kallebe Monteiro","email":"kallebe.monteiro@lsbd.ufc.br","username":"kallebe"},"change_message_id":"ba6fbbc1a1ff520628299e6e95f2ad8b3262f22e","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def test_delimit_metadata_args(self):"},{"line_number":88,"context_line":"        self.run_command(\u0027create --metadata key1\u003d\"test1\" key2\u003d\"test2\" 1\u0027)"},{"line_number":89,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/volumes/1234\u0027)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def test_delimit_metadata_args_display_name(self):"},{"line_number":92,"context_line":"        self.run_command(\u0027create --metadata key1\u003d\"t1\" --display-name\u003d\"t\" 1\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_716a6882","line":89,"in_reply_to":"9a80dd14_26b27894","updated":"2015-03-06 11:49:19.000000000","message":"You are right. Sorry if I sounded too harsh or anything. It was not my intention. I was just finding it very strange and asked for an explanation as to why this was the case. You have explained well, thanks for your change. I will +1 now.","commit_id":"f9bc4f4120da897f0526b4a763c9bb149fb7e96f"},{"author":{"_account_id":13912,"name":"rajiv","email":"thenakliman@gmail.com","username":"rajiv.kumar"},"change_message_id":"c3d1649a369280138a8afbae2953a078b4a60c63","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def test_delimit_metadata_args(self):"},{"line_number":88,"context_line":"        self.run_command(\u0027create --metadata key1\u003d\"test1\" key2\u003d\"test2\" 1\u0027)"},{"line_number":89,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/volumes/1234\u0027)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def test_delimit_metadata_args_display_name(self):"},{"line_number":92,"context_line":"        self.run_command(\u0027create --metadata key1\u003d\"t1\" --display-name\u003d\"t\" 1\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_26b27894","line":89,"in_reply_to":"9a80dd14_af5e6243","updated":"2015-03-06 11:44:07.000000000","message":"In case of v1 call stack contains \n[(\u0027POST\u0027, \u0027/volumes\u0027, {\u0027volume\u0027: {\u0027attach_status\u0027: \u0027detached\u0027, \u0027snapshot_id\u0027: None, \u0027volume_type\u0027: None, \u0027display_description\u0027: None, \u0027availability_zone\u0027: None, \u0027display_name\u0027: None, \u0027project_id\u0027: None, \u0027user_id\u0027: None, \u0027source_volid\u0027: None, \u0027size\u0027: 1, \u0027imageRef\u0027: None, \u0027status\u0027: \u0027creating\u0027, \u0027metadata\u0027: {}}})]\n\nIn case of v2 call stack contains\n[(\u0027POST\u0027, \u0027/volumes\u0027, {\u0027volume\u0027: {\u0027imageRef\u0027: None, \u0027project_id\u0027: None, \u0027status\u0027: \u0027creating\u0027, \u0027size\u0027: 1, \u0027user_id\u0027: None, \u0027availability_zone\u0027: None, \u0027source_replica\u0027: None, \u0027attach_status\u0027: \u0027detached\u0027, \u0027source_volid\u0027: None, \u0027consistencygroup_id\u0027: None, \u0027name\u0027: None, \u0027snapshot_id\u0027: None, \u0027metadata\u0027: {}, \u0027volume_type\u0027: None, \u0027description\u0027: None}}), (\u0027GET\u0027, \u0027/volumes/1234\u0027, None)]\n\nwe can see v1 has just one tuple [(\u0027POST\u0027, \u0027/volumes\u0027, ...)] and v2 has two\ntuple [(POST, \u0027/volumes\u0027, ...), (\u0027GET\u0027,\u0027/volumes/1234\u0027, None\u0027)]. \u0027POST\u0027 one is for\nvolume creation API (http://developer.openstack.org/api-ref-blockstorage-v1.html)\nand \u0027GET\u0027 one is for volume show API. It explains, v2 uses two API call for\nvolume creation. \n \nassert_called is defined in cinderclient/tests/fake.py which checks for last API\n call self.client.callstack[pos][0:2] where pos is -1, by default. In case of v2 \nlast API used is volume show, as explained earlier.\n\nI don\u0027t know much about how test cases works and how tox works. But i have \nexplained my part. In case, i am wrong anywhere, please correct me.","commit_id":"f9bc4f4120da897f0526b4a763c9bb149fb7e96f"},{"author":{"_account_id":14271,"name":"Kallebe Monteiro","email":"kallebe.monteiro@lsbd.ufc.br","username":"kallebe"},"change_message_id":"5c0b468568ac38735a044b23c0bba0381ff8ad50","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def test_delimit_metadata_args_display_name(self):"},{"line_number":92,"context_line":"        self.run_command(\u0027create --metadata key1\u003d\"t1\" --display-name\u003d\"t\" 1\u0027)"},{"line_number":93,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/volumes/1234\u0027)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def test_list_filter_status(self):"},{"line_number":96,"context_line":"        self.run_command(\u0027list --status\u003davailable\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_ef585a58","line":93,"updated":"2015-03-05 18:57:05.000000000","message":"Same as above.","commit_id":"f9bc4f4120da897f0526b4a763c9bb149fb7e96f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"beaee6364396148f2809e8e642a61953bcf6abb0","unresolved":false,"context_lines":[{"line_number":117,"context_line":"                               \u0027attach_status\u0027: \u0027detached\u0027,"},{"line_number":118,"context_line":"                               \u0027source_volid\u0027: None,"},{"line_number":119,"context_line":"                               \u0027consistencygroup_id\u0027: None,"},{"line_number":120,"context_line":"                               \u0027name\u0027: \u0027\"t\"\u0027,"},{"line_number":121,"context_line":"                               \u0027snapshot_id\u0027: None,"},{"line_number":122,"context_line":"                               \u0027metadata\u0027: {\u0027key1\u0027: \u0027\"--t1\"\u0027},"},{"line_number":123,"context_line":"                               \u0027volume_type\u0027: None,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a80dd14_c876c605","line":120,"updated":"2015-03-09 13:08:30.000000000","message":"If v2 API uses name instead of display_name then it\u0027s ok.\nThe run_command is correct, since cinderclient has no --name option available regardless of API parameters.","commit_id":"b52dae43a6f9c173a01716d56a57b5b3c82cec7b"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"3f4850885203461a04b80705ed77c29ac1d915e3","unresolved":false,"context_lines":[{"line_number":117,"context_line":"                               \u0027attach_status\u0027: \u0027detached\u0027,"},{"line_number":118,"context_line":"                               \u0027source_volid\u0027: None,"},{"line_number":119,"context_line":"                               \u0027consistencygroup_id\u0027: None,"},{"line_number":120,"context_line":"                               \u0027name\u0027: \u0027\"t\"\u0027,"},{"line_number":121,"context_line":"                               \u0027snapshot_id\u0027: None,"},{"line_number":122,"context_line":"                               \u0027metadata\u0027: {\u0027key1\u0027: \u0027\"--t1\"\u0027},"},{"line_number":123,"context_line":"                               \u0027volume_type\u0027: None,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a80dd14_e1b80513","line":120,"updated":"2015-03-09 14:05:36.000000000","message":"My bad, you are right.\nI did a quick check with `cinder help create` and forgot that we were talking about v2 and I should have used `cinder --os-volume-api-version 2 help create` instead.","commit_id":"b52dae43a6f9c173a01716d56a57b5b3c82cec7b"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"2408b2ad05989fe8f7850f45e118648321d88858","unresolved":false,"context_lines":[{"line_number":117,"context_line":"                               \u0027attach_status\u0027: \u0027detached\u0027,"},{"line_number":118,"context_line":"                               \u0027source_volid\u0027: None,"},{"line_number":119,"context_line":"                               \u0027consistencygroup_id\u0027: None,"},{"line_number":120,"context_line":"                               \u0027name\u0027: \u0027\"t\"\u0027,"},{"line_number":121,"context_line":"                               \u0027snapshot_id\u0027: None,"},{"line_number":122,"context_line":"                               \u0027metadata\u0027: {\u0027key1\u0027: \u0027\"--t1\"\u0027},"},{"line_number":123,"context_line":"                               \u0027volume_type\u0027: None,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a80dd14_12be45d5","line":120,"updated":"2015-03-09 15:18:48.000000000","message":"On second thought I agree it is better to use `--name` instead or at least add a note that whenever v1 gets deprecated this should be changed to `--name` since we are using the backward compatible option.","commit_id":"b52dae43a6f9c173a01716d56a57b5b3c82cec7b"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"7fae30d3ffb3162afd3a4c2e30f067457954c6b7","unresolved":false,"context_lines":[{"line_number":117,"context_line":"                               \u0027attach_status\u0027: \u0027detached\u0027,"},{"line_number":118,"context_line":"                               \u0027source_volid\u0027: None,"},{"line_number":119,"context_line":"                               \u0027consistencygroup_id\u0027: None,"},{"line_number":120,"context_line":"                               \u0027name\u0027: \u0027\"t\"\u0027,"},{"line_number":121,"context_line":"                               \u0027snapshot_id\u0027: None,"},{"line_number":122,"context_line":"                               \u0027metadata\u0027: {\u0027key1\u0027: \u0027\"--t1\"\u0027},"},{"line_number":123,"context_line":"                               \u0027volume_type\u0027: None,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a80dd14_4ee023fa","line":120,"updated":"2015-03-09 11:08:43.000000000","message":"Shouldn\u0027t this be display-name instead?","commit_id":"b52dae43a6f9c173a01716d56a57b5b3c82cec7b"},{"author":{"_account_id":14271,"name":"Kallebe Monteiro","email":"kallebe.monteiro@lsbd.ufc.br","username":"kallebe"},"change_message_id":"e8a563ef658806b31bf0a1efe0cf19390c392beb","unresolved":false,"context_lines":[{"line_number":117,"context_line":"                               \u0027attach_status\u0027: \u0027detached\u0027,"},{"line_number":118,"context_line":"                               \u0027source_volid\u0027: None,"},{"line_number":119,"context_line":"                               \u0027consistencygroup_id\u0027: None,"},{"line_number":120,"context_line":"                               \u0027name\u0027: \u0027\"t\"\u0027,"},{"line_number":121,"context_line":"                               \u0027snapshot_id\u0027: None,"},{"line_number":122,"context_line":"                               \u0027metadata\u0027: {\u0027key1\u0027: \u0027\"--t1\"\u0027},"},{"line_number":123,"context_line":"                               \u0027volume_type\u0027: None,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a80dd14_8b75a865","line":120,"in_reply_to":"9a80dd14_2b2d9c95","updated":"2015-03-09 13:24:31.000000000","message":"Forgot to add: it is for do_list, but I can create volume with --name.\nTried to find where it is defined for create but could not find it. That\u0027s strange.","commit_id":"b52dae43a6f9c173a01716d56a57b5b3c82cec7b"},{"author":{"_account_id":13912,"name":"rajiv","email":"thenakliman@gmail.com","username":"rajiv.kumar"},"change_message_id":"c989938707ab9baa3b843b212af27c1c83e0a7be","unresolved":false,"context_lines":[{"line_number":117,"context_line":"                               \u0027attach_status\u0027: \u0027detached\u0027,"},{"line_number":118,"context_line":"                               \u0027source_volid\u0027: None,"},{"line_number":119,"context_line":"                               \u0027consistencygroup_id\u0027: None,"},{"line_number":120,"context_line":"                               \u0027name\u0027: \u0027\"t\"\u0027,"},{"line_number":121,"context_line":"                               \u0027snapshot_id\u0027: None,"},{"line_number":122,"context_line":"                               \u0027metadata\u0027: {\u0027key1\u0027: \u0027\"--t1\"\u0027},"},{"line_number":123,"context_line":"                               \u0027volume_type\u0027: None,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a80dd14_59446b1a","line":120,"in_reply_to":"9a80dd14_4ee023fa","updated":"2015-03-09 11:36:20.000000000","message":"I checked it, once more, it\u0027s \"name\" only. I print the call stack, it does not have any key named, display-name in case of V2. Let\u0027s wait for jenkins to confirm it.","commit_id":"b52dae43a6f9c173a01716d56a57b5b3c82cec7b"},{"author":{"_account_id":14271,"name":"Kallebe Monteiro","email":"kallebe.monteiro@lsbd.ufc.br","username":"kallebe"},"change_message_id":"80895e724d76b1488767dd7e846a753e6a0e6e3b","unresolved":false,"context_lines":[{"line_number":117,"context_line":"                               \u0027attach_status\u0027: \u0027detached\u0027,"},{"line_number":118,"context_line":"                               \u0027source_volid\u0027: None,"},{"line_number":119,"context_line":"                               \u0027consistencygroup_id\u0027: None,"},{"line_number":120,"context_line":"                               \u0027name\u0027: \u0027\"t\"\u0027,"},{"line_number":121,"context_line":"                               \u0027snapshot_id\u0027: None,"},{"line_number":122,"context_line":"                               \u0027metadata\u0027: {\u0027key1\u0027: \u0027\"--t1\"\u0027},"},{"line_number":123,"context_line":"                               \u0027volume_type\u0027: None,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a80dd14_79d4cfeb","line":120,"in_reply_to":"9a80dd14_4ee023fa","updated":"2015-03-09 11:52:06.000000000","message":"It seems that for v2 the parameter was changed.\nYou can see in API documentation (http://developer.openstack.org/api-ref-blockstorage-v1.html) that for v1 the parameter was \"display_name\" and for v2 it is just \"name\".\n\nHowever, this comment made me realize that in self.run_command the test is using --display-name. It is not a big deal, but I think it is better if you use --name instead. For now it is ok because there is backward compatiblity, but I think it is better to have v2 testing v2 parameters.\n\nThat said, I will +1 and see what the others think about this.","commit_id":"b52dae43a6f9c173a01716d56a57b5b3c82cec7b"},{"author":{"_account_id":14271,"name":"Kallebe Monteiro","email":"kallebe.monteiro@lsbd.ufc.br","username":"kallebe"},"change_message_id":"4d2fd385f1c61be384b2d863845593ce7601045a","unresolved":false,"context_lines":[{"line_number":117,"context_line":"                               \u0027attach_status\u0027: \u0027detached\u0027,"},{"line_number":118,"context_line":"                               \u0027source_volid\u0027: None,"},{"line_number":119,"context_line":"                               \u0027consistencygroup_id\u0027: None,"},{"line_number":120,"context_line":"                               \u0027name\u0027: \u0027\"t\"\u0027,"},{"line_number":121,"context_line":"                               \u0027snapshot_id\u0027: None,"},{"line_number":122,"context_line":"                               \u0027metadata\u0027: {\u0027key1\u0027: \u0027\"--t1\"\u0027},"},{"line_number":123,"context_line":"                               \u0027volume_type\u0027: None,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a80dd14_8b984879","line":120,"in_reply_to":"9a80dd14_8b75a865","updated":"2015-03-09 13:26:54.000000000","message":"Well, sorry for too many comments but I found it now https://github.com/openstack/python-cinderclient/blob/master/cinderclient/v2/shell.py#L303","commit_id":"b52dae43a6f9c173a01716d56a57b5b3c82cec7b"},{"author":{"_account_id":14271,"name":"Kallebe Monteiro","email":"kallebe.monteiro@lsbd.ufc.br","username":"kallebe"},"change_message_id":"63a875a390c5e78c5174a20b347a09004604a970","unresolved":false,"context_lines":[{"line_number":117,"context_line":"                               \u0027attach_status\u0027: \u0027detached\u0027,"},{"line_number":118,"context_line":"                               \u0027source_volid\u0027: None,"},{"line_number":119,"context_line":"                               \u0027consistencygroup_id\u0027: None,"},{"line_number":120,"context_line":"                               \u0027name\u0027: \u0027\"t\"\u0027,"},{"line_number":121,"context_line":"                               \u0027snapshot_id\u0027: None,"},{"line_number":122,"context_line":"                               \u0027metadata\u0027: {\u0027key1\u0027: \u0027\"--t1\"\u0027},"},{"line_number":123,"context_line":"                               \u0027volume_type\u0027: None,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a80dd14_2b2d9c95","line":120,"in_reply_to":"9a80dd14_c876c605","updated":"2015-03-09 13:16:21.000000000","message":"v2 shell has the --name parameter and --display-name is suppressed from help (see https://github.com/openstack/python-cinderclient/blob/master/cinderclient/v2/shell.py#L153)","commit_id":"b52dae43a6f9c173a01716d56a57b5b3c82cec7b"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"7fae30d3ffb3162afd3a4c2e30f067457954c6b7","unresolved":false,"context_lines":[{"line_number":157,"context_line":"                               \u0027attach_status\u0027: \u0027detached\u0027,"},{"line_number":158,"context_line":"                               \u0027source_volid\u0027: None,"},{"line_number":159,"context_line":"                               \u0027consistencygroup_id\u0027: None,"},{"line_number":160,"context_line":"                               \u0027name\u0027: \u0027\"t\"\u0027,"},{"line_number":161,"context_line":"                               \u0027snapshot_id\u0027: None,"},{"line_number":162,"context_line":"                               \u0027metadata\u0027: {\u0027key1\u0027: \u0027\"t1\"\u0027},"},{"line_number":163,"context_line":"                               \u0027volume_type\u0027: None,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a80dd14_6eea47dc","line":160,"updated":"2015-03-09 11:08:43.000000000","message":"Shouldn\u0027t this be display-name instead?","commit_id":"b52dae43a6f9c173a01716d56a57b5b3c82cec7b"}]}
