)]}'
{"doc/source/webapi/v1.rst":[{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"3de294d2fc6e8d4c57a811411072efde453d04b2","unresolved":false,"context_lines":[{"line_number":5,"context_line":"API Versioning"},{"line_number":6,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"Starting with Kilo release ironic supports versioning of API. Version is"},{"line_number":9,"context_line":"defined as string of 2 integers separated by a dot: **X.Y**. Here ``X`` is a"},{"line_number":10,"context_line":"major version, always equal to ``1`` at the moment of writing, ``Y`` is"},{"line_number":11,"context_line":"a minor version. Server minor version gets increased every time a feature is"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_317bd6f6","line":8,"updated":"2015-07-29 13:48:02.000000000","message":"Nit: the Kilo release","commit_id":"fc1d09425a23c16411a9298a4995883ae67560d7"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"3de294d2fc6e8d4c57a811411072efde453d04b2","unresolved":false,"context_lines":[{"line_number":9,"context_line":"defined as string of 2 integers separated by a dot: **X.Y**. Here ``X`` is a"},{"line_number":10,"context_line":"major version, always equal to ``1`` at the moment of writing, ``Y`` is"},{"line_number":11,"context_line":"a minor version. Server minor version gets increased every time a feature is"},{"line_number":12,"context_line":"added that is directly exposed in the API (note `Exceptions from Versioning`_)."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Server indicates its minimum and maximum supported API versions in the"},{"line_number":15,"context_line":"``X-OpenStack-Ironic-API-Minimum-Version`` and"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_b1604602","line":12,"updated":"2015-07-29 13:48:02.000000000","message":"I would reword this to \"minor version is increased every time the API behavior is changed (note ...)\"","commit_id":"fc1d09425a23c16411a9298a4995883ae67560d7"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"3de294d2fc6e8d4c57a811411072efde453d04b2","unresolved":false,"context_lines":[{"line_number":26,"context_line":"of API. However, a special value ``latest`` can be requested instead, which"},{"line_number":27,"context_line":"always requests the newest supported API version."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"API Versions History"},{"line_number":30,"context_line":"--------------------"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"**1.11** (breaking change)"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_dce4090e","line":29,"updated":"2015-07-29 13:48:02.000000000","message":"So, I do like this section, however I think we should be more verbose for user documentation. However, we could write those in a follow-up patch.\n\nFor example, I would re-write 1.11 as:\n\nNewly registered nodes begin in the enroll state by default, instead of available. To get them to the available state, the \u0027manage\u0027 action must first be ran, to verify basic hardware control, then the \u0027provide\u0027 action must be ran, which will clean the node and make it available.","commit_id":"fc1d09425a23c16411a9298a4995883ae67560d7"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"3de294d2fc6e8d4c57a811411072efde453d04b2","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        bc973889: Add sync and async support for passthru methods"},{"line_number":81,"context_line":"        e03f443b: Vendor endpoints to support different HTTP methods"},{"line_number":82,"context_line":"        e69e5309: Make vendor methods discoverable via the Ironic API"},{"line_number":83,"context_line":"        edf532db: Add logic to store the config drive passed by Nova"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    This has been the minimum supported version since versioning was"},{"line_number":86,"context_line":"    introduced."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_dc796930","line":83,"updated":"2015-07-29 13:48:02.000000000","message":"And on this one, users don\u0027t really need commit SHAs, they need to know what actually changed.","commit_id":"fc1d09425a23c16411a9298a4995883ae67560d7"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"3de294d2fc6e8d4c57a811411072efde453d04b2","unresolved":false,"context_lines":[{"line_number":97,"context_line":"The following API-visible things are not covered by the API versioning:"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"* Current node state is always exposed as it is, even if not supported by the"},{"line_number":100,"context_line":"  requested API version, with exception of ``available`` state."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* The whole vendor passthru API."},{"line_number":103,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_5ce239d6","line":100,"updated":"2015-07-29 13:48:02.000000000","message":"with exception of ``available`` state, which is returned in version 1.1 as null.","commit_id":"fc1d09425a23c16411a9298a4995883ae67560d7"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"3de294d2fc6e8d4c57a811411072efde453d04b2","unresolved":false,"context_lines":[{"line_number":99,"context_line":"* Current node state is always exposed as it is, even if not supported by the"},{"line_number":100,"context_line":"  requested API version, with exception of ``available`` state."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* The whole vendor passthru API."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"* Modifications to our free-form JSON attributes: ``properties``,"},{"line_number":105,"context_line":"  ``driver_info``, ``instance_info``, ``driver_internal_info`` fields"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_9c4201aa","line":102,"updated":"2015-07-29 13:48:02.000000000","message":"We should say \"vendor passthru methods\" or something. How the vendor passthru API works at the top level (you can query for methods, etc) *is* versioned.","commit_id":"fc1d09425a23c16411a9298a4995883ae67560d7"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"3de294d2fc6e8d4c57a811411072efde453d04b2","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"* Modifications to our free-form JSON attributes: ``properties``,"},{"line_number":105,"context_line":"  ``driver_info``, ``instance_info``, ``driver_internal_info`` fields"},{"line_number":106,"context_line":"  on a node object; ``extra`` fields on all objects."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Chassis"},{"line_number":109,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_dc6ac919","line":106,"updated":"2015-07-29 13:48:02.000000000","message":"I would say data within these JSON fields is not versioned. How the field is interacted with (it\u0027s returned with the object, you can issue a PATCH request to change it, etc.) should be versioned.","commit_id":"fc1d09425a23c16411a9298a4995883ae67560d7"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"7eaa606ccacf97976a81c2a88e9c1f90bf274204","unresolved":false,"context_lines":[{"line_number":6,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"Starting with the Kilo release ironic supports versioning of API. Version is"},{"line_number":9,"context_line":"defined as string of 2 integers separated by a dot: **X.Y**. Here ``X`` is a"},{"line_number":10,"context_line":"major version, always equal to ``1`` at the moment of writing, ``Y`` is"},{"line_number":11,"context_line":"a minor version. Server minor version is increased every time the API behavior"},{"line_number":12,"context_line":"is changed (note `Exceptions from Versioning`_)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_8fba8570","line":9,"updated":"2015-07-30 15:36:58.000000000","message":"s/string/a string/","commit_id":"989b3e53d10c5993982f8b839e69c8071ceddb84"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"e0e05c7d0bf05ca9921a71b3fce0a789478dc70a","unresolved":false,"context_lines":[{"line_number":10,"context_line":"major version, always equal to ``1`` at the moment of writing, ``Y`` is"},{"line_number":11,"context_line":"a minor version. Server minor version is increased every time the API behavior"},{"line_number":12,"context_line":"is changed (note `Exceptions from Versioning`_)."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Server indicates its minimum and maximum supported API versions in the"},{"line_number":15,"context_line":"``X-OpenStack-Ironic-API-Minimum-Version`` and"},{"line_number":16,"context_line":"``X-OpenStack-Ironic-API-Maximum-Version`` headers returned with every"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_0c661ced","line":13,"updated":"2015-08-03 03:08:50.000000000","message":"Should we have policy documented here about what would require a major version bump?","commit_id":"989b3e53d10c5993982f8b839e69c8071ceddb84"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"7eaa606ccacf97976a81c2a88e9c1f90bf274204","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Server indicates its minimum and maximum supported API versions in the"},{"line_number":15,"context_line":"``X-OpenStack-Ironic-API-Minimum-Version`` and"},{"line_number":16,"context_line":"``X-OpenStack-Ironic-API-Maximum-Version`` headers returned with every"},{"line_number":17,"context_line":"response. Client may request a specific API version by providing"},{"line_number":18,"context_line":"``X-OpenStack-Ironic-API-Version`` header with request."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_4f423d6a","line":16,"updated":"2015-07-30 15:36:58.000000000","message":"nit, s/headers/headers respectively,/","commit_id":"989b3e53d10c5993982f8b839e69c8071ceddb84"},{"author":{"_account_id":5660,"name":"Kurt Taylor","email":"kurt.r.taylor@gmail.com","username":"krtaylor"},"change_message_id":"2a8842c5a61ee72e3446f667111aa7538bc9736a","unresolved":false,"context_lines":[{"line_number":18,"context_line":"``X-OpenStack-Ironic-API-Version`` header with request."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"If no version is requested by the client, minimum supported version - **1.1**,"},{"line_number":21,"context_line":"is assumed. Client is only exposed to those API features that are supported in"},{"line_number":22,"context_line":"the requested (explicitly or implicitly) API version (again note `Exceptions"},{"line_number":23,"context_line":"from Versioning`_, they are not covered by this rule)."},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_f17b9927","line":21,"updated":"2015-08-01 13:20:44.000000000","message":"Client -\u003e The client","commit_id":"989b3e53d10c5993982f8b839e69c8071ceddb84"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"7eaa606ccacf97976a81c2a88e9c1f90bf274204","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"**1.11** (breaking change)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    Newly registered nodes begin in the ``enroll`` state by default, instead of"},{"line_number":35,"context_line":"    ``available``. To get them to the ``available`` state, the ``manage``"},{"line_number":36,"context_line":"    action must first be ran, to verify basic hardware control, then the"},{"line_number":37,"context_line":"    ``provide`` action must be run, which will clean the node and make it"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_3a0fed2f","line":34,"updated":"2015-07-30 15:36:58.000000000","message":"s/state/provision state/","commit_id":"989b3e53d10c5993982f8b839e69c8071ceddb84"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"7eaa606ccacf97976a81c2a88e9c1f90bf274204","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    Newly registered nodes begin in the ``enroll`` state by default, instead of"},{"line_number":35,"context_line":"    ``available``. To get them to the ``available`` state, the ``manage``"},{"line_number":36,"context_line":"    action must first be ran, to verify basic hardware control, then the"},{"line_number":37,"context_line":"    ``provide`` action must be run, which will clean the node and make it"},{"line_number":38,"context_line":"    available."},{"line_number":39,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_5aa3d900","line":36,"updated":"2015-07-30 15:36:58.000000000","message":"s/ran/run/\n\nI\u0027m not sure the reader will understand what \u0027manage action must first be run\u0027 means. Our API is something like set-provision-state to \u003caction\u003e?\n\nHow about something like:\nTo transition a node into the \u0027available\u0027 provision state, these two requests must be made:\n1. set the node\u0027s provision state to \"manage\". This causes ironic to verify basic hardware control.\n2. set the node\u0027s provision state to \"provide\". This causes ironic to perform operations such as cleaning the node and finally make the node available.\n\nI don\u0027t like the terminology \u0027set the node\u0027s provision state to X\u0027, because it isn\u0027t setting it to X, X is the action. But I don\u0027t quite know how to describe it right now.","commit_id":"989b3e53d10c5993982f8b839e69c8071ceddb84"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"7b50781b7c89da08c1292f578af3589aec98cf25","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    Newly registered nodes begin in the ``enroll`` state by default, instead of"},{"line_number":35,"context_line":"    ``available``. To get them to the ``available`` state, the ``manage``"},{"line_number":36,"context_line":"    action must first be ran, to verify basic hardware control, then the"},{"line_number":37,"context_line":"    ``provide`` action must be run, which will clean the node and make it"},{"line_number":38,"context_line":"    available."},{"line_number":39,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a4dcd0f_17bf5efc","line":36,"in_reply_to":"3a50d1a3_5aa3d900","updated":"2015-08-04 10:39:50.000000000","message":"yeah, \"set the node\u0027s provision state to \"manage\" is very misleading, so unless we have another idea, I\u0027ll leave it as it is now.","commit_id":"989b3e53d10c5993982f8b839e69c8071ceddb84"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"e0e05c7d0bf05ca9921a71b3fce0a789478dc70a","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    ``available``. To get them to the ``available`` state, the ``manage``"},{"line_number":36,"context_line":"    action must first be ran, to verify basic hardware control, then the"},{"line_number":37,"context_line":"    ``provide`` action must be run, which will clean the node and make it"},{"line_number":38,"context_line":"    available."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"**1.10**"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_6c824054","line":38,"updated":"2015-08-03 03:08:50.000000000","message":"I agree this could be better described.","commit_id":"989b3e53d10c5993982f8b839e69c8071ceddb84"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"b9abc4fb56defa426fdb15da7c43bad217f51c2e","unresolved":false,"context_lines":[{"line_number":40,"context_line":"**1.10**"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    Logical node names support all RFC 3986 unreserved characters, instead of"},{"line_number":43,"context_line":"    more restrictive requirements used previously."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"**1.9**"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a4dcd0f_b21d5d68","line":43,"updated":"2015-08-04 09:36:31.000000000","message":"\"used previously\" is a bit vague... Perhaps we should say that before the name had to be a hostname or FQDN [1]\n\n[1] https://en.wikipedia.org/wiki/Fully_qualified_domain_name","commit_id":"989b3e53d10c5993982f8b839e69c8071ceddb84"},{"author":{"_account_id":5660,"name":"Kurt Taylor","email":"kurt.r.taylor@gmail.com","username":"krtaylor"},"change_message_id":"2a8842c5a61ee72e3446f667111aa7538bc9736a","unresolved":false,"context_lines":[{"line_number":57,"context_line":"**1.6**"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    Add :ref:`inspection` process: introduce ``inspecting`` and ``inspectfail``"},{"line_number":60,"context_line":"    node states, and ``inspect`` action, that can be used when a node is in"},{"line_number":61,"context_line":"    ``manageable`` state."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"**1.5**"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_519b6d66","line":60,"updated":"2015-08-01 13:20:44.000000000","message":"remove comma after action","commit_id":"989b3e53d10c5993982f8b839e69c8071ceddb84"},{"author":{"_account_id":5660,"name":"Kurt Taylor","email":"kurt.r.taylor@gmail.com","username":"krtaylor"},"change_message_id":"2a8842c5a61ee72e3446f667111aa7538bc9736a","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    Add ``manageable`` state and ``manage`` transition, which can be used to"},{"line_number":71,"context_line":"    move a node to ``manageable`` state from ``available``. In ``manageable``"},{"line_number":72,"context_line":"    state node cannot be deployed on. This is mostly a preparation for future"},{"line_number":73,"context_line":"    inspection and ``enroll`` states."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"**1.3**"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_f1c9595b","line":72,"updated":"2015-08-01 13:20:44.000000000","message":"The node cannot be deployed in ``managable`` state.","commit_id":"989b3e53d10c5993982f8b839e69c8071ceddb84"},{"author":{"_account_id":5660,"name":"Kurt Taylor","email":"kurt.r.taylor@gmail.com","username":"krtaylor"},"change_message_id":"2a8842c5a61ee72e3446f667111aa7538bc9736a","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"**1.1**"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    Initial version when API versioning was introduced. Includes the following"},{"line_number":88,"context_line":"    changes from Kilo release cycle:"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    * Add node ``maintenance_reason`` field and an API endpoint to"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_11cc0560","line":87,"updated":"2015-08-01 13:20:44.000000000","message":"This was the initial...","commit_id":"989b3e53d10c5993982f8b839e69c8071ceddb84"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"292dade29312a663440845ec614dae6766528f08","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"**1.1**"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    This was the initia version when API versioning was introduced."},{"line_number":94,"context_line":"    Includes the following changes from Kilo release cycle:"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    * Add node ``maintenance_reason`` field and an API endpoint to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a4dcd0f_fa797794","line":93,"updated":"2015-08-04 10:46:43.000000000","message":"s/inita/initial","commit_id":"6f19df67138875f31c9dc6b9e3e1a6771dd572e7"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"2f66ca436d626f067d80f3c86541d0e0998ae339","unresolved":false,"context_lines":[{"line_number":2,"context_line":" RESTful Web API (v1)"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"API Versioning"},{"line_number":6,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"Starting with the Kilo release ironic supports versioning of API. Version is"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a4dcd0f_c582a052","line":5,"updated":"2015-08-04 11:14:25.000000000","message":"I think we need to inform that 406 Not Acceptable will be returned if we try to use some feature in higher API version (newer end points, trying to use newer fields in API input, etc) with a lower X-OpenStack-Ironic-API-Version ?","commit_id":"172512a64ad67cbfb41cc88ba7a8eebf76543ca1"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"2f66ca436d626f067d80f3c86541d0e0998ae339","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    Newly registered nodes begin in the ``enroll`` provision state by default,"},{"line_number":38,"context_line":"    instead of ``available``. To get them to the ``available`` state,"},{"line_number":39,"context_line":"    the ``manage`` action must first be ran, to verify basic hardware control."},{"line_number":40,"context_line":"    On success the node moves to ``manageable`` provision state, then the"},{"line_number":41,"context_line":"    ``provide`` action must be run, which will clean the node and"},{"line_number":42,"context_line":"    make it available."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a4dcd0f_05bf28fc","line":39,"updated":"2015-08-04 11:14:25.000000000","message":"s/ran/run. comma is not required i think.","commit_id":"172512a64ad67cbfb41cc88ba7a8eebf76543ca1"}],"ironic/api/controllers/v1/__init__.py":[{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"3de294d2fc6e8d4c57a811411072efde453d04b2","unresolved":false,"context_lines":[{"line_number":65,"context_line":"# v1.8: Add ability to return a subset of resource fields"},{"line_number":66,"context_line":"# v1.9: Add ability to filter nodes by provision state"},{"line_number":67,"context_line":"# v1.10: Logical node names support RFC 3986 unreserved characters"},{"line_number":68,"context_line":"# v1.11: Nodes appear in ENROLL state by default  [breaking change]"},{"line_number":69,"context_line":"MAX_VER_STR \u003d \u00271.11\u0027"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_f1fb2e79","side":"PARENT","line":68,"updated":"2015-07-29 13:48:02.000000000","message":"I think it\u0027s probably useful to keep these here for developer\u0027s sake :)","commit_id":"29dd15092f3263838b06d644f98f3b5543541a2f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"52195de5fb1fff47855372b845f9373248d5dc1f","unresolved":false,"context_lines":[{"line_number":65,"context_line":"# v1.8: Add ability to return a subset of resource fields"},{"line_number":66,"context_line":"# v1.9: Add ability to filter nodes by provision state"},{"line_number":67,"context_line":"# v1.10: Logical node names support RFC 3986 unreserved characters"},{"line_number":68,"context_line":"# v1.11: Nodes appear in ENROLL state by default  [breaking change]"},{"line_number":69,"context_line":"MAX_VER_STR \u003d \u00271.11\u0027"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_77c2ae35","side":"PARENT","line":68,"in_reply_to":"3a50d1a3_f1fb2e79","updated":"2015-07-29 14:03:23.000000000","message":"Dunno, I\u0027m not sure we need it in 2 places, I\u0027m afraid people will forget to update one","commit_id":"29dd15092f3263838b06d644f98f3b5543541a2f"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"7eaa606ccacf97976a81c2a88e9c1f90bf274204","unresolved":false,"context_lines":[{"line_number":46,"context_line":"#             point where we added microversioning are considered backwards-"},{"line_number":47,"context_line":"#             compatible, but are not specifically discoverable at this time."},{"line_number":48,"context_line":"MIN_VER_STR \u003d \u00271.1\u0027"},{"line_number":49,"context_line":"MAX_VER_STR \u003d \u00271.11\u0027"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"MIN_VER \u003d base.Version({base.Version.string: MIN_VER_STR},"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_af98a11c","line":49,"updated":"2015-07-30 15:36:58.000000000","message":"I would still like to have the original comments here.","commit_id":"989b3e53d10c5993982f8b839e69c8071ceddb84"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"5a4fbd5dc3060d0f0c33747467c353f5bf682e78","unresolved":false,"context_lines":[{"line_number":46,"context_line":"#             point where we added microversioning are considered backwards-"},{"line_number":47,"context_line":"#             compatible, but are not specifically discoverable at this time."},{"line_number":48,"context_line":"MIN_VER_STR \u003d \u00271.1\u0027"},{"line_number":49,"context_line":"MAX_VER_STR \u003d \u00271.11\u0027"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"MIN_VER \u003d base.Version({base.Version.string: MIN_VER_STR},"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_3e7e25af","line":49,"in_reply_to":"3a50d1a3_ac3048ea","updated":"2015-08-03 14:05:58.000000000","message":"I\u0027d still prefer to keep the comments here, but with the pointer to the docs I don\u0027t mind so much.","commit_id":"989b3e53d10c5993982f8b839e69c8071ceddb84"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"e0e05c7d0bf05ca9921a71b3fce0a789478dc70a","unresolved":false,"context_lines":[{"line_number":46,"context_line":"#             point where we added microversioning are considered backwards-"},{"line_number":47,"context_line":"#             compatible, but are not specifically discoverable at this time."},{"line_number":48,"context_line":"MIN_VER_STR \u003d \u00271.1\u0027"},{"line_number":49,"context_line":"MAX_VER_STR \u003d \u00271.11\u0027"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"MIN_VER \u003d base.Version({base.Version.string: MIN_VER_STR},"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_ac3048ea","line":49,"in_reply_to":"3a50d1a3_af98a11c","updated":"2015-08-03 03:08:50.000000000","message":"I think it\u0027s better to just refer to the canonical source of version history information as has been proposed above - that way there\u0027s nothing to get out of sync, and there\u0027s still a pointer for developers about the history of the changes.","commit_id":"989b3e53d10c5993982f8b839e69c8071ceddb84"}]}
