)]}'
{"cinderclient/tests/unit/v3/test_services.py":[{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"3897963feb607a6daf9e1c386fc7d56078c75cb4","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        # Since it will be sorted by the prefix we can compare them directly"},{"line_number":81,"context_line":"        self.assertListEqual(expected, result)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def test_list_services_with_backend_state(self):"},{"line_number":84,"context_line":"        cs \u003d fakes.FakeClient(api_version\u003dapi_versions.APIVersion(\u00273.49\u0027))"},{"line_number":85,"context_line":"        services_list \u003d cs.services.list()"},{"line_number":86,"context_line":"        cs.assert_called(\u0027GET\u0027, \u0027/os-services\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f91af0f_07cc9533","line":83,"range":{"start_line":83,"start_character":4,"end_line":83,"end_character":52},"updated":"2018-01-02 14:40:57.000000000","message":"You have to update the mock statement: https://github.com/openstack/python-cinderclient/blob/master/cinderclient/tests/unit/v3/fakes.py#L135","commit_id":"7d625905e3cf4aa9be08c5a3a9be24053c259eca"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"03f54972b72d0a91b8a796ec705477d4544133da","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        # Since it will be sorted by the prefix we can compare them directly"},{"line_number":81,"context_line":"        self.assertListEqual(expected, result)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def test_list_services_with_backend_state(self):"},{"line_number":84,"context_line":"        cs \u003d fakes.FakeClient(api_version\u003dapi_versions.APIVersion(\u00273.49\u0027))"},{"line_number":85,"context_line":"        services_list \u003d cs.services.list()"},{"line_number":86,"context_line":"        cs.assert_called(\u0027GET\u0027, \u0027/os-services\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f91af0f_073b28eb","line":83,"range":{"start_line":83,"start_character":4,"end_line":83,"end_character":52},"in_reply_to":"9f91af0f_07cc9533","updated":"2018-01-03 06:03:13.000000000","message":"Done","commit_id":"7d625905e3cf4aa9be08c5a3a9be24053c259eca"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"3897963feb607a6daf9e1c386fc7d56078c75cb4","unresolved":false,"context_lines":[{"line_number":89,"context_line":"            self.assertIsInstance(service, services.Service)"},{"line_number":90,"context_line":"            # Make sure cluster fields from v3.7 is present and not None"},{"line_number":91,"context_line":"            if service.binary \u003d\u003d \u0027cinder-volume\u0027:"},{"line_number":92,"context_line":"                self.assertIsNotNone(getattr(service, \u0027backend_state\u0027))"},{"line_number":93,"context_line":"        self._assert_request_id(services_list)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f91af0f_07f57557","line":92,"range":{"start_line":92,"start_character":37,"end_line":92,"end_character":70},"updated":"2018-01-02 14:40:57.000000000","message":"getattr(service, \u0027backend_state\u0027, None)?","commit_id":"7d625905e3cf4aa9be08c5a3a9be24053c259eca"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"03f54972b72d0a91b8a796ec705477d4544133da","unresolved":false,"context_lines":[{"line_number":89,"context_line":"            self.assertIsInstance(service, services.Service)"},{"line_number":90,"context_line":"            # Make sure cluster fields from v3.7 is present and not None"},{"line_number":91,"context_line":"            if service.binary \u003d\u003d \u0027cinder-volume\u0027:"},{"line_number":92,"context_line":"                self.assertIsNotNone(getattr(service, \u0027backend_state\u0027))"},{"line_number":93,"context_line":"        self._assert_request_id(services_list)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f91af0f_474cd09d","line":92,"range":{"start_line":92,"start_character":37,"end_line":92,"end_character":70},"in_reply_to":"9f91af0f_07f57557","updated":"2018-01-03 06:03:13.000000000","message":"Since after 3.49 there must be backend_state here, so I think there is no need to add default value, but it\u0027s no harm to add it too. Thanks.","commit_id":"7d625905e3cf4aa9be08c5a3a9be24053c259eca"},{"author":{"_account_id":13157,"name":"Zhao Chao","email":"zhaochao1984@gmail.com","username":"zhaochao"},"change_message_id":"52a9448b9774858a7be98b123df88be3282fb21f","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        self.assertEqual(3, len(services_list))"},{"line_number":88,"context_line":"        for service in services_list:"},{"line_number":89,"context_line":"            self.assertIsInstance(service, services.Service)"},{"line_number":90,"context_line":"            # Make sure cluster fields from v3.49 is present and not None"},{"line_number":91,"context_line":"            if service.binary \u003d\u003d \u0027cinder-volume\u0027:"},{"line_number":92,"context_line":"                self.assertIsNotNone(getattr(service, \u0027backend_state\u0027,"},{"line_number":93,"context_line":"                                             None))"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f91af0f_a17f7013","line":90,"range":{"start_line":90,"start_character":24,"end_line":90,"end_character":31},"updated":"2018-01-08 08:52:19.000000000","message":"typo?","commit_id":"aa9213a65c4baa324bd17136d85799ade13ad613"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"f405db4ad6acf58d55433067185124b181c8b0a3","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        self.assertEqual(3, len(services_list))"},{"line_number":88,"context_line":"        for service in services_list:"},{"line_number":89,"context_line":"            self.assertIsInstance(service, services.Service)"},{"line_number":90,"context_line":"            # Make sure cluster fields from v3.49 is present and not None"},{"line_number":91,"context_line":"            if service.binary \u003d\u003d \u0027cinder-volume\u0027:"},{"line_number":92,"context_line":"                self.assertIsNotNone(getattr(service, \u0027backend_state\u0027,"},{"line_number":93,"context_line":"                                             None))"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f91af0f_a0ef541c","line":90,"range":{"start_line":90,"start_character":24,"end_line":90,"end_character":31},"in_reply_to":"9f91af0f_a17f7013","updated":"2018-01-09 01:02:01.000000000","message":"yeah, thanks","commit_id":"aa9213a65c4baa324bd17136d85799ade13ad613"},{"author":{"_account_id":13157,"name":"Zhao Chao","email":"zhaochao1984@gmail.com","username":"zhaochao"},"change_message_id":"52a9448b9774858a7be98b123df88be3282fb21f","unresolved":false,"context_lines":[{"line_number":90,"context_line":"            # Make sure cluster fields from v3.49 is present and not None"},{"line_number":91,"context_line":"            if service.binary \u003d\u003d \u0027cinder-volume\u0027:"},{"line_number":92,"context_line":"                self.assertIsNotNone(getattr(service, \u0027backend_state\u0027,"},{"line_number":93,"context_line":"                                             None))"},{"line_number":94,"context_line":"        self._assert_request_id(services_list)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f91af0f_e10b387a","line":93,"updated":"2018-01-08 08:52:19.000000000","message":"As it\u0027s going to test that the \u0027backend_state\u0027 must exist in the response, no need give \u0027None\u0027 as the default argument of getattr.","commit_id":"aa9213a65c4baa324bd17136d85799ade13ad613"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"f405db4ad6acf58d55433067185124b181c8b0a3","unresolved":false,"context_lines":[{"line_number":90,"context_line":"            # Make sure cluster fields from v3.49 is present and not None"},{"line_number":91,"context_line":"            if service.binary \u003d\u003d \u0027cinder-volume\u0027:"},{"line_number":92,"context_line":"                self.assertIsNotNone(getattr(service, \u0027backend_state\u0027,"},{"line_number":93,"context_line":"                                             None))"},{"line_number":94,"context_line":"        self._assert_request_id(services_list)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f91af0f_e04ebc36","line":93,"in_reply_to":"9f91af0f_e10b387a","updated":"2018-01-09 01:02:01.000000000","message":"Yes, as I said in last patchset, the None is not necessary, but it is no harm though(you can see the tommy\u0027s review). Even if the backend_state don\u0027t exist, this assert will be failed too.","commit_id":"aa9213a65c4baa324bd17136d85799ade13ad613"}],"cinderclient/v3/shell.py":[{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"32ae4ffb4b16ff59bc00de47afe54676c3a62f4d","unresolved":false,"context_lines":[{"line_number":1579,"context_line":"           start_version\u003d\u00273.7\u0027,"},{"line_number":1580,"context_line":"           help\u003d\u0027Enables or disables display of \u0027"},{"line_number":1581,"context_line":"                \u0027Replication info for c-vol services. Default\u003dFalse.\u0027)"},{"line_number":1582,"context_line":"@utils.arg(\u0027--withbackendstate\u0027,"},{"line_number":1583,"context_line":"           metavar\u003d\u0027\u003cTrue|False\u003e\u0027,"},{"line_number":1584,"context_line":"           const\u003dTrue,"},{"line_number":1585,"context_line":"           nargs\u003d\u0027?\u0027,"},{"line_number":1586,"context_line":"           default\u003dFalse,"},{"line_number":1587,"context_line":"           start_version\u003d\u00273.49\u0027,"},{"line_number":1588,"context_line":"           help\u003d\u0027Enables or disables display of \u0027"},{"line_number":1589,"context_line":"                \u0027Backend state info for c-vol services. Default\u003dFalse.\u0027)"},{"line_number":1590,"context_line":"def do_service_list(cs, args):"},{"line_number":1591,"context_line":"    \"\"\"Lists all services. Filter by host and service binary.\"\"\""},{"line_number":1592,"context_line":"    if hasattr(args, \u0027withreplication\u0027):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f91af0f_368f7b24","line":1589,"range":{"start_line":1582,"start_character":0,"end_line":1589,"end_character":72},"updated":"2018-01-03 07:54:53.000000000","message":"I am a little curious why you add a command argument to control whether we should display the ``backend_state`` or not. I think we can directly display it since \u00273.49\u0027 rather than introduce a new command argument  to complex the list service command :)","commit_id":"aa9213a65c4baa324bd17136d85799ade13ad613"},{"author":{"_account_id":13157,"name":"Zhao Chao","email":"zhaochao1984@gmail.com","username":"zhaochao"},"change_message_id":"52a9448b9774858a7be98b123df88be3282fb21f","unresolved":false,"context_lines":[{"line_number":1579,"context_line":"           start_version\u003d\u00273.7\u0027,"},{"line_number":1580,"context_line":"           help\u003d\u0027Enables or disables display of \u0027"},{"line_number":1581,"context_line":"                \u0027Replication info for c-vol services. Default\u003dFalse.\u0027)"},{"line_number":1582,"context_line":"@utils.arg(\u0027--withbackendstate\u0027,"},{"line_number":1583,"context_line":"           metavar\u003d\u0027\u003cTrue|False\u003e\u0027,"},{"line_number":1584,"context_line":"           const\u003dTrue,"},{"line_number":1585,"context_line":"           nargs\u003d\u0027?\u0027,"},{"line_number":1586,"context_line":"           default\u003dFalse,"},{"line_number":1587,"context_line":"           start_version\u003d\u00273.49\u0027,"},{"line_number":1588,"context_line":"           help\u003d\u0027Enables or disables display of \u0027"},{"line_number":1589,"context_line":"                \u0027Backend state info for c-vol services. Default\u003dFalse.\u0027)"},{"line_number":1590,"context_line":"def do_service_list(cs, args):"},{"line_number":1591,"context_line":"    \"\"\"Lists all services. Filter by host and service binary.\"\"\""},{"line_number":1592,"context_line":"    if hasattr(args, \u0027withreplication\u0027):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f91af0f_4169c41e","line":1589,"range":{"start_line":1582,"start_character":0,"end_line":1589,"end_character":72},"in_reply_to":"9f91af0f_368f7b24","updated":"2018-01-08 08:52:19.000000000","message":"Agreed.","commit_id":"aa9213a65c4baa324bd17136d85799ade13ad613"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"f405db4ad6acf58d55433067185124b181c8b0a3","unresolved":false,"context_lines":[{"line_number":1579,"context_line":"           start_version\u003d\u00273.7\u0027,"},{"line_number":1580,"context_line":"           help\u003d\u0027Enables or disables display of \u0027"},{"line_number":1581,"context_line":"                \u0027Replication info for c-vol services. Default\u003dFalse.\u0027)"},{"line_number":1582,"context_line":"@utils.arg(\u0027--withbackendstate\u0027,"},{"line_number":1583,"context_line":"           metavar\u003d\u0027\u003cTrue|False\u003e\u0027,"},{"line_number":1584,"context_line":"           const\u003dTrue,"},{"line_number":1585,"context_line":"           nargs\u003d\u0027?\u0027,"},{"line_number":1586,"context_line":"           default\u003dFalse,"},{"line_number":1587,"context_line":"           start_version\u003d\u00273.49\u0027,"},{"line_number":1588,"context_line":"           help\u003d\u0027Enables or disables display of \u0027"},{"line_number":1589,"context_line":"                \u0027Backend state info for c-vol services. Default\u003dFalse.\u0027)"},{"line_number":1590,"context_line":"def do_service_list(cs, args):"},{"line_number":1591,"context_line":"    \"\"\"Lists all services. Filter by host and service binary.\"\"\""},{"line_number":1592,"context_line":"    if hasattr(args, \u0027withreplication\u0027):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f91af0f_80d33060","line":1589,"range":{"start_line":1582,"start_character":0,"end_line":1589,"end_character":72},"in_reply_to":"9f91af0f_4169c41e","updated":"2018-01-09 01:02:01.000000000","message":"Emm, that makes sense, thanks","commit_id":"aa9213a65c4baa324bd17136d85799ade13ad613"}]}
