)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4e82551127e558627fb2cfcdfe321a1aa49395ad","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Shivanand Tendulker \u003cstendulker@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-06-19 13:00:36 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Design spec for firmware settings feature."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ifc580e8ecb814d78ad9b0313357ba7f13ef1c0a3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1ae5cdf2_3a2e3ffb","line":7,"updated":"2014-06-24 09:03:50.000000000","message":"Commit summary should copy the heading of the spec. Commit text should be copied from the first paragraph.","commit_id":"ff3a9bc5cc9cef97beb53870302ae312c6e074f7"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"3465d62c0beb96375f79a821e99b23e4a97fb15b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Shivanand Tendulker \u003cstendulker@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-06-19 13:00:36 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Design spec for firmware settings feature."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ifc580e8ecb814d78ad9b0313357ba7f13ef1c0a3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1ae5cdf2_3eb14a44","line":7,"in_reply_to":"1ae5cdf2_3a2e3ffb","updated":"2014-07-01 07:44:59.000000000","message":"Addressed in patch set 7.","commit_id":"ff3a9bc5cc9cef97beb53870302ae312c6e074f7"}],"specs/juno/firmware_settings_design.rst":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4e82551127e558627fb2cfcdfe321a1aa49395ad","unresolved":false,"context_lines":[{"line_number":49,"context_line":":param kwargs: firmware parameters to be set are passed as path/value pairs."},{"line_number":50,"context_line":" \"\"\""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"def get_supported_boot_modes(self, task):"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"\"\"\" Get supported boot mode on the node. Ex. BIOS, UEFI."},{"line_number":55,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1ae5cdf2_9ad833f2","line":52,"updated":"2014-06-24 09:03:50.000000000","message":"I suspect these changes may overlap with https://review.openstack.org/#/c/94925/4/specs/juno/better-bootloader-options.rst Could you sync with Devananda on this and somehow summarize in the spec?","commit_id":"ff3a9bc5cc9cef97beb53870302ae312c6e074f7"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"3465d62c0beb96375f79a821e99b23e4a97fb15b","unresolved":false,"context_lines":[{"line_number":49,"context_line":":param kwargs: firmware parameters to be set are passed as path/value pairs."},{"line_number":50,"context_line":" \"\"\""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"def get_supported_boot_modes(self, task):"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"\"\"\" Get supported boot mode on the node. Ex. BIOS, UEFI."},{"line_number":55,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1ae5cdf2_be0f1adf","line":52,"in_reply_to":"1ae5cdf2_9ad833f2","updated":"2014-07-01 07:44:59.000000000","message":"Was unable to reach to Devananda in IRC. Will keep trying to get this spec reviewed from him.","commit_id":"ff3a9bc5cc9cef97beb53870302ae312c6e074f7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4e82551127e558627fb2cfcdfe321a1aa49395ad","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Sets network boot mode for a given NIC(s)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"def get_boot_order(self, task):"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"\"\"\" Get boot order of devices. Ex: CDROM, HDD, NETWORK etc."},{"line_number":132,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1ae5cdf2_bafc0f41","line":129,"updated":"2014-06-24 09:03:50.000000000","message":"String was not properly closed before this line","commit_id":"ff3a9bc5cc9cef97beb53870302ae312c6e074f7"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"3465d62c0beb96375f79a821e99b23e4a97fb15b","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Sets network boot mode for a given NIC(s)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"def get_boot_order(self, task):"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"\"\"\" Get boot order of devices. Ex: CDROM, HDD, NETWORK etc."},{"line_number":132,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1ae5cdf2_3efb0abf","line":129,"in_reply_to":"1ae5cdf2_bafc0f41","updated":"2014-07-01 07:44:59.000000000","message":"Addressed in patch set 7.","commit_id":"ff3a9bc5cc9cef97beb53870302ae312c6e074f7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4e82551127e558627fb2cfcdfe321a1aa49395ad","unresolved":false,"context_lines":[{"line_number":247,"context_line":"   }"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"   XML"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"   \u003c firmware_settings\u003e"},{"line_number":253,"context_line":"       \u003citem\u003e"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1ae5cdf2_856538e4","line":250,"updated":"2014-06-24 09:03:50.000000000","message":"IIRC we\u0027re getting rid of XML support. Anyway, no sense in attaching XML example here.","commit_id":"ff3a9bc5cc9cef97beb53870302ae312c6e074f7"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"3465d62c0beb96375f79a821e99b23e4a97fb15b","unresolved":false,"context_lines":[{"line_number":247,"context_line":"   }"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"   XML"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"   \u003c firmware_settings\u003e"},{"line_number":253,"context_line":"       \u003citem\u003e"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1ae5cdf2_7e30329e","line":250,"in_reply_to":"1ae5cdf2_856538e4","updated":"2014-07-01 07:44:59.000000000","message":"Addressed in patch set 7.","commit_id":"ff3a9bc5cc9cef97beb53870302ae312c6e074f7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4e82551127e558627fb2cfcdfe321a1aa49395ad","unresolved":false,"context_lines":[{"line_number":550,"context_line":"On call to any get_* operations, communicates with iLO client python module in"},{"line_number":551,"context_line":"proliantUtils library to get the corresponding firmware setting information of"},{"line_number":552,"context_line":"the baremetal node. similarly for all set_* API driver would initiate the"},{"line_number":553,"context_line":"firmware setting changes through iLO."},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"Dependencies"},{"line_number":556,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1ae5cdf2_65cd8cb7","line":553,"updated":"2014-06-24 09:03:50.000000000","message":"iLO-specific part should be in a separate spec","commit_id":"ff3a9bc5cc9cef97beb53870302ae312c6e074f7"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"3465d62c0beb96375f79a821e99b23e4a97fb15b","unresolved":false,"context_lines":[{"line_number":550,"context_line":"On call to any get_* operations, communicates with iLO client python module in"},{"line_number":551,"context_line":"proliantUtils library to get the corresponding firmware setting information of"},{"line_number":552,"context_line":"the baremetal node. similarly for all set_* API driver would initiate the"},{"line_number":553,"context_line":"firmware setting changes through iLO."},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"Dependencies"},{"line_number":556,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1ae5cdf2_be263a65","line":553,"in_reply_to":"1ae5cdf2_65cd8cb7","updated":"2014-07-01 07:44:59.000000000","message":"Addressed in patch set 7.\nReview Id for ILO specific design spec is https://review.openstack.org/103065","commit_id":"ff3a9bc5cc9cef97beb53870302ae312c6e074f7"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"438581a64b081473b8ae2ebcd3627a6d27394e54","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This proposal adds the ability to get and set the firmware parameters like"},{"line_number":14,"context_line":"(boot order, bood mode, NIC settings etc.) about the baremetal node through"},{"line_number":15,"context_line":"ironic. It proposes to introduce standard APIs to support common firmware"},{"line_number":16,"context_line":"settings this functionality as many vendors would have similar needs to update"},{"line_number":17,"context_line":"the firmware settings for the baremetal node."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_acf8ca4a","line":15,"updated":"2014-06-27 15:17:27.000000000","message":"what protocol will be used, will this require a ipmi, iLo, or Drac interface. can this be tested with the ssh driver?","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This proposal adds the ability to get and set the firmware parameters like"},{"line_number":14,"context_line":"(boot order, bood mode, NIC settings etc.) about the baremetal node through"},{"line_number":15,"context_line":"ironic. It proposes to introduce standard APIs to support common firmware"},{"line_number":16,"context_line":"settings this functionality as many vendors would have similar needs to update"},{"line_number":17,"context_line":"the firmware settings for the baremetal node."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_c512eb61","line":15,"in_reply_to":"1ae5cdf2_acf8ca4a","updated":"2014-07-01 08:14:14.000000000","message":"It would use individual driver protocols e.g. ipmi, ILO. We should be able to test this with the ssh driver as well.  Virtual Box manager does provide interfaces to configure VM settings.\nHave added this note in spec as well.","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"3f152192e3b93617eac4a6414058cd89d928e0af","unresolved":false,"context_lines":[{"line_number":27,"context_line":"work as follows:"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"1. To support retrieving and updating firmware settings, following new abstract"},{"line_number":30,"context_line":"functions, will be added as part of ManagementInterface."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def get_firmware_settings(self, task,*args):"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_72777e3b","line":30,"updated":"2014-06-27 14:15:32.000000000","message":"Please use this to get it properly formatted:\n\n ...will be added as part of ManagementInterface::\n\n   def get_firmware_settings(self, task,*args):\n\nI.e. and the last sentence with :: and start with one more indent","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":27,"context_line":"work as follows:"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"1. To support retrieving and updating firmware settings, following new abstract"},{"line_number":30,"context_line":"functions, will be added as part of ManagementInterface."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def get_firmware_settings(self, task,*args):"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_401de965","line":30,"in_reply_to":"1ae5cdf2_72777e3b","updated":"2014-07-01 08:14:14.000000000","message":"Addressed in patch set 8.","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"3f152192e3b93617eac4a6414058cd89d928e0af","unresolved":false,"context_lines":[{"line_number":29,"context_line":"1. To support retrieving and updating firmware settings, following new abstract"},{"line_number":30,"context_line":"functions, will be added as part of ManagementInterface."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def get_firmware_settings(self, task,*args):"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"\"\"\" Get the firmware settings of a node."},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_f292ae49","line":32,"updated":"2014-06-27 14:15:32.000000000","message":"nit: space after comma","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":29,"context_line":"1. To support retrieving and updating firmware settings, following new abstract"},{"line_number":30,"context_line":"functions, will be added as part of ManagementInterface."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def get_firmware_settings(self, task,*args):"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"\"\"\" Get the firmware settings of a node."},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_003a11cd","line":32,"in_reply_to":"1ae5cdf2_f292ae49","updated":"2014-07-01 08:14:14.000000000","message":"Addressed in patch set 8.","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"3f152192e3b93617eac4a6414058cd89d928e0af","unresolved":false,"context_lines":[{"line_number":38,"context_line":":param task: a task from TaskManager."},{"line_number":39,"context_line":":param args: list of limited firmware settings to be retrived. [OPTIONAL]"},{"line_number":40,"context_line":":returns: a dict containing firmware setting information. If a setting has"},{"line_number":41,"context_line":"          more than one value, they would be comma separated.  \"\"\""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"def set_firmware_settings(self, task,*args):"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_f2b9cecb","line":41,"updated":"2014-06-27 14:15:32.000000000","message":"1. can we use lists instead of comma-separated values? it would be more pythonic\n\n2. what are possible firmware setting to be retrieved? what are keys in the result?\n\n3. will it be possible to do without following methods, leave only get_firmware_setting and set_firmware_settings? All these [sg]et_boot_*() methods seem too verbose to me","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":38,"context_line":":param task: a task from TaskManager."},{"line_number":39,"context_line":":param args: list of limited firmware settings to be retrived. [OPTIONAL]"},{"line_number":40,"context_line":":returns: a dict containing firmware setting information. If a setting has"},{"line_number":41,"context_line":"          more than one value, they would be comma separated.  \"\"\""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"def set_firmware_settings(self, task,*args):"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_80a1c1ab","line":41,"in_reply_to":"1ae5cdf2_4c83c6ca","updated":"2014-07-01 08:14:14.000000000","message":"Handled as part of patch set 8. Removed all the methods except get_firmware_settings() and set_firmware_settings()","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"89638ce102760539608821aa530ec40498560c77","unresolved":false,"context_lines":[{"line_number":38,"context_line":":param task: a task from TaskManager."},{"line_number":39,"context_line":":param args: list of limited firmware settings to be retrived. [OPTIONAL]"},{"line_number":40,"context_line":":returns: a dict containing firmware setting information. If a setting has"},{"line_number":41,"context_line":"          more than one value, they would be comma separated.  \"\"\""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"def set_firmware_settings(self, task,*args):"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_4c83c6ca","line":41,"in_reply_to":"1ae5cdf2_f2b9cecb","updated":"2014-06-27 15:45:56.000000000","message":"1. Agree\n\n2. This could be a pretty massive list for embedding in a spec, and possibly hardware specific.\n\n3. Agree, as long as get/set_firmware_settings can handle the functionality the boot methods provide.","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":38,"context_line":":param task: a task from TaskManager."},{"line_number":39,"context_line":":param args: list of limited firmware settings to be retrived. [OPTIONAL]"},{"line_number":40,"context_line":":returns: a dict containing firmware setting information. If a setting has"},{"line_number":41,"context_line":"          more than one value, they would be comma separated.  \"\"\""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"def set_firmware_settings(self, task,*args):"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_e05c3d28","line":41,"in_reply_to":"1ae5cdf2_f2b9cecb","updated":"2014-07-01 08:14:14.000000000","message":"Addressed in patch set 8.\n1. It would return as list. Every firmware setting would have list as its values.\n2. It would return all the settings that driver provides. Typically all the boot, network related. The \u0027key\u0027 would be setting name and \u0027value\u0027 would be list .\n3. Removed all the methods except get_firmware_settings() and set_firmware_settings()","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"3f152192e3b93617eac4a6414058cd89d928e0af","unresolved":false,"context_lines":[{"line_number":40,"context_line":":returns: a dict containing firmware setting information. If a setting has"},{"line_number":41,"context_line":"          more than one value, they would be comma separated.  \"\"\""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"def set_firmware_settings(self, task,*args):"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"\"\"\" Changes given firmware settings of a node"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_52a3629d","line":43,"updated":"2014-06-27 14:15:32.000000000","message":"nit: space after comma","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":40,"context_line":":returns: a dict containing firmware setting information. If a setting has"},{"line_number":41,"context_line":"          more than one value, they would be comma separated.  \"\"\""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"def set_firmware_settings(self, task,*args):"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"\"\"\" Changes given firmware settings of a node"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_4076c93f","line":43,"in_reply_to":"1ae5cdf2_52a3629d","updated":"2014-07-01 08:14:14.000000000","message":"Handled as part of patch set 8.","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"3f152192e3b93617eac4a6414058cd89d928e0af","unresolved":false,"context_lines":[{"line_number":48,"context_line":"are passed as path/value pairs."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":":param task: a task from TaskManager."},{"line_number":51,"context_line":":param args: list of patches for firmware parameters to be set."},{"line_number":52,"context_line":" \"\"\""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"def get_supported_boot_modes(self, task):"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_12fb9a7b","line":51,"updated":"2014-06-27 14:15:32.000000000","message":"please expand what you mean by `patch` here","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"438581a64b081473b8ae2ebcd3627a6d27394e54","unresolved":false,"context_lines":[{"line_number":48,"context_line":"are passed as path/value pairs."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":":param task: a task from TaskManager."},{"line_number":51,"context_line":":param args: list of patches for firmware parameters to be set."},{"line_number":52,"context_line":" \"\"\""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"def get_supported_boot_modes(self, task):"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_cc6ef62b","line":51,"updated":"2014-06-27 15:17:27.000000000","message":"what happens if one change in a patch fails. is there a roll back? Will all changes be undone, just the one that failed, or all the changes after the failed change?","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":48,"context_line":"are passed as path/value pairs."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":":param task: a task from TaskManager."},{"line_number":51,"context_line":":param args: list of patches for firmware parameters to be set."},{"line_number":52,"context_line":" \"\"\""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"def get_supported_boot_modes(self, task):"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_a0940538","line":51,"in_reply_to":"1ae5cdf2_12fb9a7b","updated":"2014-07-01 08:14:14.000000000","message":"Handled as part of patch set 8.","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":48,"context_line":"are passed as path/value pairs."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":":param task: a task from TaskManager."},{"line_number":51,"context_line":":param args: list of patches for firmware parameters to be set."},{"line_number":52,"context_line":" \"\"\""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"def get_supported_boot_modes(self, task):"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_60aaed71","line":51,"in_reply_to":"1ae5cdf2_cc6ef62b","updated":"2014-07-01 08:14:14.000000000","message":"Handled as part of patch set 8\nPartial patch would be applied, API would return the status of update for each of the settings being attempted as part of patch.","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"3f152192e3b93617eac4a6414058cd89d928e0af","unresolved":false,"context_lines":[{"line_number":58,"context_line":"Retrieves the supported boot mode on the node. Ex.  BIOS, UEFI."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":":param task: a task from TaskManager."},{"line_number":61,"context_line":":returns: a list containing supported boot mode on the node. \"\"\""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"def get_current_boot_mode(self, task):"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_52f8c27b","line":61,"updated":"2014-06-27 14:15:32.000000000","message":"s/mode/modes/","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":58,"context_line":"Retrieves the supported boot mode on the node. Ex.  BIOS, UEFI."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":":param task: a task from TaskManager."},{"line_number":61,"context_line":":returns: a list containing supported boot mode on the node. \"\"\""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"def get_current_boot_mode(self, task):"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_203c752f","line":61,"in_reply_to":"1ae5cdf2_52f8c27b","updated":"2014-07-01 08:14:14.000000000","message":"Removed this method.","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"3f152192e3b93617eac4a6414058cd89d928e0af","unresolved":false,"context_lines":[{"line_number":75,"context_line":"Ex: UEFI"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Retrieves pending boot mode, which becomes active on next server reboot."},{"line_number":78,"context_line":"Ex: UEFI"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":":param task: a task from TaskManager."},{"line_number":81,"context_line":":returns: a string containing pending boot mode. \"\"\""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_92eecab3","line":78,"updated":"2014-06-27 14:15:32.000000000","message":"these 2 lines are redundant, they just repeat previous two.","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":75,"context_line":"Ex: UEFI"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Retrieves pending boot mode, which becomes active on next server reboot."},{"line_number":78,"context_line":"Ex: UEFI"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":":param task: a task from TaskManager."},{"line_number":81,"context_line":":returns: a string containing pending boot mode. \"\"\""}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_e0119dad","line":78,"in_reply_to":"1ae5cdf2_92eecab3","updated":"2014-07-01 08:14:14.000000000","message":"Removed this method.","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"3f152192e3b93617eac4a6414058cd89d928e0af","unresolved":false,"context_lines":[{"line_number":86,"context_line":"Ex: CDROM"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Retrieves one time boot device, which gets used for next server boot."},{"line_number":89,"context_line":"Ex: CDROM"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":":param task: a task from TaskManager."},{"line_number":92,"context_line":":returns: a string containing one time boot mode. \"\"\""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_f22e2ef9","line":89,"updated":"2014-06-27 14:15:32.000000000","message":"ditto","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":86,"context_line":"Ex: CDROM"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Retrieves one time boot device, which gets used for next server boot."},{"line_number":89,"context_line":"Ex: CDROM"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":":param task: a task from TaskManager."},{"line_number":92,"context_line":":returns: a string containing one time boot mode. \"\"\""}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_a07ec5e2","line":89,"in_reply_to":"1ae5cdf2_f22e2ef9","updated":"2014-07-01 08:14:14.000000000","message":"Removed this method.","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"3f152192e3b93617eac4a6414058cd89d928e0af","unresolved":false,"context_lines":[{"line_number":97,"context_line":"A NIC, if configured,  could be configured for PXE or iSCSI boot."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Retrieves the network boot mode configured for each of NIC(s) on the node."},{"line_number":100,"context_line":"A NIC, if configured,  could be configured for PXE or iSCSI boot."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":":param task: a task from TaskManager."},{"line_number":103,"context_line":":returns: Returns dictionary of NIC boot mode \"\"\""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_1232ba5d","line":100,"updated":"2014-06-27 14:15:32.000000000","message":"ditto","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":97,"context_line":"A NIC, if configured,  could be configured for PXE or iSCSI boot."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Retrieves the network boot mode configured for each of NIC(s) on the node."},{"line_number":100,"context_line":"A NIC, if configured,  could be configured for PXE or iSCSI boot."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":":param task: a task from TaskManager."},{"line_number":103,"context_line":":returns: Returns dictionary of NIC boot mode \"\"\""}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_206ab51a","line":100,"in_reply_to":"1ae5cdf2_1232ba5d","updated":"2014-07-01 08:14:14.000000000","message":"Removed this method.","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"89638ce102760539608821aa530ec40498560c77","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"2. The new module in driver would conform to base.ManagementInterface."},{"line_number":125,"context_line":"On call to any get_* operations, communicates with driver module to get the"},{"line_number":126,"context_line":"corresponding firmware setting information of the baremetal node."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"3. On call of set_firmware_settings - Node is locked to prevent any other"},{"line_number":129,"context_line":"management operation on the node. Arguments are parsed to retrive the"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_cc45169c","line":126,"updated":"2014-06-27 15:45:56.000000000","message":"What new module? Would these methods not just be implemented in existing drivers?","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"2. The new module in driver would conform to base.ManagementInterface."},{"line_number":125,"context_line":"On call to any get_* operations, communicates with driver module to get the"},{"line_number":126,"context_line":"corresponding firmware setting information of the baremetal node."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"3. On call of set_firmware_settings - Node is locked to prevent any other"},{"line_number":129,"context_line":"management operation on the node. Arguments are parsed to retrive the"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_404ec9c2","line":126,"in_reply_to":"1ae5cdf2_cc45169c","updated":"2014-07-01 08:14:14.000000000","message":"My mistake. it would be implemented by existing drivers.","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"89638ce102760539608821aa530ec40498560c77","unresolved":false,"context_lines":[{"line_number":132,"context_line":"of completion from BM, node will be unlocked."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"4. The corresponding changes required to be done to rpc-api and conductor"},{"line_number":135,"context_line":"components to support above said new APIs."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"NOTE: The changes to Firmware setting do not take into effect immediately."},{"line_number":138,"context_line":"One needs to reboot to put into effect new firmware settings. There is already"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_ec9572e4","line":135,"updated":"2014-06-27 15:45:56.000000000","message":"I would also mention the REST API changes in this section.","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":132,"context_line":"of completion from BM, node will be unlocked."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"4. The corresponding changes required to be done to rpc-api and conductor"},{"line_number":135,"context_line":"components to support above said new APIs."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"NOTE: The changes to Firmware setting do not take into effect immediately."},{"line_number":138,"context_line":"One needs to reboot to put into effect new firmware settings. There is already"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_e0ed1d8d","line":135,"in_reply_to":"1ae5cdf2_ec9572e4","updated":"2014-07-01 08:14:14.000000000","message":"Handled as part of patch set 8","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"89638ce102760539608821aa530ec40498560c77","unresolved":false,"context_lines":[{"line_number":137,"context_line":"NOTE: The changes to Firmware setting do not take into effect immediately."},{"line_number":138,"context_line":"One needs to reboot to put into effect new firmware settings. There is already"},{"line_number":139,"context_line":"a standard interface to restart the server, hence no new option to restart is"},{"line_number":140,"context_line":"proposed as part of this feature."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Alternatives"},{"line_number":143,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_6c8962c9","line":140,"updated":"2014-06-27 15:45:56.000000000","message":"I wonder if set_firmware_settings should (optionally) reboot the node when done.","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":137,"context_line":"NOTE: The changes to Firmware setting do not take into effect immediately."},{"line_number":138,"context_line":"One needs to reboot to put into effect new firmware settings. There is already"},{"line_number":139,"context_line":"a standard interface to restart the server, hence no new option to restart is"},{"line_number":140,"context_line":"proposed as part of this feature."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Alternatives"},{"line_number":143,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_a036c501","line":140,"in_reply_to":"1ae5cdf2_6c8962c9","updated":"2014-07-01 08:14:14.000000000","message":"The reason for not providing the reboot option is :-\n1. User may wish to perform multiple tasks during maintenance mode.\n2. Reboot interface is available which could be exercised by user, if required.\n\nDo let me know, if it is required to provide \u0027reboot\u0027 option here.","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"438581a64b081473b8ae2ebcd3627a6d27394e54","unresolved":false,"context_lines":[{"line_number":138,"context_line":"One needs to reboot to put into effect new firmware settings. There is already"},{"line_number":139,"context_line":"a standard interface to restart the server, hence no new option to restart is"},{"line_number":140,"context_line":"proposed as part of this feature."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Alternatives"},{"line_number":143,"context_line":"------------"},{"line_number":144,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_6cf8827c","line":141,"updated":"2014-06-27 15:17:27.000000000","message":"could you add a blurb about when these changes could be made. By this I mean can I change setting on a node with an instance attached, can the power be on or does the node need to be powered on, node should / should not be in maintenance mode, etc....","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":138,"context_line":"One needs to reboot to put into effect new firmware settings. There is already"},{"line_number":139,"context_line":"a standard interface to restart the server, hence no new option to restart is"},{"line_number":140,"context_line":"proposed as part of this feature."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Alternatives"},{"line_number":143,"context_line":"------------"},{"line_number":144,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_8018e185","line":141,"in_reply_to":"1ae5cdf2_6cf8827c","updated":"2014-07-01 08:14:14.000000000","message":"Handled as part of patch set 8","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"89638ce102760539608821aa530ec40498560c77","unresolved":false,"context_lines":[{"line_number":160,"context_line":"   GET /v1/nodes/\u003cuuid\u003e/management/firmware/settings"},{"line_number":161,"context_line":"   List firmware settings of a node."},{"line_number":162,"context_line":"   One can retrieve the fewer firmware settings using the filter."},{"line_number":163,"context_line":"   Ex: /nodes\u003cuuid\u003e/management/firmware/settings/?value\u003dsupported_boot_devices"},{"line_number":164,"context_line":"   ,current_boot_mode"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"   Parameters:"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_8c722ee1","line":163,"updated":"2014-06-27 15:45:56.000000000","message":"nit: /v1/nodes/\u003cuuid\u003e/...","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":160,"context_line":"   GET /v1/nodes/\u003cuuid\u003e/management/firmware/settings"},{"line_number":161,"context_line":"   List firmware settings of a node."},{"line_number":162,"context_line":"   One can retrieve the fewer firmware settings using the filter."},{"line_number":163,"context_line":"   Ex: /nodes\u003cuuid\u003e/management/firmware/settings/?value\u003dsupported_boot_devices"},{"line_number":164,"context_line":"   ,current_boot_mode"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"   Parameters:"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_e017dd4f","line":163,"in_reply_to":"1ae5cdf2_8c722ee1","updated":"2014-07-01 08:14:14.000000000","message":"Handled as part of patch set 8","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"3f152192e3b93617eac4a6414058cd89d928e0af","unresolved":false,"context_lines":[{"line_number":164,"context_line":"   ,current_boot_mode"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"   Parameters:"},{"line_number":167,"context_line":"   node_uuid (uuid) - UUID of a node."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"   Return type:"},{"line_number":170,"context_line":"   FirmwareSettingList"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_f2caae18","line":167,"updated":"2014-06-27 14:15:32.000000000","message":"there\u0027s also `value` parameters, which is not documented (and probably should be called `values` or `keys`)","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":164,"context_line":"   ,current_boot_mode"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"   Parameters:"},{"line_number":167,"context_line":"   node_uuid (uuid) - UUID of a node."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"   Return type:"},{"line_number":170,"context_line":"   FirmwareSettingList"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_7b261ebc","line":167,"in_reply_to":"1ae5cdf2_8c594e5d","updated":"2014-07-01 08:14:14.000000000","message":"Handled as part of patch set 8","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"89638ce102760539608821aa530ec40498560c77","unresolved":false,"context_lines":[{"line_number":164,"context_line":"   ,current_boot_mode"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"   Parameters:"},{"line_number":167,"context_line":"   node_uuid (uuid) - UUID of a node."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"   Return type:"},{"line_number":170,"context_line":"   FirmwareSettingList"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_8c594e5d","line":167,"in_reply_to":"1ae5cdf2_f2caae18","updated":"2014-06-27 15:45:56.000000000","message":"+1, I\u0027d call it `keys` or even `settings`.","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":164,"context_line":"   ,current_boot_mode"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"   Parameters:"},{"line_number":167,"context_line":"   node_uuid (uuid) - UUID of a node."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"   Return type:"},{"line_number":170,"context_line":"   FirmwareSettingList"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_bb09962e","line":167,"in_reply_to":"1ae5cdf2_f2caae18","updated":"2014-07-01 08:14:14.000000000","message":"Handled as part of patch set 8","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"89638ce102760539608821aa530ec40498560c77","unresolved":false,"context_lines":[{"line_number":195,"context_line":""},{"line_number":196,"context_line":"           {"},{"line_number":197,"context_line":"               \"name\": \"current_boot_order\","},{"line_number":198,"context_line":"               \"value\":\"Boot0008, Boot0009, Boot000A, Boot000D\""},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"           },"},{"line_number":201,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_ccfd160b","line":198,"updated":"2014-06-27 15:45:56.000000000","message":"As mentioned above, I think this should be a list e.g. [\u0027Boot0008\u0027, \u0027Boot0009\u0027, \u0027Boot000A\u0027, \u0027Boot000D\u0027]","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":195,"context_line":""},{"line_number":196,"context_line":"           {"},{"line_number":197,"context_line":"               \"name\": \"current_boot_order\","},{"line_number":198,"context_line":"               \"value\":\"Boot0008, Boot0009, Boot000A, Boot000D\""},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"           },"},{"line_number":201,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_fb394ed9","line":198,"in_reply_to":"1ae5cdf2_ccfd160b","updated":"2014-07-01 08:14:14.000000000","message":"Handled as part of patch set 8","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"3f152192e3b93617eac4a6414058cd89d928e0af","unresolved":false,"context_lines":[{"line_number":226,"context_line":"   patch (FirmwareSettingsPatchType)) - a json PATCH document to apply to"},{"line_number":227,"context_line":"   this node."},{"line_number":228,"context_line":"   Return type:"},{"line_number":229,"context_line":"   None"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"   PATCH  /nodes/\u003cnode-id\u003e/management/firmware/settings"},{"line_number":232,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_7284deb0","line":229,"updated":"2014-06-27 14:15:32.000000000","message":"What are possible errors? What to return if driver does not support some value (the same question for underlying driver API btw)","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":226,"context_line":"   patch (FirmwareSettingsPatchType)) - a json PATCH document to apply to"},{"line_number":227,"context_line":"   this node."},{"line_number":228,"context_line":"   Return type:"},{"line_number":229,"context_line":"   None"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"   PATCH  /nodes/\u003cnode-id\u003e/management/firmware/settings"},{"line_number":232,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_fb406e37","line":229,"in_reply_to":"1ae5cdf2_2fa2ecfb","updated":"2014-07-01 08:14:14.000000000","message":"Handled as part of patch set 8","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"89638ce102760539608821aa530ec40498560c77","unresolved":false,"context_lines":[{"line_number":226,"context_line":"   patch (FirmwareSettingsPatchType)) - a json PATCH document to apply to"},{"line_number":227,"context_line":"   this node."},{"line_number":228,"context_line":"   Return type:"},{"line_number":229,"context_line":"   None"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"   PATCH  /nodes/\u003cnode-id\u003e/management/firmware/settings"},{"line_number":232,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_2fa2ecfb","line":229,"in_reply_to":"1ae5cdf2_7284deb0","updated":"2014-06-27 15:45:56.000000000","message":"+1 this is a critical case to cover","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":226,"context_line":"   patch (FirmwareSettingsPatchType)) - a json PATCH document to apply to"},{"line_number":227,"context_line":"   this node."},{"line_number":228,"context_line":"   Return type:"},{"line_number":229,"context_line":"   None"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"   PATCH  /nodes/\u003cnode-id\u003e/management/firmware/settings"},{"line_number":232,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_3b34a6dd","line":229,"in_reply_to":"1ae5cdf2_7284deb0","updated":"2014-07-01 08:14:14.000000000","message":"Handled as part of patch set 8","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"3f152192e3b93617eac4a6414058cd89d928e0af","unresolved":false,"context_lines":[{"line_number":237,"context_line":""},{"line_number":238,"context_line":"   ]"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"5. To get boot modes supported using get_supported_boot_modes()"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"   GET /v1/nodes/\u003cuuid\u003e/management/firmware/settings/supported_boot_modes"},{"line_number":243,"context_line":"   Retrieves the boot modes supported."}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_b2f3c66b","line":240,"updated":"2014-06-27 14:15:32.000000000","message":"This and following endpoints are covered by previous two, having them don\u0027t make any sense to me.","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":237,"context_line":""},{"line_number":238,"context_line":"   ]"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"5. To get boot modes supported using get_supported_boot_modes()"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"   GET /v1/nodes/\u003cuuid\u003e/management/firmware/settings/supported_boot_modes"},{"line_number":243,"context_line":"   Retrieves the boot modes supported."}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_5b5f9a0e","line":240,"in_reply_to":"1ae5cdf2_afba7c08","updated":"2014-07-01 08:14:14.000000000","message":"Handled as part of patch set 8","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"89638ce102760539608821aa530ec40498560c77","unresolved":false,"context_lines":[{"line_number":237,"context_line":""},{"line_number":238,"context_line":"   ]"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"5. To get boot modes supported using get_supported_boot_modes()"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"   GET /v1/nodes/\u003cuuid\u003e/management/firmware/settings/supported_boot_modes"},{"line_number":243,"context_line":"   Retrieves the boot modes supported."}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_afba7c08","line":240,"in_reply_to":"1ae5cdf2_b2f3c66b","updated":"2014-06-27 15:45:56.000000000","message":"Agree","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":237,"context_line":""},{"line_number":238,"context_line":"   ]"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"5. To get boot modes supported using get_supported_boot_modes()"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"   GET /v1/nodes/\u003cuuid\u003e/management/firmware/settings/supported_boot_modes"},{"line_number":243,"context_line":"   Retrieves the boot modes supported."}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_9b793296","line":240,"in_reply_to":"1ae5cdf2_b2f3c66b","updated":"2014-07-01 08:14:14.000000000","message":"Handled as part of patch set 8","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"3f152192e3b93617eac4a6414058cd89d928e0af","unresolved":false,"context_lines":[{"line_number":309,"context_line":""},{"line_number":310,"context_line":"Driver API impact"},{"line_number":311,"context_line":"-----------------"},{"line_number":312,"context_line":"Yes. New abstract interfaces to be added to base.ManagementInterface"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"Nova driver impact"},{"line_number":315,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_129c7a0d","line":312,"updated":"2014-06-27 14:15:32.000000000","message":"What should drivers not supporting these features do?","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":309,"context_line":""},{"line_number":310,"context_line":"Driver API impact"},{"line_number":311,"context_line":"-----------------"},{"line_number":312,"context_line":"Yes. New abstract interfaces to be added to base.ManagementInterface"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"Nova driver impact"},{"line_number":315,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_fbaeaee6","line":312,"in_reply_to":"1ae5cdf2_129c7a0d","updated":"2014-07-01 08:14:14.000000000","message":"Handled as part of patch set 8. The proposed methods in base.ManagementInterface will not be abstract. They would throw UnsupportedDriverExtension for the drivers which do not support these methods.","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"89638ce102760539608821aa530ec40498560c77","unresolved":false,"context_lines":[{"line_number":317,"context_line":""},{"line_number":318,"context_line":"Security impact"},{"line_number":319,"context_line":"---------------"},{"line_number":320,"context_line":"None"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"Other end user impact"},{"line_number":323,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_8f6dc09b","line":320,"updated":"2014-06-27 15:45:56.000000000","message":"I think there are definitely security implications to having an API to get/set bios settings.\n\nAlso need to think about BIOS passwords, if they are used, how to store, etc.","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":317,"context_line":""},{"line_number":318,"context_line":"Security impact"},{"line_number":319,"context_line":"---------------"},{"line_number":320,"context_line":"None"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"Other end user impact"},{"line_number":323,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_9b63f2b0","line":320,"in_reply_to":"1ae5cdf2_8f6dc09b","updated":"2014-07-01 08:14:14.000000000","message":"None of the firmware settings are getting stored into DB. All the communication over https. Can you elaborate on the security concern here, Will try to get more information from you over IRC on this.","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"3f152192e3b93617eac4a6414058cd89d928e0af","unresolved":false,"context_lines":[{"line_number":323,"context_line":"---------------------"},{"line_number":324,"context_line":"Support through python-ironic client can be provided. Two new command could be"},{"line_number":325,"context_line":"introduced to retrieve and update firmware settings respectively. Details are"},{"line_number":326,"context_line":"listed below:-"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"1. To get the firmware settings information:-"},{"line_number":329,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_f2bf0e5e","line":326,"updated":"2014-06-27 14:15:32.000000000","message":"nit: -","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":323,"context_line":"---------------------"},{"line_number":324,"context_line":"Support through python-ironic client can be provided. Two new command could be"},{"line_number":325,"context_line":"introduced to retrieve and update firmware settings respectively. Details are"},{"line_number":326,"context_line":"listed below:-"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"1. To get the firmware settings information:-"},{"line_number":329,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_fb714e78","line":326,"in_reply_to":"1ae5cdf2_f2bf0e5e","updated":"2014-07-01 08:14:14.000000000","message":"Addressed as part of patch 8.","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"3f152192e3b93617eac4a6414058cd89d928e0af","unresolved":false,"context_lines":[{"line_number":327,"context_line":""},{"line_number":328,"context_line":"1. To get the firmware settings information:-"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"   # ironic node-get-firmware-settings  \u003cnode id\u003e  \u003csetting_name\u003e"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"   Positional Arguments"},{"line_number":333,"context_line":"   \u003cnode id\u003e       UUID of node"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_52b0c28a","line":330,"updated":"2014-06-27 14:15:32.000000000","message":"# ironic node-get-firmware-settings \u003cnode id\u003e [\u003csetting_name\u003e, ...]","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":327,"context_line":""},{"line_number":328,"context_line":"1. To get the firmware settings information:-"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"   # ironic node-get-firmware-settings  \u003cnode id\u003e  \u003csetting_name\u003e"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"   Positional Arguments"},{"line_number":333,"context_line":"   \u003cnode id\u003e       UUID of node"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_bb0fd6e0","line":330,"in_reply_to":"1ae5cdf2_52b0c28a","updated":"2014-07-01 08:14:14.000000000","message":"Addressed as part of patch 8.","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"3f152192e3b93617eac4a6414058cd89d928e0af","unresolved":false,"context_lines":[{"line_number":336,"context_line":"   multiple times. In the absence of argument default all firmware settings of"},{"line_number":337,"context_line":"   the node are returned. [OPTIONAL]"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"   Example:"},{"line_number":340,"context_line":"   Get all firmware settings"},{"line_number":341,"context_line":"   # ironic node-get-firmware-settings 5e108b96-df91-4821-910a-964dd3e3c34c"},{"line_number":342,"context_line":"   +----------------------+------------+"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_927deab4","line":339,"updated":"2014-06-27 14:15:32.000000000","message":"Please format all examples like:\n\n Example::\n\n   # ironic node-get-firmware-settings 5e108b96-df91-4821-910a-964dd3e3c34c \n\notherwise all newlines are lost","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":336,"context_line":"   multiple times. In the absence of argument default all firmware settings of"},{"line_number":337,"context_line":"   the node are returned. [OPTIONAL]"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"   Example:"},{"line_number":340,"context_line":"   Get all firmware settings"},{"line_number":341,"context_line":"   # ironic node-get-firmware-settings 5e108b96-df91-4821-910a-964dd3e3c34c"},{"line_number":342,"context_line":"   +----------------------+------------+"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_1bf602d8","line":339,"in_reply_to":"1ae5cdf2_927deab4","updated":"2014-07-01 08:14:14.000000000","message":"Addressed as part of patch 8.","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"89638ce102760539608821aa530ec40498560c77","unresolved":false,"context_lines":[{"line_number":385,"context_line":"Other deployer impact"},{"line_number":386,"context_line":"---------------------"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"None"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"Developer impact"},{"line_number":391,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_2f32ec5d","line":388,"updated":"2014-06-27 15:45:56.000000000","message":"I think there may be a deployer impact here, especially in terms of security, but I\u0027m not sure what.","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":385,"context_line":"Other deployer impact"},{"line_number":386,"context_line":"---------------------"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"None"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"Developer impact"},{"line_number":391,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_1be4420c","line":388,"in_reply_to":"1ae5cdf2_2f32ec5d","updated":"2014-07-01 08:14:14.000000000","message":"Need more information on this. Will check with you on IRC to get more details.","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"7f6bcf29719d58b7213bca31194407ca2b881d96","unresolved":false,"context_lines":[{"line_number":385,"context_line":"Other deployer impact"},{"line_number":386,"context_line":"---------------------"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"None"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"Developer impact"},{"line_number":391,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_1c03f542","line":388,"in_reply_to":"baada198_1be4420c","updated":"2014-08-01 04:18:23.000000000","message":"As discussed in IRC,  will update the security impact section to cover this in next patch;\n\"Changing firmware settings could change the behavior of the baremetal node upon reboot. User should be careful while exercising set_firmware_settings() endpoint. \"","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"3f152192e3b93617eac4a6414058cd89d928e0af","unresolved":false,"context_lines":[{"line_number":417,"context_line":""},{"line_number":418,"context_line":"Testing"},{"line_number":419,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":420,"context_line":"Unit tests will be added conforming to ironic testing requirements."},{"line_number":421,"context_line":""},{"line_number":422,"context_line":"Documentation Impact"},{"line_number":423,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_d2185286","line":420,"updated":"2014-06-27 14:15:32.000000000","message":"what about Tempest tests? is it possible? please leave a note.","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":417,"context_line":""},{"line_number":418,"context_line":"Testing"},{"line_number":419,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":420,"context_line":"Unit tests will be added conforming to ironic testing requirements."},{"line_number":421,"context_line":""},{"line_number":422,"context_line":"Documentation Impact"},{"line_number":423,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_3b9f4661","line":420,"in_reply_to":"1ae5cdf2_4ffe586b","updated":"2014-07-01 08:14:14.000000000","message":"Addressed as part of patch 8.","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2bad306ecbe5cd116ec12edb40cff3ccf0ea4c7e","unresolved":false,"context_lines":[{"line_number":417,"context_line":""},{"line_number":418,"context_line":"Testing"},{"line_number":419,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":420,"context_line":"Unit tests will be added conforming to ironic testing requirements."},{"line_number":421,"context_line":""},{"line_number":422,"context_line":"Documentation Impact"},{"line_number":423,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_5beebaed","line":420,"in_reply_to":"1ae5cdf2_d2185286","updated":"2014-07-01 08:14:14.000000000","message":"Addressed as part of patch 8.","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"89638ce102760539608821aa530ec40498560c77","unresolved":false,"context_lines":[{"line_number":417,"context_line":""},{"line_number":418,"context_line":"Testing"},{"line_number":419,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":420,"context_line":"Unit tests will be added conforming to ironic testing requirements."},{"line_number":421,"context_line":""},{"line_number":422,"context_line":"Documentation Impact"},{"line_number":423,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_4ffe586b","line":420,"in_reply_to":"1ae5cdf2_d2185286","updated":"2014-06-27 15:45:56.000000000","message":"I\u0027d like to see a note about this, too. I suspect there may be something we can add to the ssh driver to manipulate *something* about the VM.","commit_id":"4e22b45e9af0d03cafc44f663e07b5e9e13fff1b"},{"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":"0874c3d4f86c111f3fb8d5cd46787ec8e656fc6d","unresolved":false,"context_lines":[{"line_number":13,"context_line":"This proposal adds the ability to get and set the firmware parameters like"},{"line_number":14,"context_line":"(boot order, bood mode, NIC settings etc.) about the baremetal node through"},{"line_number":15,"context_line":"ironic. It proposes to introduce standard APIs to support common firmware"},{"line_number":16,"context_line":"settings. These firmware settings could be retrieved using IPMI, iLO, DRAC etc."},{"line_number":17,"context_line":"interfaces. This functionality will be useful as many vendors would have"},{"line_number":18,"context_line":"similar needs to update the firmware settings for the baremetal node."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_9eec8091","line":16,"updated":"2014-07-02 15:58:11.000000000","message":"Just to clarify, and I\u0027d like to added to the title/description, this is referring to firmware settings set via *OOB*, not *IB* though use of IPA, correct?\n\nI think that\u0027s the right path to go because there\u0027s no good generic \u0027set BIOS settings\u0027 in band, although someone could choose to implement BIOS settings in-band as part of a hardwaremanager in the agent (in which case, I\u0027m still OK with it being out of scope for this spec).","commit_id":"a12535f18cad1459ebc6adf4fd1e9cb3382c9ca7"},{"author":{"_account_id":114,"name":"Victor Lowther","email":"victor.lowther@gmail.com","username":"victor-lowther"},"change_message_id":"338ffbd5d05b3ef19217a7e1c34269d9300ede0a","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    :param task: a task from TaskManager."},{"line_number":40,"context_line":"    :param args: list of limited firmware settings to be retrived. [OPTIONAL]"},{"line_number":41,"context_line":"    :returns: a dict containing firmware setting information. It would have"},{"line_number":42,"context_line":"        name of setting as \u0027key\u0027 and a corresponding list of \u0027values\u0027."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        Example:"},{"line_number":45,"context_line":"        {"}],"source_content_type":"text/x-rst","patch_set":8,"id":"baa201ad_b0606236","line":42,"updated":"2014-10-14 15:30:50.000000000","message":"Hmmm... this seems to exclude other useful information.  For example, on Dell PowerEdge R-series gear, getting the firmware settings returns quite a bit more information than that.  For each field, it returns (among other more Dell-specific information):\n\n* The name of the setting\n\n* The current working value of the setting\n\n* The current proposed value of the setting, or nil if there is no proposed setting.\n\n* Whether the setting is changeable or not.\n\n* If the setting has a discrete set of choices, all of the possible choices for the setting\n\n* If the setting is for an integer, the lower and upper bounds that the setting can be set to.\n\n* If the setting is for a string, the minimum and maximum length of the string along with a PCRE-compatible regular expression that the string must match.\n\nGiven that, I would recommend that get_firmware_settings return an array of dicts instead of a dict, with a format along the following lines:\n\n    [\n      {\n        # Example enumerable value\n        # required keys\n        \u0027name\u0027: \"boot_mode\",\n        \u0027readonly\u0027: false,\n        \u0027current_value\u0027: \"uefi\",\n        # Optional keys:\n        \u0027proposed_value\u0027: nil,\n        \u0027value_type\u0027: \u0027enumerable\u0027, # or integer, or string\n        \u0027allowed_values\u0027: [\"uefi\",\"bios\"] # only present for enumerable value types\n      },\n      {\n        # Example string value\n        # required keys\n        \u0027name\u0027: \"asset_tag\",\n        \u0027readonly\u0027: false,\n        \u0027current_value\u0027: \"mine\",\n        # Optional keys:\n        \u0027proposed_value\u0027: nil,\n        \u0027value_type\u0027: \u0027string\u0027,\n        \u0027length_range\u0027: [0,40], # The minimum and maximum length of the string in bytes\n        \u0027regex\u0027: \u0027some_PCRE_compatible_regex\u0027\n      },\n      {\n        # Example integer value\n        # required keys\n        \u0027name\u0027: \"boot_sequence_retries\",\n        \u0027readonly\u0027: false,\n        \u0027current_value\u0027: \"0\",\n        # Optional keys:\n        \u0027proposed_value\u0027: nil,\n        \u0027value_type\u0027: \u0027integer\u0027,\n        \u0027value_range\u0027: [0,10] # The minimum and maximum allowed values\n      }\n    ]","commit_id":"a12535f18cad1459ebc6adf4fd1e9cb3382c9ca7"},{"author":{"_account_id":114,"name":"Victor Lowther","email":"victor.lowther@gmail.com","username":"victor-lowther"},"change_message_id":"338ffbd5d05b3ef19217a7e1c34269d9300ede0a","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    :param args: list of patches for firmware parameters to be set."},{"line_number":61,"context_line":"        patch format would be as given below."},{"line_number":62,"context_line":"        {"},{"line_number":63,"context_line":"            \u0027path\u0027: \u0027\u003crelative path of setting\u003e\u0027 ,"},{"line_number":64,"context_line":"            \u0027value\u0027: \u0027\u003cnew_value\u003e\u0027 ,"},{"line_number":65,"context_line":"            \u0027op\u0027: \u0027replace\u0027"},{"line_number":66,"context_line":"        }"}],"source_content_type":"text/x-rst","patch_set":8,"id":"baa201ad_25951640","line":63,"updated":"2014-10-14 15:30:50.000000000","message":"Why should firmware settings be path-ish?  What does it even mean to have a relative path of a setting?  It does not seem like good design for set_firmware_settings to take args that differ significantly from what get_firmware_settings returns, especially   changing the names of the settings, which should be treated as opaque tokens from the POV of this spec.","commit_id":"a12535f18cad1459ebc6adf4fd1e9cb3382c9ca7"},{"author":{"_account_id":114,"name":"Victor Lowther","email":"victor.lowther@gmail.com","username":"victor-lowther"},"change_message_id":"338ffbd5d05b3ef19217a7e1c34269d9300ede0a","unresolved":false,"context_lines":[{"line_number":71,"context_line":"            \u0027value\u0027: \u0027uefi\u0027,"},{"line_number":72,"context_line":"            \u0027op\u0027: \u0027replace\u0027"},{"line_number":73,"context_line":"        }"},{"line_number":74,"context_line":"    :returns: Dictionary of status of the operation is returned. Dictionary"},{"line_number":75,"context_line":"        contains \u0027setting path\u0027 as \u0027key\u0027 and corresponding update status as the"},{"line_number":76,"context_line":"        \u0027value\u0027 part. The status values could be as given below."},{"line_number":77,"context_line":"        \u0027Success\u0027"}],"source_content_type":"text/x-rst","patch_set":8,"id":"baa201ad_cb08dbdb","line":74,"updated":"2014-10-14 15:30:50.000000000","message":"I would prefer that this be returned as an array of dicts, so that low-level drivers can return more than a simple string for human consumption.","commit_id":"a12535f18cad1459ebc6adf4fd1e9cb3382c9ca7"},{"author":{"_account_id":114,"name":"Victor Lowther","email":"victor.lowther@gmail.com","username":"victor-lowther"},"change_message_id":"338ffbd5d05b3ef19217a7e1c34269d9300ede0a","unresolved":false,"context_lines":[{"line_number":87,"context_line":"            \u0027/current_boot_mode\u0027: \u0027Success\u0027"},{"line_number":88,"context_line":"            \u0027/supported_boot_modes\u0027: \u0027Failed - Invalid value\u0027"},{"line_number":89,"context_line":"        }"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"     \"\"\""},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"2. On call to any get_firmware_settings, management module communicates with"}],"source_content_type":"text/x-rst","patch_set":8,"id":"baa201ad_3df44ace","line":90,"updated":"2014-10-14 15:30:50.000000000","message":"The problem with returning a dict of string -\u003e string for set_firmware_settings -- the client code that winds up having to consume it has to deal with all the foibles of figuring out which bits are semantically meaningful, which should be i18n\u0027ed, etc.\n\nBetter to return something along the lines of:\n\n    [\n      {\n        # Example of successfully updating a setting\n        \u0027name\u0027: \"boot_mode\",\n        \u0027proposed_value\u0027: \"bios\",\n        \u0027accepted\u0027: true,\n        \u0027message\u0027: \"Success\" # this can be any arbitrary string, because the client will only care about \u0027accepted\u0027 to indicate success or failure in accepting the proposed change\n      },\n      {\n        # Example of failing to update a setting\n        \u0027name\u0027: \"asset_tag\",\n        \u0027proposed_value\u0027: \"This string is just a little to long to be a cromulent asset tag\",\n        \u0027accepted\u0027: false,\n        \u0027message\u0027: \"Failed - the proposed value is too long.\"\n      }\n    ]","commit_id":"a12535f18cad1459ebc6adf4fd1e9cb3382c9ca7"},{"author":{"_account_id":114,"name":"Victor Lowther","email":"victor.lowther@gmail.com","username":"victor-lowther"},"change_message_id":"338ffbd5d05b3ef19217a7e1c34269d9300ede0a","unresolved":false,"context_lines":[{"line_number":104,"context_line":"components to support above said new functions related to firmware settings."},{"line_number":105,"context_line":"The get() and patch() REST APIs would be introduced to support these functions."},{"line_number":106,"context_line":"GET /v1/nodes/\u003cuuid\u003e/management/firmware/settings"},{"line_number":107,"context_line":"PATCH /v1/nodes/\u003cuuid\u003e/management/firmware/settings"},{"line_number":108,"context_line":"More details of REST APIs are covered in the \u0027REST API impact\u0027 section."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"NOTE: The changes to Firmware setting do not take into effect immediately."}],"source_content_type":"text/x-rst","patch_set":8,"id":"baa201ad_2b3fa726","line":107,"updated":"2014-10-14 15:30:50.000000000","message":"Why PATCH, especially since support for the PATCH verb is not widely supported?  You can\u0027t really think in terms of updating a JSON structure, since the JSON structure being returned by the API in this draft is not congruent with the data you are passing back in anyways.  Just PUT an array containing k/v pairs with updated values.","commit_id":"a12535f18cad1459ebc6adf4fd1e9cb3382c9ca7"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"4fdcf57a9fa8473d27166aa78c96141bafee84bf","unresolved":false,"context_lines":[{"line_number":115,"context_line":"be done even when instance is attached. If management interface supports,"},{"line_number":116,"context_line":"these changes could be initiated even when node is powered down. But it is not"},{"line_number":117,"context_line":"recommeded to perform changes in firmware settings of the node when it is in"},{"line_number":118,"context_line":"\u0027maintenance\u0027 mode."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Alternatives"},{"line_number":121,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5a890539_6909a030","line":118,"updated":"2014-12-02 17:15:55.000000000","message":"If the node is active (there\u0027s an instance on it), and you change the firmware settings, and the user of that instance does a hard reboot, the settings will take effect. Is that always going to be OK?\n\nWhy isn\u0027t it recommended to change settings in maintenance mode?","commit_id":"a12535f18cad1459ebc6adf4fd1e9cb3382c9ca7"},{"author":{"_account_id":114,"name":"Victor Lowther","email":"victor.lowther@gmail.com","username":"victor-lowther"},"change_message_id":"338ffbd5d05b3ef19217a7e1c34269d9300ede0a","unresolved":false,"context_lines":[{"line_number":168,"context_line":"       ]"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"   }"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"4. To Update firmware settings using set_firmware_settings()"},{"line_number":174,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"baa201ad_6b49afcf","line":171,"updated":"2014-10-14 15:30:50.000000000","message":"I would prefer something along the lines of \n\n    [\n      {\n        \u0027name\u0027: \"boot_mode\",\n        \u0027readonly\u0027: false,\n        \u0027current_value\u0027: \"uefi\",\n        \u0027proposed_value\u0027: nil,\n        \u0027value_type\u0027: \u0027enumerable\u0027,\n        \u0027allowed_values\u0027: [\"uefi\",\"bios\"]\n      },\n      {\n        \u0027name\u0027: \"asset_tag\",\n        \u0027readonly\u0027: false,\n        \u0027current_value\u0027: \"mine\",\n        \u0027proposed_value\u0027: nil,\n        \u0027value_type\u0027: \u0027string\u0027,\n        \u0027length_range\u0027: [0,40],\n        \u0027regex\u0027: \u0027some_PCRE_compatible_regex\u0027\n      },\n      {\n        \u0027name\u0027: \"boot_sequence_retries\",\n        \u0027readonly\u0027: false,\n        \u0027current_value\u0027: \"0\",\n        \u0027proposed_value\u0027: nil,\n        \u0027value_type\u0027: \u0027integer\u0027,\n        \u0027value_range\u0027: [0,10]\n      }\n    ]\n\nNot only is it valid JSON, it returns all the information that a smart client can use to validate the values to update.","commit_id":"a12535f18cad1459ebc6adf4fd1e9cb3382c9ca7"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"2e86f4e38c2b44560be049332d30ea78be1d348f","unresolved":false,"context_lines":[{"line_number":189,"context_line":""},{"line_number":190,"context_line":"   \u0027Success\u0027 is returned if given setting is updated successfully."},{"line_number":191,"context_line":"   \u0027Failed\u0027 is returned if given setting could not be updated or"},{"line_number":192,"context_line":"   if specified name of the setting is invalid."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"   PATCH  /nodes/\u003cnode-id\u003e/management/firmware/settings"},{"line_number":195,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_ad1dc468","line":192,"updated":"2014-07-01 18:42:31.000000000","message":"if a firmware update fails. what state will the node be left in. Is there a chance that these operations could \"brick\" a node? I believe that a failed firmware update should pull the node out of the pool, say by putting it in maintenance mode, until the admin can have a look. I would really like to have others comment on this thou.","commit_id":"a12535f18cad1459ebc6adf4fd1e9cb3382c9ca7"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"78b31402e3737c6b8378af7600eb9f3f41097903","unresolved":false,"context_lines":[{"line_number":189,"context_line":""},{"line_number":190,"context_line":"   \u0027Success\u0027 is returned if given setting is updated successfully."},{"line_number":191,"context_line":"   \u0027Failed\u0027 is returned if given setting could not be updated or"},{"line_number":192,"context_line":"   if specified name of the setting is invalid."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"   PATCH  /nodes/\u003cnode-id\u003e/management/firmware/settings"},{"line_number":195,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_0cdcdce3","line":192,"in_reply_to":"baada198_ad1dc468","updated":"2014-07-02 09:47:38.000000000","message":"Pulling the node into maintenance mode could be a right thing for in-band firmware update. But if driver perform out-of-band firmware update won\u0027t it be an issue, if the node is in say \u0027deployed\u0027 state.","commit_id":"a12535f18cad1459ebc6adf4fd1e9cb3382c9ca7"},{"author":{"_account_id":114,"name":"Victor Lowther","email":"victor.lowther@gmail.com","username":"victor-lowther"},"change_message_id":"338ffbd5d05b3ef19217a7e1c34269d9300ede0a","unresolved":false,"context_lines":[{"line_number":199,"context_line":"       {\"path\": \"/network/vlan_id\", \"value\": \"3\", \"op\":\"replace\"}"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"   ]"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"   Example::"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"   {"}],"source_content_type":"text/x-rst","patch_set":8,"id":"baa201ad_8bf7b358","line":202,"updated":"2014-10-14 15:30:50.000000000","message":"Aside from my comments about PATCH above, make the JSON you are passing in have the same structure as the data you got from the GET:\n\n    [\n      {\n        \u0027name\u0027: \"boot_mode\",\n        \u0027proposed_value\u0027: \"bios\"\n      },\n      {\n        \u0027name\u0027: \"asset_tag\",\n        \u0027proposed_value\u0027: \"no, mine!\"\n      },\n      {\n        \u0027name\u0027: \"boot_sequence_retries\",\n        \u0027proposed_value\u0027: 10\n      }\n    ]","commit_id":"a12535f18cad1459ebc6adf4fd1e9cb3382c9ca7"},{"author":{"_account_id":114,"name":"Victor Lowther","email":"victor.lowther@gmail.com","username":"victor-lowther"},"change_message_id":"338ffbd5d05b3ef19217a7e1c34269d9300ede0a","unresolved":false,"context_lines":[{"line_number":209,"context_line":"       \u0027/supported_boot_modes\u0027: \u0027Failed - Invalid value\u0027"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"   }"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"Driver API impact"},{"line_number":214,"context_line":"-----------------"},{"line_number":215,"context_line":"None."}],"source_content_type":"text/x-rst","patch_set":8,"id":"baa201ad_fde002fc","line":212,"updated":"2014-10-14 15:30:50.000000000","message":"See my above comments at line 90.","commit_id":"a12535f18cad1459ebc6adf4fd1e9cb3382c9ca7"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"4fdcf57a9fa8473d27166aa78c96141bafee84bf","unresolved":false,"context_lines":[{"line_number":212,"context_line":""},{"line_number":213,"context_line":"Driver API impact"},{"line_number":214,"context_line":"-----------------"},{"line_number":215,"context_line":"None."},{"line_number":216,"context_line":"New proposed interfaces to base.ManagementInterface are explicitly not"},{"line_number":217,"context_line":"required to be implemented by the drivers. These interfaces will have"},{"line_number":218,"context_line":"implementation in base.ManagementInterface class to throw"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5a890539_fc78f07f","line":215,"updated":"2014-12-02 17:15:55.000000000","message":"Is it None? Isn\u0027t the impact that there will be new methods added to base.ManagementInterface?","commit_id":"a12535f18cad1459ebc6adf4fd1e9cb3382c9ca7"}]}
