)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"e679f0d52b588878dba2aaac69eefb9423740b81","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Update the api-ref documentation for Drivers"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This updates the API documentation for the Ports resource class,"},{"line_number":10,"context_line":"replacing many of the samples and adding more verbiage to each property."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"It\u0027s not perfect, but this is vastly more correct than the current docs."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"dab17558_a20d2339","line":9,"updated":"2016-05-09 17:40:37.000000000","message":"done","commit_id":"f453c07ba7d1c66465dd9e87c06ddaa8e27e89b4"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"1a46524bc9634af76a14194c4da352d4e6d56ea0","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Update the api-ref documentation for Drivers"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This updates the API documentation for the Ports resource class,"},{"line_number":10,"context_line":"replacing many of the samples and adding more verbiage to each property."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"It\u0027s not perfect, but this is vastly more correct than the current docs."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"dab17558_40e8cae2","line":9,"range":{"start_line":9,"start_character":43,"end_line":9,"end_character":48},"updated":"2016-05-09 07:17:17.000000000","message":"s/Ports/Drivers","commit_id":"f453c07ba7d1c66465dd9e87c06ddaa8e27e89b4"}],"api-ref/source/baremetal-api-v1-driver-passthru.inc":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"53aaf82008a8387cbee1631570a409de1991bf71","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Each driver MAY support vendor-specific extensions, called \"passthru\" methods."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Internally, Ironic\u0027s driver API supports flexibly exposing functions via the"},{"line_number":10,"context_line":"common HTTP methods GET, PUT, POST, and DELETE. To call a passthru method,"},{"line_number":11,"context_line":"the query string must contain the name of the method, eg."},{"line_number":12,"context_line":"``/vendor_passthru?method\u003dlookup``. The contents of the HTTP request are"}],"source_content_type":"text/x-c++src","patch_set":4,"id":"9abb7d3a_d86f7dc3","line":9,"updated":"2016-05-30 18:41:17.000000000","message":"I thought we weren\u0027t supposed to use \u0027ironic\u0027 in user-facing documentation, but it isn\u0027t apparent if this is still true. The only thing I could easily find was [1], but I see that we are using \u0027Ironic\u0027 all over so if it should be changed, do it in another patch.\n\n[1] http://docs.openstack.org/contributor-guide/writing-style/openstack-components.html","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"7abedb02fb5a35c33d4d980094a309b5552bcae1","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    - driver_name: driver_name"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Response Example"},{"line_number":45,"context_line":"----------------"}],"source_content_type":"text/x-c++src","patch_set":4,"id":"7aa08908_40e713b0","line":42,"updated":"2016-06-07 10:57:20.000000000","message":"ditto","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"169d504d028987fba0e07f570e6e3a431f5fca30","unresolved":false,"context_lines":[{"line_number":45,"context_line":"----------------"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"The response BODY is a dictionary whose keys are a ``method_name``. The value of"},{"line_number":48,"context_line":"each item is itself a dictionary describing how to interact with that method."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":".. literalinclude:: samples/driver-passthru-methods-response.json"},{"line_number":51,"context_line":"   :language: javascript"}],"source_content_type":"text/x-c++src","patch_set":4,"id":"bab6814e_d4709e42","line":48,"updated":"2016-05-26 15:58:33.000000000","message":"I think we should elaborate on the fields there. e.g. I don\u0027t remember what \"attach\" is","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"d9af20d1fefe7dad59894457dede0cacbbf90341","unresolved":false,"context_lines":[{"line_number":45,"context_line":"----------------"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"The response BODY is a dictionary whose keys are a ``method_name``. The value of"},{"line_number":48,"context_line":"each item is itself a dictionary describing how to interact with that method."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":".. literalinclude:: samples/driver-passthru-methods-response.json"},{"line_number":51,"context_line":"   :language: javascript"}],"source_content_type":"text/x-c++src","patch_set":4,"id":"7aa08908_025a254f","line":48,"in_reply_to":"7aa08908_f6a409a7","updated":"2016-06-07 13:59:42.000000000","message":"The args are mentioned in the passthru_description? I suppose we could mention that. (If you feel like it.)","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a8af31ab4ee5c57fff28ae8b0ec0576233c6fdec","unresolved":false,"context_lines":[{"line_number":45,"context_line":"----------------"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"The response BODY is a dictionary whose keys are a ``method_name``. The value of"},{"line_number":48,"context_line":"each item is itself a dictionary describing how to interact with that method."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":".. literalinclude:: samples/driver-passthru-methods-response.json"},{"line_number":51,"context_line":"   :language: javascript"}],"source_content_type":"text/x-c++src","patch_set":4,"id":"7aa08908_f6a409a7","line":48,"in_reply_to":"9abb7d3a_38c5e95a","updated":"2016-06-07 12:00:05.000000000","message":"Yeah, seems like it. The required arguments are just listed in docstring now, but seems we should either add them to description or change the passthru decorators.","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"53aaf82008a8387cbee1631570a409de1991bf71","unresolved":false,"context_lines":[{"line_number":45,"context_line":"----------------"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"The response BODY is a dictionary whose keys are a ``method_name``. The value of"},{"line_number":48,"context_line":"each item is itself a dictionary describing how to interact with that method."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":".. literalinclude:: samples/driver-passthru-methods-response.json"},{"line_number":51,"context_line":"   :language: javascript"}],"source_content_type":"text/x-c++src","patch_set":4,"id":"9abb7d3a_38c5e95a","line":48,"in_reply_to":"bab6814e_d4709e42","updated":"2016-05-30 18:41:17.000000000","message":"It is mentioned above (see line 33). These methods can take arguments, right? How are we conveying that information? via the description?","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"53aaf82008a8387cbee1631570a409de1991bf71","unresolved":false,"context_lines":[{"line_number":54,"context_line":"Call a Method"},{"line_number":55,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":".. rest_method:: METHOD /v1/nodes/{node_ident}/vendor_passthru?method\u003d{method_name}"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"The HTTP METHOD may be one of GET, POST, PUT, DELETE, depending on the driver"},{"line_number":60,"context_line":"and method."}],"source_content_type":"text/x-c++src","patch_set":4,"id":"9abb7d3a_98897529","line":57,"updated":"2016-05-30 18:41:17.000000000","message":"isn\u0027t\u0027 it /v1/drivers/{driver_name}/vendor_passthru?...","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"bfede946d1af2fc4cdc84a4a27c6ed6c28330bd4","unresolved":false,"context_lines":[{"line_number":12,"context_line":"``/vendor_passthru?method\u003dlookup``. The contents of the HTTP request are"},{"line_number":13,"context_line":"forwarded to the driver and validated there."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Ironic\u0027s REST API provides a means to discover these methods, but does not"},{"line_number":16,"context_line":"provide support, testing, or documentation for these endpoints. The Ironic"},{"line_number":17,"context_line":"development team does not guarantee any compatibility within these methods"},{"line_number":18,"context_line":"between releases, though we encourage driver authors to provide documentation"}],"source_content_type":"text/x-c++src","patch_set":6,"id":"7aa08908_625e8977","line":15,"updated":"2016-06-07 14:01:56.000000000","message":"I wish you hadn\u0027t reformatted so many paragraphs, it makes the diffs between revisions harder :-(","commit_id":"6ef803c31901a6df809746a34962bede509ff814"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"77392b06bb92625779c783ea583187c0817b22a8","unresolved":false,"context_lines":[{"line_number":12,"context_line":"``/vendor_passthru?method\u003dlookup``. The contents of the HTTP request are"},{"line_number":13,"context_line":"forwarded to the driver and validated there."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Ironic\u0027s REST API provides a means to discover these methods, but does not"},{"line_number":16,"context_line":"provide support, testing, or documentation for these endpoints. The Ironic"},{"line_number":17,"context_line":"development team does not guarantee any compatibility within these methods"},{"line_number":18,"context_line":"between releases, though we encourage driver authors to provide documentation"}],"source_content_type":"text/x-c++src","patch_set":6,"id":"7aa08908_febcd107","line":15,"in_reply_to":"7aa08908_625e8977","updated":"2016-06-07 15:04:15.000000000","message":"Sorry, wanted to make it \u003c79 columns.","commit_id":"6ef803c31901a6df809746a34962bede509ff814"}],"api-ref/source/baremetal-api-v1-drivers.inc":[{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"e679f0d52b588878dba2aaac69eefb9423740b81","unresolved":false,"context_lines":[{"line_number":194,"context_line":""},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"Show driver vendor methods"},{"line_number":197,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":".. rest_method::  GET /v1/drivers/{driver_name}/vendor_passthru/methods"},{"line_number":200,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":1,"id":"dab17558_c20ae720","side":"PARENT","line":197,"updated":"2016-05-09 17:40:37.000000000","message":"It\u0027s split it into a different file in this review.","commit_id":"d277dc21f536bde45f0f15daae1de6375c0ceb30"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"1a46524bc9634af76a14194c4da352d4e6d56ea0","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":""},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"Show driver vendor methods"},{"line_number":197,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":".. rest_method::  GET /v1/drivers/{driver_name}/vendor_passthru/methods"},{"line_number":200,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":1,"id":"dab17558_c0603a38","side":"PARENT","line":197,"range":{"start_line":196,"start_character":0,"end_line":197,"end_character":26},"updated":"2016-05-09 07:17:17.000000000","message":"Miss this endpoint","commit_id":"d277dc21f536bde45f0f15daae1de6375c0ceb30"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"6e0407665d106a2f28dd93451e4f9fa531c5f973","unresolved":false,"context_lines":[{"line_number":194,"context_line":""},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"Show driver vendor methods"},{"line_number":197,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":".. rest_method::  GET /v1/drivers/{driver_name}/vendor_passthru/methods"},{"line_number":200,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":1,"id":"dab17558_bb01b73a","side":"PARENT","line":197,"in_reply_to":"dab17558_c20ae720","updated":"2016-05-10 07:51:52.000000000","message":"Oh, yeah, you are right.","commit_id":"d277dc21f536bde45f0f15daae1de6375c0ceb30"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"e679f0d52b588878dba2aaac69eefb9423740b81","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Drivers (drivers)"},{"line_number":5,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"A ``driver`` is a a Python class containing all the logic to manage the bare metal"},{"line_number":8,"context_line":"Nodes enrolled within Ironic. A Driver may be loaded within one or more"},{"line_number":9,"context_line":"``ironic-conductor`` services. Each driver contains a pre-determined set of"},{"line_number":10,"context_line":"instantiated interfaces. Each type of interface (eg, \"power\" or \"boot\") perform"}],"source_content_type":"text/x-c++src","patch_set":1,"id":"dab17558_8200df02","line":7,"updated":"2016-05-09 17:40:37.000000000","message":"done","commit_id":"f453c07ba7d1c66465dd9e87c06ddaa8e27e89b4"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"1a46524bc9634af76a14194c4da352d4e6d56ea0","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Drivers (drivers)"},{"line_number":5,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"A ``driver`` is a a Python class containing all the logic to manage the bare metal"},{"line_number":8,"context_line":"Nodes enrolled within Ironic. A Driver may be loaded within one or more"},{"line_number":9,"context_line":"``ironic-conductor`` services. Each driver contains a pre-determined set of"},{"line_number":10,"context_line":"instantiated interfaces. Each type of interface (eg, \"power\" or \"boot\") perform"}],"source_content_type":"text/x-c++src","patch_set":1,"id":"dab17558_60ed0eef","line":7,"range":{"start_line":7,"start_character":16,"end_line":7,"end_character":18},"updated":"2016-05-09 07:17:17.000000000","message":"s/a //","commit_id":"f453c07ba7d1c66465dd9e87c06ddaa8e27e89b4"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"1a46524bc9634af76a14194c4da352d4e6d56ea0","unresolved":false,"context_lines":[{"line_number":82,"context_line":"   - name: driver_name"},{"line_number":83,"context_line":"   - hosts: hosts"},{"line_number":84,"context_line":"   - links: links"},{"line_number":85,"context_line":"   - properties: driver_property_links"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Response Example"},{"line_number":88,"context_line":"----------------"}],"source_content_type":"text/x-c++src","patch_set":1,"id":"dab17558_a02ed6f7","line":85,"range":{"start_line":85,"start_character":5,"end_line":85,"end_character":38},"updated":"2016-05-09 07:17:17.000000000","message":"This was added in API microversion 1.14","commit_id":"f453c07ba7d1c66465dd9e87c06ddaa8e27e89b4"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"e679f0d52b588878dba2aaac69eefb9423740b81","unresolved":false,"context_lines":[{"line_number":82,"context_line":"   - name: driver_name"},{"line_number":83,"context_line":"   - hosts: hosts"},{"line_number":84,"context_line":"   - links: links"},{"line_number":85,"context_line":"   - properties: driver_property_links"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Response Example"},{"line_number":88,"context_line":"----------------"}],"source_content_type":"text/x-c++src","patch_set":1,"id":"dab17558_62033b0e","line":85,"updated":"2016-05-09 17:40:37.000000000","message":"done","commit_id":"f453c07ba7d1c66465dd9e87c06ddaa8e27e89b4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"53aaf82008a8387cbee1631570a409de1991bf71","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Drivers (drivers)"},{"line_number":5,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"A ``driver`` is a Python class containing all the logic to manage the bare metal"},{"line_number":8,"context_line":"Nodes enrolled within Ironic. A Driver may be loaded within one or more"},{"line_number":9,"context_line":"``ironic-conductor`` services. Each driver contains a pre-determined set of"},{"line_number":10,"context_line":"instantiated interfaces. Each type of interface (eg, \"power\" or \"boot\") perform"}],"source_content_type":"text/x-c++src","patch_set":4,"id":"9abb7d3a_781651a8","line":7,"updated":"2016-05-30 18:41:17.000000000","message":"s/driver/Driver/ if it is a class. Well, I guess it depends on what you were thinking of when you put \u0027driver\u0027. What kind of thing is \u0027driver\u0027?\n\nThis is my first time looking at api-ref stuff. What are we using the double back-quotes (``xx``) for? I see it used for driver, ironic-conductor, driver_vendor_passthru, node_uuid.","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a8af31ab4ee5c57fff28ae8b0ec0576233c6fdec","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Drivers (drivers)"},{"line_number":5,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"A ``driver`` is a Python class containing all the logic to manage the bare metal"},{"line_number":8,"context_line":"Nodes enrolled within Ironic. A Driver may be loaded within one or more"},{"line_number":9,"context_line":"``ironic-conductor`` services. Each driver contains a pre-determined set of"},{"line_number":10,"context_line":"instantiated interfaces. Each type of interface (eg, \"power\" or \"boot\") perform"}],"source_content_type":"text/x-c++src","patch_set":4,"id":"7aa08908_fba6b151","line":7,"in_reply_to":"7aa08908_053cfdc6","updated":"2016-06-07 12:00:05.000000000","message":"I tried to distinguish a driver, that is a python object described here, and Driver resource, which is at /v1/drivers.","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"7abedb02fb5a35c33d4d980094a309b5552bcae1","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Drivers (drivers)"},{"line_number":5,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"A ``driver`` is a Python class containing all the logic to manage the bare metal"},{"line_number":8,"context_line":"Nodes enrolled within Ironic. A Driver may be loaded within one or more"},{"line_number":9,"context_line":"``ironic-conductor`` services. Each driver contains a pre-determined set of"},{"line_number":10,"context_line":"instantiated interfaces. Each type of interface (eg, \"power\" or \"boot\") perform"}],"source_content_type":"text/x-c++src","patch_set":4,"id":"7aa08908_053cfdc6","line":7,"in_reply_to":"9abb7d3a_781651a8","updated":"2016-06-07 10:57:20.000000000","message":"It\u0027s just and rst file, the meaning for ```` is the same as there.","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"53aaf82008a8387cbee1631570a409de1991bf71","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"A ``driver`` is a Python class containing all the logic to manage the bare metal"},{"line_number":8,"context_line":"Nodes enrolled within Ironic. A Driver may be loaded within one or more"},{"line_number":9,"context_line":"``ironic-conductor`` services. Each driver contains a pre-determined set of"},{"line_number":10,"context_line":"instantiated interfaces. Each type of interface (eg, \"power\" or \"boot\") perform"},{"line_number":11,"context_line":"a specific hardware function."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":4,"id":"9abb7d3a_d8e93d82","line":9,"updated":"2016-05-30 18:41:17.000000000","message":"here we have \u0027driver\u0027, but the line above it is \u0027Driver\u0027. If they are the same thing, we should be consistent.\n\nThe GET /v1/drivers below returns \u0027hosts\u0027, not conductors. I wonder if it would help to put s/`` services/`` (hosts) services/.","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a8af31ab4ee5c57fff28ae8b0ec0576233c6fdec","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"A ``driver`` is a Python class containing all the logic to manage the bare metal"},{"line_number":8,"context_line":"Nodes enrolled within Ironic. A Driver may be loaded within one or more"},{"line_number":9,"context_line":"``ironic-conductor`` services. Each driver contains a pre-determined set of"},{"line_number":10,"context_line":"instantiated interfaces. Each type of interface (eg, \"power\" or \"boot\") perform"},{"line_number":11,"context_line":"a specific hardware function."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":4,"id":"7aa08908_5861cb38","line":9,"in_reply_to":"9abb7d3a_d8e93d82","updated":"2016-06-07 12:00:05.000000000","message":"I think it\u0027s fine as is, they are actually loaded inside the service. I\u0027ve added a description of what a host is in the api response.","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"53aaf82008a8387cbee1631570a409de1991bf71","unresolved":false,"context_lines":[{"line_number":7,"context_line":"A ``driver`` is a Python class containing all the logic to manage the bare metal"},{"line_number":8,"context_line":"Nodes enrolled within Ironic. A Driver may be loaded within one or more"},{"line_number":9,"context_line":"``ironic-conductor`` services. Each driver contains a pre-determined set of"},{"line_number":10,"context_line":"instantiated interfaces. Each type of interface (eg, \"power\" or \"boot\") perform"},{"line_number":11,"context_line":"a specific hardware function."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The REST API exposes the list of drivers and which ``ironic-conductor`` processes"}],"source_content_type":"text/x-c++src","patch_set":4,"id":"9abb7d3a_b8ec3990","line":10,"updated":"2016-05-30 18:41:17.000000000","message":"s/perform/performs/","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"53aaf82008a8387cbee1631570a409de1991bf71","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The REST API exposes the list of drivers and which ``ironic-conductor`` processes"},{"line_number":14,"context_line":"have loaded that driver. This can be useful for operators to validate their"},{"line_number":15,"context_line":"configuration in a heterogeneous hardware environment. Each conductor may load"},{"line_number":16,"context_line":"one or more drivers, and does not necessarily need to load the same drivers as"},{"line_number":17,"context_line":"another conductor."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":4,"id":"9abb7d3a_d8a01d46","line":15,"updated":"2016-05-30 18:41:17.000000000","message":"maybe s/conductor/ironic-conductor/","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a8af31ab4ee5c57fff28ae8b0ec0576233c6fdec","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The REST API exposes the list of drivers and which ``ironic-conductor`` processes"},{"line_number":14,"context_line":"have loaded that driver. This can be useful for operators to validate their"},{"line_number":15,"context_line":"configuration in a heterogeneous hardware environment. Each conductor may load"},{"line_number":16,"context_line":"one or more drivers, and does not necessarily need to load the same drivers as"},{"line_number":17,"context_line":"another conductor."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":4,"id":"7aa08908_18fe2337","line":15,"in_reply_to":"9abb7d3a_d8a01d46","updated":"2016-06-07 12:00:05.000000000","message":"Added an explanation instead.","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"53aaf82008a8387cbee1631570a409de1991bf71","unresolved":false,"context_lines":[{"line_number":14,"context_line":"have loaded that driver. This can be useful for operators to validate their"},{"line_number":15,"context_line":"configuration in a heterogeneous hardware environment. Each conductor may load"},{"line_number":16,"context_line":"one or more drivers, and does not necessarily need to load the same drivers as"},{"line_number":17,"context_line":"another conductor."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"The REST API also exposes details about each driver, such as what properties"},{"line_number":20,"context_line":"must be supplied to ``driver_info`` for that driver to manage hardware."}],"source_content_type":"text/x-c++src","patch_set":4,"id":"9abb7d3a_b8a3994e","line":17,"updated":"2016-05-30 18:41:17.000000000","message":"maybe s/conductor/ironic-conductor/","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"53aaf82008a8387cbee1631570a409de1991bf71","unresolved":false,"context_lines":[{"line_number":17,"context_line":"another conductor."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"The REST API also exposes details about each driver, such as what properties"},{"line_number":20,"context_line":"must be supplied to ``driver_info`` for that driver to manage hardware."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Lastly, some drivers may expose methods through a ``driver_vendor_passthru``"},{"line_number":23,"context_line":"endpoint, allowing one to interact with the driver directly (ie, without knowing"}],"source_content_type":"text/x-c++src","patch_set":4,"id":"9abb7d3a_b871d9e2","line":20,"updated":"2016-05-30 18:41:17.000000000","message":"a node\u0027s driver_info?","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"53aaf82008a8387cbee1631570a409de1991bf71","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Lastly, some drivers may expose methods through a ``driver_vendor_passthru``"},{"line_number":23,"context_line":"endpoint, allowing one to interact with the driver directly (ie, without knowing"},{"line_number":24,"context_line":"a specific ``node_uuid``). For example, this is used by the \"agent\" drivers"},{"line_number":25,"context_line":"to send a heartbeat."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":4,"id":"9abb7d3a_382cc9aa","line":24,"updated":"2016-05-30 18:41:17.000000000","message":"maybe ... \"without needing the UUID of a node using that driver\" ?","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"7abedb02fb5a35c33d4d980094a309b5552bcae1","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Lastly, some drivers may expose methods through a ``driver_vendor_passthru``"},{"line_number":23,"context_line":"endpoint, allowing one to interact with the driver directly (ie, without knowing"},{"line_number":24,"context_line":"a specific ``node_uuid``). For example, this is used by the \"agent\" drivers"},{"line_number":25,"context_line":"to send a heartbeat."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":4,"id":"7aa08908_e56451e6","line":24,"in_reply_to":"9abb7d3a_382cc9aa","updated":"2016-06-07 10:57:20.000000000","message":"I\u0027d even say node identifier.","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"7abedb02fb5a35c33d4d980094a309b5552bcae1","unresolved":false,"context_lines":[{"line_number":22,"context_line":"Lastly, some drivers may expose methods through a ``driver_vendor_passthru``"},{"line_number":23,"context_line":"endpoint, allowing one to interact with the driver directly (ie, without knowing"},{"line_number":24,"context_line":"a specific ``node_uuid``). For example, this is used by the \"agent\" drivers"},{"line_number":25,"context_line":"to send a heartbeat."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"List drivers"}],"source_content_type":"text/x-c++src","patch_set":4,"id":"7aa08908_05987dbf","line":25,"range":{"start_line":25,"start_character":10,"end_line":25,"end_character":19},"updated":"2016-06-07 10:57:20.000000000","message":"Hmm, it\u0027s lookup that is using driver_passthru.","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"53aaf82008a8387cbee1631570a409de1991bf71","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Shows details for a driver."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"API microversion 1.14 added the ``properties`` response parameter."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Normal response codes: 200"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":4,"id":"9abb7d3a_cc6ea295","line":68,"updated":"2016-05-30 18:41:17.000000000","message":"Should this be mentioned for List Drivers too (line 34).","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"d9af20d1fefe7dad59894457dede0cacbbf90341","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Shows details for a driver."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"API microversion 1.14 added the ``properties`` response parameter."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Normal response codes: 200"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":4,"id":"7aa08908_7810fc01","line":68,"in_reply_to":"7aa08908_2069278c","updated":"2016-06-07 13:59:42.000000000","message":"That makes sense. Where is the parameter description?","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"7abedb02fb5a35c33d4d980094a309b5552bcae1","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Shows details for a driver."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"API microversion 1.14 added the ``properties`` response parameter."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Normal response codes: 200"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":4,"id":"7aa08908_2069278c","line":68,"in_reply_to":"9abb7d3a_cc6ea295","updated":"2016-06-07 10:57:20.000000000","message":"As it is in response, I think it makes more sense to add this to a parameter description rather than here.","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"7abedb02fb5a35c33d4d980094a309b5552bcae1","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"   - driver_name: driver_name"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Response Parameters"},{"line_number":80,"context_line":"-------------------"}],"source_content_type":"text/x-c++src","patch_set":4,"id":"7aa08908_807a9bef","line":77,"updated":"2016-06-07 10:57:20.000000000","message":"The type should be driver_ident, as driver_name is a body parameter.","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"53aaf82008a8387cbee1631570a409de1991bf71","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":".. rest_method::  GET /v1/drivers/{driver_name}/properties"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Show the required and optional parameters that ``driver_name`` expects to be"},{"line_number":102,"context_line":"supplied in the ``driver_info`` field for every Node it manages."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"To check if all required parameters have been supplied to a Node, you should"}],"source_content_type":"text/x-c++src","patch_set":4,"id":"9abb7d3a_4c30f29e","line":101,"updated":"2016-05-30 18:41:17.000000000","message":"Don\u0027t know if we want to be consistent or not with verb tenses. Above (line 66) was \u0027Shows\u0027.","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"7abedb02fb5a35c33d4d980094a309b5552bcae1","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"   - driver_name: driver_name"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Response Example"},{"line_number":117,"context_line":"----------------"}],"source_content_type":"text/x-c++src","patch_set":4,"id":"7aa08908_006fcb2b","line":114,"updated":"2016-06-07 10:57:20.000000000","message":"ditto","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"53aaf82008a8387cbee1631570a409de1991bf71","unresolved":false,"context_lines":[{"line_number":117,"context_line":"----------------"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"The response BODY is a dictionary, but the keys are unique to each driver."},{"line_number":120,"context_line":"The structure of the response is ``property`` : ``description``."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"The following example is returned from the ``agent_ipmitool`` driver."},{"line_number":123,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":4,"id":"9abb7d3a_8c865a11","line":120,"updated":"2016-05-30 18:41:17.000000000","message":"I think of it more as \u003cproperty\u003e : \u003cdescription\u003e. (Don\u0027t know if there\u0027s some sort of syntax we can use for such placeholders.) ``property`` makes me think that the value is \"property\".","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a8af31ab4ee5c57fff28ae8b0ec0576233c6fdec","unresolved":false,"context_lines":[{"line_number":117,"context_line":"----------------"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"The response BODY is a dictionary, but the keys are unique to each driver."},{"line_number":120,"context_line":"The structure of the response is ``property`` : ``description``."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"The following example is returned from the ``agent_ipmitool`` driver."},{"line_number":123,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":4,"id":"7aa08908_db96554b","line":120,"in_reply_to":"9abb7d3a_8c865a11","updated":"2016-06-07 12:00:05.000000000","message":"It renders fine, I\u0027d leave it as is.","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"53aaf82008a8387cbee1631570a409de1991bf71","unresolved":false,"context_lines":[{"line_number":131,"context_line":".. rest_method::  GET /v1/drivers/{driver_name}/raid/logical_disk_properties"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Show the required and optional parameters that ``driver_name`` expects to be"},{"line_number":134,"context_line":"supplied in the ``raid_config`` field, if a RAID configuration change is"},{"line_number":135,"context_line":"requested."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"This resource was added in API microversion 1.12"}],"source_content_type":"text/x-c++src","patch_set":4,"id":"9abb7d3a_4c93d24f","line":134,"updated":"2016-05-30 18:41:17.000000000","message":"in the node\u0027s raid_config field","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"53aaf82008a8387cbee1631570a409de1991bf71","unresolved":false,"context_lines":[{"line_number":134,"context_line":"supplied in the ``raid_config`` field, if a RAID configuration change is"},{"line_number":135,"context_line":"requested."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"This resource was added in API microversion 1.12"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Normal response codes: 200"},{"line_number":140,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":4,"id":"9abb7d3a_8c9dba5b","line":137,"updated":"2016-05-30 18:41:17.000000000","message":"missing period at end.","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"7abedb02fb5a35c33d4d980094a309b5552bcae1","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"   - driver_name: driver_name"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"Response Example"},{"line_number":149,"context_line":"----------------"}],"source_content_type":"text/x-c++src","patch_set":4,"id":"7aa08908_c05b0386","line":146,"updated":"2016-06-07 10:57:20.000000000","message":"ditto","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"53aaf82008a8387cbee1631570a409de1991bf71","unresolved":false,"context_lines":[{"line_number":149,"context_line":"----------------"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"The response BODY is a dictionary, but the keys are unique to each driver."},{"line_number":152,"context_line":"The structure of the response is ``property`` : ``description``."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"The following example is returned from the ``agent_ipmitool`` driver."},{"line_number":155,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":4,"id":"9abb7d3a_ccc6a248","line":152,"updated":"2016-05-30 18:41:17.000000000","message":"Similar comment as above (L120).","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a8af31ab4ee5c57fff28ae8b0ec0576233c6fdec","unresolved":false,"context_lines":[{"line_number":149,"context_line":"----------------"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"The response BODY is a dictionary, but the keys are unique to each driver."},{"line_number":152,"context_line":"The structure of the response is ``property`` : ``description``."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"The following example is returned from the ``agent_ipmitool`` driver."},{"line_number":155,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":4,"id":"7aa08908_fb723148","line":152,"in_reply_to":"9abb7d3a_ccc6a248","updated":"2016-06-07 12:00:05.000000000","message":"ditto","commit_id":"7dbde65b46dc53140a25193827dc7ee0c6fd9a6c"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"bfede946d1af2fc4cdc84a4a27c6ed6c28330bd4","unresolved":false,"context_lines":[{"line_number":14,"context_line":"processes have loaded that driver via the Driver resource (``/v1/drivers``"},{"line_number":15,"context_line":"endpoint). This can be useful for operators to validate their configuration in"},{"line_number":16,"context_line":"a heterogeneous hardware environment. Each conductor (a host running"},{"line_number":17,"context_line":"``ironic-conductor`` process) may load one or more drivers, and does not"},{"line_number":18,"context_line":"necessarily need to load the same drivers as another conductor."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"The REST API also exposes details about each driver, such as what properties"}],"source_content_type":"text/x-c++src","patch_set":6,"id":"7aa08908_156261ad","line":17,"updated":"2016-06-07 14:01:56.000000000","message":"It isn\u0027t the conductor (the host), but the ironic-conductor process that loads the drivers :)","commit_id":"6ef803c31901a6df809746a34962bede509ff814"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"77392b06bb92625779c783ea583187c0817b22a8","unresolved":false,"context_lines":[{"line_number":14,"context_line":"processes have loaded that driver via the Driver resource (``/v1/drivers``"},{"line_number":15,"context_line":"endpoint). This can be useful for operators to validate their configuration in"},{"line_number":16,"context_line":"a heterogeneous hardware environment. Each conductor (a host running"},{"line_number":17,"context_line":"``ironic-conductor`` process) may load one or more drivers, and does not"},{"line_number":18,"context_line":"necessarily need to load the same drivers as another conductor."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"The REST API also exposes details about each driver, such as what properties"}],"source_content_type":"text/x-c++src","patch_set":6,"id":"7aa08908_1e339dac","line":17,"in_reply_to":"7aa08908_156261ad","updated":"2016-06-07 15:04:15.000000000","message":"oh right, it is a wrong place for it.","commit_id":"6ef803c31901a6df809746a34962bede509ff814"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"bfede946d1af2fc4cdc84a4a27c6ed6c28330bd4","unresolved":false,"context_lines":[{"line_number":15,"context_line":"endpoint). This can be useful for operators to validate their configuration in"},{"line_number":16,"context_line":"a heterogeneous hardware environment. Each conductor (a host running"},{"line_number":17,"context_line":"``ironic-conductor`` process) may load one or more drivers, and does not"},{"line_number":18,"context_line":"necessarily need to load the same drivers as another conductor."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"The REST API also exposes details about each driver, such as what properties"},{"line_number":21,"context_line":"must be supplied to a node\u0027s ``driver_info`` for that driver to manage"}],"source_content_type":"text/x-c++src","patch_set":6,"id":"7aa08908_b5e8ade3","line":18,"updated":"2016-06-07 14:01:56.000000000","message":"It is important to distinguish what the ironic-conductor does, vs the host, because one might want to run several ironic-conductors on the same host (eg in separate containers).","commit_id":"6ef803c31901a6df809746a34962bede509ff814"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"77392b06bb92625779c783ea583187c0817b22a8","unresolved":false,"context_lines":[{"line_number":15,"context_line":"endpoint). This can be useful for operators to validate their configuration in"},{"line_number":16,"context_line":"a heterogeneous hardware environment. Each conductor (a host running"},{"line_number":17,"context_line":"``ironic-conductor`` process) may load one or more drivers, and does not"},{"line_number":18,"context_line":"necessarily need to load the same drivers as another conductor."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"The REST API also exposes details about each driver, such as what properties"},{"line_number":21,"context_line":"must be supplied to a node\u0027s ``driver_info`` for that driver to manage"}],"source_content_type":"text/x-c++src","patch_set":6,"id":"7aa08908_7e6bc1f1","line":18,"in_reply_to":"7aa08908_b5e8ade3","updated":"2016-06-07 15:04:15.000000000","message":"Done","commit_id":"6ef803c31901a6df809746a34962bede509ff814"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"bfede946d1af2fc4cdc84a4a27c6ed6c28330bd4","unresolved":false,"context_lines":[{"line_number":25,"context_line":"endpoint, allowing one to interact with the driver directly (i.e., without"},{"line_number":26,"context_line":"knowing a specific node identifier). For example, this is used by the ironic"},{"line_number":27,"context_line":"python agent ramdisk to get the UUID of the node being deployed/cleaned by"},{"line_number":28,"context_line":"using MAC addresses of the node\u0027s network interfaces the agent have discovered."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"List drivers"}],"source_content_type":"text/x-c++src","patch_set":6,"id":"7aa08908_95cdb15f","line":28,"updated":"2016-06-07 14:01:56.000000000","message":"s/the agent have/that the agent has/","commit_id":"6ef803c31901a6df809746a34962bede509ff814"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"77392b06bb92625779c783ea583187c0817b22a8","unresolved":false,"context_lines":[{"line_number":25,"context_line":"endpoint, allowing one to interact with the driver directly (i.e., without"},{"line_number":26,"context_line":"knowing a specific node identifier). For example, this is used by the ironic"},{"line_number":27,"context_line":"python agent ramdisk to get the UUID of the node being deployed/cleaned by"},{"line_number":28,"context_line":"using MAC addresses of the node\u0027s network interfaces the agent have discovered."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"List drivers"}],"source_content_type":"text/x-c++src","patch_set":6,"id":"7aa08908_1e6a7dee","line":28,"in_reply_to":"7aa08908_95cdb15f","updated":"2016-06-07 15:04:15.000000000","message":"Done","commit_id":"6ef803c31901a6df809746a34962bede509ff814"}],"api-ref/source/parameters.yaml":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"bfede946d1af2fc4cdc84a4a27c6ed6c28330bd4","unresolved":false,"context_lines":[{"line_number":428,"context_line":"  type: boolean"},{"line_number":429,"context_line":"passthru_description:"},{"line_number":430,"context_line":"  description: |"},{"line_number":431,"context_line":"    A string shortly describing what the method does."},{"line_number":432,"context_line":"  in: body"},{"line_number":433,"context_line":"  required: true"},{"line_number":434,"context_line":"  type: string"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7aa08908_7545a56e","line":431,"updated":"2016-06-07 14:01:56.000000000","message":"\u0027shortly\u0027 isn\u0027t correct grammatically. Do you mean eg \u0027A short description (string) that describes the method, including any method parameters.\u0027\n\nI don\u0027t even think we need to mention \u0027shortly\u0027. It is a relative term so one person might think it is short and someone else might think it is verbose.","commit_id":"6ef803c31901a6df809746a34962bede509ff814"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"77392b06bb92625779c783ea583187c0817b22a8","unresolved":false,"context_lines":[{"line_number":428,"context_line":"  type: boolean"},{"line_number":429,"context_line":"passthru_description:"},{"line_number":430,"context_line":"  description: |"},{"line_number":431,"context_line":"    A string shortly describing what the method does."},{"line_number":432,"context_line":"  in: body"},{"line_number":433,"context_line":"  required: true"},{"line_number":434,"context_line":"  type: string"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7aa08908_fe7fb1a8","line":431,"in_reply_to":"7aa08908_7545a56e","updated":"2016-06-07 15:04:15.000000000","message":"Done, though right now it\u0027s not the case, we need to fix descriptions.","commit_id":"6ef803c31901a6df809746a34962bede509ff814"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"bfede946d1af2fc4cdc84a4a27c6ed6c28330bd4","unresolved":false,"context_lines":[{"line_number":447,"context_line":"  type: boolean"},{"line_number":448,"context_line":"port_address:"},{"line_number":449,"context_line":"  description: |"},{"line_number":450,"context_line":"    Physical hardware address of this network Port, typically the HW MAC address."},{"line_number":451,"context_line":"  in: body"},{"line_number":452,"context_line":"  required: true"},{"line_number":453,"context_line":"  type: string"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7aa08908_f81eac61","line":450,"updated":"2016-06-07 14:01:56.000000000","message":"HW \u003d hardware, right? Maybe we should spell it out.","commit_id":"6ef803c31901a6df809746a34962bede509ff814"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"77392b06bb92625779c783ea583187c0817b22a8","unresolved":false,"context_lines":[{"line_number":447,"context_line":"  type: boolean"},{"line_number":448,"context_line":"port_address:"},{"line_number":449,"context_line":"  description: |"},{"line_number":450,"context_line":"    Physical hardware address of this network Port, typically the HW MAC address."},{"line_number":451,"context_line":"  in: body"},{"line_number":452,"context_line":"  required: true"},{"line_number":453,"context_line":"  type: string"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7aa08908_3e1ad97d","line":450,"in_reply_to":"7aa08908_f81eac61","updated":"2016-06-07 15:04:15.000000000","message":"I\u0027d rather fix it separately, or in the Port patch if there are more things to fix :)","commit_id":"6ef803c31901a6df809746a34962bede509ff814"}],"api-ref/source/samples/driver-property-response.json":[{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"261303636bf2115e0515ff6c2cb52927e9b23687","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"   \"ipmi_force_boot_device\" : \"Whether Ironic should specify the boot device to the BMC each time the server is turned on, eg. because the BMC is not capable of remembering the selected boot device across power cycles; default value is False. Optional.\","},{"line_number":3,"context_line":"   \"deploy_forces_oob_reboot\" : \"Whether Ironic should force a reboot of the Node via the out-of-band channel after deployment is complete. Provides compatiblity with older deploy ramdisks. Defaults to False. Optional.\","},{"line_number":4,"context_line":"   \"ipmi_target_address\" : \"destination address for bridged request. Required only if ipmi_bridging is set to \\\"single\\\" or \\\"dual\\\".\","},{"line_number":5,"context_line":"   \"image_https_proxy\" : \"URL of a proxy server for HTTPS connections. Optional.\","},{"line_number":6,"context_line":"   \"ipmi_password\" : \"password. Optional.\","}],"source_content_type":"application/json","patch_set":2,"id":"dab17558_4abc37dc","line":3,"range":{"start_line":3,"start_character":149,"end_line":3,"end_character":161},"updated":"2016-05-10 07:50:01.000000000","message":"s/compatiblity/compatibility/","commit_id":"f3aaf559924664f0d2ff23899c95a21f479735b3"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"261303636bf2115e0515ff6c2cb52927e9b23687","unresolved":false,"context_lines":[{"line_number":7,"context_line":"   \"ipmi_bridging\" : \"bridging_type; default is \\\"no\\\". One of \\\"single\\\", \\\"dual\\\", \\\"no\\\". Optional.\","},{"line_number":8,"context_line":"   \"deploy_kernel\" : \"UUID (from Glance) of the deployment kernel. Required.\","},{"line_number":9,"context_line":"   \"ipmi_address\" : \"IP address or hostname of the node. Required.\","},{"line_number":10,"context_line":"   \"image_no_proxy\" : \"A comma-separated list of host names, IP addresses and domain names (with optional :port) that will be excluded from proxying. To denote a doman name, use a dot to prefix the domain name. This value will be ignored if ``image_http_proxy`` and ``image_https_proxy`` are not specified. Optional.\","},{"line_number":11,"context_line":"   \"ipmi_local_address\" : \"local IPMB address for bridged requests. Used only if ipmi_bridging is set to \\\"single\\\" or \\\"dual\\\". Optional.\","},{"line_number":12,"context_line":"   \"ipmi_transit_channel\" : \"transit channel for bridged request. Required only if ipmi_bridging is set to \\\"dual\\\".\","},{"line_number":13,"context_line":"   \"ipmi_transit_address\" : \"transit address for bridged request. Required only if ipmi_bridging is set to \\\"dual\\\".\","}],"source_content_type":"application/json","patch_set":2,"id":"dab17558_6ab77bf5","line":10,"range":{"start_line":10,"start_character":162,"end_line":10,"end_character":167},"updated":"2016-05-10 07:50:01.000000000","message":"s/doman/domain/","commit_id":"f3aaf559924664f0d2ff23899c95a21f479735b3"}]}
