)]}'
{"specs/mitaka/approved/centralize-config-options.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7f8f4d11cfd841bcc1eb75fd8f7fb41eec67d5b6","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Centralize Config Options"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_3b91b147","line":8,"updated":"2015-10-08 20:10:51.000000000","message":"This is kind of confusing as a name for the spec.  Centralizing the config options is one thing, but this is also talking about quality help in the options, like how does changing option A impact option B in some way.\n\nGiven 9a3ed7631a7654cf7656ece6875cb09ee301f991 which gives us the options in the devref:\n\nhttp://docs.openstack.org/developer/nova/sample_config.html\n\nFinding the current options docs is not hard, and you don\u0027t have to wait for the docs team to update:\n\nhttp://docs.openstack.org/kilo/config-reference/content/list-of-compute-config-options.html","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"bc64f87478423faebb7208a9d5e7fe56bbf5a6f7","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Centralize Config Options"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_d7b86513","line":8,"in_reply_to":"7a2fa921_3b91b147","updated":"2015-10-09 16:07:41.000000000","message":"I wasn\u0027t aware of the \"sample_config.html\" in the developer guide. It\u0027s good to know that this is a possibility.\n\nThere are 3 things which speak for the centralization:\n* It moves away the config option from the code which uses it which makes it (hopefully) clear that this is a published and public interface and not a code internal hidden thing. I see it on the same level like the REST API but with another group of users. The point of view to the config options should be decoupled from the code which uses it.\n* It is useful to prevent that something like bug 1503975 will happen again (missing \"import_opt\"). \n* nit: As soon as the help texts get longer, the first few hundreds lines in a module would be filled with config options. Some people don\u0027t like this.","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7f8f4d11cfd841bcc1eb75fd8f7fb41eec67d5b6","unresolved":false,"context_lines":[{"line_number":38,"context_line":"* As an end user I\u0027m not affected by this change and won\u0027t notice a difference."},{"line_number":39,"context_line":"* As a developer I will find all config options in one place and will add"},{"line_number":40,"context_line":"  further config options to that central place. In reviews which will contain"},{"line_number":41,"context_line":"  new config options I will be encouraged to provide an exhaustive description"},{"line_number":42,"context_line":"  about interdependencies to other config options and consumers (service) and"},{"line_number":43,"context_line":"  the impact of it."},{"line_number":44,"context_line":"* As a cloud operator I will see more helpful descriptions on the config"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_dbc99d5a","line":41,"updated":"2015-10-08 20:10:51.000000000","message":"How will you be encouraged to write better help text or to know which options are somehow inter-related?  I think a lot of the responsibility is on the reviewers to make sure the options help makes sense and think about the help as written from the deployer/operator perspective, which generally doesn\u0027t happen - they are written according to how the code uses it, and a lot of operators don\u0027t care about the code, just how to tweak a thing.","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"bc64f87478423faebb7208a9d5e7fe56bbf5a6f7","unresolved":false,"context_lines":[{"line_number":38,"context_line":"* As an end user I\u0027m not affected by this change and won\u0027t notice a difference."},{"line_number":39,"context_line":"* As a developer I will find all config options in one place and will add"},{"line_number":40,"context_line":"  further config options to that central place. In reviews which will contain"},{"line_number":41,"context_line":"  new config options I will be encouraged to provide an exhaustive description"},{"line_number":42,"context_line":"  about interdependencies to other config options and consumers (service) and"},{"line_number":43,"context_line":"  the impact of it."},{"line_number":44,"context_line":"* As a cloud operator I will see more helpful descriptions on the config"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_791b8a81","line":41,"in_reply_to":"7a2fa921_dbc99d5a","updated":"2015-10-09 16:07:41.000000000","message":"The encouragement should happen in reviews. I\u0027ll remove the second sentence and add an entry in the code-review guideline document which is currently under review https://review.openstack.org/#/c/204653/\n\nI agree to the point that the help text should be written from a deployer/operator perspective. I think when we move the config options away from the code which uses them, it will be easier to take that perspective.","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7f8f4d11cfd841bcc1eb75fd8f7fb41eec67d5b6","unresolved":false,"context_lines":[{"line_number":45,"context_line":"  options. The default values, names, sections won\u0027t change in any way and"},{"line_number":46,"context_line":"  my ``nova.conf`` files will work as before."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Project Priority"},{"line_number":49,"context_line":"-----------------"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_5b0b4d8e","line":48,"updated":"2015-10-08 20:10:51.000000000","message":"Can drop this section since it\u0027s no longer in the template.","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"bc64f87478423faebb7208a9d5e7fe56bbf5a6f7","unresolved":false,"context_lines":[{"line_number":45,"context_line":"  options. The default values, names, sections won\u0027t change in any way and"},{"line_number":46,"context_line":"  my ``nova.conf`` files will work as before."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Project Priority"},{"line_number":49,"context_line":"-----------------"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_5cb6bcf9","line":48,"in_reply_to":"7a2fa921_5b0b4d8e","updated":"2015-10-09 16:07:41.000000000","message":"Done","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7f8f4d11cfd841bcc1eb75fd8f7fb41eec67d5b6","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"#. There will be a new package called ``nova/conf``."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"#. This package contains a module for each section in the ``nova.conf`` file."},{"line_number":72,"context_line":"   For example:"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"   * ``nova/conf/default.py``"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_3b7bf1f6","line":71,"updated":"2015-10-08 20:10:51.000000000","message":"This has already sort of started with 390fab8da43339e04dae511b5a8bf4a6235cb8ea right?","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"bc64f87478423faebb7208a9d5e7fe56bbf5a6f7","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"#. There will be a new package called ``nova/conf``."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"#. This package contains a module for each section in the ``nova.conf`` file."},{"line_number":72,"context_line":"   For example:"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"   * ``nova/conf/default.py``"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_97374dfe","line":71,"in_reply_to":"7a2fa921_3b7bf1f6","updated":"2015-10-09 16:07:41.000000000","message":"That patch was necessary to provide entrypoints for the configuration reference guide. They have to change their pointer or we remove the \"opts.py\" modules. I\u0027ll add more thoughts here.","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7f8f4d11cfd841bcc1eb75fd8f7fb41eec67d5b6","unresolved":false,"context_lines":[{"line_number":77,"context_line":"   * ``nova/conf/libvirt.py``"},{"line_number":78,"context_line":"   * [...]"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"#. All  and ``CONF.import_opt(...)`` calls get moved to the new section"},{"line_number":81,"context_line":"   modules from the previous step."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"#. All ``CONF.register_opts(...)`` calls get moved to the module"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_1b5dd578","line":80,"updated":"2015-10-08 20:10:51.000000000","message":"s/All  and/All/","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"bc64f87478423faebb7208a9d5e7fe56bbf5a6f7","unresolved":false,"context_lines":[{"line_number":77,"context_line":"   * ``nova/conf/libvirt.py``"},{"line_number":78,"context_line":"   * [...]"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"#. All  and ``CONF.import_opt(...)`` calls get moved to the new section"},{"line_number":81,"context_line":"   modules from the previous step."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"#. All ``CONF.register_opts(...)`` calls get moved to the module"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_771b9181","line":80,"in_reply_to":"7a2fa921_1b5dd578","updated":"2015-10-09 16:07:41.000000000","message":"Done","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7f8f4d11cfd841bcc1eb75fd8f7fb41eec67d5b6","unresolved":false,"context_lines":[{"line_number":123,"context_line":"                    \u0027Setting this to 0 will run at the default rate.\u0027),"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"On the plus side, it shows the possible values and their impact, but does"},{"line_number":126,"context_line":"not describe which service consumes this and if it has interdependencies"},{"line_number":127,"context_line":"to other config options."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"**Positive Example:**"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_3b9771ed","line":126,"updated":"2015-10-08 20:10:51.000000000","message":"How much do we care which service consumes an option?  My point being, with config management you could be setting nova.conf globally and put that on all nodes where nova is installed, regardless of which services are on those nodes.  If a service running on that node doesn\u0027t use a given option, it doesn\u0027t matter if it\u0027s in nova.conf or not.\n\nI\u0027m sort of playing devil\u0027s advocate here.","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"bc64f87478423faebb7208a9d5e7fe56bbf5a6f7","unresolved":false,"context_lines":[{"line_number":123,"context_line":"                    \u0027Setting this to 0 will run at the default rate.\u0027),"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"On the plus side, it shows the possible values and their impact, but does"},{"line_number":126,"context_line":"not describe which service consumes this and if it has interdependencies"},{"line_number":127,"context_line":"to other config options."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"**Positive Example:**"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_2d8148fb","line":126,"in_reply_to":"7a2fa921_3b9771ed","updated":"2015-10-09 16:07:41.000000000","message":"Setting an option because I don\u0027t know if it gets used and I just do it to \"be sure\" makes me cringe. This being said, deployers would benefit from that. I\u0027m not sure if this one conf file would fit for all nodes, for example when I want to configure SSL stuff and nova-api is running on an Ubuntu node and nova-compute is running on an windows server node because I\u0027d like to use hyper-v. I guess these two conf files would have to look different.","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7f8f4d11cfd841bcc1eb75fd8f7fb41eec67d5b6","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"**Positive Example:**"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Here an example how this could look like for a config option of the"},{"line_number":132,"context_line":"*serial console* feature::"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    cfg.StrOpt(\u0027base_url\u0027,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_5b9cad0e","line":131,"updated":"2015-10-08 20:10:51.000000000","message":"s/Here an/Here is an/","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"bc64f87478423faebb7208a9d5e7fe56bbf5a6f7","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"**Positive Example:**"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Here an example how this could look like for a config option of the"},{"line_number":132,"context_line":"*serial console* feature::"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    cfg.StrOpt(\u0027base_url\u0027,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_6d92e04d","line":131,"in_reply_to":"7a2fa921_5b9cad0e","updated":"2015-10-09 16:07:41.000000000","message":"Done","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7f8f4d11cfd841bcc1eb75fd8f7fb41eec67d5b6","unresolved":false,"context_lines":[{"line_number":136,"context_line":"               help\u003d\"\"\"The token enriched URL which is returned to"},{"line_number":137,"context_line":"    the end user to connect to the nova-serialproxy service."},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    The *serial console* feature allows the connection to a"},{"line_number":140,"context_line":"    non-graphical text console of an instance if the graphical"},{"line_number":141,"context_line":"    alternatives like VNC, RDP or SPICE are not usable on"},{"line_number":142,"context_line":"    the host where the instance is running. This URL is the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_1e5aa32a","line":139,"updated":"2015-10-08 20:10:51.000000000","message":"I\u0027m not crazy about having a big block of description for what the serial console feature is per option.  Maybe instead extend oslo.config such that you can provide a global help text with a group registration so it shows up in nova.conf as a comment under the group title, e.g.:\n\n[serial_console]\n\n# The *serial console* feature allows the connection to a ....\n\n# The token enriched URL which is returned to the end user to\n\n# connect to the nova-serialproxy service.\n\n#base_url \u003d ws://127.0.0.1:6083/\n\netc.","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"bc64f87478423faebb7208a9d5e7fe56bbf5a6f7","unresolved":false,"context_lines":[{"line_number":136,"context_line":"               help\u003d\"\"\"The token enriched URL which is returned to"},{"line_number":137,"context_line":"    the end user to connect to the nova-serialproxy service."},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    The *serial console* feature allows the connection to a"},{"line_number":140,"context_line":"    non-graphical text console of an instance if the graphical"},{"line_number":141,"context_line":"    alternatives like VNC, RDP or SPICE are not usable on"},{"line_number":142,"context_line":"    the host where the instance is running. This URL is the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_6d15009a","line":139,"in_reply_to":"7a2fa921_1e5aa32a","updated":"2015-10-09 16:07:41.000000000","message":"Agreed, that\u0027s a great idea. I\u0027ll see what the oslo people think about this.","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7f8f4d11cfd841bcc1eb75fd8f7fb41eec67d5b6","unresolved":false,"context_lines":[{"line_number":143,"context_line":"    handle an end user will get (enriched with a token at"},{"line_number":144,"context_line":"    the end) to establish that connection."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    Services which consume this:"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    * ``nova-compute``"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_1e5b83f7","line":146,"updated":"2015-10-08 20:10:51.000000000","message":"I feel like this is metadata information that could be part of the oslo.config option object and dumped into nova.conf rather than make it part of the help text.\n\nLike:\n\n    cfg.StrOpt(\u0027base_url\u0027,\n               default\u003d\u0027ws://127.0.0.1:6083/\u0027,\n               help\u003d\u0027Location of serial console proxy.\u0027,\n               consumers\u003d(\u0027nova-compute\u0027,)),\n\nWhere consumers is a tuple of consumers.  If empty it\u0027s omitted from the generated nova.conf.","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"bc64f87478423faebb7208a9d5e7fe56bbf5a6f7","unresolved":false,"context_lines":[{"line_number":143,"context_line":"    handle an end user will get (enriched with a token at"},{"line_number":144,"context_line":"    the end) to establish that connection."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    Services which consume this:"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    * ``nova-compute``"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_0dafac2a","line":146,"in_reply_to":"7a2fa921_1e5b83f7","updated":"2015-10-09 16:07:41.000000000","message":"Yepp, I\u0027ll talk to the oslo folks about that too.","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7f8f4d11cfd841bcc1eb75fd8f7fb41eec67d5b6","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    * ``nova-compute``"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    Possible values:"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    * A string which is a URL"},{"line_number":153,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_5ed7bb4a","line":150,"updated":"2015-10-08 20:10:51.000000000","message":"I sort of wish more of this schema validation kind of stuff was hidden in oslo.config so that not only is it a StrOpt but it\u0027s a URL type.  I see that IntOpt now has min/max values which is nice for validation.","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"bc64f87478423faebb7208a9d5e7fe56bbf5a6f7","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    * ``nova-compute``"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    Possible values:"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    * A string which is a URL"},{"line_number":153,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_88ef2a1d","line":150,"in_reply_to":"7a2fa921_5ed7bb4a","updated":"2015-10-09 16:07:41.000000000","message":"It would be possible to subtype the \"oslo_config.types.ConfigType\" class and use that for the \"type\" parameter of the \"oslo_config.cfg.Opt\" constructor. This would allow pretty early and centralized validation which would make something like this https://review.openstack.org/#/c/228853/ much easier.","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7f8f4d11cfd841bcc1eb75fd8f7fb41eec67d5b6","unresolved":false,"context_lines":[{"line_number":186,"context_line":"    Possible values:"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"    * ``-1`` Disables the cleaning of the image cache."},{"line_number":189,"context_line":"    * ``0`` Runs the cleaning at the default rate."},{"line_number":190,"context_line":"    * Other values greater than ``0`` describes the number of seconds"},{"line_number":191,"context_line":"      between two cleanups"},{"line_number":192,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_feda474a","line":189,"updated":"2015-10-08 20:10:51.000000000","message":"What is the default rate? :)  \u003c60 seconds if it\u0027s a periodic task\u003e","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"bc64f87478423faebb7208a9d5e7fe56bbf5a6f7","unresolved":false,"context_lines":[{"line_number":186,"context_line":"    Possible values:"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"    * ``-1`` Disables the cleaning of the image cache."},{"line_number":189,"context_line":"    * ``0`` Runs the cleaning at the default rate."},{"line_number":190,"context_line":"    * Other values greater than ``0`` describes the number of seconds"},{"line_number":191,"context_line":"      between two cleanups"},{"line_number":192,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_c8f6825c","line":189,"in_reply_to":"7a2fa921_feda474a","updated":"2015-10-09 16:07:41.000000000","message":"Right, that is a question I\u0027d like to see in reviews :)","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7f8f4d11cfd841bcc1eb75fd8f7fb41eec67d5b6","unresolved":false,"context_lines":[{"line_number":195,"context_line":"    * None"},{"line_number":196,"context_line":"    \"\"\"),"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"**Generic Template**"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"Based on the positive example above, the generic template a config option"},{"line_number":201,"context_line":"should fulfill to be descriptive to the operators would be::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_9e71d346","line":198,"updated":"2015-10-08 20:10:51.000000000","message":"Where does the template live?  How is it enforced?  Because if reviewers are already doing a bad job of enforcing good help text on the config options, having this in a module somewhere is not going to help much because people won\u0027t look at it and reviewers will forget about it.  You\u0027d probably need a unit/pep8 test that collects all options and makes sure the required fields are filled out.","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"bc64f87478423faebb7208a9d5e7fe56bbf5a6f7","unresolved":false,"context_lines":[{"line_number":195,"context_line":"    * None"},{"line_number":196,"context_line":"    \"\"\"),"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"**Generic Template**"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"Based on the positive example above, the generic template a config option"},{"line_number":201,"context_line":"should fulfill to be descriptive to the operators would be::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_28e7f6ac","line":198,"in_reply_to":"7a2fa921_9e71d346","updated":"2015-10-09 16:07:41.000000000","message":"A programmatic reminder would be useful, yes. I have to think about how this can be done.","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7f8f4d11cfd841bcc1eb75fd8f7fb41eec67d5b6","unresolved":false,"context_lines":[{"line_number":232,"context_line":"The ML discussion [2] concluded that the following ideas wouldn\u0027t work for us:"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"#. *Move all of the config options into one single ``flags.py`` module.*"},{"line_number":235,"context_line":"   It was reasoned that this file would be vastly huge and that merge"},{"line_number":236,"context_line":"   conflicts for the contributors would be unavoidable."},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"#. *Ship the config options in data files with the code rather than being*"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_1eeaa3ac","line":235,"updated":"2015-10-08 20:10:51.000000000","message":"This would still probably be the case for the nova/conf/default.py module.","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"bc64f87478423faebb7208a9d5e7fe56bbf5a6f7","unresolved":false,"context_lines":[{"line_number":232,"context_line":"The ML discussion [2] concluded that the following ideas wouldn\u0027t work for us:"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"#. *Move all of the config options into one single ``flags.py`` module.*"},{"line_number":235,"context_line":"   It was reasoned that this file would be vastly huge and that merge"},{"line_number":236,"context_line":"   conflicts for the contributors would be unavoidable."},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"#. *Ship the config options in data files with the code rather than being*"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_68a40eb9","line":235,"in_reply_to":"7a2fa921_1eeaa3ac","updated":"2015-10-09 16:07:41.000000000","message":"\"nova/conf/default.py\" will be big, yes, but I guess that the most new config options will be added to existing sections or establish new sections. And some options don\u0027t look like they should be in the \"default\" section, for example \"config_drive_format\", \"db_driver\", ...","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7f8f4d11cfd841bcc1eb75fd8f7fb41eec67d5b6","unresolved":false,"context_lines":[{"line_number":261,"context_line":"Security impact"},{"line_number":262,"context_line":"---------------"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"Maybe we discover that there are config options which should make use"},{"line_number":265,"context_line":"of the ``secret`` attribute."},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_9ea8f378","line":264,"updated":"2015-10-08 20:10:51.000000000","message":"I think you can just put None in this section.","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"bc64f87478423faebb7208a9d5e7fe56bbf5a6f7","unresolved":false,"context_lines":[{"line_number":261,"context_line":"Security impact"},{"line_number":262,"context_line":"---------------"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"Maybe we discover that there are config options which should make use"},{"line_number":265,"context_line":"of the ``secret`` attribute."},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_48ad9299","line":264,"in_reply_to":"7a2fa921_9ea8f378","updated":"2015-10-09 16:07:41.000000000","message":"Done","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7f8f4d11cfd841bcc1eb75fd8f7fb41eec67d5b6","unresolved":false,"context_lines":[{"line_number":282,"context_line":"Other deployer impact"},{"line_number":283,"context_line":"---------------------"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"#. Maybe we discover that there are config options which should make use of"},{"line_number":286,"context_line":"   the ``secret`` attribute, but that\u0027s unlikely (I guess)."},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"#. It could also be that we like to deprecate options because they don\u0027t get"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_5ebd7bb5","line":285,"updated":"2015-10-08 20:10:51.000000000","message":"I\u0027d omit this.","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"bc64f87478423faebb7208a9d5e7fe56bbf5a6f7","unresolved":false,"context_lines":[{"line_number":282,"context_line":"Other deployer impact"},{"line_number":283,"context_line":"---------------------"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"#. Maybe we discover that there are config options which should make use of"},{"line_number":286,"context_line":"   the ``secret`` attribute, but that\u0027s unlikely (I guess)."},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"#. It could also be that we like to deprecate options because they don\u0027t get"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_c899a27a","line":285,"in_reply_to":"7a2fa921_5ebd7bb5","updated":"2015-10-09 16:07:41.000000000","message":"Done","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7f8f4d11cfd841bcc1eb75fd8f7fb41eec67d5b6","unresolved":false,"context_lines":[{"line_number":306,"context_line":"Assignee(s)"},{"line_number":307,"context_line":"-----------"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"Who is leading the writing of the code? Or is this a blueprint where you\u0027re"},{"line_number":310,"context_line":"throwing it out there to see who picks it up?"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"If more than one person is working on the implementation, please designate the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_5e801bc0","line":309,"updated":"2015-10-08 20:10:51.000000000","message":"You can remove this sentence and the next one from the template.","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"bc64f87478423faebb7208a9d5e7fe56bbf5a6f7","unresolved":false,"context_lines":[{"line_number":306,"context_line":"Assignee(s)"},{"line_number":307,"context_line":"-----------"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"Who is leading the writing of the code? Or is this a blueprint where you\u0027re"},{"line_number":310,"context_line":"throwing it out there to see who picks it up?"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"If more than one person is working on the implementation, please designate the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_6892ce4d","line":309,"in_reply_to":"7a2fa921_5e801bc0","updated":"2015-10-09 16:07:41.000000000","message":"Done","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7f8f4d11cfd841bcc1eb75fd8f7fb41eec67d5b6","unresolved":false,"context_lines":[{"line_number":333,"context_line":"#. Depending on the outcome of the discussion of [4] which proposes to enrich"},{"line_number":334,"context_line":"   the config option object by interdependencies, we could use that. But this"},{"line_number":335,"context_line":"   blueprint doesn\u0027t have a hard dependency on that."},{"line_number":336,"context_line":"#. Depending on the outcome of the discussion of [5] which proposes to enrich"},{"line_number":337,"context_line":"   the config option object by allowing to format the help text with a markup"},{"line_number":338,"context_line":"   language, we could use that. But this blueprint doesn\u0027t have a hard"},{"line_number":339,"context_line":"   dependency on that."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_1ea2a34b","line":336,"updated":"2015-10-08 20:10:51.000000000","message":"I think most of what I\u0027m getting out of this spec is really this, with:\n\nhttps://blueprints.launchpad.net/oslo.config/+spec/help-text-markup\n\nI think there are some gains to be had in adding metadata to the options so it\u0027s more programmatic, but I don\u0027t see a ton of value in centralizing the options.  And as far as making the help text better, that\u0027s completely subjective and really just takes commitment from reviewers to enforce it - or saintly people such as yourself to go through one by one and look for some that can use some good updates.  But \"we need better config option help\" is a very broad topic that I don\u0027t think translates well in general to a spec.","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"bc64f87478423faebb7208a9d5e7fe56bbf5a6f7","unresolved":false,"context_lines":[{"line_number":333,"context_line":"#. Depending on the outcome of the discussion of [4] which proposes to enrich"},{"line_number":334,"context_line":"   the config option object by interdependencies, we could use that. But this"},{"line_number":335,"context_line":"   blueprint doesn\u0027t have a hard dependency on that."},{"line_number":336,"context_line":"#. Depending on the outcome of the discussion of [5] which proposes to enrich"},{"line_number":337,"context_line":"   the config option object by allowing to format the help text with a markup"},{"line_number":338,"context_line":"   language, we could use that. But this blueprint doesn\u0027t have a hard"},{"line_number":339,"context_line":"   dependency on that."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_6815ee99","line":336,"in_reply_to":"7a2fa921_1ea2a34b","updated":"2015-10-09 16:07:41.000000000","message":"The value should be in providing better help texts. The centralization should help the developer to switch into the perspective of a deployer/operator who doesn\u0027t want (and should not need) to read the code.","commit_id":"d0b1504fb3fe3307c6c4708aa22138e5ec4cb999"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"0a37a5b1521c8ba3b916fc5db9d06ffe321f3176","unresolved":false,"context_lines":[{"line_number":40,"context_line":"  further config options to that central place."},{"line_number":41,"context_line":"* As a cloud operator I will see more helpful descriptions on the config"},{"line_number":42,"context_line":"  options. The default values, names, sections won\u0027t change in any way and"},{"line_number":43,"context_line":"  my ``nova.conf`` files will work as before."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Proposed change"},{"line_number":46,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a2fa921_fe44231c","line":43,"updated":"2015-10-12 13:46:07.000000000","message":"how about separate this? maybe let this bp focus on #2 \n\nand make config options detail can be work related to later bp and doc update? so less change and less review needed\nbecause change config description need careful review...","commit_id":"76544489f0abf02fd6aa6d83f3d8df4417e1953a"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"461d30230c5a1b07a4d58171bd8502af0d833b61","unresolved":false,"context_lines":[{"line_number":40,"context_line":"  further config options to that central place."},{"line_number":41,"context_line":"* As a cloud operator I will see more helpful descriptions on the config"},{"line_number":42,"context_line":"  options. The default values, names, sections won\u0027t change in any way and"},{"line_number":43,"context_line":"  my ``nova.conf`` files will work as before."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Proposed change"},{"line_number":46,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a2fa921_bdbd4704","line":43,"in_reply_to":"7a2fa921_2bec988e","updated":"2015-10-12 17:33:46.000000000","message":"yes, sometimes later means never :) \n\nI think the understanding of the hundreds of configuration options might be a long time work compare to the reschuffle the config options and IMHO , the goal is a little bit different; one is more for developer and the other for operator. I think separate may make it easy to control and independent\n\nI totally agree with you on the goal to make operators happy\ndo we have a chance to survey or identify which will be high priority work so that we can work on it from M if bp approved? \nseem hundreds of configuration need a lot of patches and reviews, we should make it worthy considering we have other works to do.\n\nthanks for sharing those info, @markus_z","commit_id":"76544489f0abf02fd6aa6d83f3d8df4417e1953a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ab86f01be0194101ee7c8c7ca5b731b0f09b63e4","unresolved":false,"context_lines":[{"line_number":40,"context_line":"  further config options to that central place."},{"line_number":41,"context_line":"* As a cloud operator I will see more helpful descriptions on the config"},{"line_number":42,"context_line":"  options. The default values, names, sections won\u0027t change in any way and"},{"line_number":43,"context_line":"  my ``nova.conf`` files will work as before."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Proposed change"},{"line_number":46,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa80f949_210eb13b","line":43,"in_reply_to":"7a2fa921_bdbd4704","updated":"2015-11-05 14:55:34.000000000","message":"FWIW, I like us looking at both efforts together.","commit_id":"76544489f0abf02fd6aa6d83f3d8df4417e1953a"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"338eaaf9d4af1fec41288631902ac6cf8801c86f","unresolved":false,"context_lines":[{"line_number":40,"context_line":"  further config options to that central place."},{"line_number":41,"context_line":"* As a cloud operator I will see more helpful descriptions on the config"},{"line_number":42,"context_line":"  options. The default values, names, sections won\u0027t change in any way and"},{"line_number":43,"context_line":"  my ``nova.conf`` files will work as before."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Proposed change"},{"line_number":46,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a2fa921_2bec988e","line":43,"in_reply_to":"7a2fa921_fe44231c","updated":"2015-10-12 14:36:29.000000000","message":"@jichenjc: That would speed things up. Mikal was worried about reviewing plain code reshuffeling. And I\u0027m worried that moving the update of the docs to \"later\" means moving it to \"never\". \n\nMaybe we can start with the basic structure and enforce the placement of *new* config options in the new structure (\"nova/conf/default.py\" and so on) and do the rest as a \"normal refactoring\" task? \n\nAn organized code reorganization action is another option. Moving all the options with depending patch sets and if the CIs +1 them they get +W\u0027ed all at once. Wasn\u0027t this done with the v2 API?\n\nJust to be sure that I don\u0027t lose track of the real goal: Every work which is associated to this blueprint (despite the scope we will agree on) should work to the goal that the operators will have better descriptions of the impact of the config options (now or in a following step).","commit_id":"76544489f0abf02fd6aa6d83f3d8df4417e1953a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e9704fdf2ba1bee7dd5915371664875fd288c234","unresolved":false,"context_lines":[{"line_number":52,"context_line":"* and a quality view, which describes the standard a good config option"},{"line_number":53,"context_line":"  help text has to fulfill."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Technical View"},{"line_number":56,"context_line":"--------------"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"There was a proof of concept in Gerrit which shows the intention [2]. The"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a26ad4f_59511535","line":55,"updated":"2015-11-02 21:46:07.000000000","message":"Why do we want to do this?  What benefit does this give to the developers working on nova, since there is an obvious downside with merge conflicts?\n\nI can see value in making config option help better quality - even though I don\u0027t really think we need a spec for that, it could just be handled option by option as needed, unless we\u0027re implementing new tooling or process.","commit_id":"76544489f0abf02fd6aa6d83f3d8df4417e1953a"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"129b3233ddfd9ea375aa4e9342321d797cf417fe","unresolved":false,"context_lines":[{"line_number":52,"context_line":"* and a quality view, which describes the standard a good config option"},{"line_number":53,"context_line":"  help text has to fulfill."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Technical View"},{"line_number":56,"context_line":"--------------"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"There was a proof of concept in Gerrit which shows the intention [2]. The"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa80f949_cdaf3a7c","line":55,"in_reply_to":"1a26ad4f_59511535","updated":"2015-11-03 16:11:12.000000000","message":"I\u0027m not sure if a config option gets a lot of attention after it got merged. The merge conflict will only happen when someone is pushing a change set for an existing config option which got moved meanwhile.\n\nWhen this spec gets approval, I\u0027ll have a pointer. I think I need this pointer to request help from other contributors. I\u0027ll need that help, because of the high number of config options. I haven\u0027t thought about the case when this help won\u0027t be available. Is that what makes you worried?","commit_id":"76544489f0abf02fd6aa6d83f3d8df4417e1953a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ab86f01be0194101ee7c8c7ca5b731b0f09b63e4","unresolved":false,"context_lines":[{"line_number":52,"context_line":"* and a quality view, which describes the standard a good config option"},{"line_number":53,"context_line":"  help text has to fulfill."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Technical View"},{"line_number":56,"context_line":"--------------"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"There was a proof of concept in Gerrit which shows the intention [2]. The"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa80f949_fc47f248","line":55,"in_reply_to":"fa80f949_cdaf3a7c","updated":"2015-11-05 14:55:34.000000000","message":"For me, if I see lots of configuration variables together, its easier to see how this fits into the existing config variables.\n\nSplitting them out a little into logical groups of options seems like it should help limit the conflicts, to some extent.","commit_id":"76544489f0abf02fd6aa6d83f3d8df4417e1953a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e9704fdf2ba1bee7dd5915371664875fd288c234","unresolved":false,"context_lines":[{"line_number":97,"context_line":"                itertools.chain("},{"line_number":98,"context_line":"                    nova.conf.default.imagecache_opts,"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    Another possibility would be to remove the ``opts.py`` modules after the"},{"line_number":101,"context_line":"    ``\u003csection\u003e.py`` modules get ``list_opts`` methods which get used in the"},{"line_number":102,"context_line":"    ``setup.cfg``. Which would also reduce the imports of modules, for example"},{"line_number":103,"context_line":"    the ``nova/virt/opts.py`` imports 37 nova modules just to get access"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a26ad4f_d92445c6","line":100,"updated":"2015-11-02 21:46:07.000000000","message":"Wouldn\u0027t this be preferable to avoid duplication?","commit_id":"76544489f0abf02fd6aa6d83f3d8df4417e1953a"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"129b3233ddfd9ea375aa4e9342321d797cf417fe","unresolved":false,"context_lines":[{"line_number":97,"context_line":"                itertools.chain("},{"line_number":98,"context_line":"                    nova.conf.default.imagecache_opts,"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    Another possibility would be to remove the ``opts.py`` modules after the"},{"line_number":101,"context_line":"    ``\u003csection\u003e.py`` modules get ``list_opts`` methods which get used in the"},{"line_number":102,"context_line":"    ``setup.cfg``. Which would also reduce the imports of modules, for example"},{"line_number":103,"context_line":"    the ``nova/virt/opts.py`` imports 37 nova modules just to get access"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa80f949_26ff0003","line":100,"in_reply_to":"1a26ad4f_d92445c6","updated":"2015-11-03 16:11:12.000000000","message":"True. Right now this is used to emit a namespace in the \"nova.conf.sample\" file. For example:\n\n    # From nova.openstack.common.memorycache\n\nI have to double-check if there is a deeper meaning to this.","commit_id":"76544489f0abf02fd6aa6d83f3d8df4417e1953a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ab86f01be0194101ee7c8c7ca5b731b0f09b63e4","unresolved":false,"context_lines":[{"line_number":101,"context_line":"    ``\u003csection\u003e.py`` modules get ``list_opts`` methods which get used in the"},{"line_number":102,"context_line":"    ``setup.cfg``. Which would also reduce the imports of modules, for example"},{"line_number":103,"context_line":"    the ``nova/virt/opts.py`` imports 37 nova modules just to get access"},{"line_number":104,"context_line":"    to their config options."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Quality View"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa80f949_dce8ee12","line":104,"updated":"2015-11-05 14:55:34.000000000","message":"I honestly think we can just drop this last bit, and see how it works out when we see the code.","commit_id":"76544489f0abf02fd6aa6d83f3d8df4417e1953a"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"487ce4c8adf9bb27058d19568d6b29c5c3e81d69","unresolved":false,"context_lines":[{"line_number":101,"context_line":"    ``\u003csection\u003e.py`` modules get ``list_opts`` methods which get used in the"},{"line_number":102,"context_line":"    ``setup.cfg``. Which would also reduce the imports of modules, for example"},{"line_number":103,"context_line":"    the ``nova/virt/opts.py`` imports 37 nova modules just to get access"},{"line_number":104,"context_line":"    to their config options."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Quality View"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa80f949_3436ee52","line":104,"in_reply_to":"fa80f949_dce8ee12","updated":"2015-11-06 13:26:30.000000000","message":"Done","commit_id":"76544489f0abf02fd6aa6d83f3d8df4417e1953a"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"3dc9de41bc948dc3bc62cf78856788213225bf6d","unresolved":false,"context_lines":[{"line_number":188,"context_line":"    image cache would free enough space to make the hypervisor node usable then"},{"line_number":189,"context_line":"    the hypervisor node wont be usable until the next run of the image cache"},{"line_number":190,"context_line":"    manager. In other words, the cache manager is not run more frequently as"},{"line_number":191,"context_line":"    a hypervisor node becomes resource constrained."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    Services which consume this:"},{"line_number":194,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a26ad4f_a7e3cd32","line":191,"updated":"2015-10-29 08:44:25.000000000","message":"So, most of this para should be help text on the _config_group_. I concede we\u0027d need oslo.config to support such a thing, but we could do that thing.","commit_id":"76544489f0abf02fd6aa6d83f3d8df4417e1953a"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"129b3233ddfd9ea375aa4e9342321d797cf417fe","unresolved":false,"context_lines":[{"line_number":188,"context_line":"    image cache would free enough space to make the hypervisor node usable then"},{"line_number":189,"context_line":"    the hypervisor node wont be usable until the next run of the image cache"},{"line_number":190,"context_line":"    manager. In other words, the cache manager is not run more frequently as"},{"line_number":191,"context_line":"    a hypervisor node becomes resource constrained."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    Services which consume this:"},{"line_number":194,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa80f949_e3348a4b","line":191,"in_reply_to":"1a26ad4f_a7e3cd32","updated":"2015-11-03 16:11:12.000000000","message":"True. \"oslo.config\" has a bug that it doesn\u0027t emit this, but this can be solved: https://bugs.launchpad.net/oslo.config/+bug/1395819","commit_id":"76544489f0abf02fd6aa6d83f3d8df4417e1953a"},{"author":{"_account_id":6804,"name":"bruce-benjamin","email":"bruce.benjamin@jhuapl.edu","username":"bruce-benjamin"},"change_message_id":"365144c498f6875abebc43555689053e227fa657","unresolved":false,"context_lines":[{"line_number":257,"context_line":"   would the one with the most benefit in terms of testability, clean code,"},{"line_number":258,"context_line":"   OOP practices and so on. The outcome of this blueprint is also to get"},{"line_number":259,"context_line":"   a feeling how that approach could be done in the end. A first proof of"},{"line_number":260,"context_line":"   concept [3] was a bit cumbersome."},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"Data model impact"},{"line_number":263,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a26ad4f_ec0e4a3a","line":260,"updated":"2015-11-01 01:25:30.000000000","message":"The third alternative above needs to be rewritten more clearly.  The basic points are understandable, but it should be more to the point.","commit_id":"76544489f0abf02fd6aa6d83f3d8df4417e1953a"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"129b3233ddfd9ea375aa4e9342321d797cf417fe","unresolved":false,"context_lines":[{"line_number":257,"context_line":"   would the one with the most benefit in terms of testability, clean code,"},{"line_number":258,"context_line":"   OOP practices and so on. The outcome of this blueprint is also to get"},{"line_number":259,"context_line":"   a feeling how that approach could be done in the end. A first proof of"},{"line_number":260,"context_line":"   concept [3] was a bit cumbersome."},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"Data model impact"},{"line_number":263,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa80f949_b2e6d5e6","line":260,"in_reply_to":"1a26ad4f_ec0e4a3a","updated":"2015-11-03 16:11:12.000000000","message":"@bruce-benjamin: What exactly should be more to the point?","commit_id":"76544489f0abf02fd6aa6d83f3d8df4417e1953a"},{"author":{"_account_id":6804,"name":"bruce-benjamin","email":"bruce.benjamin@jhuapl.edu","username":"bruce-benjamin"},"change_message_id":"7419f7a318ecbf3cd402fe59263fb66ae600ccd2","unresolved":false,"context_lines":[{"line_number":258,"context_line":"   OOP practices and so on. The outcome of this blueprint is also to get"},{"line_number":259,"context_line":"   a feeling how that approach could be done in the end. A first proof of"},{"line_number":260,"context_line":"   concept [3] was a bit cumbersome."},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"Data model impact"},{"line_number":263,"context_line":"-----------------"},{"line_number":264,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa80f949_db030a41","line":261,"updated":"2015-11-05 22:04:38.000000000","message":"Well, maybe it\u0027s not so bad.  How about considering this tweak?\n\ns/Yes, that\u0027s the one which would the one with/This is the one with/","commit_id":"76544489f0abf02fd6aa6d83f3d8df4417e1953a"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"487ce4c8adf9bb27058d19568d6b29c5c3e81d69","unresolved":false,"context_lines":[{"line_number":258,"context_line":"   OOP practices and so on. The outcome of this blueprint is also to get"},{"line_number":259,"context_line":"   a feeling how that approach could be done in the end. A first proof of"},{"line_number":260,"context_line":"   concept [3] was a bit cumbersome."},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"Data model impact"},{"line_number":263,"context_line":"-----------------"},{"line_number":264,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa80f949_1054ebc7","line":261,"in_reply_to":"fa80f949_db030a41","updated":"2015-11-06 13:26:30.000000000","message":"I think it\u0027s possible to grasp the idea despite the minor mistake in the structure of the sentence. I\u0027d like to avoid to go back to square one just because of this.","commit_id":"76544489f0abf02fd6aa6d83f3d8df4417e1953a"},{"author":{"_account_id":6804,"name":"bruce-benjamin","email":"bruce.benjamin@jhuapl.edu","username":"bruce-benjamin"},"change_message_id":"c48a1f6c3877a0829ea07056fe03b2f132c0ce84","unresolved":false,"context_lines":[{"line_number":259,"context_line":"   a feeling how that approach could be done in the end. A first proof of"},{"line_number":260,"context_line":"   concept [3] was a bit cumbersome."},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"Data model impact"},{"line_number":263,"context_line":"-----------------"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa80f949_672fb488","line":262,"updated":"2015-11-06 15:48:16.000000000","message":"I\u0027ll vote +1 in your current patch as soon as you fix it, so you\u0027ll be back to the same net vote count at this point.","commit_id":"76544489f0abf02fd6aa6d83f3d8df4417e1953a"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"a3d448e5114bbc2b2f1bfd23ad93a6fe5e542f9c","unresolved":false,"context_lines":[{"line_number":259,"context_line":"   a feeling how that approach could be done in the end. A first proof of"},{"line_number":260,"context_line":"   concept [3] was a bit cumbersome."},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"Data model impact"},{"line_number":263,"context_line":"-----------------"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa80f949_a75d9c48","line":262,"in_reply_to":"fa80f949_672fb488","updated":"2015-11-06 15:59:34.000000000","message":"Done","commit_id":"76544489f0abf02fd6aa6d83f3d8df4417e1953a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e9704fdf2ba1bee7dd5915371664875fd288c234","unresolved":false,"context_lines":[{"line_number":342,"context_line":"Testing"},{"line_number":343,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"The build of the \"configuration reference\" manual of the \"manuals\" project"},{"line_number":346,"context_line":"needs to be checked (manually, I guess). That\u0027s the consumer for the config"},{"line_number":347,"context_line":"options."},{"line_number":348,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a26ad4f_9cb47b35","line":345,"updated":"2015-11-02 21:46:07.000000000","message":"nova.conf.sample is generated as part of the nova docs build now, so if this fails we\u0027d know there is an issue:\n\nhttp://docs.openstack.org/developer/nova/sample_config.html","commit_id":"76544489f0abf02fd6aa6d83f3d8df4417e1953a"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"129b3233ddfd9ea375aa4e9342321d797cf417fe","unresolved":false,"context_lines":[{"line_number":342,"context_line":"Testing"},{"line_number":343,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"The build of the \"configuration reference\" manual of the \"manuals\" project"},{"line_number":346,"context_line":"needs to be checked (manually, I guess). That\u0027s the consumer for the config"},{"line_number":347,"context_line":"options."},{"line_number":348,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa80f949_f2d21d34","line":345,"in_reply_to":"1a26ad4f_9cb47b35","updated":"2015-11-03 16:11:12.000000000","message":"Thanks, I didn\u0027t know that when I wrote this spec. I\u0027ll update this section.","commit_id":"76544489f0abf02fd6aa6d83f3d8df4417e1953a"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"487ce4c8adf9bb27058d19568d6b29c5c3e81d69","unresolved":false,"context_lines":[{"line_number":342,"context_line":"Testing"},{"line_number":343,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"The build of the \"configuration reference\" manual of the \"manuals\" project"},{"line_number":346,"context_line":"needs to be checked (manually, I guess). That\u0027s the consumer for the config"},{"line_number":347,"context_line":"options."},{"line_number":348,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa80f949_143c0a2e","line":345,"in_reply_to":"fa80f949_5c595efd","updated":"2015-11-06 13:26:30.000000000","message":"Done","commit_id":"76544489f0abf02fd6aa6d83f3d8df4417e1953a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ab86f01be0194101ee7c8c7ca5b731b0f09b63e4","unresolved":false,"context_lines":[{"line_number":342,"context_line":"Testing"},{"line_number":343,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"The build of the \"configuration reference\" manual of the \"manuals\" project"},{"line_number":346,"context_line":"needs to be checked (manually, I guess). That\u0027s the consumer for the config"},{"line_number":347,"context_line":"options."},{"line_number":348,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa80f949_5c595efd","line":345,"in_reply_to":"fa80f949_f2d21d34","updated":"2015-11-05 14:55:34.000000000","message":"That was a recent add, lets fix that up.","commit_id":"76544489f0abf02fd6aa6d83f3d8df4417e1953a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e9704fdf2ba1bee7dd5915371664875fd288c234","unresolved":false,"context_lines":[{"line_number":350,"context_line":"Documentation Impact"},{"line_number":351,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"The generation of the manuals should work as before, but it\u0027s likely that we"},{"line_number":354,"context_line":"change some help texts which means that the translation team might be aware"},{"line_number":355,"context_line":"of this."},{"line_number":356,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a26ad4f_3cebe714","line":353,"updated":"2015-11-02 21:46:07.000000000","message":"I\u0027m not aware of any translation process for the config options in the docs.  For example, we don\u0027t seem to even mark the config option help text for translation using _().  Is the translation done as part of something in the manuals repo?","commit_id":"76544489f0abf02fd6aa6d83f3d8df4417e1953a"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"129b3233ddfd9ea375aa4e9342321d797cf417fe","unresolved":false,"context_lines":[{"line_number":350,"context_line":"Documentation Impact"},{"line_number":351,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"The generation of the manuals should work as before, but it\u0027s likely that we"},{"line_number":354,"context_line":"change some help texts which means that the translation team might be aware"},{"line_number":355,"context_line":"of this."},{"line_number":356,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa80f949_2d17e6a4","line":353,"in_reply_to":"1a26ad4f_3cebe714","updated":"2015-11-03 16:11:12.000000000","message":"Hm, sorry, I made an assumption here. It\u0027s removed in the next patch set.","commit_id":"76544489f0abf02fd6aa6d83f3d8df4417e1953a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ab86f01be0194101ee7c8c7ca5b731b0f09b63e4","unresolved":false,"context_lines":[{"line_number":350,"context_line":"Documentation Impact"},{"line_number":351,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"The generation of the manuals should work as before, but it\u0027s likely that we"},{"line_number":354,"context_line":"change some help texts which means that the translation team might be aware"},{"line_number":355,"context_line":"of this."},{"line_number":356,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa80f949_1cfbd6c2","line":353,"in_reply_to":"fa80f949_2d17e6a4","updated":"2015-11-05 14:55:34.000000000","message":"+1","commit_id":"76544489f0abf02fd6aa6d83f3d8df4417e1953a"},{"author":{"_account_id":6804,"name":"bruce-benjamin","email":"bruce.benjamin@jhuapl.edu","username":"bruce-benjamin"},"change_message_id":"365144c498f6875abebc43555689053e227fa657","unresolved":false,"context_lines":[{"line_number":364,"context_line":"[2] Gerrit; PoC; \"DO NOT MERGE: Example of config options reshuffle\":"},{"line_number":365,"context_line":"    https://review.openstack.org/#/c/214581"},{"line_number":366,"context_line":"[3] Gerrit; PoC; \"DO NOT MERGE: replace global CONF access by object\":"},{"line_number":367,"context_line":"    https://www.youtube.com/watch?v\u003dv8EX3hnWDtw"},{"line_number":368,"context_line":"[4] Launchpad; oslo.config; blueprint \"option-interdependencies\""},{"line_number":369,"context_line":"    https://blueprints.launchpad.net/oslo.config/+spec/option-interdependencies"},{"line_number":370,"context_line":"[5] Launchpad; oslo.config; blueprint \"help-text-markup\""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a26ad4f_4c15fe46","line":367,"updated":"2015-11-01 01:25:30.000000000","message":"This URL isn\u0027t correct","commit_id":"76544489f0abf02fd6aa6d83f3d8df4417e1953a"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"129b3233ddfd9ea375aa4e9342321d797cf417fe","unresolved":false,"context_lines":[{"line_number":364,"context_line":"[2] Gerrit; PoC; \"DO NOT MERGE: Example of config options reshuffle\":"},{"line_number":365,"context_line":"    https://review.openstack.org/#/c/214581"},{"line_number":366,"context_line":"[3] Gerrit; PoC; \"DO NOT MERGE: replace global CONF access by object\":"},{"line_number":367,"context_line":"    https://www.youtube.com/watch?v\u003dv8EX3hnWDtw"},{"line_number":368,"context_line":"[4] Launchpad; oslo.config; blueprint \"option-interdependencies\""},{"line_number":369,"context_line":"    https://blueprints.launchpad.net/oslo.config/+spec/option-interdependencies"},{"line_number":370,"context_line":"[5] Launchpad; oslo.config; blueprint \"help-text-markup\""}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa80f949_0f653a44","line":367,"in_reply_to":"1a26ad4f_4c15fe46","updated":"2015-11-03 16:11:12.000000000","message":"@bruce-benjamin: Whoops, sorry, copy-paste failure.","commit_id":"76544489f0abf02fd6aa6d83f3d8df4417e1953a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9aa5c82ddf7a66c1efbc4ebfe32cd992cea4a4d9","unresolved":false,"context_lines":[{"line_number":364,"context_line":"[2] Gerrit; PoC; \"DO NOT MERGE: Example of config options reshuffle\":"},{"line_number":365,"context_line":"    https://review.openstack.org/#/c/214581"},{"line_number":366,"context_line":"[3] Gerrit; PoC; \"DO NOT MERGE: replace global CONF access by object\":"},{"line_number":367,"context_line":"    https://www.youtube.com/watch?v\u003dv8EX3hnWDtw"},{"line_number":368,"context_line":"[4] Launchpad; oslo.config; blueprint \"option-interdependencies\""},{"line_number":369,"context_line":"    https://blueprints.launchpad.net/oslo.config/+spec/option-interdependencies"},{"line_number":370,"context_line":"[5] Launchpad; oslo.config; blueprint \"help-text-markup\""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a26ad4f_d971a577","line":367,"in_reply_to":"1a26ad4f_4c15fe46","updated":"2015-11-02 21:12:11.000000000","message":"OMG, I should -2 for just having to watch this.","commit_id":"76544489f0abf02fd6aa6d83f3d8df4417e1953a"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"129b3233ddfd9ea375aa4e9342321d797cf417fe","unresolved":false,"context_lines":[{"line_number":364,"context_line":"[2] Gerrit; PoC; \"DO NOT MERGE: Example of config options reshuffle\":"},{"line_number":365,"context_line":"    https://review.openstack.org/#/c/214581"},{"line_number":366,"context_line":"[3] Gerrit; PoC; \"DO NOT MERGE: replace global CONF access by object\":"},{"line_number":367,"context_line":"    https://www.youtube.com/watch?v\u003dv8EX3hnWDtw"},{"line_number":368,"context_line":"[4] Launchpad; oslo.config; blueprint \"option-interdependencies\""},{"line_number":369,"context_line":"    https://blueprints.launchpad.net/oslo.config/+spec/option-interdependencies"},{"line_number":370,"context_line":"[5] Launchpad; oslo.config; blueprint \"help-text-markup\""}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa80f949_8f512a65","line":367,"in_reply_to":"1a26ad4f_d971a577","updated":"2015-11-03 16:11:12.000000000","message":"@Matt: :D Come on, admit it, you loved it back then.","commit_id":"76544489f0abf02fd6aa6d83f3d8df4417e1953a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"acb46a77092ac83d5f3ec605f24c34804f5ca6d9","unresolved":false,"context_lines":[{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    Services which consume this:"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    * ``nova-compute``"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    Possible values:"},{"line_number":152,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa80f949_12eb8814","line":149,"updated":"2015-11-06 16:06:06.000000000","message":"I worry that this will quickly become stale and incorrect. Not sure what means we shouldn\u0027t do it, but...","commit_id":"c284a21908057fda1036657f32f07f40fde3fd10"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"5f386e33d79720e13ca4e6f9ea28e123be0a7d86","unresolved":false,"context_lines":[{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    Services which consume this:"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    * ``nova-compute``"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    Possible values:"},{"line_number":152,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"da85f559_4f91c998","line":149,"in_reply_to":"fa80f949_12eb8814","updated":"2015-11-09 17:19:59.000000000","message":"@Dan: If it becomes stale, someone used it without honoring the contract, right? I see the potential issue and don\u0027t have a solution right now. I noted it down in the etherpad where I\u0027m going to organize the effort: https://etherpad.openstack.org/p/config-options","commit_id":"c284a21908057fda1036657f32f07f40fde3fd10"},{"author":{"_account_id":17714,"name":"Augustina Ragwitz","email":"auggy@cpan.org","username":"mmmpork"},"change_message_id":"1826c697a947d4ed01bb96081c8a499956ba4254","unresolved":false,"context_lines":[{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    Services which consume this:"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    * ``nova-compute``"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    Possible values:"},{"line_number":152,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa80f949_34e55137","line":149,"in_reply_to":"fa80f949_12eb8814","updated":"2015-11-06 20:42:35.000000000","message":"Do reviewers actually use the HACKING.rst doc? Maybe if we update it to include something about config options (eg, if you add/change a config option make sure the config docs are also updated), that could be something reviewers could use as a reference?","commit_id":"c284a21908057fda1036657f32f07f40fde3fd10"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"5f386e33d79720e13ca4e6f9ea28e123be0a7d86","unresolved":false,"context_lines":[{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    Services which consume this:"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    * ``nova-compute``"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    Possible values:"},{"line_number":152,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"da85f559_4ce8f710","line":149,"in_reply_to":"fa80f949_34e55137","updated":"2015-11-09 17:19:59.000000000","message":"@Augustina: The \"hacking.rst\" doc summarizes the automatized checks which are part of the pep8 style guide checks and I\u0027m trying to introduce such a check [1]. The reviewers have the \"review guide\" [2] (since a few weeks) which should help them to ask the right questions.\n\n[1] https://review.openstack.org/#/c/242078/\n[2] http://docs.openstack.org/developer/nova/code-review.html#config-options","commit_id":"c284a21908057fda1036657f32f07f40fde3fd10"},{"author":{"_account_id":17714,"name":"Augustina Ragwitz","email":"auggy@cpan.org","username":"mmmpork"},"change_message_id":"1826c697a947d4ed01bb96081c8a499956ba4254","unresolved":false,"context_lines":[{"line_number":255,"context_line":"   the most benefit in terms of testability, clean code, OOP practices and"},{"line_number":256,"context_line":"   so on. The outcome of this blueprint is also to get a feeling how that"},{"line_number":257,"context_line":"   approach could be done in the end. A first proof of concept [3] was a bit"},{"line_number":258,"context_line":"   cumbersome."},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"Data model impact"},{"line_number":261,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa80f949_345311e4","line":258,"updated":"2015-11-06 20:42:35.000000000","message":"Yay, music to my ears! Hooray for dependency injection!","commit_id":"c284a21908057fda1036657f32f07f40fde3fd10"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"5f386e33d79720e13ca4e6f9ea28e123be0a7d86","unresolved":false,"context_lines":[{"line_number":255,"context_line":"   the most benefit in terms of testability, clean code, OOP practices and"},{"line_number":256,"context_line":"   so on. The outcome of this blueprint is also to get a feeling how that"},{"line_number":257,"context_line":"   approach could be done in the end. A first proof of concept [3] was a bit"},{"line_number":258,"context_line":"   cumbersome."},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"Data model impact"},{"line_number":261,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da85f559_cc0f07e0","line":258,"in_reply_to":"fa80f949_345311e4","updated":"2015-11-09 17:19:59.000000000","message":"Yepp, but painful to introduce afterwards. I try to reduce the operators pain first, and then the developers pain. baby steps :)","commit_id":"c284a21908057fda1036657f32f07f40fde3fd10"},{"author":{"_account_id":17714,"name":"Augustina Ragwitz","email":"auggy@cpan.org","username":"mmmpork"},"change_message_id":"1826c697a947d4ed01bb96081c8a499956ba4254","unresolved":false,"context_lines":[{"line_number":315,"context_line":"  https://launchpad.net/~mzoeller"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"Other contributors:"},{"line_number":318,"context_line":"  None (but highly welcome)"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"Work Items"},{"line_number":321,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da85f559_b1cee0b2","line":318,"updated":"2015-11-06 20:42:35.000000000","message":"We need to add me to this, but I don\u0027t want to blow away the current reviews on this patch. I am happy to add it and resubmit, or you can, or we can just leave it.","commit_id":"c284a21908057fda1036657f32f07f40fde3fd10"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"5f386e33d79720e13ca4e6f9ea28e123be0a7d86","unresolved":false,"context_lines":[{"line_number":315,"context_line":"  https://launchpad.net/~mzoeller"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"Other contributors:"},{"line_number":318,"context_line":"  None (but highly welcome)"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"Work Items"},{"line_number":321,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da85f559_ec868bda","line":318,"in_reply_to":"da85f559_b1cee0b2","updated":"2015-11-09 17:19:59.000000000","message":"It\u0027s not \"officially\" needed. I\u0027m not sure why we have this section in the spec template. The spec is just to get an agreement and having a thing to discuss about. Your commitment can then be seen by the Gerrit patches. At the end of the day it\u0027s the code that matters.","commit_id":"c284a21908057fda1036657f32f07f40fde3fd10"},{"author":{"_account_id":17714,"name":"Augustina Ragwitz","email":"auggy@cpan.org","username":"mmmpork"},"change_message_id":"1826c697a947d4ed01bb96081c8a499956ba4254","unresolved":false,"context_lines":[{"line_number":322,"context_line":""},{"line_number":323,"context_line":"#. create folder ``nova/conf`` with modules for each ``nova.conf`` section"},{"line_number":324,"context_line":"#. move options from a functional module to the section module from above"},{"line_number":325,"context_line":"#. enhance the help texts from config options and option groups."},{"line_number":326,"context_line":""},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da85f559_5172147e","line":325,"updated":"2015-11-06 20:42:35.000000000","message":"Is this where we cover how the work will be split out? Are we going to file a list of bugs or just use an etherpad for listing out the modules and then assigning who is working on what? We should have a clear list of what needs doing and make sure no one is stepping on anyone else\u0027s toes. Not sure if that info goes in a spec or not.","commit_id":"c284a21908057fda1036657f32f07f40fde3fd10"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"5f386e33d79720e13ca4e6f9ea28e123be0a7d86","unresolved":false,"context_lines":[{"line_number":322,"context_line":""},{"line_number":323,"context_line":"#. create folder ``nova/conf`` with modules for each ``nova.conf`` section"},{"line_number":324,"context_line":"#. move options from a functional module to the section module from above"},{"line_number":325,"context_line":"#. enhance the help texts from config options and option groups."},{"line_number":326,"context_line":""},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da85f559_2c67b326","line":325,"in_reply_to":"da85f559_5172147e","updated":"2015-11-09 17:19:59.000000000","message":"Let\u0027s use [1] to organize ourselves. I\u0027m going to prepare it with an example. We don\u0027t need bugs for that. I\u0027m also going to announce it on the ML so that others can join in too.\n\n[1] https://etherpad.openstack.org/p/config-options","commit_id":"c284a21908057fda1036657f32f07f40fde3fd10"}]}
