)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"0e86bb9e2a70f20843bd9ad7fbb4c308e34f0dd7","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Ghanshyam \u003cghanshyam.mann@nectechnologies.in\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-03-05 19:00:36 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"xV2 API Test to get the VNC console of a Server"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch add V2 API Test to get the VNC console of a Server"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAVn%2F%2B9z8%3D","line":7,"updated":"2014-03-11 01:01:08.000000000","message":"s/xV2/V2\n:)","commit_id":"3cc27051b65700352d5fc2c091b475ca73d63941"}],"tempest/api/compute/servers/test_server_actions.py":[{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"change_message_id":"20c3fd46dd73560fc320c6e2f7f729c04342e700","unresolved":false,"context_lines":[{"line_number":429,"context_line":"    def test_get_vnc_console(self):"},{"line_number":430,"context_line":"        # Get the VNC console of type \u0027novnc\u0027 and \u0027xvpvnc\u0027"},{"line_number":431,"context_line":"        console_types \u003d [\u0027novnc\u0027, \u0027xvpvnc\u0027]"},{"line_number":432,"context_line":"        for console_type in console_types:"},{"line_number":433,"context_line":"            resp, body \u003d self.servers_client.get_vnc_console(self.server_id,"},{"line_number":434,"context_line":"                                                             console_type)"},{"line_number":435,"context_line":"            self.assertEqual(200, resp.status)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2FmQg%3D","line":432,"updated":"2014-03-05 05:57:59.000000000","message":"The challenge with looping and asserting is that if there\u0027s a failure, it is not obvious which vnc type caused the failure. At the least, I would add a message to the asserts to make it more clear what the failure was","commit_id":"e24916737fc69a43f251f5edcf5b7b19ac25f1d2"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a0d9fbc198b7a9b31ad06dabf4a3b49ae4c78987","unresolved":false,"context_lines":[{"line_number":429,"context_line":"    def test_get_vnc_console(self):"},{"line_number":430,"context_line":"        # Get the VNC console of type \u0027novnc\u0027 and \u0027xvpvnc\u0027"},{"line_number":431,"context_line":"        console_types \u003d [\u0027novnc\u0027, \u0027xvpvnc\u0027]"},{"line_number":432,"context_line":"        for console_type in console_types:"},{"line_number":433,"context_line":"            resp, body \u003d self.servers_client.get_vnc_console(self.server_id,"},{"line_number":434,"context_line":"                                                             console_type)"},{"line_number":435,"context_line":"            self.assertEqual(200, resp.status)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2FkCA%3D","line":432,"in_reply_to":"AAAAVn%2F%2FmQg%3D","updated":"2014-03-05 11:24:27.000000000","message":"Done.","commit_id":"e24916737fc69a43f251f5edcf5b7b19ac25f1d2"},{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"change_message_id":"20c3fd46dd73560fc320c6e2f7f729c04342e700","unresolved":false,"context_lines":[{"line_number":434,"context_line":"                                                             console_type)"},{"line_number":435,"context_line":"            self.assertEqual(200, resp.status)"},{"line_number":436,"context_line":"            self.assertEqual(console_type, body[\u0027type\u0027])"},{"line_number":437,"context_line":"            self.assertNotEqual(\u0027\u0027, body[\u0027url\u0027])"},{"line_number":438,"context_line":""},{"line_number":439,"context_line":""},{"line_number":440,"context_line":"class ServerActionsTestXML(ServerActionsTestJSON):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2FmPo%3D","line":437,"updated":"2014-03-05 05:57:59.000000000","message":"Rather than just verifying the URL isn\u0027t blank, it would be very easy to check here if the URL field is actually a valid URL","commit_id":"e24916737fc69a43f251f5edcf5b7b19ac25f1d2"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a0d9fbc198b7a9b31ad06dabf4a3b49ae4c78987","unresolved":false,"context_lines":[{"line_number":434,"context_line":"                                                             console_type)"},{"line_number":435,"context_line":"            self.assertEqual(200, resp.status)"},{"line_number":436,"context_line":"            self.assertEqual(console_type, body[\u0027type\u0027])"},{"line_number":437,"context_line":"            self.assertNotEqual(\u0027\u0027, body[\u0027url\u0027])"},{"line_number":438,"context_line":""},{"line_number":439,"context_line":""},{"line_number":440,"context_line":"class ServerActionsTestXML(ServerActionsTestJSON):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2FkB8%3D","line":437,"in_reply_to":"AAAAVn%2F%2FmPo%3D","updated":"2014-03-05 11:24:27.000000000","message":"Done.","commit_id":"e24916737fc69a43f251f5edcf5b7b19ac25f1d2"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"0e86bb9e2a70f20843bd9ad7fbb4c308e34f0dd7","unresolved":false,"context_lines":[{"line_number":428,"context_line":"        valid_scheme \u003d [\u0027file\u0027, \u0027ftp\u0027, \u0027gopher\u0027, \u0027hdl\u0027, \u0027http\u0027, \u0027https\u0027,"},{"line_number":429,"context_line":"                        \u0027imap\u0027, \u0027mailto\u0027, \u0027mms\u0027, \u0027news\u0027, \u0027nntp\u0027, \u0027prospero\u0027,"},{"line_number":430,"context_line":"                        \u0027rsync\u0027, \u0027rtsp\u0027, \u0027rtspu\u0027, \u0027sftp\u0027, \u0027shttp\u0027, \u0027sip\u0027,"},{"line_number":431,"context_line":"                        \u0027sips\u0027, \u0027snews\u0027, \u0027svn\u0027, \u0027svn+ssh\u0027, \u0027telnet\u0027, \u0027wais\u0027]"},{"line_number":432,"context_line":"        parsed_url \u003d urlparse.urlparse(url)"},{"line_number":433,"context_line":"        self.assertNotEqual(\u0027None\u0027, parsed_url.port)"},{"line_number":434,"context_line":"        self.assertNotEqual(\u0027None\u0027, parsed_url.hostname)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVn%2F%2B9vY%3D","line":431,"updated":"2014-03-11 01:01:08.000000000","message":"I don\u0027t think a url for console has \u0027svn\u0027, \u0027svn+ssh\u0027, \u0027imap\u0027, \u0027mailto\u0027..etc. Is there any problem with only \u0027http\u0027 and \u0027https\u0027?","commit_id":"3cc27051b65700352d5fc2c091b475ca73d63941"}],"tempest/services/compute/xml/servers_client.py":[{"author":{"_account_id":7882,"name":"Yuiko Takada Mori","email":"yuiko-mori@nec.com","username":"YuikoTakada"},"change_message_id":"f0ec74c002c224e5596fa9045041bdefd1559c38","unresolved":false,"context_lines":[{"line_number":648,"context_line":"                            xmlns\u003dXMLNS_11,"},{"line_number":649,"context_line":"                            type\u003dconsole_type)"},{"line_number":650,"context_line":"        resp, body \u003d self.post(\u0027servers/%s/action\u0027 % str(server_id),"},{"line_number":651,"context_line":"                               str(Document(post_body)))"},{"line_number":652,"context_line":"        json_body \u003d xml_to_json(etree.fromstring(body))"},{"line_number":653,"context_line":"        return resp, json_body"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2Fl3w%3D","line":651,"updated":"2014-03-05 06:46:39.000000000","message":"Isn\u0027t is more simple and readable using action function like other function?","commit_id":"e24916737fc69a43f251f5edcf5b7b19ac25f1d2"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a0d9fbc198b7a9b31ad06dabf4a3b49ae4c78987","unresolved":false,"context_lines":[{"line_number":648,"context_line":"                            xmlns\u003dXMLNS_11,"},{"line_number":649,"context_line":"                            type\u003dconsole_type)"},{"line_number":650,"context_line":"        resp, body \u003d self.post(\u0027servers/%s/action\u0027 % str(server_id),"},{"line_number":651,"context_line":"                               str(Document(post_body)))"},{"line_number":652,"context_line":"        json_body \u003d xml_to_json(etree.fromstring(body))"},{"line_number":653,"context_line":"        return resp, json_body"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2FkBk%3D","line":651,"in_reply_to":"AAAAVn%2F%2Fl3w%3D","updated":"2014-03-05 11:24:27.000000000","message":"Done. In JSON Client also.","commit_id":"e24916737fc69a43f251f5edcf5b7b19ac25f1d2"}]}
