)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0601c1880a8de14305727749cd34f26e69614056","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Adds RDP console support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Bluepint: hyper-v-rdp-console"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Nova currently supports VNC and SPICE remote console protocols. This"},{"line_number":12,"context_line":"commit adds support for the RDP protocol in a similar way."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAASX%2F%2F4tM%3D","line":9,"updated":"2013-08-24 20:55:21.000000000","message":"s/Bluepint/Blueprint\n\nI think this is also supposed to go above the change-id in the last paragraph.","commit_id":"634f2d95a6cafd84332ed877b4dcedb9039929c1"},{"author":{"_account_id":3185,"name":"Alessandro Pilotti","email":"apilotti@cloudbasesolutions.com","username":"alexpilotti"},"change_message_id":"3a38f0b8e5361820df4d132ee9771a1d7c8c3f39","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Adds RDP console support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Bluepint: hyper-v-rdp-console"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Nova currently supports VNC and SPICE remote console protocols. This"},{"line_number":12,"context_line":"commit adds support for the RDP protocol in a similar way."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAASX%2F%2F4s4%3D","line":9,"in_reply_to":"AAAASX%2F%2F4tM%3D","updated":"2013-08-24 20:57:35.000000000","message":"Done","commit_id":"634f2d95a6cafd84332ed877b4dcedb9039929c1"}],"nova/api/openstack/compute/contrib/consoles.py":[{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"0d0182d7cffa08b18d1427ac305bcee8a2f2c31d","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        authorize(context)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        # If type is not supplied or unknown, get_rdp_console below will cope"},{"line_number":84,"context_line":"        console_type \u003d body[\u0027os-getRDPConsole\u0027].get(\u0027type\u0027)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        try:"},{"line_number":87,"context_line":"            instance \u003d self.compute_api.get(context, id)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATH%2F%2FM5g%3D","line":84,"updated":"2013-10-21 14:41:10.000000000","message":"ditto","commit_id":"af6e1a9067fbe747d1d616fc4cfabdffd02af0c8"},{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"31d77a6c0a5b5b440e7f05b82157a1a34c34b446","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        authorize(context)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        # If type is not supplied or unknown, get_rdp_console below will cope"},{"line_number":84,"context_line":"        console_type \u003d body[\u0027os-getRDPConsole\u0027].get(\u0027type\u0027)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        try:"},{"line_number":87,"context_line":"            instance \u003d self.compute_api.get(context, id)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATX%2F%2F%2F74%3D","line":84,"in_reply_to":"AAAATH%2F%2FM2k%3D","updated":"2013-10-23 04:25:23.000000000","message":"It was my bad, and sorry about that, sometimes due to my network issue, the page could be opened randomly, :)","commit_id":"af6e1a9067fbe747d1d616fc4cfabdffd02af0c8"},{"author":{"_account_id":3185,"name":"Alessandro Pilotti","email":"apilotti@cloudbasesolutions.com","username":"alexpilotti"},"change_message_id":"8222d3a9bbd393149e1d8355d29524f7058e2b09","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        authorize(context)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        # If type is not supplied or unknown, get_rdp_console below will cope"},{"line_number":84,"context_line":"        console_type \u003d body[\u0027os-getRDPConsole\u0027].get(\u0027type\u0027)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        try:"},{"line_number":87,"context_line":"            instance \u003d self.compute_api.get(context, id)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATH%2F%2FM2k%3D","line":84,"in_reply_to":"AAAATH%2F%2FM5g%3D","updated":"2013-10-21 14:57:57.000000000","message":"I don\u0027t see any previous comment. Can you please detail what is the \"ditto\" for?\n\nIf it;s related to the comment in the next file, the behaviour is teh same as in \"get_spice_console\" for consistency.","commit_id":"af6e1a9067fbe747d1d616fc4cfabdffd02af0c8"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"0021ba49886625d0bbe3dfd1284d8fccf15db40a","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        # If type is not supplied or unknown, get_rdp_console below will cope"},{"line_number":87,"context_line":"        console_type \u003d body[\u0027os-getRDPConsole\u0027].get(\u0027type\u0027)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        try:"},{"line_number":90,"context_line":"            instance \u003d self.compute_api.get(context, id)"},{"line_number":91,"context_line":"            output \u003d self.compute_api.get_rdp_console(context,"},{"line_number":92,"context_line":"                                                      instance,"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUH%2F%2FNBA%3D","line":89,"updated":"2014-01-16 13:00:39.000000000","message":"does this need to support NotImplemented?\nIn the code you have InvalidType riased if the flag is not set. Maybe that should also be treated","commit_id":"9894526dfa2a17d7fdfa7579e30af16881e4d0dd"},{"author":{"_account_id":3185,"name":"Alessandro Pilotti","email":"apilotti@cloudbasesolutions.com","username":"alexpilotti"},"change_message_id":"5b8cfabe622794a7c969becbbbfbed6e4b195c09","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        # If type is not supplied or unknown, get_rdp_console below will cope"},{"line_number":87,"context_line":"        console_type \u003d body[\u0027os-getRDPConsole\u0027].get(\u0027type\u0027)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        try:"},{"line_number":90,"context_line":"            instance \u003d self.compute_api.get(context, id)"},{"line_number":91,"context_line":"            output \u003d self.compute_api.get_rdp_console(context,"},{"line_number":92,"context_line":"                                                      instance,"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUH%2F%2FEew%3D","line":89,"in_reply_to":"AAAAUH%2F%2FNBA%3D","updated":"2014-01-17 18:31:15.000000000","message":"Done. Note: this should be added separately also to the VNC and Spice cases.","commit_id":"9894526dfa2a17d7fdfa7579e30af16881e4d0dd"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"da087048cf9fe8a496ed909e7f5e67e382fc52b2","unresolved":false,"context_lines":[{"line_number":106,"context_line":"                   extensions.ActionExtension(\"servers\", \"os-getSPICEConsole\","},{"line_number":107,"context_line":"                                              self.get_spice_console),"},{"line_number":108,"context_line":"                   extensions.ActionExtension(\"servers\", \"os-getRDPConsole\","},{"line_number":109,"context_line":"                                              self.get_rdp_console)]"},{"line_number":110,"context_line":"        return actions"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"AAAAUH%2F9Uq0%3D","line":109,"updated":"2014-02-07 18:44:05.000000000","message":"Sorry if this has already come up, but don\u0027t we need a new extension the signify that this action is possible, and only expose it if that extension is enabled?","commit_id":"307c193b58bf9257727d672fdf0dcf9ca414c560"},{"author":{"_account_id":3185,"name":"Alessandro Pilotti","email":"apilotti@cloudbasesolutions.com","username":"alexpilotti"},"change_message_id":"04248b2f995949a40acbd92292de978d7f710c71","unresolved":false,"context_lines":[{"line_number":106,"context_line":"                   extensions.ActionExtension(\"servers\", \"os-getSPICEConsole\","},{"line_number":107,"context_line":"                                              self.get_spice_console),"},{"line_number":108,"context_line":"                   extensions.ActionExtension(\"servers\", \"os-getRDPConsole\","},{"line_number":109,"context_line":"                                              self.get_rdp_console)]"},{"line_number":110,"context_line":"        return actions"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"AAAAUH%2F9UpI%3D","line":109,"in_reply_to":"AAAAUH%2F9Uq0%3D","updated":"2014-02-07 18:50:20.000000000","message":"In that case I believe we should do that for all of them (VNC, Spice, RDP). This patch maintains as much as possible the symmetry with the pre-existing protocols.","commit_id":"307c193b58bf9257727d672fdf0dcf9ca414c560"}],"nova/api/openstack/compute/plugins/v3/remote_consoles.py":[{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"0d0182d7cffa08b18d1427ac305bcee8a2f2c31d","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        authorize(context)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        # If type is not supplied or unknown, get_rdp_console below will cope"},{"line_number":90,"context_line":"        console_type \u003d body[\u0027get_rdp_console\u0027].get(\u0027type\u0027)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        try:"},{"line_number":93,"context_line":"            instance \u003d self.compute_api.get(context, id)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATH%2F%2FM50%3D","line":90,"updated":"2013-10-21 14:41:10.000000000","message":"what if the key get_rdp_console doesn\u0027t exist?","commit_id":"af6e1a9067fbe747d1d616fc4cfabdffd02af0c8"},{"author":{"_account_id":3185,"name":"Alessandro Pilotti","email":"apilotti@cloudbasesolutions.com","username":"alexpilotti"},"change_message_id":"8222d3a9bbd393149e1d8355d29524f7058e2b09","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        authorize(context)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        # If type is not supplied or unknown, get_rdp_console below will cope"},{"line_number":90,"context_line":"        console_type \u003d body[\u0027get_rdp_console\u0027].get(\u0027type\u0027)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        try:"},{"line_number":93,"context_line":"            instance \u003d self.compute_api.get(context, id)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATH%2F%2FM2Q%3D","line":90,"in_reply_to":"AAAATH%2F%2FM50%3D","updated":"2013-10-21 14:57:57.000000000","message":"It\u0027s simply passed on as None. I preferred to keep the same behaviour as \"get_spice_console\". All those methods should definitely be unified BTW.","commit_id":"af6e1a9067fbe747d1d616fc4cfabdffd02af0c8"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"0021ba49886625d0bbe3dfd1284d8fccf15db40a","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            instance \u003d self.compute_api.get(context, id)"},{"line_number":98,"context_line":"            output \u003d self.compute_api.get_rdp_console(context,"},{"line_number":99,"context_line":"                                                      instance,"},{"line_number":100,"context_line":"                                                      console_type)"},{"line_number":101,"context_line":"        except exception.ConsoleTypeInvalid as e:"},{"line_number":102,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003de.format_message())"},{"line_number":103,"context_line":"        except exception.InstanceNotFound as e:"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUH%2F%2FNA0%3D","line":100,"updated":"2014-01-16 13:00:39.000000000","message":"NotImplemented support","commit_id":"9894526dfa2a17d7fdfa7579e30af16881e4d0dd"},{"author":{"_account_id":3185,"name":"Alessandro Pilotti","email":"apilotti@cloudbasesolutions.com","username":"alexpilotti"},"change_message_id":"5b8cfabe622794a7c969becbbbfbed6e4b195c09","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            instance \u003d self.compute_api.get(context, id)"},{"line_number":98,"context_line":"            output \u003d self.compute_api.get_rdp_console(context,"},{"line_number":99,"context_line":"                                                      instance,"},{"line_number":100,"context_line":"                                                      console_type)"},{"line_number":101,"context_line":"        except exception.ConsoleTypeInvalid as e:"},{"line_number":102,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003de.format_message())"},{"line_number":103,"context_line":"        except exception.InstanceNotFound as e:"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUH%2F%2FEfA%3D","line":100,"in_reply_to":"AAAAUH%2F%2FNA0%3D","updated":"2014-01-17 18:31:15.000000000","message":"Done","commit_id":"9894526dfa2a17d7fdfa7579e30af16881e4d0dd"}],"nova/compute/manager.py":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"875209e85f67c9123076c505f1cbfe6a0b301f6f","unresolved":false,"context_lines":[{"line_number":3752,"context_line":"        try:"},{"line_number":3753,"context_line":"            # Retrieve connect info from driver, and then decorate with our"},{"line_number":3754,"context_line":"            # access info token"},{"line_number":3755,"context_line":"            connect_info \u003d self.driver.get_rdp_console(instance)"},{"line_number":3756,"context_line":"            connect_info[\u0027token\u0027] \u003d token"},{"line_number":3757,"context_line":"            connect_info[\u0027access_url\u0027] \u003d access_url"},{"line_number":3758,"context_line":"        except exception.InstanceNotFound:"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUH%2F%2FNKE%3D","line":3755,"updated":"2014-01-16 12:04:33.000000000","message":"You should be passing \u0027context\u0027 here as with spice/vnc","commit_id":"56b254f5a08f639da8e3d1aa7c6859eebd2a371e"},{"author":{"_account_id":3185,"name":"Alessandro Pilotti","email":"apilotti@cloudbasesolutions.com","username":"alexpilotti"},"change_message_id":"1f345609e213565ec9435ef1068fea11ecae6b19","unresolved":false,"context_lines":[{"line_number":3752,"context_line":"        try:"},{"line_number":3753,"context_line":"            # Retrieve connect info from driver, and then decorate with our"},{"line_number":3754,"context_line":"            # access info token"},{"line_number":3755,"context_line":"            connect_info \u003d self.driver.get_rdp_console(instance)"},{"line_number":3756,"context_line":"            connect_info[\u0027token\u0027] \u003d token"},{"line_number":3757,"context_line":"            connect_info[\u0027access_url\u0027] \u003d access_url"},{"line_number":3758,"context_line":"        except exception.InstanceNotFound:"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUH%2F%2FNDU%3D","line":3755,"in_reply_to":"AAAAUH%2F%2FNKE%3D","updated":"2014-01-16 12:43:26.000000000","message":"Done","commit_id":"56b254f5a08f639da8e3d1aa7c6859eebd2a371e"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"da087048cf9fe8a496ed909e7f5e67e382fc52b2","unresolved":false,"context_lines":[{"line_number":3769,"context_line":"                                   NotImplementedError)"},{"line_number":3770,"context_line":"    @wrap_exception()"},{"line_number":3771,"context_line":"    @wrap_instance_fault"},{"line_number":3772,"context_line":"    @object_compat"},{"line_number":3773,"context_line":"    def get_rdp_console(self, context, console_type, instance):"},{"line_number":3774,"context_line":"        \"\"\"Return connection information for a RDP console.\"\"\""},{"line_number":3775,"context_line":"        context \u003d context.elevated()"}],"source_content_type":"text/x-python","patch_set":23,"id":"AAAAUH%2F9Utw%3D","line":3772,"updated":"2014-02-07 18:44:05.000000000","message":"This should be the top decorator","commit_id":"307c193b58bf9257727d672fdf0dcf9ca414c560"},{"author":{"_account_id":3185,"name":"Alessandro Pilotti","email":"apilotti@cloudbasesolutions.com","username":"alexpilotti"},"change_message_id":"04248b2f995949a40acbd92292de978d7f710c71","unresolved":false,"context_lines":[{"line_number":3769,"context_line":"                                   NotImplementedError)"},{"line_number":3770,"context_line":"    @wrap_exception()"},{"line_number":3771,"context_line":"    @wrap_instance_fault"},{"line_number":3772,"context_line":"    @object_compat"},{"line_number":3773,"context_line":"    def get_rdp_console(self, context, console_type, instance):"},{"line_number":3774,"context_line":"        \"\"\"Return connection information for a RDP console.\"\"\""},{"line_number":3775,"context_line":"        context \u003d context.elevated()"}],"source_content_type":"text/x-python","patch_set":23,"id":"AAAAUH%2F9UoQ%3D","line":3772,"in_reply_to":"AAAAUH%2F9Utw%3D","updated":"2014-02-07 18:50:20.000000000","message":"Done","commit_id":"307c193b58bf9257727d672fdf0dcf9ca414c560"}],"nova/compute/rpcapi.py":[{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"0d0182d7cffa08b18d1427ac305bcee8a2f2c31d","unresolved":false,"context_lines":[{"line_number":402,"context_line":"    def get_rdp_console(self, ctxt, instance, console_type):"},{"line_number":403,"context_line":"        instance_p \u003d jsonutils.to_primitive(instance)"},{"line_number":404,"context_line":"        return self.call(ctxt, self.make_msg(\u0027get_rdp_console\u0027,"},{"line_number":405,"context_line":"                instance\u003dinstance_p, console_type\u003dconsole_type),"},{"line_number":406,"context_line":"                topic\u003d_compute_topic(self.topic, ctxt, None, instance),"},{"line_number":407,"context_line":"                         version\u003d\u00272.45\u0027)"},{"line_number":408,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATH%2F%2FM7M%3D","line":405,"updated":"2013-10-21 14:41:10.000000000","message":"nit: alignment","commit_id":"af6e1a9067fbe747d1d616fc4cfabdffd02af0c8"},{"author":{"_account_id":3185,"name":"Alessandro Pilotti","email":"apilotti@cloudbasesolutions.com","username":"alexpilotti"},"change_message_id":"8222d3a9bbd393149e1d8355d29524f7058e2b09","unresolved":false,"context_lines":[{"line_number":402,"context_line":"    def get_rdp_console(self, ctxt, instance, console_type):"},{"line_number":403,"context_line":"        instance_p \u003d jsonutils.to_primitive(instance)"},{"line_number":404,"context_line":"        return self.call(ctxt, self.make_msg(\u0027get_rdp_console\u0027,"},{"line_number":405,"context_line":"                instance\u003dinstance_p, console_type\u003dconsole_type),"},{"line_number":406,"context_line":"                topic\u003d_compute_topic(self.topic, ctxt, None, instance),"},{"line_number":407,"context_line":"                         version\u003d\u00272.45\u0027)"},{"line_number":408,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATH%2F%2FM1o%3D","line":405,"in_reply_to":"AAAATH%2F%2FM7M%3D","updated":"2013-10-21 14:57:57.000000000","message":"Done","commit_id":"af6e1a9067fbe747d1d616fc4cfabdffd02af0c8"}],"nova/rdp/__init__.py":[{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"0d0182d7cffa08b18d1427ac305bcee8a2f2c31d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# Copyright (c) 2012 Red Hat, Inc."},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":7,"context_line":"#    you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATH%2F%2FM74%3D","line":4,"updated":"2013-10-21 14:41:10.000000000","message":"cloudbase solution?","commit_id":"af6e1a9067fbe747d1d616fc4cfabdffd02af0c8"},{"author":{"_account_id":3185,"name":"Alessandro Pilotti","email":"apilotti@cloudbasesolutions.com","username":"alexpilotti"},"change_message_id":"8222d3a9bbd393149e1d8355d29524f7058e2b09","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# Copyright (c) 2012 Red Hat, Inc."},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":7,"context_line":"#    you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATH%2F%2FM24%3D","line":4,"in_reply_to":"AAAATH%2F%2FM74%3D","updated":"2013-10-21 14:57:57.000000000","message":"Good catch. I\u0027m obviously guilty of cut and paste abuse here :-)","commit_id":"af6e1a9067fbe747d1d616fc4cfabdffd02af0c8"},{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"0d0182d7cffa08b18d1427ac305bcee8a2f2c31d","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from oslo.config import cfg"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"spice_opts \u003d ["},{"line_number":24,"context_line":"    cfg.StrOpt(\u0027html5proxy_base_url\u0027,"},{"line_number":25,"context_line":"               default\u003d\u0027http://127.0.0.1:6083/\u0027,"},{"line_number":26,"context_line":"               help\u003d\u0027Location of RDP html5 console proxy, in the form \u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATH%2F%2FM7U%3D","line":23,"updated":"2013-10-21 14:41:10.000000000","message":"rdp_opts?","commit_id":"af6e1a9067fbe747d1d616fc4cfabdffd02af0c8"},{"author":{"_account_id":3185,"name":"Alessandro Pilotti","email":"apilotti@cloudbasesolutions.com","username":"alexpilotti"},"change_message_id":"8222d3a9bbd393149e1d8355d29524f7058e2b09","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from oslo.config import cfg"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"spice_opts \u003d ["},{"line_number":24,"context_line":"    cfg.StrOpt(\u0027html5proxy_base_url\u0027,"},{"line_number":25,"context_line":"               default\u003d\u0027http://127.0.0.1:6083/\u0027,"},{"line_number":26,"context_line":"               help\u003d\u0027Location of RDP html5 console proxy, in the form \u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATH%2F%2FM20%3D","line":23,"in_reply_to":"AAAATH%2F%2FM7U%3D","updated":"2013-10-21 14:57:57.000000000","message":"ditto :-)","commit_id":"af6e1a9067fbe747d1d616fc4cfabdffd02af0c8"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"0021ba49886625d0bbe3dfd1284d8fccf15db40a","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"rdp_opts \u003d ["},{"line_number":24,"context_line":"    cfg.StrOpt(\u0027html5proxy_base_url\u0027,"},{"line_number":25,"context_line":"               default\u003d\u0027http://127.0.0.1:6083/\u0027,"},{"line_number":26,"context_line":"               help\u003d\u0027Location of RDP html5 console proxy, in the form \u0027"},{"line_number":27,"context_line":"                    \u0027\"http://127.0.0.1:6083/\"\u0027),"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUH%2F%2FNAU%3D","line":24,"updated":"2014-01-16 13:00:39.000000000","message":"consider html5_proxy_base_url","commit_id":"9894526dfa2a17d7fdfa7579e30af16881e4d0dd"},{"author":{"_account_id":3185,"name":"Alessandro Pilotti","email":"apilotti@cloudbasesolutions.com","username":"alexpilotti"},"change_message_id":"5b8cfabe622794a7c969becbbbfbed6e4b195c09","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"rdp_opts \u003d ["},{"line_number":24,"context_line":"    cfg.StrOpt(\u0027html5proxy_base_url\u0027,"},{"line_number":25,"context_line":"               default\u003d\u0027http://127.0.0.1:6083/\u0027,"},{"line_number":26,"context_line":"               help\u003d\u0027Location of RDP html5 console proxy, in the form \u0027"},{"line_number":27,"context_line":"                    \u0027\"http://127.0.0.1:6083/\"\u0027),"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUH%2F%2FEhM%3D","line":24,"in_reply_to":"AAAAUH%2F%2FNAU%3D","updated":"2014-01-17 18:31:15.000000000","message":"Done. The name has been chosen for symmetry with html5spice _base_url, by I definitely agree that html5_proxy_base_url is a better choice.","commit_id":"9894526dfa2a17d7fdfa7579e30af16881e4d0dd"}],"nova/tests/compute/test_compute.py":[{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"0d0182d7cffa08b18d1427ac305bcee8a2f2c31d","unresolved":false,"context_lines":[{"line_number":2498,"context_line":"        # Try with the full instance"},{"line_number":2499,"context_line":"        console \u003d self.compute.get_rdp_console(self.context, \u0027rdp-html5\u0027,"},{"line_number":2500,"context_line":"                                               instance\u003dinstance)"},{"line_number":2501,"context_line":"        self.assert_(console)"},{"line_number":2502,"context_line":""},{"line_number":2503,"context_line":"        self.compute.terminate_instance(self.context, instance\u003dinstance)"},{"line_number":2504,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATH%2F%2FM9o%3D","line":2501,"updated":"2013-10-21 14:41:10.000000000","message":"we should use assertTrue rather than assert_, assert_ has been deprecated since python 2.7","commit_id":"af6e1a9067fbe747d1d616fc4cfabdffd02af0c8"},{"author":{"_account_id":3185,"name":"Alessandro Pilotti","email":"apilotti@cloudbasesolutions.com","username":"alexpilotti"},"change_message_id":"8222d3a9bbd393149e1d8355d29524f7058e2b09","unresolved":false,"context_lines":[{"line_number":2498,"context_line":"        # Try with the full instance"},{"line_number":2499,"context_line":"        console \u003d self.compute.get_rdp_console(self.context, \u0027rdp-html5\u0027,"},{"line_number":2500,"context_line":"                                               instance\u003dinstance)"},{"line_number":2501,"context_line":"        self.assert_(console)"},{"line_number":2502,"context_line":""},{"line_number":2503,"context_line":"        self.compute.terminate_instance(self.context, instance\u003dinstance)"},{"line_number":2504,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATH%2F%2FM0c%3D","line":2501,"in_reply_to":"AAAATH%2F%2FM9o%3D","updated":"2013-10-21 14:57:57.000000000","message":"Again some cut/paste from the Spice / VNC tests. The assert_ removal patch arrived after this code was added.\n\nGood catch and definitely to be done.","commit_id":"af6e1a9067fbe747d1d616fc4cfabdffd02af0c8"}],"nova/tests/integrated/api_samples/os-consoles/get-rdp-console-post-resp.json.tpl":[{"author":{"_account_id":3185,"name":"Alessandro Pilotti","email":"apilotti@cloudbasesolutions.com","username":"alexpilotti"},"change_message_id":"deec9602dd1ae7cccf9bdd81330ff6cc5402ba52","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"\t\"console\": {"},{"line_number":3,"context_line":"\t\t\"type\": \"rdp-html5\","},{"line_number":4,"context_line":"\t\t\"url\":\"%(url)s\""},{"line_number":5,"context_line":"\t}"},{"line_number":6,"context_line":"}"}],"source_content_type":"text/x-smarty","patch_set":9,"id":"AAAATX%2F%2F%2BYU%3D","line":3,"updated":"2013-10-23 13:05:45.000000000","message":"Tabs missed here as well","commit_id":"af6e1a9067fbe747d1d616fc4cfabdffd02af0c8"}],"nova/tests/integrated/api_samples/os-consoles/get-rdp-console-post-resp.xml.tpl":[{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"0d0182d7cffa08b18d1427ac305bcee8a2f2c31d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003c?xml version\u003d\u00271.0\u0027 encoding\u003d\u0027UTF-8\u0027?\u003e"},{"line_number":2,"context_line":"\u003cconsole\u003e"},{"line_number":3,"context_line":"\t\u003ctype\u003erdp-html5\u003c/type\u003e"},{"line_number":4,"context_line":"\t\u003curl\u003e%(url)s\u003c/url\u003e"},{"line_number":5,"context_line":"\u003c/console\u003e"}],"source_content_type":"text/x-smarty","patch_set":9,"id":"AAAATH%2F%2FM5M%3D","line":3,"updated":"2013-10-21 14:41:10.000000000","message":"tab space","commit_id":"af6e1a9067fbe747d1d616fc4cfabdffd02af0c8"},{"author":{"_account_id":3185,"name":"Alessandro Pilotti","email":"apilotti@cloudbasesolutions.com","username":"alexpilotti"},"change_message_id":"8222d3a9bbd393149e1d8355d29524f7058e2b09","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003c?xml version\u003d\u00271.0\u0027 encoding\u003d\u0027UTF-8\u0027?\u003e"},{"line_number":2,"context_line":"\u003cconsole\u003e"},{"line_number":3,"context_line":"\t\u003ctype\u003erdp-html5\u003c/type\u003e"},{"line_number":4,"context_line":"\t\u003curl\u003e%(url)s\u003c/url\u003e"},{"line_number":5,"context_line":"\u003c/console\u003e"}],"source_content_type":"text/x-smarty","patch_set":9,"id":"AAAATH%2F%2FM0U%3D","line":3,"in_reply_to":"AAAATH%2F%2FM5M%3D","updated":"2013-10-21 14:57:57.000000000","message":"Good catch.","commit_id":"af6e1a9067fbe747d1d616fc4cfabdffd02af0c8"}],"nova/tests/integrated/test_api_samples.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"0021ba49886625d0bbe3dfd1284d8fccf15db40a","unresolved":false,"context_lines":[{"line_number":1953,"context_line":"        super(ConsolesSampleJsonTests, self).setUp()"},{"line_number":1954,"context_line":"        self.flags(vnc_enabled\u003dTrue)"},{"line_number":1955,"context_line":"        self.flags(enabled\u003dTrue, group\u003d\u0027spice\u0027)"},{"line_number":1956,"context_line":"        self.flags(enabled\u003dTrue, group\u003d\u0027rdp\u0027)"},{"line_number":1957,"context_line":""},{"line_number":1958,"context_line":"    def test_get_vnc_console(self):"},{"line_number":1959,"context_line":"        uuid \u003d self._post_server()"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUH%2F%2FM%2F4%3D","line":1956,"updated":"2014-01-16 13:00:39.000000000","message":"should this not be specific for the rdp test?","commit_id":"9894526dfa2a17d7fdfa7579e30af16881e4d0dd"},{"author":{"_account_id":3185,"name":"Alessandro Pilotti","email":"apilotti@cloudbasesolutions.com","username":"alexpilotti"},"change_message_id":"5b8cfabe622794a7c969becbbbfbed6e4b195c09","unresolved":false,"context_lines":[{"line_number":1953,"context_line":"        super(ConsolesSampleJsonTests, self).setUp()"},{"line_number":1954,"context_line":"        self.flags(vnc_enabled\u003dTrue)"},{"line_number":1955,"context_line":"        self.flags(enabled\u003dTrue, group\u003d\u0027spice\u0027)"},{"line_number":1956,"context_line":"        self.flags(enabled\u003dTrue, group\u003d\u0027rdp\u0027)"},{"line_number":1957,"context_line":""},{"line_number":1958,"context_line":"    def test_get_vnc_console(self):"},{"line_number":1959,"context_line":"        uuid \u003d self._post_server()"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUH%2F%2FEhw%3D","line":1956,"in_reply_to":"AAAAUH%2F%2FM%2F4%3D","updated":"2014-01-17 18:31:15.000000000","message":"I added it here for symmetry with the vnc and spice cases (previous 2 lines).","commit_id":"9894526dfa2a17d7fdfa7579e30af16881e4d0dd"}],"nova/virt/driver.py":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"875209e85f67c9123076c505f1cbfe6a0b301f6f","unresolved":false,"context_lines":[{"line_number":365,"context_line":"        raise NotImplementedError()"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"    def get_rdp_console(self, instance):"},{"line_number":368,"context_line":"        # TODO(Vek): Need to pass context in for access to auth_token"},{"line_number":369,"context_line":"        raise NotImplementedError()"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"    def get_diagnostics(self, instance):"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUH%2F%2FNKQ%3D","line":368,"updated":"2014-01-16 12:04:33.000000000","message":"We just went to the trouble of fixing this TODO item for vnc + spice by adding the context parameter throughout. Please do the same here. Also API docs are expected as per the vnc/spice methods.","commit_id":"56b254f5a08f639da8e3d1aa7c6859eebd2a371e"},{"author":{"_account_id":3185,"name":"Alessandro Pilotti","email":"apilotti@cloudbasesolutions.com","username":"alexpilotti"},"change_message_id":"1f345609e213565ec9435ef1068fea11ecae6b19","unresolved":false,"context_lines":[{"line_number":365,"context_line":"        raise NotImplementedError()"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"    def get_rdp_console(self, instance):"},{"line_number":368,"context_line":"        # TODO(Vek): Need to pass context in for access to auth_token"},{"line_number":369,"context_line":"        raise NotImplementedError()"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"    def get_diagnostics(self, instance):"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUH%2F%2FNDg%3D","line":368,"in_reply_to":"AAAAUH%2F%2FNKQ%3D","updated":"2014-01-16 12:43:26.000000000","message":"Done","commit_id":"56b254f5a08f639da8e3d1aa7c6859eebd2a371e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"0021ba49886625d0bbe3dfd1284d8fccf15db40a","unresolved":false,"context_lines":[{"line_number":364,"context_line":"        \"\"\""},{"line_number":365,"context_line":"        raise NotImplementedError()"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"    def get_rdp_console(self, context, instance):"},{"line_number":368,"context_line":"        raise NotImplementedError()"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"    def get_diagnostics(self, instance):"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUH%2F%2FM%2Fo%3D","line":367,"updated":"2014-01-16 13:00:39.000000000","message":"A comment explaining would be a nice addition","commit_id":"9894526dfa2a17d7fdfa7579e30af16881e4d0dd"},{"author":{"_account_id":3185,"name":"Alessandro Pilotti","email":"apilotti@cloudbasesolutions.com","username":"alexpilotti"},"change_message_id":"5b8cfabe622794a7c969becbbbfbed6e4b195c09","unresolved":false,"context_lines":[{"line_number":364,"context_line":"        \"\"\""},{"line_number":365,"context_line":"        raise NotImplementedError()"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"    def get_rdp_console(self, context, instance):"},{"line_number":368,"context_line":"        raise NotImplementedError()"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"    def get_diagnostics(self, instance):"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUH%2F%2FEh4%3D","line":367,"in_reply_to":"AAAAUH%2F%2FM%2Fo%3D","updated":"2014-01-17 18:31:15.000000000","message":"Done","commit_id":"9894526dfa2a17d7fdfa7579e30af16881e4d0dd"}]}
