)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"2a61cd2f95cd01f271950f416154afd17836874e","unresolved":false,"context_lines":[{"line_number":12,"context_line":"Change it as:"},{"line_number":13,"context_line":"\u0027/os-hypervisors/[hypervisor id]/servers\u0027"},{"line_number":14,"context_line":"And tt will return all the servers on the specific hypervisor."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I6c252372af67eda79f670199deb6592c02603c33"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAPn%2F%2FZV8%3D","line":15,"updated":"2013-07-02 18:54:23.000000000","message":"add DocImpact here","commit_id":"6b03edc51260c09947ff8ee2615ebca1454a6186"}],"nova/api/openstack/compute/plugins/v3/hypervisors.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1a959d0d41cb0a21b580ad23090c01f274e6eb4f","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        server \u003d xmlutil.SubTemplateElement(servers, \u0027server\u0027,"},{"line_number":95,"context_line":"                                            selector\u003d\u0027servers\u0027)"},{"line_number":96,"context_line":"        server.set(\u0027name\u0027)"},{"line_number":97,"context_line":"        server.set(\u0027id\u0027)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        return xmlutil.MasterTemplate(root, 1)"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2F6No%3D","line":97,"updated":"2013-07-09 11:52:56.000000000","message":"I guess this is consistent with the v3 api now, but you should there not being some doc examples and unit tests samples to update? We should add them if they are missing.","commit_id":"c7a73d678754d90a34c8fa146cd1fef352796c14"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"670fd4a956dd6c48c78aef96fb0d0c14a513392d","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        server \u003d xmlutil.SubTemplateElement(servers, \u0027server\u0027,"},{"line_number":95,"context_line":"                                            selector\u003d\u0027servers\u0027)"},{"line_number":96,"context_line":"        server.set(\u0027name\u0027)"},{"line_number":97,"context_line":"        server.set(\u0027id\u0027)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        return xmlutil.MasterTemplate(root, 1)"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2F6Ic%3D","line":97,"in_reply_to":"AAAAP3%2F%2F6No%3D","updated":"2013-07-09 12:25:50.000000000","message":"I agree we need unitests for the XML. The API docs we\u0027ll be working on in H3. Still working out exactly what we\u0027re going to generate, but its likely it will be different than in V2 to better support a more automated system of generating API documentation","commit_id":"c7a73d678754d90a34c8fa146cd1fef352796c14"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"1432be06cc3e956c3354b95ca60fb62a4f5fc1f0","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        server \u003d xmlutil.SubTemplateElement(servers, \u0027server\u0027,"},{"line_number":95,"context_line":"                                            selector\u003d\u0027servers\u0027)"},{"line_number":96,"context_line":"        server.set(\u0027name\u0027)"},{"line_number":97,"context_line":"        server.set(\u0027id\u0027)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        return xmlutil.MasterTemplate(root, 1)"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2F3yQ%3D","line":97,"in_reply_to":"AAAAP3%2F%2F6No%3D","updated":"2013-07-15 07:03:41.000000000","message":"John, I update unit test at \u0027nova/tests/api/openstack/compute/plugins/v3/test_hypervisors.py:540\u0027","commit_id":"c7a73d678754d90a34c8fa146cd1fef352796c14"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1a959d0d41cb0a21b580ad23090c01f274e6eb4f","unresolved":false,"context_lines":[{"line_number":222,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":223,"context_line":"        authorize(context)"},{"line_number":224,"context_line":"        try:"},{"line_number":225,"context_line":"            hypervisor \u003d self.host_api.compute_node_get(context, id)"},{"line_number":226,"context_line":"        except (ValueError, exception.ComputeHostNotFound):"},{"line_number":227,"context_line":"            msg \u003d _(\"Hypervisor with ID \u0027%s\u0027 could not be found.\") % id"},{"line_number":228,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2F6Og%3D","line":225,"updated":"2013-07-09 11:52:56.000000000","message":"Should be compute_node, not hypervisor really (they are different in the XenAPI case).","commit_id":"c7a73d678754d90a34c8fa146cd1fef352796c14"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"1432be06cc3e956c3354b95ca60fb62a4f5fc1f0","unresolved":false,"context_lines":[{"line_number":222,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":223,"context_line":"        authorize(context)"},{"line_number":224,"context_line":"        try:"},{"line_number":225,"context_line":"            hypervisor \u003d self.host_api.compute_node_get(context, id)"},{"line_number":226,"context_line":"        except (ValueError, exception.ComputeHostNotFound):"},{"line_number":227,"context_line":"            msg \u003d _(\"Hypervisor with ID \u0027%s\u0027 could not be found.\") % id"},{"line_number":228,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2FvWY%3D","line":225,"in_reply_to":"AAAAP3%2F%2F6Og%3D","updated":"2013-07-15 07:03:41.000000000","message":"Done","commit_id":"c7a73d678754d90a34c8fa146cd1fef352796c14"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1a959d0d41cb0a21b580ad23090c01f274e6eb4f","unresolved":false,"context_lines":[{"line_number":226,"context_line":"        except (ValueError, exception.ComputeHostNotFound):"},{"line_number":227,"context_line":"            msg \u003d _(\"Hypervisor with ID \u0027%s\u0027 could not be found.\") % id"},{"line_number":228,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":229,"context_line":"        instances \u003d self.host_api.instance_get_all_by_host(context,"},{"line_number":230,"context_line":"            hypervisor[\u0027service\u0027][\u0027host\u0027])"},{"line_number":231,"context_line":"        return dict(hypervisor\u003dself._view_hypervisor(hypervisor, False,"},{"line_number":232,"context_line":"            instances))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2F6OU%3D","line":229,"updated":"2013-07-09 11:52:56.000000000","message":"if the above is hypervisor, maybe this should be servers?","commit_id":"c7a73d678754d90a34c8fa146cd1fef352796c14"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"1432be06cc3e956c3354b95ca60fb62a4f5fc1f0","unresolved":false,"context_lines":[{"line_number":226,"context_line":"        except (ValueError, exception.ComputeHostNotFound):"},{"line_number":227,"context_line":"            msg \u003d _(\"Hypervisor with ID \u0027%s\u0027 could not be found.\") % id"},{"line_number":228,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":229,"context_line":"        instances \u003d self.host_api.instance_get_all_by_host(context,"},{"line_number":230,"context_line":"            hypervisor[\u0027service\u0027][\u0027host\u0027])"},{"line_number":231,"context_line":"        return dict(hypervisor\u003dself._view_hypervisor(hypervisor, False,"},{"line_number":232,"context_line":"            instances))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2FvWU%3D","line":229,"in_reply_to":"AAAAP3%2F%2F6OU%3D","updated":"2013-07-15 07:03:41.000000000","message":"I back to use \u0027compute_node\u0027","commit_id":"c7a73d678754d90a34c8fa146cd1fef352796c14"}]}
