)]}'
{"cinder/tests/functional/functional_helpers.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"3b0804ab8c0a5f6cf04d119d2b3fce8365d96aca","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"class _FunctionalTestBase(test.TestCase):"},{"line_number":62,"context_line":"    osapi_version_major \u003d \u00272\u0027"},{"line_number":63,"context_line":"    osapi_version_minor \u003d \u00270\u0027"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a8ec9b2_7f5cf618","line":62,"range":{"start_line":62,"start_character":17,"end_line":62,"end_character":18},"updated":"2016-09-19 10:23:21.000000000","message":"Should we use 3.0 by default here?","commit_id":"642a1c701412a51ee2ecce2bdf02964fd80ff0a8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"65a3b39072d4f4f8c9ed7fcb8efc0b12929ec0cc","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"class _FunctionalTestBase(test.TestCase):"},{"line_number":62,"context_line":"    osapi_version_major \u003d \u00272\u0027"},{"line_number":63,"context_line":"    osapi_version_minor \u003d \u00270\u0027"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a8ec9b2_a402e670","line":62,"range":{"start_line":62,"start_character":17,"end_line":62,"end_character":18},"in_reply_to":"7a8ec9b2_7f5cf618","updated":"2016-09-19 13:03:15.000000000","message":"The existing functional tests were written for 2.0.  That\u0027s why I set default to 2.0.","commit_id":"642a1c701412a51ee2ecce2bdf02964fd80ff0a8"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"316c0f45a5b9797d75246fbd4733885677d0b95d","unresolved":false,"context_lines":[{"line_number":204,"context_line":"            time.sleep(1)"},{"line_number":205,"context_line":"            retries +\u003d 1"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    def _poll_group_snapshot_while(self, group_snapshot_id, continue_states,"},{"line_number":208,"context_line":"                                   expected_end_status\u003dNone, max_retries\u003d30):"},{"line_number":209,"context_line":"        \"\"\"Poll (briefly) while the state is in continue_states."},{"line_number":210,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"7a8ec9b2_a42538af","line":207,"updated":"2016-09-20 14:58:31.000000000","message":"It might take some clunky logic, but it seems these 2 functions could be combined with a flag or similar technique.","commit_id":"642a1c701412a51ee2ecce2bdf02964fd80ff0a8"}]}
