)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":27078,"name":"Manik Bindlish","email":"manikbindlish19@gmail.com","username":"manik"},"change_message_id":"28c3ebefb79e56acbb522f7978c53fb6bf638f7e","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Because of ci gate is single node openstack environment,floatingip from"},{"line_number":10,"context_line":"down to active is very quickly."},{"line_number":11,"context_line":"But production environment of openstack have many node,sometimes the load"},{"line_number":12,"context_line":"of rabbitmq is very high,if we don\u0027t wait for the status of floatingip"},{"line_number":13,"context_line":"reach to active,the test case may be fail."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"3f79a3b5_adb5ced0","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":73},"updated":"2018-11-28 05:21:20.000000000","message":"Line exceeding the maximum characters.","commit_id":"9e51800d93b6458b0c087e25d898644d407c1880"}],"tempest/common/compute.py":[{"author":{"_account_id":27078,"name":"Manik Bindlish","email":"manikbindlish19@gmail.com","username":"manik"},"change_message_id":"bf16dbf08a3e16859fa53ee06f1f0126e77f4c2f","unresolved":false,"context_lines":[{"line_number":216,"context_line":"            clients.floating_ips_client.update_floatingip("},{"line_number":217,"context_line":"                validation_resources[\u0027floating_ip\u0027][\u0027id\u0027],"},{"line_number":218,"context_line":"                port_id\u003dvalidation_port)"},{"line_number":219,"context_line":"            waiters.wait_for_floatingip_status("},{"line_number":220,"context_line":"                clients.floating_ips_client,"},{"line_number":221,"context_line":"                validation_resources[\u0027floating_ip\u0027][\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":222,"context_line":"        else:"},{"line_number":223,"context_line":"            fip_client \u003d clients.compute_floating_ips_client"},{"line_number":224,"context_line":"            fip_client.associate_floating_ip_to_server("},{"line_number":225,"context_line":"                floating_ip\u003dvalidation_resources[\u0027floating_ip\u0027][\u0027ip\u0027],"},{"line_number":226,"context_line":"                server_id\u003dservers[0][\u0027id\u0027])"},{"line_number":227,"context_line":"            waiters.wait_for_floatingip_status("},{"line_number":228,"context_line":"                clients.floating_ips_client,"},{"line_number":229,"context_line":"                validation_resources[\u0027floating_ip\u0027][\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"    if wait_until:"},{"line_number":232,"context_line":"        for server in servers:"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_52a8358b","line":229,"range":{"start_line":219,"start_character":11,"end_line":229,"end_character":68},"updated":"2018-06-04 11:39:17.000000000","message":"I think, we can keep \"waiters.wait_for_floatingip_status\" outside from if-else, this is must executing function so no need to keep in if-else will serve the purpose with less LOC.","commit_id":"4e0e11e8b16c4fbc5447bd773a67a34f384d4156"},{"author":{"_account_id":21897,"name":"lianghao","email":"lianghao@cmss.chinamobile.com","username":"cloud-liang"},"change_message_id":"ba719346ec0ab4daa589026b34d0a6056abe5091","unresolved":false,"context_lines":[{"line_number":216,"context_line":"            clients.floating_ips_client.update_floatingip("},{"line_number":217,"context_line":"                validation_resources[\u0027floating_ip\u0027][\u0027id\u0027],"},{"line_number":218,"context_line":"                port_id\u003dvalidation_port)"},{"line_number":219,"context_line":"            waiters.wait_for_floatingip_status("},{"line_number":220,"context_line":"                clients.floating_ips_client,"},{"line_number":221,"context_line":"                validation_resources[\u0027floating_ip\u0027][\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":222,"context_line":"        else:"},{"line_number":223,"context_line":"            fip_client \u003d clients.compute_floating_ips_client"},{"line_number":224,"context_line":"            fip_client.associate_floating_ip_to_server("},{"line_number":225,"context_line":"                floating_ip\u003dvalidation_resources[\u0027floating_ip\u0027][\u0027ip\u0027],"},{"line_number":226,"context_line":"                server_id\u003dservers[0][\u0027id\u0027])"},{"line_number":227,"context_line":"            waiters.wait_for_floatingip_status("},{"line_number":228,"context_line":"                clients.floating_ips_client,"},{"line_number":229,"context_line":"                validation_resources[\u0027floating_ip\u0027][\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"    if wait_until:"},{"line_number":232,"context_line":"        for server in servers:"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_e59debbb","line":229,"range":{"start_line":219,"start_character":11,"end_line":229,"end_character":68},"in_reply_to":"5f7c97a3_52a8358b","updated":"2018-06-05 01:24:27.000000000","message":"Done","commit_id":"4e0e11e8b16c4fbc5447bd773a67a34f384d4156"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"32f81b1b926202fdd4984ff9f38cef50116ba458","unresolved":false,"context_lines":[{"line_number":223,"context_line":"                server_id\u003dservers[0][\u0027id\u0027])"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        waiters.wait_for_floatingip_status("},{"line_number":226,"context_line":"            clients.floating_ips_client,"},{"line_number":227,"context_line":"            validation_resources[\u0027floating_ip\u0027][\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    if wait_until:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_fc909d99","line":226,"range":{"start_line":226,"start_character":12,"end_line":226,"end_character":39},"updated":"2018-11-23 09:30:23.000000000","message":"fip_client may be clients.compute_floating_ips_client, in L220","commit_id":"3080b37ab63215949e11f0c9da69dab4e0bf6e40"},{"author":{"_account_id":21897,"name":"lianghao","email":"lianghao@cmss.chinamobile.com","username":"cloud-liang"},"change_message_id":"f6a98cf231e8d7bd8d0e12f4cd2e4c0be848f8e8","unresolved":false,"context_lines":[{"line_number":223,"context_line":"                server_id\u003dservers[0][\u0027id\u0027])"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        waiters.wait_for_floatingip_status("},{"line_number":226,"context_line":"            clients.floating_ips_client,"},{"line_number":227,"context_line":"            validation_resources[\u0027floating_ip\u0027][\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    if wait_until:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_548b9620","line":226,"range":{"start_line":226,"start_character":12,"end_line":226,"end_character":39},"in_reply_to":"3f79a3b5_fc909d99","updated":"2018-11-26 02:42:30.000000000","message":"1.If use clients.compute_floating_ips_client ,the response have no status of floating_ip_id.\n\nhttps://developer.openstack.org/api-ref/compute/?expanded\u003dshow-floating-ip-address-details-detail\n\n2.Move \"waiters.wait_for_floatingip_status\" into \"if \"CONF.service_available.neutron.","commit_id":"3080b37ab63215949e11f0c9da69dab4e0bf6e40"}],"tempest/common/waiters.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"82b8aba3b9a5f5d9c1f0b3fbb2e74dd0cb10905e","unresolved":false,"context_lines":[{"line_number":311,"context_line":""},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"def wait_for_floatingip_status(client, floatingip_id, status):"},{"line_number":314,"context_line":"    \"\"\"Waits for an floatingip to reach a given status.\"\"\""},{"line_number":315,"context_line":"    body \u003d (client.show_floatingip(floatingip_id)"},{"line_number":316,"context_line":"            [\u0027floatingip\u0027])"},{"line_number":317,"context_line":"    floatingip_status \u003d body[\u0027status\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_1833eeac","line":314,"range":{"start_line":314,"start_character":17,"end_line":314,"end_character":19},"updated":"2018-05-31 17:43:48.000000000","message":"a","commit_id":"8b723a41846fcd4478ae5f1c8f2cdd02c56d8188"},{"author":{"_account_id":21897,"name":"lianghao","email":"lianghao@cmss.chinamobile.com","username":"cloud-liang"},"change_message_id":"2ed19ae2ccf348c7a188f4f1a47946811fa8274c","unresolved":false,"context_lines":[{"line_number":311,"context_line":""},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"def wait_for_floatingip_status(client, floatingip_id, status):"},{"line_number":314,"context_line":"    \"\"\"Waits for an floatingip to reach a given status.\"\"\""},{"line_number":315,"context_line":"    body \u003d (client.show_floatingip(floatingip_id)"},{"line_number":316,"context_line":"            [\u0027floatingip\u0027])"},{"line_number":317,"context_line":"    floatingip_status \u003d body[\u0027status\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_0439203e","line":314,"range":{"start_line":314,"start_character":17,"end_line":314,"end_character":19},"in_reply_to":"5f7c97a3_1833eeac","updated":"2018-06-04 04:51:07.000000000","message":"Done","commit_id":"8b723a41846fcd4478ae5f1c8f2cdd02c56d8188"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"82b8aba3b9a5f5d9c1f0b3fbb2e74dd0cb10905e","unresolved":false,"context_lines":[{"line_number":326,"context_line":"        timed_out \u003d int(time.time()) - start \u003e\u003d client.build_timeout"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"        if floatingip_status !\u003d status and timed_out:"},{"line_number":329,"context_line":"            message \u003d (\u0027Floatingip %s failed to reach %s state \u0027"},{"line_number":330,"context_line":"                       \u0027(current is %s) within the required time (%s s).\u0027 %"},{"line_number":331,"context_line":"                       (floatingip_id, status, floatingip_status,"},{"line_number":332,"context_line":"                        client.build_timeout))"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_d8281634","line":329,"range":{"start_line":329,"start_character":24,"end_line":329,"end_character":34},"updated":"2018-05-31 17:43:48.000000000","message":"May we word this to: Floating IP since it is a compound word.","commit_id":"8b723a41846fcd4478ae5f1c8f2cdd02c56d8188"},{"author":{"_account_id":21897,"name":"lianghao","email":"lianghao@cmss.chinamobile.com","username":"cloud-liang"},"change_message_id":"2ed19ae2ccf348c7a188f4f1a47946811fa8274c","unresolved":false,"context_lines":[{"line_number":326,"context_line":"        timed_out \u003d int(time.time()) - start \u003e\u003d client.build_timeout"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"        if floatingip_status !\u003d status and timed_out:"},{"line_number":329,"context_line":"            message \u003d (\u0027Floatingip %s failed to reach %s state \u0027"},{"line_number":330,"context_line":"                       \u0027(current is %s) within the required time (%s s).\u0027 %"},{"line_number":331,"context_line":"                       (floatingip_id, status, floatingip_status,"},{"line_number":332,"context_line":"                        client.build_timeout))"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_a445ccb6","line":329,"range":{"start_line":329,"start_character":24,"end_line":329,"end_character":34},"in_reply_to":"5f7c97a3_d8281634","updated":"2018-06-04 04:51:07.000000000","message":"Done","commit_id":"8b723a41846fcd4478ae5f1c8f2cdd02c56d8188"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"32f81b1b926202fdd4984ff9f38cef50116ba458","unresolved":false,"context_lines":[{"line_number":313,"context_line":"def wait_for_floatingip_status(client, floatingip_id, status):"},{"line_number":314,"context_line":"    \"\"\"Waits for a floatingip to reach a given status.\"\"\""},{"line_number":315,"context_line":"    body \u003d (client.show_floatingip(floatingip_id)"},{"line_number":316,"context_line":"            [\u0027floatingip\u0027])"},{"line_number":317,"context_line":"    floatingip_status \u003d body[\u0027status\u0027]"},{"line_number":318,"context_line":"    start \u003d int(time.time())"},{"line_number":319,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_7c948d98","line":316,"range":{"start_line":316,"start_character":12,"end_line":316,"end_character":26},"updated":"2018-11-23 09:30:23.000000000","message":"If using compute\u0027s floating_ip_client, this will be \u0027floating_ip\u0027","commit_id":"3080b37ab63215949e11f0c9da69dab4e0bf6e40"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"32f81b1b926202fdd4984ff9f38cef50116ba458","unresolved":false,"context_lines":[{"line_number":312,"context_line":""},{"line_number":313,"context_line":"def wait_for_floatingip_status(client, floatingip_id, status):"},{"line_number":314,"context_line":"    \"\"\"Waits for a floatingip to reach a given status.\"\"\""},{"line_number":315,"context_line":"    body \u003d (client.show_floatingip(floatingip_id)"},{"line_number":316,"context_line":"            [\u0027floatingip\u0027])"},{"line_number":317,"context_line":"    floatingip_status \u003d body[\u0027status\u0027]"},{"line_number":318,"context_line":"    start \u003d int(time.time())"},{"line_number":319,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_3c65b5e4","line":316,"range":{"start_line":315,"start_character":0,"end_line":316,"end_character":27},"updated":"2018-11-23 09:30:23.000000000","message":"can be put in one line","commit_id":"3080b37ab63215949e11f0c9da69dab4e0bf6e40"},{"author":{"_account_id":21897,"name":"lianghao","email":"lianghao@cmss.chinamobile.com","username":"cloud-liang"},"change_message_id":"f6a98cf231e8d7bd8d0e12f4cd2e4c0be848f8e8","unresolved":false,"context_lines":[{"line_number":312,"context_line":""},{"line_number":313,"context_line":"def wait_for_floatingip_status(client, floatingip_id, status):"},{"line_number":314,"context_line":"    \"\"\"Waits for a floatingip to reach a given status.\"\"\""},{"line_number":315,"context_line":"    body \u003d (client.show_floatingip(floatingip_id)"},{"line_number":316,"context_line":"            [\u0027floatingip\u0027])"},{"line_number":317,"context_line":"    floatingip_status \u003d body[\u0027status\u0027]"},{"line_number":318,"context_line":"    start \u003d int(time.time())"},{"line_number":319,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_d49fa661","line":316,"range":{"start_line":315,"start_character":0,"end_line":316,"end_character":27},"in_reply_to":"3f79a3b5_3c65b5e4","updated":"2018-11-26 02:42:30.000000000","message":"Done","commit_id":"3080b37ab63215949e11f0c9da69dab4e0bf6e40"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"32f81b1b926202fdd4984ff9f38cef50116ba458","unresolved":false,"context_lines":[{"line_number":319,"context_line":""},{"line_number":320,"context_line":"    while(floatingip_status !\u003d status):"},{"line_number":321,"context_line":"        time.sleep(client.build_interval)"},{"line_number":322,"context_line":"        body \u003d (client.show_floatingip(floatingip_id)"},{"line_number":323,"context_line":"                [\u0027floatingip\u0027])"},{"line_number":324,"context_line":"        floatingip_status \u003d body[\u0027status\u0027]"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"        timed_out \u003d int(time.time()) - start \u003e\u003d client.build_timeout"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_9c9969d0","line":323,"range":{"start_line":322,"start_character":0,"end_line":323,"end_character":31},"updated":"2018-11-23 09:30:23.000000000","message":"can be put in one line","commit_id":"3080b37ab63215949e11f0c9da69dab4e0bf6e40"},{"author":{"_account_id":21897,"name":"lianghao","email":"lianghao@cmss.chinamobile.com","username":"cloud-liang"},"change_message_id":"f6a98cf231e8d7bd8d0e12f4cd2e4c0be848f8e8","unresolved":false,"context_lines":[{"line_number":319,"context_line":""},{"line_number":320,"context_line":"    while(floatingip_status !\u003d status):"},{"line_number":321,"context_line":"        time.sleep(client.build_interval)"},{"line_number":322,"context_line":"        body \u003d (client.show_floatingip(floatingip_id)"},{"line_number":323,"context_line":"                [\u0027floatingip\u0027])"},{"line_number":324,"context_line":"        floatingip_status \u003d body[\u0027status\u0027]"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"        timed_out \u003d int(time.time()) - start \u003e\u003d client.build_timeout"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_74a012a4","line":323,"range":{"start_line":322,"start_character":0,"end_line":323,"end_character":31},"in_reply_to":"3f79a3b5_9c9969d0","updated":"2018-11-26 02:42:30.000000000","message":"Done","commit_id":"3080b37ab63215949e11f0c9da69dab4e0bf6e40"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"c1732a213f025a0c87205d68875b75a78a0c4ea2","unresolved":false,"context_lines":[{"line_number":310,"context_line":"            raise lib_exc.TimeoutException(message)"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"def wait_for_floatingip_status(client, floatingip_id, status):"},{"line_number":314,"context_line":"    \"\"\"Waits for a floatingip to reach a given status.\"\"\""},{"line_number":315,"context_line":"    body \u003d (client.show_floatingip(floatingip_id)[\u0027floatingip\u0027])"},{"line_number":316,"context_line":"    floatingip_status \u003d body[\u0027status\u0027]"}],"source_content_type":"text/x-python","patch_set":8,"id":"5fc1f717_2407c4cc","line":313,"updated":"2019-03-27 02:05:55.000000000","message":"Indeed. But I\u0027m not sure we really need it or not. So, we\u0027ll be able to add it in future when we need it.","commit_id":"9e51800d93b6458b0c087e25d898644d407c1880"},{"author":{"_account_id":27078,"name":"Manik Bindlish","email":"manikbindlish19@gmail.com","username":"manik"},"change_message_id":"28c3ebefb79e56acbb522f7978c53fb6bf638f7e","unresolved":false,"context_lines":[{"line_number":310,"context_line":"            raise lib_exc.TimeoutException(message)"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"def wait_for_floatingip_status(client, floatingip_id, status):"},{"line_number":314,"context_line":"    \"\"\"Waits for a floatingip to reach a given status.\"\"\""},{"line_number":315,"context_line":"    body \u003d (client.show_floatingip(floatingip_id)[\u0027floatingip\u0027])"},{"line_number":316,"context_line":"    floatingip_status \u003d body[\u0027status\u0027]"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_8db252e7","line":313,"range":{"start_line":313,"start_character":31,"end_line":313,"end_character":60},"updated":"2018-11-28 05:21:20.000000000","message":"Just a suggestion: How about adding timeout here with default value to make more flexible calls. So that caller can provide the timeout whatever is convinient","commit_id":"9e51800d93b6458b0c087e25d898644d407c1880"}],"tempest/tests/common/test_waiters.py":[{"author":{"_account_id":27078,"name":"Manik Bindlish","email":"manikbindlish19@gmail.com","username":"manik"},"change_message_id":"6b28ad1899a95c486c296c1e5e126e3d4c21e7a2","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"class TestInterfaceWaiters(base.TestCase):"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    build_timeout \u003d 1."},{"line_number":80,"context_line":"    build_interval \u003d 1"},{"line_number":81,"context_line":"    port_down \u003d {\u0027interfaceAttachment\u0027: {\u0027port_state\u0027: \u0027DOWN\u0027}}"},{"line_number":82,"context_line":"    port_active \u003d {\u0027interfaceAttachment\u0027: {\u0027port_state\u0027: \u0027ACTIVE\u0027}}"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_64016f39","line":79,"range":{"start_line":79,"start_character":20,"end_line":79,"end_character":22},"updated":"2018-07-04 08:47:24.000000000","message":"Could you please check, seems making floating to a variable is little unconventional.\nSo it\u0027s soft -1 till confirmation.","commit_id":"3080b37ab63215949e11f0c9da69dab4e0bf6e40"},{"author":{"_account_id":27078,"name":"Manik Bindlish","email":"manikbindlish19@gmail.com","username":"manik"},"change_message_id":"6b28ad1899a95c486c296c1e5e126e3d4c21e7a2","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        show_interface \u003d mock.Mock("},{"line_number":92,"context_line":"            side_effect\u003d[self.port_down, self.port_active])"},{"line_number":93,"context_line":"        client \u003d self.mock_client(show_interface\u003dshow_interface)"},{"line_number":94,"context_line":"        self.patch(\u0027time.time\u0027, return_value\u003d0.)"},{"line_number":95,"context_line":"        sleep \u003d self.patch(\u0027time.sleep\u0027)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        result \u003d waiters.wait_for_interface_status("}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_84fe0b36","line":94,"range":{"start_line":94,"start_character":45,"end_line":94,"end_character":48},"updated":"2018-07-04 08:47:24.000000000","message":"ditto","commit_id":"3080b37ab63215949e11f0c9da69dab4e0bf6e40"},{"author":{"_account_id":27078,"name":"Manik Bindlish","email":"manikbindlish19@gmail.com","username":"manik"},"change_message_id":"6b28ad1899a95c486c296c1e5e126e3d4c21e7a2","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    def test_wait_for_interface_status_timeout(self):"},{"line_number":106,"context_line":"        show_interface \u003d mock.MagicMock(return_value\u003dself.port_down)"},{"line_number":107,"context_line":"        client \u003d self.mock_client(show_interface\u003dshow_interface)"},{"line_number":108,"context_line":"        self.patch(\u0027time.time\u0027, side_effect\u003d[0., client.build_timeout + 1.])"},{"line_number":109,"context_line":"        sleep \u003d self.patch(\u0027time.sleep\u0027)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        self.assertRaises(lib_exc.TimeoutException,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_0498bb18","line":108,"range":{"start_line":108,"start_character":45,"end_line":108,"end_character":75},"updated":"2018-07-04 08:47:24.000000000","message":"ditto","commit_id":"3080b37ab63215949e11f0c9da69dab4e0bf6e40"}]}
