)]}'
{"specs/approved/services-api.rst":[{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"7f89e644c82a08acf07ca0a14684010bb19a5141","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Service API"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/ironic/+spec/services-api"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec propose to add new API for service management."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a7e1126_5cf757d3","line":11,"updated":"2015-12-17 11:53:33.000000000","message":"Hi Anton, when/if you\u0027re going to update this, please use an RFE bug 1526759 instead of this blueprint to track progress.","commit_id":"5b88e389bc96cf9267e46ac0784439c279db7bd4"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"920ad49162f93b60f257218e295c6baca859a2a4","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Proper operation depends on up-to-date information about the availability of"},{"line_number":20,"context_line":"the services running. In environment with more then one conductor, it\u0027s useful"},{"line_number":21,"context_line":"to have such information. Currently there are no quick way to get all Ironic\u0027s"},{"line_number":22,"context_line":"services and their status, also it would be nice to have enable/disable service"},{"line_number":23,"context_line":"feature for maintenance purposes. So this spec proposes to add new API."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da85f559_01209f9a","line":22,"updated":"2015-11-08 23:27:27.000000000","message":"FYI, GET /v1/drivers returns enough information to decide which conductors are active and which drivers they support.","commit_id":"5b88e389bc96cf9267e46ac0784439c279db7bd4"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"920ad49162f93b60f257218e295c6baca859a2a4","unresolved":false,"context_lines":[{"line_number":28,"context_line":"- This change propose to add new api extensions for new cmd:"},{"line_number":29,"context_line":"  * /services"},{"line_number":30,"context_line":"  * /services/enable"},{"line_number":31,"context_line":"  * /services/disable"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"- Add new ``disabled`` and ``disabled_reason`` db fields;"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"da85f559_2125a3aa","line":31,"updated":"2015-11-08 23:27:27.000000000","message":"I still don\u0027t understand why that\u0027s useful.","commit_id":"5b88e389bc96cf9267e46ac0784439c279db7bd4"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"8bff925a05b2d9a23239ea942b3c1d232fc1dd78","unresolved":false,"context_lines":[{"line_number":28,"context_line":"- This change propose to add new api extensions for new cmd:"},{"line_number":29,"context_line":"  * /services"},{"line_number":30,"context_line":"  * /services/enable"},{"line_number":31,"context_line":"  * /services/disable"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"- Add new ``disabled`` and ``disabled_reason`` db fields;"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a2ca52d_1b823a01","line":31,"updated":"2015-10-14 02:01:51.000000000","message":"What would the conductor service do while disabled? If it isn\u0027t managing any nodes, it\u0027s just idling.\n\nThat is to say - what\u0027s useful about having an API to enable or disable a conductor, as opposed to just starting or stopping the service?","commit_id":"5b88e389bc96cf9267e46ac0784439c279db7bd4"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"af24dd466de3a9e0c6f41bd0003e04d158668b8f","unresolved":false,"context_lines":[{"line_number":28,"context_line":"- This change propose to add new api extensions for new cmd:"},{"line_number":29,"context_line":"  * /services"},{"line_number":30,"context_line":"  * /services/enable"},{"line_number":31,"context_line":"  * /services/disable"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"- Add new ``disabled`` and ``disabled_reason`` db fields;"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a2ca52d_a44ce7c8","line":31,"in_reply_to":"5a2ca52d_1b823a01","updated":"2015-10-15 18:19:39.000000000","message":"Conductor wouldn\u0027t manage any nodes and it nodes need to be taken over, I\u0027d say it would be more \u0027right\u0027 way to stop conductors, e.g. it will inform operator that there aren\u0027t any appropriate conductors that can take over node if it is, and so on.","commit_id":"5b88e389bc96cf9267e46ac0784439c279db7bd4"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"08612134d023d3a37cf589467b0ad3f1068f107f","unresolved":false,"context_lines":[{"line_number":28,"context_line":"- This change propose to add new api extensions for new cmd:"},{"line_number":29,"context_line":"  * /services"},{"line_number":30,"context_line":"  * /services/enable"},{"line_number":31,"context_line":"  * /services/disable"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"- Add new ``disabled`` and ``disabled_reason`` db fields;"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba8a016a_59e4130c","line":31,"in_reply_to":"da85f559_2125a3aa","updated":"2015-11-17 21:33:53.000000000","message":"Is the intent that calling \"disable\" for a conductor would be the equivalent of a drain-fail in a load balancer?","commit_id":"5b88e389bc96cf9267e46ac0784439c279db7bd4"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"6b1cf5ab1c697547536d198ff993a53b126ecf20","unresolved":false,"context_lines":[{"line_number":30,"context_line":"  * /services/enable"},{"line_number":31,"context_line":"  * /services/disable"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"- Add new ``disabled`` and ``disabled_reason`` db fields;"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"- To enable/disable functionality HashRing will be changed to get the list of"},{"line_number":36,"context_line":"  hosts mapped onto driver, except disabled;"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_595955fd","line":33,"updated":"2015-10-07 17:15:59.000000000","message":"Are nodes going to be took over while conductor is disabled?","commit_id":"5b88e389bc96cf9267e46ac0784439c279db7bd4"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"13bd1547e3d94af7b1e0d03ab4a119d70fcb8dd6","unresolved":false,"context_lines":[{"line_number":30,"context_line":"  * /services/enable"},{"line_number":31,"context_line":"  * /services/disable"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"- Add new ``disabled`` and ``disabled_reason`` db fields;"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"- To enable/disable functionality HashRing will be changed to get the list of"},{"line_number":36,"context_line":"  hosts mapped onto driver, except disabled;"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_2a0f2e38","line":33,"in_reply_to":"7a2fa921_595955fd","updated":"2015-10-08 14:12:07.000000000","message":"mapped to conductor nodes need to be taken over, I\u0027ll add this to spec","commit_id":"5b88e389bc96cf9267e46ac0784439c279db7bd4"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"6b1cf5ab1c697547536d198ff993a53b126ecf20","unresolved":false,"context_lines":[{"line_number":63,"context_line":"be added:"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"disabled \u003d Column(Boolean, default\u003dFalse)"},{"line_number":66,"context_line":"disabled_reason \u003d Column(String(255))"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"+----------------+--------------+------+-----+---------+----------------+"},{"line_number":69,"context_line":"| Field          | Type         | Null | Key | Default | Extra          |"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_d678d2f4","line":66,"updated":"2015-10-07 17:15:59.000000000","message":"Might be better to just use Text.","commit_id":"5b88e389bc96cf9267e46ac0784439c279db7bd4"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"13bd1547e3d94af7b1e0d03ab4a119d70fcb8dd6","unresolved":false,"context_lines":[{"line_number":63,"context_line":"be added:"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"disabled \u003d Column(Boolean, default\u003dFalse)"},{"line_number":66,"context_line":"disabled_reason \u003d Column(String(255))"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"+----------------+--------------+------+-----+---------+----------------+"},{"line_number":69,"context_line":"| Field          | Type         | Null | Key | Default | Extra          |"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_0051f1d7","line":66,"in_reply_to":"7a2fa921_d678d2f4","updated":"2015-10-08 14:12:07.000000000","message":"if we don\u0027t want to limit reason size, we can use Text, not sure about this.","commit_id":"5b88e389bc96cf9267e46ac0784439c279db7bd4"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"8bff925a05b2d9a23239ea942b3c1d232fc1dd78","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"New API endpoints would be added:"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  * /services - list all services;"},{"line_number":93,"context_line":"  * /services/enable - enable service;"},{"line_number":94,"context_line":"  * /services/disable - disable service;"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a2ca52d_7b948e36","line":92,"updated":"2015-10-14 02:01:51.000000000","message":"What does this response look like?","commit_id":"5b88e389bc96cf9267e46ac0784439c279db7bd4"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"af24dd466de3a9e0c6f41bd0003e04d158668b8f","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"New API endpoints would be added:"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  * /services - list all services;"},{"line_number":93,"context_line":"  * /services/enable - enable service;"},{"line_number":94,"context_line":"  * /services/disable - disable service;"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a2ca52d_a4e387a3","line":92,"in_reply_to":"5a2ca52d_7b948e36","updated":"2015-10-15 18:19:39.000000000","message":"I\u0027ll add","commit_id":"5b88e389bc96cf9267e46ac0784439c279db7bd4"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"8bff925a05b2d9a23239ea942b3c1d232fc1dd78","unresolved":false,"context_lines":[{"line_number":90,"context_line":"New API endpoints would be added:"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  * /services - list all services;"},{"line_number":93,"context_line":"  * /services/enable - enable service;"},{"line_number":94,"context_line":"  * /services/disable - disable service;"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Client (CLI) impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a2ca52d_1b99da6e","line":93,"updated":"2015-10-14 02:01:51.000000000","message":"What does this request body look like?","commit_id":"5b88e389bc96cf9267e46ac0784439c279db7bd4"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"8bff925a05b2d9a23239ea942b3c1d232fc1dd78","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  * /services - list all services;"},{"line_number":93,"context_line":"  * /services/enable - enable service;"},{"line_number":94,"context_line":"  * /services/disable - disable service;"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Client (CLI) impact"},{"line_number":97,"context_line":"-------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a2ca52d_bbaa266f","line":94,"updated":"2015-10-14 02:01:51.000000000","message":"What does this request body look like?","commit_id":"5b88e389bc96cf9267e46ac0784439c279db7bd4"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"8bff925a05b2d9a23239ea942b3c1d232fc1dd78","unresolved":false,"context_lines":[{"line_number":100,"context_line":"  Usage:"},{"line_number":101,"context_line":"    ironic service-list"},{"line_number":102,"context_line":"    ironic service-enable \u003cid\u003e"},{"line_number":103,"context_line":"    ironic service-disable \u003cid\u003e [-r reason]"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"RPC API impact"},{"line_number":106,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a2ca52d_7bbb2ec5","line":103,"updated":"2015-10-14 02:01:51.000000000","message":"s/id/hostname/ ?","commit_id":"5b88e389bc96cf9267e46ac0784439c279db7bd4"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"af24dd466de3a9e0c6f41bd0003e04d158668b8f","unresolved":false,"context_lines":[{"line_number":100,"context_line":"  Usage:"},{"line_number":101,"context_line":"    ironic service-list"},{"line_number":102,"context_line":"    ironic service-enable \u003cid\u003e"},{"line_number":103,"context_line":"    ironic service-disable \u003cid\u003e [-r reason]"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"RPC API impact"},{"line_number":106,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a2ca52d_24e697b0","line":103,"in_reply_to":"5a2ca52d_7bbb2ec5","updated":"2015-10-15 18:19:39.000000000","message":"sure","commit_id":"5b88e389bc96cf9267e46ac0784439c279db7bd4"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"8bff925a05b2d9a23239ea942b3c1d232fc1dd78","unresolved":false,"context_lines":[{"line_number":105,"context_line":"RPC API impact"},{"line_number":106,"context_line":"--------------"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"None"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Driver API impact"},{"line_number":111,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a2ca52d_1bb0fadc","line":108,"updated":"2015-10-14 02:01:51.000000000","message":"Surely the request to enable/disable will need to be dispatched over RPC.","commit_id":"5b88e389bc96cf9267e46ac0784439c279db7bd4"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"af24dd466de3a9e0c6f41bd0003e04d158668b8f","unresolved":false,"context_lines":[{"line_number":105,"context_line":"RPC API impact"},{"line_number":106,"context_line":"--------------"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"None"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Driver API impact"},{"line_number":111,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a2ca52d_04027b3d","line":108,"in_reply_to":"5a2ca52d_1bb0fadc","updated":"2015-10-15 18:19:39.000000000","message":"Will add","commit_id":"5b88e389bc96cf9267e46ac0784439c279db7bd4"}]}
