)]}'
{"doc/source/dev/drivers.rst":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"478e8c0185f4c5e7620ce5a0e7a7385daef40e72","unresolved":false,"context_lines":[{"line_number":41,"context_line":"body and simply \"passes it through\" to the relevant driver."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"To get the meta information about all the methods exposed via the"},{"line_number":44,"context_line":"``vendor_passthru`` endpoint you can issue a HTTP GET request at::"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"  GET /v1/nodes/\u003cNode UUID or name\u003e/vendor_passthru/methods"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ad0253b_0ce799e5","line":44,"updated":"2015-04-29 00:31:13.000000000","message":"s/a HTTP/an HTTP/","commit_id":"fe745ff61117f019ffd3bfea8c335712c027f104"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"69c857977e1437da988fbb074d66d4dc8ce08291","unresolved":false,"context_lines":[{"line_number":41,"context_line":"body and simply \"passes it through\" to the relevant driver."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"To get the meta information about all the methods exposed via the"},{"line_number":44,"context_line":"``vendor_passthru`` endpoint you can issue a HTTP GET request at::"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"  GET /v1/nodes/\u003cNode UUID or name\u003e/vendor_passthru/methods"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ad0253b_d66807bd","line":44,"in_reply_to":"5ad0253b_0ce799e5","updated":"2015-04-29 08:35:52.000000000","message":"Done","commit_id":"fe745ff61117f019ffd3bfea8c335712c027f104"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"478e8c0185f4c5e7620ce5a0e7a7385daef40e72","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"  GET /v1/nodes/\u003cNode UUID or name\u003e/vendor_passthru/methods"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"The json returned will contain informations such as: The method\u0027s name,"},{"line_number":49,"context_line":"description, the HTTP methods supported and whether it\u0027s asynchronous"},{"line_number":50,"context_line":"or synchronous."},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ad0253b_8c4969d3","line":48,"updated":"2015-04-29 00:31:13.000000000","message":"s/json/JSON/\n\ns/informations/information/\n\ns/as: The/as the/","commit_id":"fe745ff61117f019ffd3bfea8c335712c027f104"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"69c857977e1437da988fbb074d66d4dc8ce08291","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"  GET /v1/nodes/\u003cNode UUID or name\u003e/vendor_passthru/methods"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"The json returned will contain informations such as: The method\u0027s name,"},{"line_number":49,"context_line":"description, the HTTP methods supported and whether it\u0027s asynchronous"},{"line_number":50,"context_line":"or synchronous."},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ad0253b_96628fd7","line":48,"in_reply_to":"5ad0253b_8c4969d3","updated":"2015-04-29 08:35:52.000000000","message":"Done","commit_id":"fe745ff61117f019ffd3bfea8c335712c027f104"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"478e8c0185f4c5e7620ce5a0e7a7385daef40e72","unresolved":false,"context_lines":[{"line_number":59,"context_line":"While performing the request, a lock is held on the node, and other"},{"line_number":60,"context_line":"requests will be delayed, and may fail with an HTTP 409 (CONFLICT) error."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"This endpoint is exposing a node\u0027s driver directly, and as such, it"},{"line_number":63,"context_line":"is expressly not part of Ironic\u0027s standard REST API. There is only a"},{"line_number":64,"context_line":"single HTTP endpoint exposed, and the semantics of the message BODY"},{"line_number":65,"context_line":"are determined solely by the driver. Ironic makes no guarantees about"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ad0253b_6c4badb1","line":62,"updated":"2015-04-29 00:31:13.000000000","message":"s/is exposing/exposes/","commit_id":"fe745ff61117f019ffd3bfea8c335712c027f104"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"69c857977e1437da988fbb074d66d4dc8ce08291","unresolved":false,"context_lines":[{"line_number":59,"context_line":"While performing the request, a lock is held on the node, and other"},{"line_number":60,"context_line":"requests will be delayed, and may fail with an HTTP 409 (CONFLICT) error."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"This endpoint is exposing a node\u0027s driver directly, and as such, it"},{"line_number":63,"context_line":"is expressly not part of Ironic\u0027s standard REST API. There is only a"},{"line_number":64,"context_line":"single HTTP endpoint exposed, and the semantics of the message BODY"},{"line_number":65,"context_line":"are determined solely by the driver. Ironic makes no guarantees about"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ad0253b_569bd7c9","line":62,"in_reply_to":"5ad0253b_6c4badb1","updated":"2015-04-29 08:35:52.000000000","message":"Done","commit_id":"fe745ff61117f019ffd3bfea8c335712c027f104"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"478e8c0185f4c5e7620ce5a0e7a7385daef40e72","unresolved":false,"context_lines":[{"line_number":64,"context_line":"single HTTP endpoint exposed, and the semantics of the message BODY"},{"line_number":65,"context_line":"are determined solely by the driver. Ironic makes no guarantees about"},{"line_number":66,"context_line":"backwards compatibility; this is solely up to the discretion of each"},{"line_number":67,"context_line":"driver\u0027s author."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Driver Vendor Passthru"},{"line_number":70,"context_line":"----------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ad0253b_373742b2","line":67,"updated":"2015-04-29 00:31:13.000000000","message":"After the \u0027GET /v1/nodes/.../methods\u0027 line, I got confused as to whether the rest was describing the response for the GET request, or the vendor passthru methods.\n\nI would reorganize it similar to what you had originally. Describe the vendor passthru methods. Then at the end, put the \u0027To get the meta information ...\u0027\n\nHere is an example of what I mean: http://paste.openstack.org/show/211027/.","commit_id":"fe745ff61117f019ffd3bfea8c335712c027f104"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"69c857977e1437da988fbb074d66d4dc8ce08291","unresolved":false,"context_lines":[{"line_number":64,"context_line":"single HTTP endpoint exposed, and the semantics of the message BODY"},{"line_number":65,"context_line":"are determined solely by the driver. Ironic makes no guarantees about"},{"line_number":66,"context_line":"backwards compatibility; this is solely up to the discretion of each"},{"line_number":67,"context_line":"driver\u0027s author."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Driver Vendor Passthru"},{"line_number":70,"context_line":"----------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ad0253b_16caffa1","line":67,"in_reply_to":"5ad0253b_373742b2","updated":"2015-04-29 08:35:52.000000000","message":"wow thanks!","commit_id":"fe745ff61117f019ffd3bfea8c335712c027f104"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"478e8c0185f4c5e7620ce5a0e7a7385daef40e72","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Driver Vendor Passthru"},{"line_number":70,"context_line":"----------------------"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Drivers may also implement a similar API for"},{"line_number":73,"context_line":"requests not related to any node at `/v1/drivers/\u003cDriver"},{"line_number":74,"context_line":"name\u003e/vendor_passthru?method\u003d{METHOD}`."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ad0253b_77f25a9c","line":71,"updated":"2015-04-29 00:31:13.000000000","message":"here\u0027s a similar example for this section: http://paste.openstack.org/show/211041/","commit_id":"fe745ff61117f019ffd3bfea8c335712c027f104"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"69c857977e1437da988fbb074d66d4dc8ce08291","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Driver Vendor Passthru"},{"line_number":70,"context_line":"----------------------"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Drivers may also implement a similar API for"},{"line_number":73,"context_line":"requests not related to any node at `/v1/drivers/\u003cDriver"},{"line_number":74,"context_line":"name\u003e/vendor_passthru?method\u003d{METHOD}`."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ad0253b_f6ce63b3","line":71,"in_reply_to":"5ad0253b_77f25a9c","updated":"2015-04-29 08:35:52.000000000","message":"wow thanks!","commit_id":"fe745ff61117f019ffd3bfea8c335712c027f104"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b932945b688ca0b2357083033f5a8e83c5642e6f","unresolved":false,"context_lines":[{"line_number":98,"context_line":"    the ``ironic-conductor process``. This can lead to starvation of the"},{"line_number":99,"context_line":"    threadpool, and a denial of service. Driver authors are encouraged"},{"line_number":100,"context_line":"    to avoid using this endpoint, and, when necessary, make all requests"},{"line_number":101,"context_line":"    to it return as quickly as possible."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Similarly, Ironic makes no guarantees about the semantics of the message BODY"},{"line_number":104,"context_line":"sent to this endpoint.  That is left up to each driver\u0027s author."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ad0253b_17f32675","line":101,"updated":"2015-04-29 00:40:13.000000000","message":"I don\u0027t think this last sentence (\"Driver authors ...\") belongs here if this page is meant for users/operators of Ironic, not developers. \n\nMaybe we should put this (all of it) at [1]\n\n[1] http://docs.openstack.org/developer/ironic/dev/vendor-passthru.html#writing-vendor-methods","commit_id":"fe745ff61117f019ffd3bfea8c335712c027f104"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"69c857977e1437da988fbb074d66d4dc8ce08291","unresolved":false,"context_lines":[{"line_number":98,"context_line":"    the ``ironic-conductor process``. This can lead to starvation of the"},{"line_number":99,"context_line":"    threadpool, and a denial of service. Driver authors are encouraged"},{"line_number":100,"context_line":"    to avoid using this endpoint, and, when necessary, make all requests"},{"line_number":101,"context_line":"    to it return as quickly as possible."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Similarly, Ironic makes no guarantees about the semantics of the message BODY"},{"line_number":104,"context_line":"sent to this endpoint.  That is left up to each driver\u0027s author."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ad0253b_d6dda771","line":101,"in_reply_to":"5ad0253b_17f32675","updated":"2015-04-29 08:35:52.000000000","message":"Good point, I will put this information there","commit_id":"fe745ff61117f019ffd3bfea8c335712c027f104"}],"doc/source/dev/vendor-passthru.rst":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"632a8ab7b57381c04a9a39aac919d8e2e5c6bd0c","unresolved":false,"context_lines":[{"line_number":10,"context_line":"  of the thread pool, resulting in a denial of service. Driver authors"},{"line_number":11,"context_line":"  are encouraged to avoid using this endpoint. If it must be used,"},{"line_number":12,"context_line":"  all requests to this endpoint should return as quickly as possible."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This document is a quick tutorial on writing vendor specific methods to"},{"line_number":15,"context_line":"a driver."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5ad0253b_583c1893","line":13,"updated":"2015-04-29 13:52:48.000000000","message":"Hey, does this apply to async and sync methods? Just async right? For either node or driver vendor passthru methods?\n\nI was initially going to suggest moving it to the bottom of this section (just before the \u0027Writing Vendor Methods\u0027) so that there is more context. But there\u0027s a big warning at the bottom of the page for sync methods. Would it make sense to move this below too?\n\nAlso, wondering if it ought to be reworded. \u0027Driver authors are encouraged to avoid using this endpoint\u0027. What does that mean? Don\u0027t write any vendor passthru methods at all? But if you do, make sure the method is quick?","commit_id":"63d9d9d444f62502aa3a17c83707a28635c03bb2"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"b563730c31d98d52d652aa2f86bf45fb5ee1ad95","unresolved":false,"context_lines":[{"line_number":10,"context_line":"  of the thread pool, resulting in a denial of service. Driver authors"},{"line_number":11,"context_line":"  are encouraged to avoid using this endpoint. If it must be used,"},{"line_number":12,"context_line":"  all requests to this endpoint should return as quickly as possible."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This document is a quick tutorial on writing vendor specific methods to"},{"line_number":15,"context_line":"a driver."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5ad0253b_db1dc210","line":13,"in_reply_to":"5ad0253b_583c1893","updated":"2015-04-29 14:00:16.000000000","message":"Hi Ruby,\n\nYeah perhaps I should rework a bit this note. Yes, it\u0027s only for async methods in both nodes and driver vendor passthru.\n\n+1 moving to the bottom\n\n+1 about rewording that, I think that\u0027s  \"return as quickly as possible\" duplicated with the warning we have at the bottom of this page","commit_id":"63d9d9d444f62502aa3a17c83707a28635c03bb2"}]}
