)]}'
{"cinderclient/tests/unit/v2/test_volumes.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"488cf5f3601262f0cf35c9524f604d69d06441b6","unresolved":false,"context_lines":[{"line_number":329,"context_line":"        self._assert_request_id(vol)"},{"line_number":330,"context_line":""},{"line_number":331,"context_line":"    def test_get_pools_detail(self):"},{"line_number":332,"context_line":"        cs \u003d fakes.FakeClient(api_version\u003dapi_versions.APIVersion(\u00273.27\u0027))"},{"line_number":333,"context_line":"        vol \u003d cs.volumes.get_pools(\u0027--detail\u0027)"},{"line_number":334,"context_line":"        cs.assert_called(\u0027GET\u0027, \u0027/scheduler-stats/get_pools?detail\u003dTrue\u0027)"},{"line_number":335,"context_line":"        self._assert_request_id(vol)"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa31d9ce_9c59dc37","line":332,"updated":"2017-02-15 15:34:57.000000000","message":"It should not be in v2 directory","commit_id":"61812b369eff14d8457d123550023038856bc088"},{"author":{"_account_id":24309,"name":"xinyanzhang","email":"236592348@qq.com","username":"xinyanzhang"},"change_message_id":"9fbd92d61233a3a089d3f834dda8ffa6204b7761","unresolved":false,"context_lines":[{"line_number":329,"context_line":"        self._assert_request_id(vol)"},{"line_number":330,"context_line":""},{"line_number":331,"context_line":"    def test_get_pools_detail(self):"},{"line_number":332,"context_line":"        cs \u003d fakes.FakeClient(api_version\u003dapi_versions.APIVersion(\u00273.27\u0027))"},{"line_number":333,"context_line":"        vol \u003d cs.volumes.get_pools(\u0027--detail\u0027)"},{"line_number":334,"context_line":"        cs.assert_called(\u0027GET\u0027, \u0027/scheduler-stats/get_pools?detail\u003dTrue\u0027)"},{"line_number":335,"context_line":"        self._assert_request_id(vol)"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa31d9ce_e14ae154","line":332,"in_reply_to":"fa31d9ce_9c59dc37","updated":"2017-02-17 03:37:19.000000000","message":"Done","commit_id":"61812b369eff14d8457d123550023038856bc088"}],"cinderclient/tests/unit/v3/test_shell.py":[{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"5b94d7f5d25a6162c0e1866813a1e288485795f2","unresolved":false,"context_lines":[{"line_number":127,"context_line":"                         \u0027get-pools --detail --name pool1\u0027)"},{"line_number":128,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/scheduler-stats/get_pools\u0027"},{"line_number":129,"context_line":"                                  \u0027?detail\u003dTrue\u0026name\u003dpool1\u0027)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    def test_get_pools_pre_version(self):"},{"line_number":132,"context_line":"        self.run_command(\u0027get-pools --name useless_args\u0027)"},{"line_number":133,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/scheduler-stats/get_pools\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_9ef4b3f2","line":130,"updated":"2016-05-31 03:28:29.000000000","message":"One test for Invalid API version can also be added.\nFor ex, 3.5.","commit_id":"988e51c0255eeff581a1beb45bd3868e90292e67"},{"author":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"change_message_id":"29e4407cd5f9768f22c60d230600910916926265","unresolved":false,"context_lines":[{"line_number":127,"context_line":"                         \u0027get-pools --detail --name pool1\u0027)"},{"line_number":128,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/scheduler-stats/get_pools\u0027"},{"line_number":129,"context_line":"                                  \u0027?detail\u003dTrue\u0026name\u003dpool1\u0027)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    def test_get_pools_pre_version(self):"},{"line_number":132,"context_line":"        self.run_command(\u0027get-pools --name useless_args\u0027)"},{"line_number":133,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/scheduler-stats/get_pools\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_9eb79385","line":130,"in_reply_to":"9abb7d3a_9ef4b3f2","updated":"2016-05-31 04:18:12.000000000","message":"Done","commit_id":"988e51c0255eeff581a1beb45bd3868e90292e67"},{"author":{"_account_id":23602,"name":"Michael Dovgal","email":"dovgalmichael@gmail.com","username":"mdovgal"},"change_message_id":"7f52014df7ddf16bb707941e9a83f8bc3755169c","unresolved":false,"context_lines":[{"line_number":433,"context_line":"                         \u0027metadata 1234 unset k1 k3\u0027)"},{"line_number":434,"context_line":"        self.assert_called(\u0027PUT\u0027, \u0027/volumes/1234/metadata\u0027, body\u003dexpected)"},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"    def test_get_pools(self):"},{"line_number":437,"context_line":"        self.run_command(\u0027--os-volume-api-version 3.28 get-pools\u0027)"},{"line_number":438,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/scheduler-stats/get_pools\u0027)"},{"line_number":439,"context_line":""},{"line_number":440,"context_line":"    def test_get_pools_name_filtered(self):"},{"line_number":441,"context_line":"        self.run_command(\u0027--os-volume-api-version 3.28 \u0027"},{"line_number":442,"context_line":"                         \u0027get-pools --name pool1\u0027)"},{"line_number":443,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/scheduler-stats/get_pools?name\u003dpool1\u0027)"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"    def test_get_pools_detail_name_filtered(self):"},{"line_number":446,"context_line":"        self.run_command(\u0027--os-volume-api-version 3.28 \u0027"},{"line_number":447,"context_line":"                         \u0027get-pools --detail --name pool1\u0027)"},{"line_number":448,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/scheduler-stats/get_pools\u0027"},{"line_number":449,"context_line":"                                  \u0027?detail\u003dTrue\u0026name\u003dpool1\u0027)"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"    def test_get_pools_pre_version(self):"},{"line_number":452,"context_line":"        self.run_command(\u0027get-pools\u0027)"},{"line_number":453,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/scheduler-stats/get_pools\u0027)"},{"line_number":454,"context_line":""},{"line_number":455,"context_line":"    def test_get_pools_detail_pre_version(self):"},{"line_number":456,"context_line":"        self.run_command(\u0027get-pools --detail\u0027)"},{"line_number":457,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/scheduler-stats/get_pools?detail\u003dTrue\u0027)"}],"source_content_type":"text/x-python","patch_set":14,"id":"da36d5c6_245e5944","line":457,"range":{"start_line":436,"start_character":0,"end_line":457,"end_character":75},"updated":"2017-02-23 11:47:02.000000000","message":"Same","commit_id":"55663b9054d8cdcee3c33c58531713778317fdd4"}],"cinderclient/tests/unit/v3/test_volumes.py":[{"author":{"_account_id":23602,"name":"Michael Dovgal","email":"dovgalmichael@gmail.com","username":"mdovgal"},"change_message_id":"7f52014df7ddf16bb707941e9a83f8bc3755169c","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                    % parse.quote_plus(\"{\u0027key1\u0027: \u0027val1\u0027}\"))"},{"line_number":102,"context_line":"        cs.assert_called(\u0027GET\u0027, expected)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def test_get_pools_filter_name(self):"},{"line_number":105,"context_line":"        cs \u003d fakes.FakeClient(api_version\u003dapi_versions.APIVersion(\u00273.28\u0027))"},{"line_number":106,"context_line":"        vol \u003d cs.volumes.get_pools(False, \u0027pool1\u0027)"},{"line_number":107,"context_line":"        cs.assert_called(\u0027GET\u0027, \u0027/scheduler-stats/get_pools?name\u003dpool1\u0027)"},{"line_number":108,"context_line":"        self._assert_request_id(vol)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def test_get_pools_detail_filter_name(self):"},{"line_number":111,"context_line":"        cs \u003d fakes.FakeClient(api_version\u003dapi_versions.APIVersion(\u00273.28\u0027))"},{"line_number":112,"context_line":"        vol \u003d cs.volumes.get_pools(True, \u0027pool1\u0027)"},{"line_number":113,"context_line":"        cs.assert_called(\u0027GET\u0027, \u0027/scheduler-stats/get_pools\u0027"},{"line_number":114,"context_line":"                                \u0027?detail\u003dTrue\u0026name\u003dpool1\u0027)"},{"line_number":115,"context_line":"        self._assert_request_id(vol)"}],"source_content_type":"text/x-python","patch_set":14,"id":"da36d5c6_247739d4","line":115,"range":{"start_line":104,"start_character":0,"end_line":115,"end_character":36},"updated":"2017-02-23 11:47:02.000000000","message":"-1\nPlease, use ddt library for it. And add list of test cases as a brief description for this test.","commit_id":"55663b9054d8cdcee3c33c58531713778317fdd4"}],"cinderclient/v3/shell.py":[{"author":{"_account_id":12184,"name":"Weiwei Gu","email":"gu.weiwei@zte.com.cn","username":"guweiwei"},"change_message_id":"5c6c4fc10b2bdc4bd80145c82419ff03ebc4084a","unresolved":false,"context_lines":[{"line_number":2558,"context_line":"@utils.arg(\u0027--detail\u0027,"},{"line_number":2559,"context_line":"           action\u003d\u0027store_true\u0027,"},{"line_number":2560,"context_line":"           help\u003d\u0027Show detailed information about pools.\u0027)"},{"line_number":2561,"context_line":"@utils.arg(\u0027--name\u0027,"},{"line_number":2562,"context_line":"           metavar\u003d\u0027\u003cname\u003e\u0027,"},{"line_number":2563,"context_line":"           default\u003dNone,"},{"line_number":2564,"context_line":"           help\u003d\u0027Filters results by a name. Default\u003dNone.\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_15b727d9","line":2561,"range":{"start_line":2561,"start_character":0,"end_line":2561,"end_character":20},"updated":"2016-05-30 09:46:21.000000000","message":"I thick \"pool_name\" rather than \"name\".","commit_id":"6a2f2d50ba9d232d00d3092b23113be24daa9692"},{"author":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"change_message_id":"03fee058983d81f433a1d1e9362f66d04e4f1877","unresolved":false,"context_lines":[{"line_number":2558,"context_line":"@utils.arg(\u0027--detail\u0027,"},{"line_number":2559,"context_line":"           action\u003d\u0027store_true\u0027,"},{"line_number":2560,"context_line":"           help\u003d\u0027Show detailed information about pools.\u0027)"},{"line_number":2561,"context_line":"@utils.arg(\u0027--name\u0027,"},{"line_number":2562,"context_line":"           metavar\u003d\u0027\u003cname\u003e\u0027,"},{"line_number":2563,"context_line":"           default\u003dNone,"},{"line_number":2564,"context_line":"           help\u003d\u0027Filters results by a name. Default\u003dNone.\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_39dea56d","line":2561,"range":{"start_line":2561,"start_character":0,"end_line":2561,"end_character":20},"in_reply_to":"9abb7d3a_15b727d9","updated":"2016-05-30 10:00:20.000000000","message":"Hi Weiwei Gu:\n    Thanks for your review.\n    I use \"--name\" in purpose of keeping consistency with other subcommands.\n    Like \"cinder list\" \"cinder snapshot-list\" they all use \"--name\" optional argument rather than \"--volume-name\" or \"--snapshot-name\"\n\nThanks","commit_id":"6a2f2d50ba9d232d00d3092b23113be24daa9692"},{"author":{"_account_id":12184,"name":"Weiwei Gu","email":"gu.weiwei@zte.com.cn","username":"guweiwei"},"change_message_id":"df79c857be1f395d23609b237498e8f27a55e664","unresolved":false,"context_lines":[{"line_number":2558,"context_line":"@utils.arg(\u0027--detail\u0027,"},{"line_number":2559,"context_line":"           action\u003d\u0027store_true\u0027,"},{"line_number":2560,"context_line":"           help\u003d\u0027Show detailed information about pools.\u0027)"},{"line_number":2561,"context_line":"@utils.arg(\u0027--name\u0027,"},{"line_number":2562,"context_line":"           metavar\u003d\u0027\u003cname\u003e\u0027,"},{"line_number":2563,"context_line":"           default\u003dNone,"},{"line_number":2564,"context_line":"           help\u003d\u0027Filters results by a name. Default\u003dNone.\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_9ba6850e","line":2561,"range":{"start_line":2561,"start_character":0,"end_line":2561,"end_character":20},"in_reply_to":"9abb7d3a_39dea56d","updated":"2016-05-31 02:58:35.000000000","message":"That is OK. \nAnother，the pool name is not unique， if do not specify a backend. In other words whether or not input the backend name?","commit_id":"6a2f2d50ba9d232d00d3092b23113be24daa9692"},{"author":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"change_message_id":"ac828a331f584d5e92b09fffa80542820d1affdc","unresolved":false,"context_lines":[{"line_number":2558,"context_line":"@utils.arg(\u0027--detail\u0027,"},{"line_number":2559,"context_line":"           action\u003d\u0027store_true\u0027,"},{"line_number":2560,"context_line":"           help\u003d\u0027Show detailed information about pools.\u0027)"},{"line_number":2561,"context_line":"@utils.arg(\u0027--name\u0027,"},{"line_number":2562,"context_line":"           metavar\u003d\u0027\u003cname\u003e\u0027,"},{"line_number":2563,"context_line":"           default\u003dNone,"},{"line_number":2564,"context_line":"           help\u003d\u0027Filters results by a name. Default\u003dNone.\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_dbdc8de6","line":2561,"range":{"start_line":2561,"start_character":0,"end_line":2561,"end_character":20},"in_reply_to":"9abb7d3a_9ba6850e","updated":"2016-05-31 03:14:41.000000000","message":"En...\nCLI users should pass a name looks like:\nhost@backend-name#pool\n\nJust same with this:\nhttps://review.openstack.org/#/c/321492/5/cinder/scheduler/host_manager.py@531\n\nI will update the help message to make this clear for users.\n\nThanks","commit_id":"6a2f2d50ba9d232d00d3092b23113be24daa9692"},{"author":{"_account_id":12184,"name":"Weiwei Gu","email":"gu.weiwei@zte.com.cn","username":"guweiwei"},"change_message_id":"7899e0e982a1ee2df3bebb238ccbb0927990d7c6","unresolved":false,"context_lines":[{"line_number":2558,"context_line":"@utils.arg(\u0027--detail\u0027,"},{"line_number":2559,"context_line":"           action\u003d\u0027store_true\u0027,"},{"line_number":2560,"context_line":"           help\u003d\u0027Show detailed information about pools.\u0027)"},{"line_number":2561,"context_line":"@utils.arg(\u0027--name\u0027,"},{"line_number":2562,"context_line":"           metavar\u003d\u0027\u003cname\u003e\u0027,"},{"line_number":2563,"context_line":"           default\u003dNone,"},{"line_number":2564,"context_line":"           help\u003d\u0027Filters results by a name. Default\u003dNone.\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_3b679926","line":2561,"range":{"start_line":2561,"start_character":0,"end_line":2561,"end_character":20},"in_reply_to":"9abb7d3a_9ba6850e","updated":"2016-05-31 03:15:35.000000000","message":"I looked again, this is no problem","commit_id":"6a2f2d50ba9d232d00d3092b23113be24daa9692"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"5b94d7f5d25a6162c0e1866813a1e288485795f2","unresolved":false,"context_lines":[{"line_number":2560,"context_line":"           help\u003d\u0027Show detailed information about pools.\u0027)"},{"line_number":2561,"context_line":"@utils.arg(\u0027--name\u0027,"},{"line_number":2562,"context_line":"           metavar\u003d\u0027\u003cname\u003e\u0027,"},{"line_number":2563,"context_line":"           default\u003dNone,"},{"line_number":2564,"context_line":"           help\u003d\u0027Filters results by a name. Default\u003dNone. Takes the form: \u0027"},{"line_number":2565,"context_line":"                \u0027host@backend-name#pool\u0027)"},{"line_number":2566,"context_line":"@utils.service_type(\u0027volumev3\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_3b1cb976","line":2563,"range":{"start_line":2563,"start_character":11,"end_line":2563,"end_character":24},"updated":"2016-05-31 03:28:29.000000000","message":"We dont need \"default\u003dNone\" here as by default if an optional argument isn’t specified, it gets the None value.\nDefault arg by default have None value.","commit_id":"988e51c0255eeff581a1beb45bd3868e90292e67"},{"author":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"change_message_id":"29e4407cd5f9768f22c60d230600910916926265","unresolved":false,"context_lines":[{"line_number":2560,"context_line":"           help\u003d\u0027Show detailed information about pools.\u0027)"},{"line_number":2561,"context_line":"@utils.arg(\u0027--name\u0027,"},{"line_number":2562,"context_line":"           metavar\u003d\u0027\u003cname\u003e\u0027,"},{"line_number":2563,"context_line":"           default\u003dNone,"},{"line_number":2564,"context_line":"           help\u003d\u0027Filters results by a name. Default\u003dNone. Takes the form: \u0027"},{"line_number":2565,"context_line":"                \u0027host@backend-name#pool\u0027)"},{"line_number":2566,"context_line":"@utils.service_type(\u0027volumev3\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_c973277f","line":2563,"range":{"start_line":2563,"start_character":11,"end_line":2563,"end_character":24},"in_reply_to":"9abb7d3a_3b1cb976","updated":"2016-05-31 04:18:12.000000000","message":"Hi, I noticed that \"cinder list --name\", \"cinder snapshot-list --name\" also use this.\nAnd I add a test with no name args passed to 3.6 mrioversion, and it looks OK.","commit_id":"988e51c0255eeff581a1beb45bd3868e90292e67"},{"author":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"change_message_id":"29e4407cd5f9768f22c60d230600910916926265","unresolved":false,"context_lines":[{"line_number":2560,"context_line":"           help\u003d\u0027Show detailed information about pools.\u0027)"},{"line_number":2561,"context_line":"@utils.arg(\u0027--name\u0027,"},{"line_number":2562,"context_line":"           metavar\u003d\u0027\u003cname\u003e\u0027,"},{"line_number":2563,"context_line":"           default\u003dNone,"},{"line_number":2564,"context_line":"           help\u003d\u0027Filters results by a name. Default\u003dNone. Takes the form: \u0027"},{"line_number":2565,"context_line":"                \u0027host@backend-name#pool\u0027)"},{"line_number":2566,"context_line":"@utils.service_type(\u0027volumev3\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_e9e38b31","line":2563,"range":{"start_line":2563,"start_character":11,"end_line":2563,"end_character":24},"in_reply_to":"9abb7d3a_3b1cb976","updated":"2016-05-31 04:18:12.000000000","message":"Hi, Sheel:\n    I use this to keep  \"cinder list --name\"","commit_id":"988e51c0255eeff581a1beb45bd3868e90292e67"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"5b94d7f5d25a6162c0e1866813a1e288485795f2","unresolved":false,"context_lines":[{"line_number":2561,"context_line":"@utils.arg(\u0027--name\u0027,"},{"line_number":2562,"context_line":"           metavar\u003d\u0027\u003cname\u003e\u0027,"},{"line_number":2563,"context_line":"           default\u003dNone,"},{"line_number":2564,"context_line":"           help\u003d\u0027Filters results by a name. Default\u003dNone. Takes the form: \u0027"},{"line_number":2565,"context_line":"                \u0027host@backend-name#pool\u0027)"},{"line_number":2566,"context_line":"@utils.service_type(\u0027volumev3\u0027)"},{"line_number":2567,"context_line":"def do_get_pools(cs, args):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_de147b45","line":2564,"range":{"start_line":2564,"start_character":58,"end_line":2564,"end_character":72},"updated":"2016-05-31 03:28:29.000000000","message":"Minor rephrase required.\nExpects input in form: \u0027host@backend-name#pool\u0027. Default\u003dNone.","commit_id":"988e51c0255eeff581a1beb45bd3868e90292e67"},{"author":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"change_message_id":"29e4407cd5f9768f22c60d230600910916926265","unresolved":false,"context_lines":[{"line_number":2561,"context_line":"@utils.arg(\u0027--name\u0027,"},{"line_number":2562,"context_line":"           metavar\u003d\u0027\u003cname\u003e\u0027,"},{"line_number":2563,"context_line":"           default\u003dNone,"},{"line_number":2564,"context_line":"           help\u003d\u0027Filters results by a name. Default\u003dNone. Takes the form: \u0027"},{"line_number":2565,"context_line":"                \u0027host@backend-name#pool\u0027)"},{"line_number":2566,"context_line":"@utils.service_type(\u0027volumev3\u0027)"},{"line_number":2567,"context_line":"def do_get_pools(cs, args):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_096ecf94","line":2564,"range":{"start_line":2564,"start_character":58,"end_line":2564,"end_character":72},"in_reply_to":"9abb7d3a_de147b45","updated":"2016-05-31 04:18:12.000000000","message":"Done","commit_id":"988e51c0255eeff581a1beb45bd3868e90292e67"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"5b94d7f5d25a6162c0e1866813a1e288485795f2","unresolved":false,"context_lines":[{"line_number":2566,"context_line":"@utils.service_type(\u0027volumev3\u0027)"},{"line_number":2567,"context_line":"def do_get_pools(cs, args):"},{"line_number":2568,"context_line":"    \"\"\"Show pool information for backends. Admin only.\"\"\""},{"line_number":2569,"context_line":"    pools \u003d cs.volumes.get_pools(args.detail, args.name)"},{"line_number":2570,"context_line":"    infos \u003d dict()"},{"line_number":2571,"context_line":"    infos.update(pools._info)"},{"line_number":2572,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_de3bdbcf","line":2569,"range":{"start_line":2569,"start_character":4,"end_line":2569,"end_character":56},"updated":"2016-05-31 03:28:29.000000000","message":"This is just a suggestion, not must to implement.\n\nI think we should use \n\"if self.manager.api_version \u003e\u003d api_versions.APIVersion(\"3.6\"):\" here instead of \"cinderclient/v3/volumes.py\" just to eliminate API checks in \"cinderclient/v3/volumes.py-\u003eget_pools\" in case in future some other functionality started using this functionality.","commit_id":"988e51c0255eeff581a1beb45bd3868e90292e67"},{"author":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"change_message_id":"29e4407cd5f9768f22c60d230600910916926265","unresolved":false,"context_lines":[{"line_number":2566,"context_line":"@utils.service_type(\u0027volumev3\u0027)"},{"line_number":2567,"context_line":"def do_get_pools(cs, args):"},{"line_number":2568,"context_line":"    \"\"\"Show pool information for backends. Admin only.\"\"\""},{"line_number":2569,"context_line":"    pools \u003d cs.volumes.get_pools(args.detail, args.name)"},{"line_number":2570,"context_line":"    infos \u003d dict()"},{"line_number":2571,"context_line":"    infos.update(pools._info)"},{"line_number":2572,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_09052fbb","line":2569,"range":{"start_line":2569,"start_character":4,"end_line":2569,"end_character":56},"in_reply_to":"9abb7d3a_de3bdbcf","updated":"2016-05-31 04:18:12.000000000","message":"I leave the check in cinderclient/v3/volumes.py because lib users may call that get_pools() directly. If we don\u0027t do a check there, if will break lib api.","commit_id":"988e51c0255eeff581a1beb45bd3868e90292e67"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"83fc282d629588c1170c81e394f53ac5485bc457","unresolved":false,"context_lines":[{"line_number":1051,"context_line":"        utils.print_dict(backend)"},{"line_number":1052,"context_line":""},{"line_number":1053,"context_line":""},{"line_number":1054,"context_line":"@utils.arg(\u0027host\u0027,"},{"line_number":1055,"context_line":"           metavar\u003d\u0027\u003chost\u003e\u0027,"},{"line_number":1056,"context_line":"           help\u003d\u0027Cinder host to show backend volume stats and properties; \u0027"},{"line_number":1057,"context_line":"                \u0027takes the form: host@backend-name\u0027)"},{"line_number":1058,"context_line":"def do_get_capabilities(cs, args):"},{"line_number":1059,"context_line":"    \"\"\"Show backend volume stats and properties. Admin only.\"\"\""},{"line_number":1060,"context_line":""},{"line_number":1061,"context_line":"    capabilities \u003d cs.capabilities.get(args.host)"},{"line_number":1062,"context_line":"    infos \u003d dict()"},{"line_number":1063,"context_line":"    infos.update(capabilities._info)"},{"line_number":1064,"context_line":""},{"line_number":1065,"context_line":"    prop \u003d infos.pop(\u0027properties\u0027, None)"},{"line_number":1066,"context_line":"    utils.print_dict(infos, \"Volume stats\")"},{"line_number":1067,"context_line":"    utils.print_dict(prop, \"Backend properties\")"},{"line_number":1068,"context_line":""},{"line_number":1069,"context_line":""},{"line_number":1070,"context_line":"@utils.arg(\u0027volume\u0027,"},{"line_number":1071,"context_line":"           metavar\u003d\u0027\u003cvolume\u003e\u0027,"},{"line_number":1072,"context_line":"           help\u003d\u0027Cinder volume already exists in volume backend\u0027)"},{"line_number":1073,"context_line":"@utils.arg(\u0027identifier\u0027,"},{"line_number":1074,"context_line":"           metavar\u003d\u0027\u003cidentifier\u003e\u0027,"},{"line_number":1075,"context_line":"           help\u003d\u0027Name or other Identifier for existing snapshot\u0027)"},{"line_number":1076,"context_line":"@utils.arg(\u0027--id-type\u0027,"},{"line_number":1077,"context_line":"           metavar\u003d\u0027\u003cid-type\u003e\u0027,"},{"line_number":1078,"context_line":"           default\u003d\u0027source-name\u0027,"},{"line_number":1079,"context_line":"           help\u003d\u0027Type of backend device identifier provided, \u0027"},{"line_number":1080,"context_line":"                \u0027typically source-name or source-id (Default\u003dsource-name)\u0027)"},{"line_number":1081,"context_line":"@utils.arg(\u0027--name\u0027,"},{"line_number":1082,"context_line":"           metavar\u003d\u0027\u003cname\u003e\u0027,"},{"line_number":1083,"context_line":"           help\u003d\u0027Snapshot name (Default\u003dNone)\u0027)"},{"line_number":1084,"context_line":"@utils.arg(\u0027--description\u0027,"},{"line_number":1085,"context_line":"           metavar\u003d\u0027\u003cdescription\u003e\u0027,"},{"line_number":1086,"context_line":"           help\u003d\u0027Snapshot description (Default\u003dNone)\u0027)"},{"line_number":1087,"context_line":"@utils.arg(\u0027--metadata\u0027,"},{"line_number":1088,"context_line":"           type\u003dstr,"},{"line_number":1089,"context_line":"           nargs\u003d\u0027*\u0027,"},{"line_number":1090,"context_line":"           metavar\u003d\u0027\u003ckey\u003dvalue\u003e\u0027,"},{"line_number":1091,"context_line":"           help\u003d\u0027Metadata key\u003dvalue pairs (Default\u003dNone)\u0027)"},{"line_number":1092,"context_line":"def do_snapshot_manage(cs, args):"},{"line_number":1093,"context_line":"    \"\"\"Manage an existing snapshot.\"\"\""},{"line_number":1094,"context_line":"    snapshot_metadata \u003d None"},{"line_number":1095,"context_line":"    if args.metadata is not None:"},{"line_number":1096,"context_line":"        snapshot_metadata \u003d shell_utils.extract_metadata(args)"},{"line_number":1097,"context_line":""},{"line_number":1098,"context_line":"    # Build a dictionary of key/value pairs to pass to the API."},{"line_number":1099,"context_line":"    ref_dict \u003d {args.id_type: args.identifier}"},{"line_number":1100,"context_line":""},{"line_number":1101,"context_line":"    if hasattr(args, \u0027source_name\u0027) and args.source_name is not None:"},{"line_number":1102,"context_line":"        ref_dict[\u0027source-name\u0027] \u003d args.source_name"},{"line_number":1103,"context_line":"    if hasattr(args, \u0027source_id\u0027) and args.source_id is not None:"},{"line_number":1104,"context_line":"        ref_dict[\u0027source-id\u0027] \u003d args.source_id"},{"line_number":1105,"context_line":""},{"line_number":1106,"context_line":"    volume \u003d utils.find_volume(cs, args.volume)"},{"line_number":1107,"context_line":"    snapshot \u003d cs.volume_snapshots.manage(volume_id\u003dvolume.id,"},{"line_number":1108,"context_line":"                                          ref\u003dref_dict,"},{"line_number":1109,"context_line":"                                          name\u003dargs.name,"},{"line_number":1110,"context_line":"                                          description\u003dargs.description,"},{"line_number":1111,"context_line":"                                          metadata\u003dsnapshot_metadata)"},{"line_number":1112,"context_line":""},{"line_number":1113,"context_line":"    info \u003d {}"},{"line_number":1114,"context_line":"    snapshot \u003d cs.volume_snapshots.get(snapshot.id)"},{"line_number":1115,"context_line":"    info.update(snapshot._info)"},{"line_number":1116,"context_line":"    info.pop(\u0027links\u0027, None)"},{"line_number":1117,"context_line":"    utils.print_dict(info)"},{"line_number":1118,"context_line":""},{"line_number":1119,"context_line":""},{"line_number":1120,"context_line":"@api_versions.wraps(\u00273.8\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a430d35_b6eb05db","line":1117,"range":{"start_line":1054,"start_character":0,"end_line":1117,"end_character":26},"updated":"2017-02-09 03:42:08.000000000","message":"Is this code from an accidental merge?  It looks unrelated.","commit_id":"b79b0752c3f79e3b0792b9dd92785f29d05ef299"}],"cinderclient/v3/volumes.py":[{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"5b94d7f5d25a6162c0e1866813a1e288485795f2","unresolved":false,"context_lines":[{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def get_pools(self, detail, name\u003dNone):"},{"line_number":197,"context_line":"        \"\"\"Show pool information for backends.\"\"\""},{"line_number":198,"context_line":"        if self.manager.api_version \u003e\u003d api_versions.APIVersion(\"3.6\"):"},{"line_number":199,"context_line":"            return self.manager.get_pools(detail, name)"},{"line_number":200,"context_line":"        else:"},{"line_number":201,"context_line":"            return self.manager.get_pools(detail)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"class VolumeManager(base.ManagerWithFind):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_beab77d5","line":201,"range":{"start_line":198,"start_character":8,"end_line":201,"end_character":49},"updated":"2016-05-31 03:28:29.000000000","message":"In continuation of previous suggestion:\n\nWe should use version checking in cinderclient/v3/shell.py","commit_id":"988e51c0255eeff581a1beb45bd3868e90292e67"},{"author":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"change_message_id":"29e4407cd5f9768f22c60d230600910916926265","unresolved":false,"context_lines":[{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def get_pools(self, detail, name\u003dNone):"},{"line_number":197,"context_line":"        \"\"\"Show pool information for backends.\"\"\""},{"line_number":198,"context_line":"        if self.manager.api_version \u003e\u003d api_versions.APIVersion(\"3.6\"):"},{"line_number":199,"context_line":"            return self.manager.get_pools(detail, name)"},{"line_number":200,"context_line":"        else:"},{"line_number":201,"context_line":"            return self.manager.get_pools(detail)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"class VolumeManager(base.ManagerWithFind):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_69867b14","line":201,"range":{"start_line":198,"start_character":8,"end_line":201,"end_character":49},"in_reply_to":"9abb7d3a_beab77d5","updated":"2016-05-31 04:18:12.000000000","message":"Hi, Sheel:\n    cinderclient is not only a command-line interface.\n    It\u0027s also a python lib.\n    This function call be called by lib users directly, so we need to do some check here.\n\nThanks","commit_id":"988e51c0255eeff581a1beb45bd3868e90292e67"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"83fc282d629588c1170c81e394f53ac5485bc457","unresolved":false,"context_lines":[{"line_number":176,"context_line":"                                   search_opts\u003d{\u0027host\u0027: host}, marker\u003dmarker,"},{"line_number":177,"context_line":"                                   limit\u003dlimit, offset\u003doffset, sort\u003dsort)"},{"line_number":178,"context_line":"        return self._list(url, \"manageable-volumes\")"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    def unmanage(self, volume):"},{"line_number":181,"context_line":"        \"\"\"Unmanage a volume.\"\"\""},{"line_number":182,"context_line":"        return self._action(\u0027os-unmanage\u0027, volume, None)"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    def promote(self, volume):"},{"line_number":185,"context_line":"        \"\"\"Promote secondary to be primary in relationship.\"\"\""},{"line_number":186,"context_line":"        return self._action(\u0027os-promote-replica\u0027, volume, None)"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"    def reenable(self, volume):"},{"line_number":189,"context_line":"        \"\"\"Sync the secondary volume with primary for a relationship.\"\"\""},{"line_number":190,"context_line":"        return self._action(\u0027os-reenable-replica\u0027, volume, None)"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"    @api_versions.wraps(\"2.0\", \"3.27\")"},{"line_number":193,"context_line":"    def get_pools(self, detail):"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a430d35_36b635f9","line":190,"range":{"start_line":179,"start_character":0,"end_line":190,"end_character":64},"updated":"2017-02-09 03:42:08.000000000","message":"More code from a failed merge or rebase?","commit_id":"b79b0752c3f79e3b0792b9dd92785f29d05ef299"}]}
