)]}'
{"novaclient/v2/servers.py":[{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"fcda48004eb9fd62c6ad494d69e0195baad8effe","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        Get text console log output from Server."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        :param length: The number of lines you would like to retrieve (as int)"},{"line_number":75,"context_line":"        :param offset: Number of lines you wand to skip"},{"line_number":76,"context_line":"        \"\"\""},{"line_number":77,"context_line":"        return self.manager.get_console_output(self, length, offset)"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa0719c6_a5e74ce3","line":75,"range":{"start_line":75,"start_character":43,"end_line":75,"end_character":47},"updated":"2016-03-21 14:55:01.000000000","message":"/s/wand/want","commit_id":"25139e86bfdeb82fe6a442d97b9687cf82accea9"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"404d4324b92ba05c22f2a08bceb4019f326f43c1","unresolved":false,"context_lines":[{"line_number":1486,"context_line":"        resp, body \u003d self._action_return_resp_and_body(\u0027os-getConsoleOutput\u0027,"},{"line_number":1487,"context_line":"                                                       server,"},{"line_number":1488,"context_line":"                                                       {\u0027length\u0027: length,"},{"line_number":1489,"context_line":"                                                        \u0027offset\u0027: offset})"},{"line_number":1490,"context_line":"        return self.convert_into_with_meta(body[\u0027output\u0027], resp)"},{"line_number":1491,"context_line":""},{"line_number":1492,"context_line":"    def delete_meta(self, server, keys):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_94f214d1","line":1489,"range":{"start_line":1489,"start_character":57,"end_line":1489,"end_character":63},"updated":"2016-04-13 10:29:56.000000000","message":"this need distinguish between microversion since offset is not allowed in previous patch, right?","commit_id":"736ceecd0512ef29ac6bfad89057b3fba5410c2a"},{"author":{"_account_id":12712,"name":"Gleb Stepanov","email":"gstepanov@mirantis.com","username":"stgleb"},"change_message_id":"5044a75aca249eb708e39233f2d2fb980cf7e37a","unresolved":false,"context_lines":[{"line_number":1486,"context_line":"        resp, body \u003d self._action_return_resp_and_body(\u0027os-getConsoleOutput\u0027,"},{"line_number":1487,"context_line":"                                                       server,"},{"line_number":1488,"context_line":"                                                       {\u0027length\u0027: length,"},{"line_number":1489,"context_line":"                                                        \u0027offset\u0027: offset})"},{"line_number":1490,"context_line":"        return self.convert_into_with_meta(body[\u0027output\u0027], resp)"},{"line_number":1491,"context_line":""},{"line_number":1492,"context_line":"    def delete_meta(self, server, keys):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_f72b85e9","line":1489,"range":{"start_line":1489,"start_character":57,"end_line":1489,"end_character":63},"in_reply_to":"5a18252c_94f214d1","updated":"2016-04-13 12:25:04.000000000","message":"Yep","commit_id":"736ceecd0512ef29ac6bfad89057b3fba5410c2a"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"9b4f4fa858919f59e0e818fa1c4f055f257bd754","unresolved":false,"context_lines":[{"line_number":1472,"context_line":"        return self._update(\"/servers/%s/metadata/%s\" %"},{"line_number":1473,"context_line":"                            (base.getid(server), key), body)"},{"line_number":1474,"context_line":""},{"line_number":1475,"context_line":"    def get_console_output(self, server, length\u003dNone, offset\u003d0):"},{"line_number":1476,"context_line":"        \"\"\""},{"line_number":1477,"context_line":"        Get text console log output from Server."},{"line_number":1478,"context_line":""},{"line_number":1479,"context_line":"        :param server: The :class:`Server` (or its ID) whose console output"},{"line_number":1480,"context_line":"                        you would like to retrieve."},{"line_number":1481,"context_line":"        :param length: The number of tail loglines you would like to retrieve."},{"line_number":1482,"context_line":"        :param offset: Number of lines to skip."},{"line_number":1483,"context_line":"        :returns: An instance of novaclient.base.StrWithMeta or"},{"line_number":1484,"context_line":"                  novaclient.base.UnicodeWithMeta"},{"line_number":1485,"context_line":"        \"\"\""},{"line_number":1486,"context_line":"        resp, body \u003d self._action_return_resp_and_body(\u0027os-getConsoleOutput\u0027,"},{"line_number":1487,"context_line":"                                                       server,"},{"line_number":1488,"context_line":"                                                       {\u0027length\u0027: length,"},{"line_number":1489,"context_line":"                                                        \u0027offset\u0027: offset})"},{"line_number":1490,"context_line":"        return self.convert_into_with_meta(body[\u0027output\u0027], resp)"},{"line_number":1491,"context_line":""},{"line_number":1492,"context_line":"    def delete_meta(self, server, keys):"},{"line_number":1493,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":11,"id":"1a122d0e_8b4b532b","line":1490,"range":{"start_line":1475,"start_character":4,"end_line":1490,"end_character":64},"updated":"2016-04-15 15:16:06.000000000","message":"you should have two separate methods for different microversions.","commit_id":"006cba4168fdfbe5192ede2be2a62a30fe9ea19c"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"ee133c2cd3cbd80bc0820c71facb95036e8daf7a","unresolved":false,"context_lines":[{"line_number":67,"context_line":"            update_kwargs[\"description\"] \u003d description"},{"line_number":68,"context_line":"        return self.manager.update(self, **update_kwargs)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def get_console_output(self, length\u003dNone, offset\u003d0):"},{"line_number":71,"context_line":"        \"\"\""},{"line_number":72,"context_line":"        Get text console log output from Server."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        :param length: The number of lines you would like to retrieve (as int)"},{"line_number":75,"context_line":"        :param offset: Number of lines you wand to skip"},{"line_number":76,"context_line":"        \"\"\""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        if offset:"},{"line_number":79,"context_line":"            return self.manager.get_console_output_v227(self, length, offset)"},{"line_number":80,"context_line":"        else:"},{"line_number":81,"context_line":"            return self.manager.get_console_output(self, length)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def get_vnc_console(self, console_type):"},{"line_number":84,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":13,"id":"1a122d0e_ef6845f7","line":81,"range":{"start_line":70,"start_character":47,"end_line":81,"end_character":64},"updated":"2016-04-20 21:18:29.000000000","message":"please, see how it is done for `description` parameter of update method.","commit_id":"c8247c92ba2c05a1bd2439ea5138d73004153d8e"},{"author":{"_account_id":12712,"name":"Gleb Stepanov","email":"gstepanov@mirantis.com","username":"stgleb"},"change_message_id":"6a0188a28d7612f67bd7a86e104c26dae0978430","unresolved":false,"context_lines":[{"line_number":67,"context_line":"            update_kwargs[\"description\"] \u003d description"},{"line_number":68,"context_line":"        return self.manager.update(self, **update_kwargs)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def get_console_output(self, length\u003dNone, offset\u003d0):"},{"line_number":71,"context_line":"        \"\"\""},{"line_number":72,"context_line":"        Get text console log output from Server."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        :param length: The number of lines you would like to retrieve (as int)"},{"line_number":75,"context_line":"        :param offset: Number of lines you wand to skip"},{"line_number":76,"context_line":"        \"\"\""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        if offset:"},{"line_number":79,"context_line":"            return self.manager.get_console_output_v227(self, length, offset)"},{"line_number":80,"context_line":"        else:"},{"line_number":81,"context_line":"            return self.manager.get_console_output(self, length)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def get_vnc_console(self, console_type):"},{"line_number":84,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":13,"id":"1a122d0e_b8b8ffe6","line":81,"range":{"start_line":70,"start_character":47,"end_line":81,"end_character":64},"in_reply_to":"1a122d0e_ef6845f7","updated":"2016-04-22 12:00:30.000000000","message":"Yes, sorry, i\u0027ve missed the offset parameter.","commit_id":"c8247c92ba2c05a1bd2439ea5138d73004153d8e"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"ee133c2cd3cbd80bc0820c71facb95036e8daf7a","unresolved":false,"context_lines":[{"line_number":1472,"context_line":"        return self._update(\"/servers/%s/metadata/%s\" %"},{"line_number":1473,"context_line":"                            (base.getid(server), key), body)"},{"line_number":1474,"context_line":""},{"line_number":1475,"context_line":"    def get_console_output(self, server, length\u003dNone, offset\u003d0):"},{"line_number":1476,"context_line":"        \"\"\""},{"line_number":1477,"context_line":"        Get text console log output from Server."},{"line_number":1478,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1a122d0e_6f0a7527","line":1475,"range":{"start_line":1475,"start_character":52,"end_line":1475,"end_character":62},"updated":"2016-04-20 21:18:29.000000000","message":"for 2.0-2.26 this parameter is restricted.","commit_id":"c8247c92ba2c05a1bd2439ea5138d73004153d8e"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"ee133c2cd3cbd80bc0820c71facb95036e8daf7a","unresolved":false,"context_lines":[{"line_number":1487,"context_line":"                                                       {\u0027length\u0027: length})"},{"line_number":1488,"context_line":"        return self.convert_into_with_meta(body[\u0027output\u0027], resp)"},{"line_number":1489,"context_line":""},{"line_number":1490,"context_line":"    def get_console_output_v227(self, server, length\u003dNone, offset\u003d0):"},{"line_number":1491,"context_line":"        \"\"\""},{"line_number":1492,"context_line":"        Get text console log output from Server."},{"line_number":1493,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1a122d0e_1229668a","line":1490,"range":{"start_line":1490,"start_character":4,"end_line":1490,"end_character":31},"updated":"2016-04-20 21:18:29.000000000","message":"please use `get_console_output` name with @api_versions.wraps decorator .","commit_id":"c8247c92ba2c05a1bd2439ea5138d73004153d8e"}],"novaclient/v2/shell.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"896aedc2fca11019a5b8cf7ce2faea8c3078760d","unresolved":false,"context_lines":[{"line_number":2670,"context_line":"def do_console_log(cs, args):"},{"line_number":2671,"context_line":"    \"\"\"Get console log output of a server.\"\"\""},{"line_number":2672,"context_line":"    server \u003d _find_server(cs, args.server)"},{"line_number":2673,"context_line":"    data \u003d server.get_console_output(length\u003dargs.length, offset\u003dargs.offset)"},{"line_number":2674,"context_line":"    print(data)"},{"line_number":2675,"context_line":""},{"line_number":2676,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1af94dfe_b7943343","line":2673,"range":{"start_line":2673,"start_character":55,"end_line":2673,"end_character":75},"updated":"2016-03-17 13:54:14.000000000","message":"get_console_output method doesn\u0027t accept such argument https://github.com/openstack/python-novaclient/blob/3.3.0/novaclient/v2/servers.py#L70","commit_id":"a468905c2577cea059313220a97fbc01712c6213"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"9b4f4fa858919f59e0e818fa1c4f055f257bd754","unresolved":false,"context_lines":[{"line_number":2655,"context_line":"    utils.print_list(floating_ips,"},{"line_number":2656,"context_line":"                     [\u0027Id\u0027, \u0027IP\u0027, \u0027Server Id\u0027, \u0027Fixed IP\u0027, \u0027Pool\u0027])"},{"line_number":2657,"context_line":""},{"line_number":2658,"context_line":""},{"line_number":2659,"context_line":"@utils.arg(\u0027server\u0027, metavar\u003d\u0027\u003cserver\u003e\u0027, help\u003d_(\u0027Name or ID of server.\u0027))"},{"line_number":2660,"context_line":"@utils.arg("},{"line_number":2661,"context_line":"    \u0027--length\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a122d0e_ebd48748","line":2658,"updated":"2016-04-15 15:16:06.000000000","message":"you need to mark this method with  \n\n    @api_versions.wraps(start_version\u003d\u00272.0\u0027, end_version\u003d\u00272.26\u0027)","commit_id":"006cba4168fdfbe5192ede2be2a62a30fe9ea19c"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"ee133c2cd3cbd80bc0820c71facb95036e8daf7a","unresolved":false,"context_lines":[{"line_number":2656,"context_line":"                     [\u0027Id\u0027, \u0027IP\u0027, \u0027Server Id\u0027, \u0027Fixed IP\u0027, \u0027Pool\u0027])"},{"line_number":2657,"context_line":""},{"line_number":2658,"context_line":""},{"line_number":2659,"context_line":"@api_versions.wraps(start_version\u003d\u00272.0\u0027, end_version\u003d\u00272.26\u0027)"},{"line_number":2660,"context_line":"@utils.arg(\u0027server\u0027, metavar\u003d\u0027\u003cserver\u003e\u0027, help\u003d_(\u0027Name or ID of server.\u0027))"},{"line_number":2661,"context_line":"@utils.arg("},{"line_number":2662,"context_line":"    \u0027--length\u0027,"},{"line_number":2663,"context_line":"    metavar\u003d\u0027\u003clength\u003e\u0027,"},{"line_number":2664,"context_line":"    default\u003dNone,"},{"line_number":2665,"context_line":"    help\u003d_(\u0027Length in lines to tail.\u0027))"},{"line_number":2666,"context_line":"def do_console_log(cs, args):"},{"line_number":2667,"context_line":"    \"\"\"Get console log output of a server.\"\"\""},{"line_number":2668,"context_line":"    server \u003d _find_server(cs, args.server)"},{"line_number":2669,"context_line":"    data \u003d server.get_console_output(length\u003dargs.length)"},{"line_number":2670,"context_line":"    print(data)"},{"line_number":2671,"context_line":""},{"line_number":2672,"context_line":""},{"line_number":2673,"context_line":"@api_versions.wraps(start_version\u003d\u00272.27\u0027)"},{"line_number":2674,"context_line":"@utils.arg(\u0027server\u0027, metavar\u003d\u0027\u003cserver\u003e\u0027, help\u003d_(\u0027Name or ID of server.\u0027))"},{"line_number":2675,"context_line":"@utils.arg("},{"line_number":2676,"context_line":"    \u0027--length\u0027,"},{"line_number":2677,"context_line":"    metavar\u003d\u0027\u003clength\u003e\u0027,"},{"line_number":2678,"context_line":"    default\u003dNone,"},{"line_number":2679,"context_line":"    help\u003d_(\u0027Length in lines to tail.\u0027))"},{"line_number":2680,"context_line":"@utils.arg("},{"line_number":2681,"context_line":"    \u0027--offset\u0027,"},{"line_number":2682,"context_line":"    metavar\u003d\u0027\u003coffset\u003e\u0027,"},{"line_number":2683,"context_line":"    default\u003d0,"},{"line_number":2684,"context_line":"    help\u003d_(\u0027Offset in lines from end of file.\u0027))"},{"line_number":2685,"context_line":"def do_console_log(cs, args):"},{"line_number":2686,"context_line":"    \"\"\"Get console log output of a server.\"\"\""},{"line_number":2687,"context_line":"    server \u003d _find_server(cs, args.server)"},{"line_number":2688,"context_line":"    data \u003d server.get_console_output(length\u003dargs.length, offset\u003dargs.offset)"},{"line_number":2689,"context_line":"    print(data)"},{"line_number":2690,"context_line":""},{"line_number":2691,"context_line":""},{"line_number":2692,"context_line":"@utils.arg(\u0027server\u0027, metavar\u003d\u0027\u003cserver\u003e\u0027, help\u003d_(\u0027Name or ID of server.\u0027))"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a122d0e_2bcd1231","line":2689,"range":{"start_line":2659,"start_character":0,"end_line":2689,"end_character":15},"updated":"2016-04-20 21:18:29.000000000","message":"we can reduce duplicated code.\n\n    @api_versions.wraps(start_version\u003d\u00272.0\u0027, end_version\u003d\u00272.26\u0027)\n    def _get_console_output(cs, args, server):\n        return server.get_console_output(length\u003dargs.length)\n\n    @api_versions.wraps(start_version\u003d\u00272.27\u0027)\n    def _get_console_output(cs, args, server):\n        return server.get_console_output(length\u003dargs.length, offset\u003dargs.offset)\n \n\n\n    @utils.arg(\u0027server\u0027, metavar\u003d\u0027\u003cserver\u003e\u0027, help\u003d_(\u0027Name or ID of server.\u0027))\n    @utils.arg(\n        \u0027--length\u0027,\n    metavar\u003d\u0027\u003clength\u003e\u0027,\n        default\u003dNone,\n        help\u003d_(\u0027Length in lines to tail.\u0027))\n    @utils.arg(\n        \u0027--offset\u0027,\n        metavar\u003d\u0027\u003coffset\u003e\u0027,\n        default\u003d0,\n        help\u003d_(\u0027Offset in lines from end of file.\u0027),\n        start_version\u003d\u00272.27\u0027)\n    def do_console_log(cs, args):\n        \"\"\"Get console log output of a server.\"\"\"\n        server \u003d _find_server(cs, args.server)\n        data \u003d _get_console_output(cs, args, server)\n        print(data)","commit_id":"c8247c92ba2c05a1bd2439ea5138d73004153d8e"}]}
