)]}'
{"specs/queens/handle-config-changes.rst":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"c58943527129335416cb40dcfc6faf141737e559","unresolved":false,"context_lines":[{"line_number":72,"context_line":"So how can we understand all values in dynamic section? A new feature in"},{"line_number":73,"context_line":"oslo.config should be developed that support projects define dynamic"},{"line_number":74,"context_line":"sections in the same way. After that, we can read values of dymanic sections"},{"line_number":75,"context_line":"like the way that we are trying to do with Cinder dymanic section[2]_."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Problem 2: How to map/convert old values into new configuration file?"},{"line_number":78,"context_line":"---------------------------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f485f77_92e85de2","line":75,"updated":"2017-11-15 18:40:43.000000000","message":"Dynamic groups (https://docs.openstack.org/oslo.config/latest/reference/cfg.html#dynamic-groups ) or driver groups (https://docs.openstack.org/oslo.config/latest/reference/cfg.html#driver-groups) may help with this. We use those features when the sample generator writes the YAML description of all of the options so that projects that want to consume that data can understand which options are \"real\" and which are examples (https://docs.openstack.org/oslo.config/latest/cli/generator.html#machine-readable-configs).","commit_id":"c88699d2211534aedb7bac1327b5cb0444f17c07"},{"author":{"_account_id":19930,"name":"Dai Dang Van","email":"daidv@omzcloud.vn","username":"daidv"},"change_message_id":"025faaf423e4edd553694c9d5dbed9cac9e57a6c","unresolved":false,"context_lines":[{"line_number":72,"context_line":"So how can we understand all values in dynamic section? A new feature in"},{"line_number":73,"context_line":"oslo.config should be developed that support projects define dynamic"},{"line_number":74,"context_line":"sections in the same way. After that, we can read values of dymanic sections"},{"line_number":75,"context_line":"like the way that we are trying to do with Cinder dymanic section[2]_."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Problem 2: How to map/convert old values into new configuration file?"},{"line_number":78,"context_line":"---------------------------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df87a7cf_da72a4ad","line":75,"in_reply_to":"1f485f77_92e85de2","updated":"2017-12-07 08:58:04.000000000","message":"Nice, I updated this.","commit_id":"c88699d2211534aedb7bac1327b5cb0444f17c07"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"8c4eb4e8ddaee2bc7d291970db37bba2c754ec15","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"* *Question 1*: Were all configuration changes described in codebase?"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"* *Question 2*: How many ways did developers use for configuration changes? "},{"line_number":83,"context_line":"  Does `oslo.config` support for all of changes that mean we can define all "},{"line_number":84,"context_line":"  of them in codebase?"},{"line_number":85,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f485f77_ae1f68b5","line":82,"updated":"2017-11-16 04:59:59.000000000","message":"nit: white space","commit_id":"c88699d2211534aedb7bac1327b5cb0444f17c07"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"8c4eb4e8ddaee2bc7d291970db37bba2c754ec15","unresolved":false,"context_lines":[{"line_number":80,"context_line":"* *Question 1*: Were all configuration changes described in codebase?"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"* *Question 2*: How many ways did developers use for configuration changes? "},{"line_number":83,"context_line":"  Does `oslo.config` support for all of changes that mean we can define all "},{"line_number":84,"context_line":"  of them in codebase?"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Here is answers:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f485f77_8e1cacc1","line":83,"updated":"2017-11-16 04:59:59.000000000","message":"nit: white space","commit_id":"c88699d2211534aedb7bac1327b5cb0444f17c07"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"c58943527129335416cb40dcfc6faf141737e559","unresolved":false,"context_lines":[{"line_number":86,"context_line":"Here is answers:"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"* *Answer 1*: Not all configuration option changes were defined in codebase"},{"line_number":89,"context_line":"  or even never showed up in release notes."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"* *Answer 2*: ``oslo.config`` does not support us to define some configuration "},{"line_number":92,"context_line":"  changes in somecase following:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f485f77_32c4095f","line":89,"updated":"2017-11-15 18:40:43.000000000","message":"What sort of changes were made that did not show up in the code base?","commit_id":"c88699d2211534aedb7bac1327b5cb0444f17c07"},{"author":{"_account_id":19930,"name":"Dai Dang Van","email":"daidv@omzcloud.vn","username":"daidv"},"change_message_id":"025faaf423e4edd553694c9d5dbed9cac9e57a6c","unresolved":false,"context_lines":[{"line_number":86,"context_line":"Here is answers:"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"* *Answer 1*: Not all configuration option changes were defined in codebase"},{"line_number":89,"context_line":"  or even never showed up in release notes."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"* *Answer 2*: ``oslo.config`` does not support us to define some configuration "},{"line_number":92,"context_line":"  changes in somecase following:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df87a7cf_3a8f1076","line":89,"in_reply_to":"1f485f77_32c4095f","updated":"2017-12-07 08:58:04.000000000","message":"In case we are using RabitMQ, for instance with \u0027transport_url\u0027, it will replace for rabbit_host, rabbit_port, rabbit_userid and rabbit_password but this change only describe in description, not in logic code which we can read and automatically convert from old values to new value.","commit_id":"c88699d2211534aedb7bac1327b5cb0444f17c07"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"8c4eb4e8ddaee2bc7d291970db37bba2c754ec15","unresolved":false,"context_lines":[{"line_number":88,"context_line":"* *Answer 1*: Not all configuration option changes were defined in codebase"},{"line_number":89,"context_line":"  or even never showed up in release notes."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"* *Answer 2*: ``oslo.config`` does not support us to define some configuration "},{"line_number":92,"context_line":"  changes in somecase following:"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"  - Mapping multi config values into one new values."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f485f77_4e80f4c0","line":91,"updated":"2017-11-16 04:59:59.000000000","message":"nit: white space","commit_id":"c88699d2211534aedb7bac1327b5cb0444f17c07"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"c58943527129335416cb40dcfc6faf141737e559","unresolved":false,"context_lines":[{"line_number":130,"context_line":"    - name: transport_url              \u003cNew key name in NEW config file\u003e"},{"line_number":131,"context_line":"      value: rabbit_userid, rabbit_password, rabbit_host, rabbit_port"},{"line_number":132,"context_line":"                          List of all keys whose values will be added to template\u003e"},{"line_number":133,"context_line":"      template: rabbit://{}:{}@{}:{}   \u003cA template of the values in new config options\u003e"},{"line_number":134,"context_line":"      mapping: None                    \u003cOld value maps to new value\u003e"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f485f77_726ba11d","line":133,"updated":"2017-11-15 18:40:43.000000000","message":"I like this template idea.","commit_id":"c88699d2211534aedb7bac1327b5cb0444f17c07"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"8c4eb4e8ddaee2bc7d291970db37bba2c754ec15","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"But it is not suitable to mantain the files manually, there must be a mechanism"},{"line_number":138,"context_line":"to do the files automatically, so in order to do this we need to implement "},{"line_number":139,"context_line":"three more attributes for each option:"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"- values: list of values will be put to templates."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f485f77_2e8138c4","line":138,"updated":"2017-11-16 04:59:59.000000000","message":"nit: white space","commit_id":"c88699d2211534aedb7bac1327b5cb0444f17c07"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"8c4eb4e8ddaee2bc7d291970db37bba2c754ec15","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"- mapping: in case of the value of an option is changed, we need to convert old"},{"line_number":147,"context_line":"  value to new value."},{"line_number":148,"context_line":"  "},{"line_number":149,"context_line":"  For example: At newton release, we need to declare like this in neutron.conf:"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"  ``core_plugin \u003d neutron.plugins.ml2.plugin.Ml2Plugin``"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f485f77_0e867cdc","line":148,"updated":"2017-11-16 04:59:59.000000000","message":"nit: white space","commit_id":"c88699d2211534aedb7bac1327b5cb0444f17c07"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"c58943527129335416cb40dcfc6faf141737e559","unresolved":false,"context_lines":[{"line_number":152,"context_line":"  **BUT** it was changed at Pike: ``core_plugin \u003d ml2``"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"With three new things, all of projects can define almost of change cases of"},{"line_number":155,"context_line":"config options and operators will generate mapping file by **oslo.config**."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"Work Items:"},{"line_number":158,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f485f77_b248f986","line":155,"updated":"2017-11-15 18:40:43.000000000","message":"The list of arguments for the Opt class is growing quite long. It may be time for us to consider encapsulating some of the deprecation and transformation logic into a separate class that we can test separately and pass as a single argument to an Opt. Could you investigate that as part of the work you are planning here? Ideally we could deprecate the existing arguments related to deprecating configuration options and replace them with the new class(es).","commit_id":"c88699d2211534aedb7bac1327b5cb0444f17c07"},{"author":{"_account_id":19930,"name":"Dai Dang Van","email":"daidv@omzcloud.vn","username":"daidv"},"change_message_id":"01b7fdd49297195dd3314519d275474de89ee3b0","unresolved":false,"context_lines":[{"line_number":152,"context_line":"  **BUT** it was changed at Pike: ``core_plugin \u003d ml2``"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"With three new things, all of projects can define almost of change cases of"},{"line_number":155,"context_line":"config options and operators will generate mapping file by **oslo.config**."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"Work Items:"},{"line_number":158,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f485f77_f9ce4d2b","line":155,"in_reply_to":"1f485f77_b248f986","updated":"2017-11-16 02:39:02.000000000","message":"Surely, we will investigate about that.","commit_id":"c88699d2211534aedb7bac1327b5cb0444f17c07"},{"author":{"_account_id":19930,"name":"Dai Dang Van","email":"daidv@omzcloud.vn","username":"daidv"},"change_message_id":"025faaf423e4edd553694c9d5dbed9cac9e57a6c","unresolved":false,"context_lines":[{"line_number":152,"context_line":"  **BUT** it was changed at Pike: ``core_plugin \u003d ml2``"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"With three new things, all of projects can define almost of change cases of"},{"line_number":155,"context_line":"config options and operators will generate mapping file by **oslo.config**."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"Work Items:"},{"line_number":158,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df87a7cf_ba3ec088","line":155,"in_reply_to":"1f485f77_f9ce4d2b","updated":"2017-12-07 08:58:04.000000000","message":"After investigation, I have added new DeprecatedInfo class for this.","commit_id":"c88699d2211534aedb7bac1327b5cb0444f17c07"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"8c4eb4e8ddaee2bc7d291970db37bba2c754ec15","unresolved":false,"context_lines":[{"line_number":158,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"1. Implement a method to get values from configuration file."},{"line_number":161,"context_line":" "},{"line_number":162,"context_line":"  - Support to register dynamic section with oslo.config"},{"line_number":163,"context_line":"  - Implement on each project to support oslo.config get dynamic section"},{"line_number":164,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f485f77_ce6bc41b","line":161,"updated":"2017-11-16 04:59:59.000000000","message":"nit: white space","commit_id":"c88699d2211534aedb7bac1327b5cb0444f17c07"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"c58943527129335416cb40dcfc6faf141737e559","unresolved":false,"context_lines":[{"line_number":181,"context_line":"It is necessary to have an utility to generate previous configuration changes"},{"line_number":182,"context_line":"to config-mapping file. After that developers will maintain the files"},{"line_number":183,"context_line":"manually, whenever there is a configuration change then the files must be"},{"line_number":184,"context_line":"updated."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"Test Impact:"},{"line_number":187,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f485f77_152a177e","line":184,"updated":"2017-11-15 18:40:43.000000000","message":"I would like to fully explore how we might be able to add the information directly to the source code, so that we don\u0027t need to maintain a separate file. It is possible that we cannot, but if we can then I think we will have better luck keeping it up to date.","commit_id":"c88699d2211534aedb7bac1327b5cb0444f17c07"},{"author":{"_account_id":19554,"name":"Nam","email":"namnh68@fsoft.com.vn","username":"namnh"},"change_message_id":"9b9c21c0c6ac4c99eba9bf0bb85a93e6a874ba9f","unresolved":false,"context_lines":[{"line_number":181,"context_line":"It is necessary to have an utility to generate previous configuration changes"},{"line_number":182,"context_line":"to config-mapping file. After that developers will maintain the files"},{"line_number":183,"context_line":"manually, whenever there is a configuration change then the files must be"},{"line_number":184,"context_line":"updated."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"Test Impact:"},{"line_number":187,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f485f77_bfa435a7","line":184,"in_reply_to":"1f485f77_152a177e","updated":"2017-11-16 04:14:15.000000000","message":"Maybe, this impact has made you confuse. At that time I thought that:\n\nHow can we make a new suitable configuration file for (N+2) release from old environment (N release)  so we need to have a independent config-mapping file. Because if we create the config-mapping file from code-base as line 154 then there will be a case as following:\n\nA option is deprecated at N release, and B is new option replaced with options like deprecated_name, deprecated_group, etc at (N+1) release. But the options (deprecated_name, deprecated_group) can be removed at N+2 then we can not generate config-mapping file that stores A, B option.\n\nBut it is not right for now, we need to update to N+2 linearly. So I will update this.","commit_id":"c88699d2211534aedb7bac1327b5cb0444f17c07"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"8c4eb4e8ddaee2bc7d291970db37bba2c754ec15","unresolved":false,"context_lines":[{"line_number":210,"context_line":".. [2] https://github.com/NguyenHoaiNam/Jump-Over-Release/blob/spec/jor/getconf/dynamic_section/cinder.py"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":".. [3] https://github.com/NguyenHoaiNam/Jump-Over-Release/blob/spec/jor/templates/ocata/oslo_messaging.yaml"},{"line_number":213,"context_line":"       https://github.com/NguyenHoaiNam/Jump-Over-Release/blob/spec/jor/templates/ocata/cinder.yaml "},{"line_number":214,"context_line":""},{"line_number":215,"context_line":".. [4] https://github.com/NguyenHoaiNam/Jump-Over-Release/blob/master/jor/mapconf/gen_conf.py#L14-L157 "}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f485f77_ae7408ff","line":213,"updated":"2017-11-16 04:59:59.000000000","message":"nit: white space","commit_id":"c88699d2211534aedb7bac1327b5cb0444f17c07"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"8c4eb4e8ddaee2bc7d291970db37bba2c754ec15","unresolved":false,"context_lines":[{"line_number":212,"context_line":".. [3] https://github.com/NguyenHoaiNam/Jump-Over-Release/blob/spec/jor/templates/ocata/oslo_messaging.yaml"},{"line_number":213,"context_line":"       https://github.com/NguyenHoaiNam/Jump-Over-Release/blob/spec/jor/templates/ocata/cinder.yaml "},{"line_number":214,"context_line":""},{"line_number":215,"context_line":".. [4] https://github.com/NguyenHoaiNam/Jump-Over-Release/blob/master/jor/mapconf/gen_conf.py#L14-L157 "}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f485f77_8e714c0f","line":215,"updated":"2017-11-16 04:59:59.000000000","message":"nit: white space","commit_id":"c88699d2211534aedb7bac1327b5cb0444f17c07"},{"author":{"_account_id":17491,"name":"Lujin Luo","email":"luo.lujin@jp.fujitsu.com","username":"Lujin"},"change_message_id":"5cc338937670de1ce373689ffacb70bb8f2ce997","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"So how can we understand all values in dynamic section? This can be done via"},{"line_number":73,"context_line":"dynamic groups or driver groups[2] but we don\u0027t have any project are using"},{"line_number":74,"context_line":"them, so each project should migrate to use those things instead of their"},{"line_number":75,"context_line":"special ways to read dynamic sections."},{"line_number":76,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_21490a30","line":73,"range":{"start_line":73,"start_character":57,"end_line":73,"end_character":74},"updated":"2017-12-08 05:03:09.000000000","message":"s/project are using/projects using","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":19554,"name":"Nam","email":"namnh68@fsoft.com.vn","username":"namnh"},"change_message_id":"3dfae6b640d41108281140f8b550f810ab7e1e0f","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"So how can we understand all values in dynamic section? This can be done via"},{"line_number":73,"context_line":"dynamic groups or driver groups[2] but we don\u0027t have any project are using"},{"line_number":74,"context_line":"them, so each project should migrate to use those things instead of their"},{"line_number":75,"context_line":"special ways to read dynamic sections."},{"line_number":76,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_c2a93c7c","line":73,"range":{"start_line":73,"start_character":57,"end_line":73,"end_character":74},"in_reply_to":"df87a7cf_21490a30","updated":"2017-12-08 08:35:35.000000000","message":"Done","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":17491,"name":"Lujin Luo","email":"luo.lujin@jp.fujitsu.com","username":"Lujin"},"change_message_id":"5cc338937670de1ce373689ffacb70bb8f2ce997","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"  new_options:"},{"line_number":130,"context_line":"    DEFAULT:                                          \u003cNew section in New config file\u003e"},{"line_number":131,"context_line":"    - name: resource_query_filters_file               \u003cNew key name in NEW config file\u003e"},{"line_number":132,"context_line":"      value: None"},{"line_number":133,"context_line":"      template: None"},{"line_number":134,"context_line":"      mapping: None"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_0175e663","line":131,"range":{"start_line":131,"start_character":71,"end_line":131,"end_character":74},"updated":"2017-12-08 05:03:09.000000000","message":"s/NEW/New","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":19554,"name":"Nam","email":"namnh68@fsoft.com.vn","username":"namnh"},"change_message_id":"3dfae6b640d41108281140f8b550f810ab7e1e0f","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"  new_options:"},{"line_number":130,"context_line":"    DEFAULT:                                          \u003cNew section in New config file\u003e"},{"line_number":131,"context_line":"    - name: resource_query_filters_file               \u003cNew key name in NEW config file\u003e"},{"line_number":132,"context_line":"      value: None"},{"line_number":133,"context_line":"      template: None"},{"line_number":134,"context_line":"      mapping: None"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_82b9f4cc","line":131,"range":{"start_line":131,"start_character":71,"end_line":131,"end_character":74},"in_reply_to":"df87a7cf_0175e663","updated":"2017-12-08 08:35:35.000000000","message":"Done","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":17491,"name":"Lujin Luo","email":"luo.lujin@jp.fujitsu.com","username":"Lujin"},"change_message_id":"5cc338937670de1ce373689ffacb70bb8f2ce997","unresolved":false,"context_lines":[{"line_number":129,"context_line":"  new_options:"},{"line_number":130,"context_line":"    DEFAULT:                                          \u003cNew section in New config file\u003e"},{"line_number":131,"context_line":"    - name: resource_query_filters_file               \u003cNew key name in NEW config file\u003e"},{"line_number":132,"context_line":"      value: None"},{"line_number":133,"context_line":"      template: None"},{"line_number":134,"context_line":"      mapping: None"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"- Example 2: Value change - one to one"},{"line_number":137,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_c16a9e7f","line":134,"range":{"start_line":132,"start_character":0,"end_line":134,"end_character":19},"updated":"2017-12-08 05:03:09.000000000","message":"It would help readers to understand if you add some explanations for these three lines.","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":19554,"name":"Nam","email":"namnh68@fsoft.com.vn","username":"namnh"},"change_message_id":"3dfae6b640d41108281140f8b550f810ab7e1e0f","unresolved":false,"context_lines":[{"line_number":129,"context_line":"  new_options:"},{"line_number":130,"context_line":"    DEFAULT:                                          \u003cNew section in New config file\u003e"},{"line_number":131,"context_line":"    - name: resource_query_filters_file               \u003cNew key name in NEW config file\u003e"},{"line_number":132,"context_line":"      value: None"},{"line_number":133,"context_line":"      template: None"},{"line_number":134,"context_line":"      mapping: None"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"- Example 2: Value change - one to one"},{"line_number":137,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_a2be78b1","line":134,"range":{"start_line":132,"start_character":0,"end_line":134,"end_character":19},"in_reply_to":"df87a7cf_c16a9e7f","updated":"2017-12-08 08:35:35.000000000","message":"Done","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":17491,"name":"Lujin Luo","email":"luo.lujin@jp.fujitsu.com","username":"Lujin"},"change_message_id":"5cc338937670de1ce373689ffacb70bb8f2ce997","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"- Example 2: Value change - one to one"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"  In Neutron project, in new version, we can configure ``ml2`` for"},{"line_number":139,"context_line":"  ``[core_plugin]`` instead of ``neutron.plugins.ml2.plugin.Ml2Plugin``:"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":".. code-block:: yaml"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_a10bdad3","line":138,"range":{"start_line":138,"start_character":22,"end_line":138,"end_character":36},"updated":"2017-12-08 05:03:09.000000000","message":"I think we may better specify since which release, this change occurred. This dittos to Example 1 in Cinder.","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":19554,"name":"Nam","email":"namnh68@fsoft.com.vn","username":"namnh"},"change_message_id":"3dfae6b640d41108281140f8b550f810ab7e1e0f","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"- Example 2: Value change - one to one"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"  In Neutron project, in new version, we can configure ``ml2`` for"},{"line_number":139,"context_line":"  ``[core_plugin]`` instead of ``neutron.plugins.ml2.plugin.Ml2Plugin``:"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":".. code-block:: yaml"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_62b4f0d1","line":138,"range":{"start_line":138,"start_character":22,"end_line":138,"end_character":36},"in_reply_to":"df87a7cf_a10bdad3","updated":"2017-12-08 08:35:35.000000000","message":"Done","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":17491,"name":"Lujin Luo","email":"luo.lujin@jp.fujitsu.com","username":"Lujin"},"change_message_id":"5cc338937670de1ce373689ffacb70bb8f2ce997","unresolved":false,"context_lines":[{"line_number":142,"context_line":""},{"line_number":143,"context_line":"  deprecated_options:"},{"line_number":144,"context_line":"  new_options:"},{"line_number":145,"context_line":"    DEFAULT:                                          \u003cNew section in New config file\u003e"},{"line_number":146,"context_line":"    - name: core_plugin               \u003cNew key name in NEW config file\u003e"},{"line_number":147,"context_line":"      value: None"},{"line_number":148,"context_line":"      template: None"},{"line_number":149,"context_line":"      mapping: neutron.plugins.ml2.plugin.Ml2Plugin:ml2"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_61115204","line":146,"range":{"start_line":145,"start_character":0,"end_line":146,"end_character":71},"updated":"2017-12-08 05:03:09.000000000","message":"Can we align the indentation (for \u003c\u003e)?","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":19554,"name":"Nam","email":"namnh68@fsoft.com.vn","username":"namnh"},"change_message_id":"3dfae6b640d41108281140f8b550f810ab7e1e0f","unresolved":false,"context_lines":[{"line_number":142,"context_line":""},{"line_number":143,"context_line":"  deprecated_options:"},{"line_number":144,"context_line":"  new_options:"},{"line_number":145,"context_line":"    DEFAULT:                                          \u003cNew section in New config file\u003e"},{"line_number":146,"context_line":"    - name: core_plugin               \u003cNew key name in NEW config file\u003e"},{"line_number":147,"context_line":"      value: None"},{"line_number":148,"context_line":"      template: None"},{"line_number":149,"context_line":"      mapping: neutron.plugins.ml2.plugin.Ml2Plugin:ml2"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_42af6c7c","line":146,"range":{"start_line":145,"start_character":0,"end_line":146,"end_character":71},"in_reply_to":"df87a7cf_61115204","updated":"2017-12-08 08:35:35.000000000","message":"Done","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":17491,"name":"Lujin Luo","email":"luo.lujin@jp.fujitsu.com","username":"Lujin"},"change_message_id":"5cc338937670de1ce373689ffacb70bb8f2ce997","unresolved":false,"context_lines":[{"line_number":150,"context_line":""},{"line_number":151,"context_line":"- Example 3: Value change - many to one"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"With using RabbitMQ for message queue, we are changing to use ``transport_url``"},{"line_number":154,"context_line":"instead of  ``rabbit_host``, ``rabbit_userid``, ``rabbit_password`` and"},{"line_number":155,"context_line":"``rabbit_port``. That mean we need to put four values into a new one value with"},{"line_number":156,"context_line":"right order, so we propose to use a `template` for this kind of changes."}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_812fb63d","line":153,"range":{"start_line":153,"start_character":20,"end_line":153,"end_character":23},"updated":"2017-12-08 05:03:09.000000000","message":"s/for/as","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":19554,"name":"Nam","email":"namnh68@fsoft.com.vn","username":"namnh"},"change_message_id":"3dfae6b640d41108281140f8b550f810ab7e1e0f","unresolved":false,"context_lines":[{"line_number":150,"context_line":""},{"line_number":151,"context_line":"- Example 3: Value change - many to one"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"With using RabbitMQ for message queue, we are changing to use ``transport_url``"},{"line_number":154,"context_line":"instead of  ``rabbit_host``, ``rabbit_userid``, ``rabbit_password`` and"},{"line_number":155,"context_line":"``rabbit_port``. That mean we need to put four values into a new one value with"},{"line_number":156,"context_line":"right order, so we propose to use a `template` for this kind of changes."}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_02cde464","line":153,"range":{"start_line":153,"start_character":20,"end_line":153,"end_character":23},"in_reply_to":"df87a7cf_812fb63d","updated":"2017-12-08 08:35:35.000000000","message":"Done","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":17491,"name":"Lujin Luo","email":"luo.lujin@jp.fujitsu.com","username":"Lujin"},"change_message_id":"5cc338937670de1ce373689ffacb70bb8f2ce997","unresolved":false,"context_lines":[{"line_number":152,"context_line":""},{"line_number":153,"context_line":"With using RabbitMQ for message queue, we are changing to use ``transport_url``"},{"line_number":154,"context_line":"instead of  ``rabbit_host``, ``rabbit_userid``, ``rabbit_password`` and"},{"line_number":155,"context_line":"``rabbit_port``. That mean we need to put four values into a new one value with"},{"line_number":156,"context_line":"right order, so we propose to use a `template` for this kind of changes."},{"line_number":157,"context_line":""},{"line_number":158,"context_line":".. code-block:: yaml"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_41252e5b","line":155,"range":{"start_line":155,"start_character":22,"end_line":155,"end_character":26},"updated":"2017-12-08 05:03:09.000000000","message":"s/mean/means","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":17491,"name":"Lujin Luo","email":"luo.lujin@jp.fujitsu.com","username":"Lujin"},"change_message_id":"5cc338937670de1ce373689ffacb70bb8f2ce997","unresolved":false,"context_lines":[{"line_number":152,"context_line":""},{"line_number":153,"context_line":"With using RabbitMQ for message queue, we are changing to use ``transport_url``"},{"line_number":154,"context_line":"instead of  ``rabbit_host``, ``rabbit_userid``, ``rabbit_password`` and"},{"line_number":155,"context_line":"``rabbit_port``. That mean we need to put four values into a new one value with"},{"line_number":156,"context_line":"right order, so we propose to use a `template` for this kind of changes."},{"line_number":157,"context_line":""},{"line_number":158,"context_line":".. code-block:: yaml"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_612ab22c","line":155,"range":{"start_line":155,"start_character":61,"end_line":155,"end_character":68},"updated":"2017-12-08 05:03:09.000000000","message":"s/new one/one new","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":19554,"name":"Nam","email":"namnh68@fsoft.com.vn","username":"namnh"},"change_message_id":"3dfae6b640d41108281140f8b550f810ab7e1e0f","unresolved":false,"context_lines":[{"line_number":152,"context_line":""},{"line_number":153,"context_line":"With using RabbitMQ for message queue, we are changing to use ``transport_url``"},{"line_number":154,"context_line":"instead of  ``rabbit_host``, ``rabbit_userid``, ``rabbit_password`` and"},{"line_number":155,"context_line":"``rabbit_port``. That mean we need to put four values into a new one value with"},{"line_number":156,"context_line":"right order, so we propose to use a `template` for this kind of changes."},{"line_number":157,"context_line":""},{"line_number":158,"context_line":".. code-block:: yaml"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_e2bfa0a7","line":155,"range":{"start_line":155,"start_character":22,"end_line":155,"end_character":26},"in_reply_to":"df87a7cf_41252e5b","updated":"2017-12-08 08:35:35.000000000","message":"Done","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":19554,"name":"Nam","email":"namnh68@fsoft.com.vn","username":"namnh"},"change_message_id":"3dfae6b640d41108281140f8b550f810ab7e1e0f","unresolved":false,"context_lines":[{"line_number":152,"context_line":""},{"line_number":153,"context_line":"With using RabbitMQ for message queue, we are changing to use ``transport_url``"},{"line_number":154,"context_line":"instead of  ``rabbit_host``, ``rabbit_userid``, ``rabbit_password`` and"},{"line_number":155,"context_line":"``rabbit_port``. That mean we need to put four values into a new one value with"},{"line_number":156,"context_line":"right order, so we propose to use a `template` for this kind of changes."},{"line_number":157,"context_line":""},{"line_number":158,"context_line":".. code-block:: yaml"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_c2c29c34","line":155,"range":{"start_line":155,"start_character":61,"end_line":155,"end_character":68},"in_reply_to":"df87a7cf_612ab22c","updated":"2017-12-08 08:35:35.000000000","message":"Done","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":17491,"name":"Lujin Luo","email":"luo.lujin@jp.fujitsu.com","username":"Lujin"},"change_message_id":"5cc338937670de1ce373689ffacb70bb8f2ce997","unresolved":false,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"But it is not suitable to mantain the files manually, there must be a mechanism"},{"line_number":176,"context_line":"to do the files automatically, so in order to do this we need to implement"},{"line_number":177,"context_line":"two new attributes for each option:"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"- template: using an simple template format to render new value from a list of"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_0123a657","line":176,"range":{"start_line":176,"start_character":3,"end_line":176,"end_character":5},"updated":"2017-12-08 05:03:09.000000000","message":"s/do/modify(?)","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":19554,"name":"Nam","email":"namnh68@fsoft.com.vn","username":"namnh"},"change_message_id":"3dfae6b640d41108281140f8b550f810ab7e1e0f","unresolved":false,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"But it is not suitable to mantain the files manually, there must be a mechanism"},{"line_number":176,"context_line":"to do the files automatically, so in order to do this we need to implement"},{"line_number":177,"context_line":"two new attributes for each option:"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"- template: using an simple template format to render new value from a list of"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_a20c38a5","line":176,"range":{"start_line":176,"start_character":3,"end_line":176,"end_character":5},"in_reply_to":"df87a7cf_0123a657","updated":"2017-12-08 08:35:35.000000000","message":"we would use \"do\" instead of \"maintain\" again.","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":19930,"name":"Dai Dang Van","email":"daidv@omzcloud.vn","username":"daidv"},"change_message_id":"5ee1db8ed48bccbda516f6442dda8658ccb6528c","unresolved":false,"context_lines":[{"line_number":176,"context_line":"to do the files automatically, so in order to do this we need to implement"},{"line_number":177,"context_line":"two new attributes for each option:"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"- template: using an simple template format to render new value from a list of"},{"line_number":180,"context_line":"  old value."},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"- mapping: in case of the value of an option is changed, we need to convert old"},{"line_number":183,"context_line":"  value to new value."}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_f3d1bcfc","line":180,"range":{"start_line":179,"start_character":0,"end_line":180,"end_character":11},"updated":"2017-12-08 02:58:40.000000000","message":"Any other ideas for this template improvement meanwhile we not only have RabbitMQ but also other backends?\n\nHow can transport_url describe all deprecated options?\nHow can we realize which backend is being used? The problem is quite similar with \"dynamic section\" in oslo.config?","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":17491,"name":"Lujin Luo","email":"luo.lujin@jp.fujitsu.com","username":"Lujin"},"change_message_id":"5cc338937670de1ce373689ffacb70bb8f2ce997","unresolved":false,"context_lines":[{"line_number":179,"context_line":"- template: using an simple template format to render new value from a list of"},{"line_number":180,"context_line":"  old value."},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"- mapping: in case of the value of an option is changed, we need to convert old"},{"line_number":183,"context_line":"  value to new value."},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"The value of ``value`` key in config mapping file will be convert from"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_a1c2fa57","line":182,"range":{"start_line":182,"start_character":19,"end_line":182,"end_character":21},"updated":"2017-12-08 05:03:09.000000000","message":"we do not need \u0027of\u0027 here.","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":19554,"name":"Nam","email":"namnh68@fsoft.com.vn","username":"namnh"},"change_message_id":"3dfae6b640d41108281140f8b550f810ab7e1e0f","unresolved":false,"context_lines":[{"line_number":179,"context_line":"- template: using an simple template format to render new value from a list of"},{"line_number":180,"context_line":"  old value."},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"- mapping: in case of the value of an option is changed, we need to convert old"},{"line_number":183,"context_line":"  value to new value."},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"The value of ``value`` key in config mapping file will be convert from"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_42fd2c6c","line":182,"range":{"start_line":182,"start_character":19,"end_line":182,"end_character":21},"in_reply_to":"df87a7cf_a1c2fa57","updated":"2017-12-08 08:35:35.000000000","message":"Done","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":17491,"name":"Lujin Luo","email":"luo.lujin@jp.fujitsu.com","username":"Lujin"},"change_message_id":"5cc338937670de1ce373689ffacb70bb8f2ce997","unresolved":false,"context_lines":[{"line_number":182,"context_line":"- mapping: in case of the value of an option is changed, we need to convert old"},{"line_number":183,"context_line":"  value to new value."},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"The value of ``value`` key in config mapping file will be convert from"},{"line_number":186,"context_line":"``deprecated_opts`` of each option."},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"Summary, with two new things, **oslo.config** can automatically generate"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_41b3ee0a","line":185,"range":{"start_line":185,"start_character":58,"end_line":185,"end_character":65},"updated":"2017-12-08 05:03:09.000000000","message":"s/convert/converted","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":19554,"name":"Nam","email":"namnh68@fsoft.com.vn","username":"namnh"},"change_message_id":"3dfae6b640d41108281140f8b550f810ab7e1e0f","unresolved":false,"context_lines":[{"line_number":182,"context_line":"- mapping: in case of the value of an option is changed, we need to convert old"},{"line_number":183,"context_line":"  value to new value."},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"The value of ``value`` key in config mapping file will be convert from"},{"line_number":186,"context_line":"``deprecated_opts`` of each option."},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"Summary, with two new things, **oslo.config** can automatically generate"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_6202b071","line":185,"range":{"start_line":185,"start_character":58,"end_line":185,"end_character":65},"in_reply_to":"df87a7cf_41b3ee0a","updated":"2017-12-08 08:35:35.000000000","message":"Done","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":17491,"name":"Lujin Luo","email":"luo.lujin@jp.fujitsu.com","username":"Lujin"},"change_message_id":"5cc338937670de1ce373689ffacb70bb8f2ce997","unresolved":false,"context_lines":[{"line_number":185,"context_line":"The value of ``value`` key in config mapping file will be convert from"},{"line_number":186,"context_line":"``deprecated_opts`` of each option."},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"Summary, with two new things, **oslo.config** can automatically generate"},{"line_number":189,"context_line":"configuration mapping file from N to N+1 release, then in old environment,"},{"line_number":190,"context_line":"we can convert old config file to new one with it."},{"line_number":191,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_a190ba4b","line":188,"range":{"start_line":188,"start_character":30,"end_line":188,"end_character":45},"updated":"2017-12-08 05:03:09.000000000","message":"Do you want to emphasize oslo.config here? cause i do not think ** is valid..","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":17491,"name":"Lujin Luo","email":"luo.lujin@jp.fujitsu.com","username":"Lujin"},"change_message_id":"5cc338937670de1ce373689ffacb70bb8f2ce997","unresolved":false,"context_lines":[{"line_number":185,"context_line":"The value of ``value`` key in config mapping file will be convert from"},{"line_number":186,"context_line":"``deprecated_opts`` of each option."},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"Summary, with two new things, **oslo.config** can automatically generate"},{"line_number":189,"context_line":"configuration mapping file from N to N+1 release, then in old environment,"},{"line_number":190,"context_line":"we can convert old config file to new one with it."},{"line_number":191,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_a1a75abd","line":188,"range":{"start_line":188,"start_character":22,"end_line":188,"end_character":28},"updated":"2017-12-08 05:03:09.000000000","message":"attributes??","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":17491,"name":"Lujin Luo","email":"luo.lujin@jp.fujitsu.com","username":"Lujin"},"change_message_id":"5cc338937670de1ce373689ffacb70bb8f2ce997","unresolved":false,"context_lines":[{"line_number":185,"context_line":"The value of ``value`` key in config mapping file will be convert from"},{"line_number":186,"context_line":"``deprecated_opts`` of each option."},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"Summary, with two new things, **oslo.config** can automatically generate"},{"line_number":189,"context_line":"configuration mapping file from N to N+1 release, then in old environment,"},{"line_number":190,"context_line":"we can convert old config file to new one with it."},{"line_number":191,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_e1c32256","line":188,"range":{"start_line":188,"start_character":0,"end_line":188,"end_character":7},"updated":"2017-12-08 05:03:09.000000000","message":"s/Summary/In summary","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":19554,"name":"Nam","email":"namnh68@fsoft.com.vn","username":"namnh"},"change_message_id":"3dfae6b640d41108281140f8b550f810ab7e1e0f","unresolved":false,"context_lines":[{"line_number":185,"context_line":"The value of ``value`` key in config mapping file will be convert from"},{"line_number":186,"context_line":"``deprecated_opts`` of each option."},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"Summary, with two new things, **oslo.config** can automatically generate"},{"line_number":189,"context_line":"configuration mapping file from N to N+1 release, then in old environment,"},{"line_number":190,"context_line":"we can convert old config file to new one with it."},{"line_number":191,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_024084a4","line":188,"range":{"start_line":188,"start_character":30,"end_line":188,"end_character":45},"in_reply_to":"df87a7cf_a190ba4b","updated":"2017-12-08 08:35:35.000000000","message":"Yes, we want to emphasize this","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":19554,"name":"Nam","email":"namnh68@fsoft.com.vn","username":"namnh"},"change_message_id":"3dfae6b640d41108281140f8b550f810ab7e1e0f","unresolved":false,"context_lines":[{"line_number":185,"context_line":"The value of ``value`` key in config mapping file will be convert from"},{"line_number":186,"context_line":"``deprecated_opts`` of each option."},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"Summary, with two new things, **oslo.config** can automatically generate"},{"line_number":189,"context_line":"configuration mapping file from N to N+1 release, then in old environment,"},{"line_number":190,"context_line":"we can convert old config file to new one with it."},{"line_number":191,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_42320c60","line":188,"range":{"start_line":188,"start_character":22,"end_line":188,"end_character":28},"in_reply_to":"df87a7cf_a1a75abd","updated":"2017-12-08 08:35:35.000000000","message":"yes, \"attributes\" shoule be used.","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":19554,"name":"Nam","email":"namnh68@fsoft.com.vn","username":"namnh"},"change_message_id":"3dfae6b640d41108281140f8b550f810ab7e1e0f","unresolved":false,"context_lines":[{"line_number":185,"context_line":"The value of ``value`` key in config mapping file will be convert from"},{"line_number":186,"context_line":"``deprecated_opts`` of each option."},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"Summary, with two new things, **oslo.config** can automatically generate"},{"line_number":189,"context_line":"configuration mapping file from N to N+1 release, then in old environment,"},{"line_number":190,"context_line":"we can convert old config file to new one with it."},{"line_number":191,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_c2f05c94","line":188,"range":{"start_line":188,"start_character":0,"end_line":188,"end_character":7},"in_reply_to":"df87a7cf_e1c32256","updated":"2017-12-08 08:35:35.000000000","message":"Done","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":17491,"name":"Lujin Luo","email":"luo.lujin@jp.fujitsu.com","username":"Lujin"},"change_message_id":"5cc338937670de1ce373689ffacb70bb8f2ce997","unresolved":false,"context_lines":[{"line_number":186,"context_line":"``deprecated_opts`` of each option."},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"Summary, with two new things, **oslo.config** can automatically generate"},{"line_number":189,"context_line":"configuration mapping file from N to N+1 release, then in old environment,"},{"line_number":190,"context_line":"we can convert old config file to new one with it."},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"Work Items:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_c174de38","line":189,"range":{"start_line":189,"start_character":37,"end_line":189,"end_character":48},"updated":"2017-12-08 05:03:09.000000000","message":"Just want to double check, do you mean N+2 here or N+1?","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":19554,"name":"Nam","email":"namnh68@fsoft.com.vn","username":"namnh"},"change_message_id":"3dfae6b640d41108281140f8b550f810ab7e1e0f","unresolved":false,"context_lines":[{"line_number":186,"context_line":"``deprecated_opts`` of each option."},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"Summary, with two new things, **oslo.config** can automatically generate"},{"line_number":189,"context_line":"configuration mapping file from N to N+1 release, then in old environment,"},{"line_number":190,"context_line":"we can convert old config file to new one with it."},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"Work Items:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_2202683e","line":189,"range":{"start_line":189,"start_character":37,"end_line":189,"end_character":48},"in_reply_to":"df87a7cf_c174de38","updated":"2017-12-08 08:35:35.000000000","message":"No, It is \"N+1\". Because it is impossible to maintain the config-mapping file manually. the file shoule be generated from source-code on each project. You can see our patch set [1] that make our idea. Of couse, we are updating the patch. \n\n[1] https://review.openstack.org/#/c/526314/","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":17491,"name":"Lujin Luo","email":"luo.lujin@jp.fujitsu.com","username":"Lujin"},"change_message_id":"5cc338937670de1ce373689ffacb70bb8f2ce997","unresolved":false,"context_lines":[{"line_number":194,"context_line":""},{"line_number":195,"context_line":"1. Implement a method to get full values from configuration file."},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"  - Implement on each project to support oslo.config get dynamic section"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"2. Develop two new attributes: template and mapping."},{"line_number":200,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_a1951a35","line":197,"range":{"start_line":197,"start_character":14,"end_line":197,"end_character":16},"updated":"2017-12-08 05:03:09.000000000","message":"s/on/in","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"},{"author":{"_account_id":19554,"name":"Nam","email":"namnh68@fsoft.com.vn","username":"namnh"},"change_message_id":"3dfae6b640d41108281140f8b550f810ab7e1e0f","unresolved":false,"context_lines":[{"line_number":194,"context_line":""},{"line_number":195,"context_line":"1. Implement a method to get full values from configuration file."},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"  - Implement on each project to support oslo.config get dynamic section"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"2. Develop two new attributes: template and mapping."},{"line_number":200,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_c245bcb5","line":197,"range":{"start_line":197,"start_character":14,"end_line":197,"end_character":16},"in_reply_to":"df87a7cf_a1951a35","updated":"2017-12-08 08:35:35.000000000","message":"Done","commit_id":"473c73dfd2a5920d6fee3dd04cdfa205dc0711ac"}],"specs/rocky/handle-config-changes.rst":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"5b38a121a838e51717036e1d93de4df87ed5e422","unresolved":false,"context_lines":[{"line_number":80,"context_line":"If RabbitMQ is used as backend for message queue then ``transport_url`` can"},{"line_number":81,"context_line":"replace four options such as ``rabbit_host``, ``rabbit_port``,"},{"line_number":82,"context_line":"``rabbit_userid`` and ``rabbit_password`` (M\u003d4) by using a template like this:"},{"line_number":83,"context_line":"``rabbit://rabbit_userid:rabbit_password@rabbit_host:rabbit_port``."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"If Kafka is backend for message queue then ``transport_url`` can replace"},{"line_number":86,"context_line":"two options including ``kafka_default_host`` and ``kafka_default_port``"}],"source_content_type":"text/x-rst","patch_set":16,"id":"df7087c5_9e1d5d11","line":83,"updated":"2018-03-19 15:33:28.000000000","message":"Rather than inventing our own template language syntax, how about if we use jinja2? The syntax, including mixing it with YAML, will be familiar to Ansible users.\n\nAlternatively we could use the existing interpolation syntax that works within configuration files already. https://docs.openstack.org/oslo.config/latest/reference/cfg.html#option-value-interpolation","commit_id":"63d7a2d088ba44bd40076ff2ba6c12a7315126ef"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"5b38a121a838e51717036e1d93de4df87ed5e422","unresolved":false,"context_lines":[{"line_number":113,"context_line":"So how can we understand all values in dynamic section? This can be done via"},{"line_number":114,"context_line":"dynamic groups or driver groups[2] but we don\u0027t have any projects using"},{"line_number":115,"context_line":"them, so each project should migrate to use those things instead of their"},{"line_number":116,"context_line":"special ways to read dynamic sections."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"Work Items:"}],"source_content_type":"text/x-rst","patch_set":16,"id":"df7087c5_3eef71ea","line":116,"updated":"2018-03-19 15:33:28.000000000","message":"+1 for using driver groups. They were designed based on the way projects were already using dynamically created groups, so it should be relatively straightforward to migrate them.","commit_id":"63d7a2d088ba44bd40076ff2ba6c12a7315126ef"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"5b38a121a838e51717036e1d93de4df87ed5e422","unresolved":false,"context_lines":[{"line_number":119,"context_line":"Work Items:"},{"line_number":120,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"1. Implement one attribute: mapping_value."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"2. Implement a new function to render new configuration files based on codebase"},{"line_number":125,"context_line":"   and old configuration files."}],"source_content_type":"text/x-rst","patch_set":16,"id":"df7087c5_1e2f0df7","line":122,"updated":"2018-03-19 15:33:28.000000000","message":"I am having a little trouble with the name \"mapping value\". It does not indicate anything about the use during an upgrade, which I think is the key use case, right?\n\nCould we call it something like \"upgrade_template\" to indicate that?\n\nDoes the value need to be a string? This isn\u0027t something the user is going to specify, right? I wonder if it should be a function instead?","commit_id":"63d7a2d088ba44bd40076ff2ba6c12a7315126ef"},{"author":{"_account_id":19554,"name":"Nam","email":"namnh68@fsoft.com.vn","username":"namnh"},"change_message_id":"e37175767c31db2df8cafa75e39cfdc738fbb727","unresolved":false,"context_lines":[{"line_number":119,"context_line":"Work Items:"},{"line_number":120,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"1. Implement one attribute: mapping_value."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"2. Implement a new function to render new configuration files based on codebase"},{"line_number":125,"context_line":"   and old configuration files."}],"source_content_type":"text/x-rst","patch_set":16,"id":"df7087c5_9d31d1ef","line":122,"in_reply_to":"df7087c5_1e2f0df7","updated":"2018-03-20 06:54:24.000000000","message":"In my option, \"template\" is to indecate a template for case 4 that I mentioned above. \"mapping_value\" is simply to show converting old value to new value [1], so how about it will be changed to \"upgrade_value\".\n\n\u003e Does the value need to be a string? \n\nYes, it does. It is something like this link [1].\n\n\u003e This isn\u0027t something the user is going to specify, right? \n\nYes, users no need to care about this option, only developers need to do this when creating deprecated options.\n\n[1] https://review.openstack.org/#/c/526314/9/oslo_config/cfg.py@852","commit_id":"63d7a2d088ba44bd40076ff2ba6c12a7315126ef"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"4f927797fc3ed592a553229fb80501a53f8c15b7","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"In order to solve case 1, case 2 and case 3 then it is necessary to update"},{"line_number":56,"context_line":"one option to CONF object. It is called \"mapping_value\". It will be a string"},{"line_number":57,"context_line":"value that is to map from old value to new value with a template like this: ``old1_value:new1_value,old2_value:new2_value``."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Problems:"}],"source_content_type":"text/x-rst","patch_set":17,"id":"bf659307_9550f30c","line":57,"updated":"2018-04-04 22:22:41.000000000","message":"Can we just use something standard like JSON for this mapping?  When you implement your own syntax you end up having to deal with things that a pre-existing one would already handle (like a value with a : or a , in it).  I feel like OpenStack developers are generally going to be familiar with JSON too.\n\nSo the mapping would look more like this:\n\n{\"old1_value\": \"new1_value\", \"old2_value\": \"new2_value\"}","commit_id":"c563d7ede3b1167c009eb85b3b51036b3f2f7631"},{"author":{"_account_id":19554,"name":"Nam","email":"namnh68@fsoft.com.vn","username":"namnh"},"change_message_id":"f5d40bcda7597097b1f1c5daf4e97f52454b8256","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"In order to solve case 1, case 2 and case 3 then it is necessary to update"},{"line_number":56,"context_line":"one option to CONF object. It is called \"mapping_value\". It will be a string"},{"line_number":57,"context_line":"value that is to map from old value to new value with a template like this: ``old1_value:new1_value,old2_value:new2_value``."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Problems:"}],"source_content_type":"text/x-rst","patch_set":17,"id":"bf659307_0ebb5be5","line":57,"in_reply_to":"bf659307_9550f30c","updated":"2018-04-06 06:21:04.000000000","message":"i think you are right, i will update my code to use this template.","commit_id":"c563d7ede3b1167c009eb85b3b51036b3f2f7631"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"4f927797fc3ed592a553229fb80501a53f8c15b7","unresolved":false,"context_lines":[{"line_number":72,"context_line":"If RabbitMQ is used as backend for message queue then ``transport_url`` can"},{"line_number":73,"context_line":"replace four options such as ``rabbit_host``, ``rabbit_port``,"},{"line_number":74,"context_line":"``rabbit_userid`` and ``rabbit_password`` (M\u003d4) by using a template like this:"},{"line_number":75,"context_line":"``rabbit://rabbit_userid:rabbit_password@rabbit_host:rabbit_port``."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"If Kafka is backend for message queue then ``transport_url`` can replace"},{"line_number":78,"context_line":"two options including ``kafka_default_host`` and ``kafka_default_port``"}],"source_content_type":"text/x-rst","patch_set":17,"id":"bf659307_b59c176b","line":75,"updated":"2018-04-04 22:22:41.000000000","message":"I agree with Doug\u0027s previous comment about using Jinja for this templating as well.  However, given that this more complex mapping functionality is now planned as a future enhancement I don\u0027t know if we need to block the spec on it.","commit_id":"c563d7ede3b1167c009eb85b3b51036b3f2f7631"},{"author":{"_account_id":19554,"name":"Nam","email":"namnh68@fsoft.com.vn","username":"namnh"},"change_message_id":"f5d40bcda7597097b1f1c5daf4e97f52454b8256","unresolved":false,"context_lines":[{"line_number":72,"context_line":"If RabbitMQ is used as backend for message queue then ``transport_url`` can"},{"line_number":73,"context_line":"replace four options such as ``rabbit_host``, ``rabbit_port``,"},{"line_number":74,"context_line":"``rabbit_userid`` and ``rabbit_password`` (M\u003d4) by using a template like this:"},{"line_number":75,"context_line":"``rabbit://rabbit_userid:rabbit_password@rabbit_host:rabbit_port``."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"If Kafka is backend for message queue then ``transport_url`` can replace"},{"line_number":78,"context_line":"two options including ``kafka_default_host`` and ``kafka_default_port``"}],"source_content_type":"text/x-rst","patch_set":17,"id":"bf659307_0e891b25","line":75,"in_reply_to":"bf659307_b59c176b","updated":"2018-04-06 06:21:04.000000000","message":"Yeah, as we discussed that this case will be move to the next phase. In the begining, i will tackle basic cases first.","commit_id":"c563d7ede3b1167c009eb85b3b51036b3f2f7631"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"4f927797fc3ed592a553229fb80501a53f8c15b7","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"So how can we understand all values in dynamic section? This can be done via"},{"line_number":106,"context_line":"dynamic groups or driver groups[2] but we don\u0027t have any projects using"},{"line_number":107,"context_line":"them, so each project should migrate to use those things instead of their"},{"line_number":108,"context_line":"special ways to read dynamic sections."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Work Items:"}],"source_content_type":"text/x-rst","patch_set":17,"id":"bf659307_f5f60fd9","line":108,"range":{"start_line":107,"start_character":6,"end_line":108,"end_character":38},"updated":"2018-04-04 22:22:41.000000000","message":"I thought Cinder was using the oslo.config dynamic group functionality?  If they\u0027re not, I know the instack-undercloud project is as of recently so that could be an example.\n\nAlso interesting from that project is that the dynamic groups deprecated some static values so if there\u0027s a way to handle that it would be good.","commit_id":"c563d7ede3b1167c009eb85b3b51036b3f2f7631"},{"author":{"_account_id":19554,"name":"Nam","email":"namnh68@fsoft.com.vn","username":"namnh"},"change_message_id":"f5d40bcda7597097b1f1c5daf4e97f52454b8256","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"So how can we understand all values in dynamic section? This can be done via"},{"line_number":106,"context_line":"dynamic groups or driver groups[2] but we don\u0027t have any projects using"},{"line_number":107,"context_line":"them, so each project should migrate to use those things instead of their"},{"line_number":108,"context_line":"special ways to read dynamic sections."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Work Items:"}],"source_content_type":"text/x-rst","patch_set":17,"id":"bf659307_db2c404c","line":108,"range":{"start_line":107,"start_character":6,"end_line":108,"end_character":38},"in_reply_to":"bf659307_f5f60fd9","updated":"2018-04-06 06:21:04.000000000","message":"Yeah, let me check it in Cinder.","commit_id":"c563d7ede3b1167c009eb85b3b51036b3f2f7631"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"4f927797fc3ed592a553229fb80501a53f8c15b7","unresolved":false,"context_lines":[{"line_number":114,"context_line":"1. Implement one attribute: mapping_value."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"2. Implement a new function to render new configuration files based on codebase"},{"line_number":117,"context_line":"and old configuration files."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Documentation Impact:"}],"source_content_type":"text/x-rst","patch_set":17,"id":"bf659307_55b9fbe6","line":117,"updated":"2018-04-04 22:22:41.000000000","message":"Minor implementation note: It would be good if we could extend the existing sample config generation code to handle this.  Maybe you already did that (I need to go look at the POC change after this).","commit_id":"c563d7ede3b1167c009eb85b3b51036b3f2f7631"},{"author":{"_account_id":19554,"name":"Nam","email":"namnh68@fsoft.com.vn","username":"namnh"},"change_message_id":"f5d40bcda7597097b1f1c5daf4e97f52454b8256","unresolved":false,"context_lines":[{"line_number":114,"context_line":"1. Implement one attribute: mapping_value."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"2. Implement a new function to render new configuration files based on codebase"},{"line_number":117,"context_line":"and old configuration files."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Documentation Impact:"}],"source_content_type":"text/x-rst","patch_set":17,"id":"bf659307_3b69bc8a","line":117,"in_reply_to":"bf659307_55b9fbe6","updated":"2018-04-06 06:21:04.000000000","message":"Here is the POC patch set: https://review.openstack.org/#/c/526314/\nAnd the patch set for setup an environment:  https://review.openstack.org/#/c/549672/","commit_id":"c563d7ede3b1167c009eb85b3b51036b3f2f7631"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"acf75b73e80ad019b32c83b98e65c21038c83484","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    Old configuration  +--------\u003e              |"},{"line_number":30,"context_line":"                                |              |"},{"line_number":31,"context_line":"                                |  Gen config  +-------\u003e New configuration"},{"line_number":32,"context_line":"          Mapping-file +--------\u003e              |"},{"line_number":33,"context_line":"                                |              |"},{"line_number":34,"context_line":"                                +--------------+"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"3f79a3b5_0355831e","line":32,"range":{"start_line":32,"start_character":10,"end_line":32,"end_character":22},"updated":"2018-09-24 15:50:40.000000000","message":"We\u0027re no longer using a mapping file. Mapping data exists in the opt definitions now.","commit_id":"99164efcdb749061dc827e8e37e5cadaf39e5f9f"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"acf75b73e80ad019b32c83b98e65c21038c83484","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"In order to solve case 1, case 2 and case 3 then it is necessary to update"},{"line_number":56,"context_line":"one option to CONF object. It is called \"mapping_value\". It will be a string"},{"line_number":57,"context_line":"value that is to map from old value to new value with a template like this: ``old1_value:new1_value,old2_value:new2_value``."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Problems:"}],"source_content_type":"text/x-rst","patch_set":18,"id":"3f79a3b5_43205bb2","line":57,"range":{"start_line":57,"start_character":76,"end_line":57,"end_character":123},"updated":"2018-09-24 15:50:40.000000000","message":"Mapping values are json now.","commit_id":"99164efcdb749061dc827e8e37e5cadaf39e5f9f"},{"author":{"_account_id":19853,"name":"Nguyen Hung Phuong","email":"phuongnh@vn.fujitsu.com","username":"phuongnh"},"change_message_id":"f84cb3545354eb2f330d2a2231c297575b1ded58","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    Old configuration  +--------\u003e              |"},{"line_number":31,"context_line":"     (N-1 release)              |     Oslo     |"},{"line_number":32,"context_line":"                                |    Config    +-------\u003e New configuration"},{"line_number":33,"context_line":"          Namespaces   +--------\u003e   Migrator   |            (N release)"},{"line_number":34,"context_line":"                                |              |"},{"line_number":35,"context_line":"                                +--------------+"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"3f79a3b5_825d82ed","line":33,"range":{"start_line":33,"start_character":10,"end_line":33,"end_character":20},"updated":"2018-10-01 08:44:53.000000000","message":"config file ?","commit_id":"3ee48ae04376b028dd2e06f974286eec662fb132"},{"author":{"_account_id":28278,"name":"Duc Nguyen","email":"ducnv41@viettel.com.vn","username":"ducnv"},"change_message_id":"3bbd7d3c5c5812dc7feb4d1c6518872547510733","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    Old configuration  +--------\u003e              |"},{"line_number":31,"context_line":"     (N-1 release)              |     Oslo     |"},{"line_number":32,"context_line":"                                |    Config    +-------\u003e New configuration"},{"line_number":33,"context_line":"          Namespaces   +--------\u003e   Migrator   |            (N release)"},{"line_number":34,"context_line":"                                |              |"},{"line_number":35,"context_line":"                                +--------------+"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"3f79a3b5_e2166ca1","line":33,"range":{"start_line":33,"start_character":10,"end_line":33,"end_character":20},"in_reply_to":"3f79a3b5_825d82ed","updated":"2018-10-04 03:48:06.000000000","message":"to make more convenient, you can put namespaces in config file and use --config-file to use it.","commit_id":"3ee48ae04376b028dd2e06f974286eec662fb132"},{"author":{"_account_id":19853,"name":"Nguyen Hung Phuong","email":"phuongnh@vn.fujitsu.com","username":"phuongnh"},"change_message_id":"f84cb3545354eb2f330d2a2231c297575b1ded58","unresolved":false,"context_lines":[{"line_number":48,"context_line":"Base on the CONF object then we can get the information of options about"},{"line_number":49,"context_line":"whether ``deprecated_name`` and ``deprecated_group`` or not. If yes, then it"},{"line_number":50,"context_line":"is possible to implement a function to update from old configuration to new"},{"line_number":51,"context_line":"configuration, so we call this case is \"Mapping 1:1 without changing value."},{"line_number":52,"context_line":"In fact, not only this case but also other cases including:"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* **Case 1**: Mapping 1:1 without changing value."}],"source_content_type":"text/x-rst","patch_set":20,"id":"3f79a3b5_e245569c","line":51,"range":{"start_line":51,"start_character":52,"end_line":51,"end_character":74},"updated":"2018-10-01 08:44:53.000000000","message":"how about a new name \"with key_name/section changing\"?","commit_id":"3ee48ae04376b028dd2e06f974286eec662fb132"},{"author":{"_account_id":19853,"name":"Nguyen Hung Phuong","email":"phuongnh@vn.fujitsu.com","username":"phuongnh"},"change_message_id":"f84cb3545354eb2f330d2a2231c297575b1ded58","unresolved":false,"context_lines":[{"line_number":51,"context_line":"configuration, so we call this case is \"Mapping 1:1 without changing value."},{"line_number":52,"context_line":"In fact, not only this case but also other cases including:"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* **Case 1**: Mapping 1:1 without changing value."},{"line_number":55,"context_line":"* **Case 2**: Mapping 1:1 with changing value."},{"line_number":56,"context_line":"* **Case 3**: Mapping N:1. It means one option can replace a group of options."},{"line_number":57,"context_line":"* **Case 4**: Mapping M*N:1. Meaning that one option can replace a super"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3f79a3b5_c2485ab5","line":54,"range":{"start_line":54,"start_character":26,"end_line":54,"end_character":48},"updated":"2018-10-01 08:44:53.000000000","message":"ditto","commit_id":"3ee48ae04376b028dd2e06f974286eec662fb132"},{"author":{"_account_id":19853,"name":"Nguyen Hung Phuong","email":"phuongnh@vn.fujitsu.com","username":"phuongnh"},"change_message_id":"f84cb3545354eb2f330d2a2231c297575b1ded58","unresolved":false,"context_lines":[{"line_number":57,"context_line":"* **Case 4**: Mapping M*N:1. Meaning that one option can replace a super"},{"line_number":58,"context_line":"  group of options."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"As mentioned above, we have the ability to solve **Case 1**. The examples of"},{"line_number":61,"context_line":"**Case 1** are as follows:"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"1. Change the key of option:"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"3f79a3b5_1da9d3db","line":61,"range":{"start_line":60,"start_character":0,"end_line":61,"end_character":26},"updated":"2018-10-01 08:44:53.000000000","message":"Should be changed to:\nBy using ``deprecated_name`` and ``deprecated_group``, we are able to solve **Case 1**. \n\nThe examples of **Case 1** are as follows:","commit_id":"3ee48ae04376b028dd2e06f974286eec662fb132"},{"author":{"_account_id":28278,"name":"Duc Nguyen","email":"ducnv41@viettel.com.vn","username":"ducnv"},"change_message_id":"3bbd7d3c5c5812dc7feb4d1c6518872547510733","unresolved":false,"context_lines":[{"line_number":57,"context_line":"* **Case 4**: Mapping M*N:1. Meaning that one option can replace a super"},{"line_number":58,"context_line":"  group of options."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"As mentioned above, we have the ability to solve **Case 1**. The examples of"},{"line_number":61,"context_line":"**Case 1** are as follows:"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"1. Change the key of option:"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"3f79a3b5_62e7bcac","line":61,"range":{"start_line":60,"start_character":0,"end_line":61,"end_character":26},"in_reply_to":"3f79a3b5_1da9d3db","updated":"2018-10-04 03:48:06.000000000","message":"Done","commit_id":"3ee48ae04376b028dd2e06f974286eec662fb132"},{"author":{"_account_id":19853,"name":"Nguyen Hung Phuong","email":"phuongnh@vn.fujitsu.com","username":"phuongnh"},"change_message_id":"f84cb3545354eb2f330d2a2231c297575b1ded58","unresolved":false,"context_lines":[{"line_number":90,"context_line":"  [oslo_messaging_notifications]"},{"line_number":91,"context_line":"  driver \u003d messaging"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"In order to solve **Case 2** then it is necessary to adding a parameter to Opt"},{"line_number":94,"context_line":"class. It is called \"upgrade_value\". It will be a dictionary that is to map"},{"line_number":95,"context_line":"from old value to new value with a template like this:"},{"line_number":96,"context_line":"**{\u0027old1_value\u0027: \u0027new1_value\u0027, \u0027old2_value\u0027: \u0027new2_value\u0027}**"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3f79a3b5_3d212f50","line":93,"range":{"start_line":93,"start_character":0,"end_line":93,"end_character":29},"updated":"2018-10-01 08:44:53.000000000","message":"Where is example of **Case 2** ?","commit_id":"3ee48ae04376b028dd2e06f974286eec662fb132"},{"author":{"_account_id":28278,"name":"Duc Nguyen","email":"ducnv41@viettel.com.vn","username":"ducnv"},"change_message_id":"3bbd7d3c5c5812dc7feb4d1c6518872547510733","unresolved":false,"context_lines":[{"line_number":90,"context_line":"  [oslo_messaging_notifications]"},{"line_number":91,"context_line":"  driver \u003d messaging"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"In order to solve **Case 2** then it is necessary to adding a parameter to Opt"},{"line_number":94,"context_line":"class. It is called \"upgrade_value\". It will be a dictionary that is to map"},{"line_number":95,"context_line":"from old value to new value with a template like this:"},{"line_number":96,"context_line":"**{\u0027old1_value\u0027: \u0027new1_value\u0027, \u0027old2_value\u0027: \u0027new2_value\u0027}**"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3f79a3b5_a52cfe00","line":93,"range":{"start_line":93,"start_character":0,"end_line":93,"end_character":29},"in_reply_to":"3f79a3b5_3d212f50","updated":"2018-10-04 03:48:06.000000000","message":"yes, I will update it.","commit_id":"3ee48ae04376b028dd2e06f974286eec662fb132"},{"author":{"_account_id":19853,"name":"Nguyen Hung Phuong","email":"phuongnh@vn.fujitsu.com","username":"phuongnh"},"change_message_id":"f84cb3545354eb2f330d2a2231c297575b1ded58","unresolved":false,"context_lines":[{"line_number":91,"context_line":"  driver \u003d messaging"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"In order to solve **Case 2** then it is necessary to adding a parameter to Opt"},{"line_number":94,"context_line":"class. It is called \"upgrade_value\". It will be a dictionary that is to map"},{"line_number":95,"context_line":"from old value to new value with a template like this:"},{"line_number":96,"context_line":"**{\u0027old1_value\u0027: \u0027new1_value\u0027, \u0027old2_value\u0027: \u0027new2_value\u0027}**"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"3f79a3b5_fde3b704","line":94,"range":{"start_line":94,"start_character":21,"end_line":94,"end_character":34},"updated":"2018-10-01 08:44:53.000000000","message":"should be changed to the latest name proposed by core reviewer.","commit_id":"3ee48ae04376b028dd2e06f974286eec662fb132"},{"author":{"_account_id":28278,"name":"Duc Nguyen","email":"ducnv41@viettel.com.vn","username":"ducnv"},"change_message_id":"3bbd7d3c5c5812dc7feb4d1c6518872547510733","unresolved":false,"context_lines":[{"line_number":91,"context_line":"  driver \u003d messaging"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"In order to solve **Case 2** then it is necessary to adding a parameter to Opt"},{"line_number":94,"context_line":"class. It is called \"upgrade_value\". It will be a dictionary that is to map"},{"line_number":95,"context_line":"from old value to new value with a template like this:"},{"line_number":96,"context_line":"**{\u0027old1_value\u0027: \u0027new1_value\u0027, \u0027old2_value\u0027: \u0027new2_value\u0027}**"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"3f79a3b5_053db22a","line":94,"range":{"start_line":94,"start_character":21,"end_line":94,"end_character":34},"in_reply_to":"3f79a3b5_fde3b704","updated":"2018-10-04 03:48:06.000000000","message":"Sure!","commit_id":"3ee48ae04376b028dd2e06f974286eec662fb132"},{"author":{"_account_id":19853,"name":"Nguyen Hung Phuong","email":"phuongnh@vn.fujitsu.com","username":"phuongnh"},"change_message_id":"f84cb3545354eb2f330d2a2231c297575b1ded58","unresolved":false,"context_lines":[{"line_number":99,"context_line":"Problems:"},{"line_number":100,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"With the above proposal, we have just solved only basic cases. For the"},{"line_number":103,"context_line":"complicated cases, we have yet to resolve them. Here are some problem that"},{"line_number":104,"context_line":"need to be achieved for this feature."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Problem 1: Mapping N options to 1 option:"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3f79a3b5_5da98b8c","line":103,"range":{"start_line":102,"start_character":0,"end_line":103,"end_character":46},"updated":"2018-10-01 08:44:53.000000000","message":"Should be changed to:\n\"With this proposal, we have just solved only 2 basic cases (case 1 and case 2). For the more complicated cases, we have not yet to resolve them.\"","commit_id":"3ee48ae04376b028dd2e06f974286eec662fb132"},{"author":{"_account_id":19853,"name":"Nguyen Hung Phuong","email":"phuongnh@vn.fujitsu.com","username":"phuongnh"},"change_message_id":"f84cb3545354eb2f330d2a2231c297575b1ded58","unresolved":false,"context_lines":[{"line_number":100,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"With the above proposal, we have just solved only basic cases. For the"},{"line_number":103,"context_line":"complicated cases, we have yet to resolve them. Here are some problem that"},{"line_number":104,"context_line":"need to be achieved for this feature."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Problem 1: Mapping N options to 1 option:"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3f79a3b5_ddd03bf7","line":103,"range":{"start_line":103,"start_character":62,"end_line":103,"end_character":69},"updated":"2018-10-01 08:44:53.000000000","message":"s/problem/problems/","commit_id":"3ee48ae04376b028dd2e06f974286eec662fb132"},{"author":{"_account_id":28278,"name":"Duc Nguyen","email":"ducnv41@viettel.com.vn","username":"ducnv"},"change_message_id":"3bbd7d3c5c5812dc7feb4d1c6518872547510733","unresolved":false,"context_lines":[{"line_number":99,"context_line":"Problems:"},{"line_number":100,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"With the above proposal, we have just solved only basic cases. For the"},{"line_number":103,"context_line":"complicated cases, we have yet to resolve them. Here are some problem that"},{"line_number":104,"context_line":"need to be achieved for this feature."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Problem 1: Mapping N options to 1 option:"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3f79a3b5_c2a57049","line":103,"range":{"start_line":102,"start_character":0,"end_line":103,"end_character":46},"in_reply_to":"3f79a3b5_5da98b8c","updated":"2018-10-04 03:48:06.000000000","message":"Done.","commit_id":"3ee48ae04376b028dd2e06f974286eec662fb132"},{"author":{"_account_id":28278,"name":"Duc Nguyen","email":"ducnv41@viettel.com.vn","username":"ducnv"},"change_message_id":"3bbd7d3c5c5812dc7feb4d1c6518872547510733","unresolved":false,"context_lines":[{"line_number":100,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"With the above proposal, we have just solved only basic cases. For the"},{"line_number":103,"context_line":"complicated cases, we have yet to resolve them. Here are some problem that"},{"line_number":104,"context_line":"need to be achieved for this feature."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Problem 1: Mapping N options to 1 option:"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3f79a3b5_c516da4a","line":103,"range":{"start_line":103,"start_character":62,"end_line":103,"end_character":69},"in_reply_to":"3f79a3b5_ddd03bf7","updated":"2018-10-04 03:48:06.000000000","message":"it should be changed to \u0027remaining cases\u0027","commit_id":"3ee48ae04376b028dd2e06f974286eec662fb132"},{"author":{"_account_id":19853,"name":"Nguyen Hung Phuong","email":"phuongnh@vn.fujitsu.com","username":"phuongnh"},"change_message_id":"f84cb3545354eb2f330d2a2231c297575b1ded58","unresolved":false,"context_lines":[{"line_number":103,"context_line":"complicated cases, we have yet to resolve them. Here are some problem that"},{"line_number":104,"context_line":"need to be achieved for this feature."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Problem 1: Mapping N options to 1 option:"},{"line_number":107,"context_line":"-----------------------------------------"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"For example:"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3f79a3b5_dd6d9b67","line":106,"range":{"start_line":106,"start_character":0,"end_line":106,"end_character":41},"updated":"2018-10-01 08:44:53.000000000","message":"This is description of case 3, what is the problem?","commit_id":"3ee48ae04376b028dd2e06f974286eec662fb132"},{"author":{"_account_id":28278,"name":"Duc Nguyen","email":"ducnv41@viettel.com.vn","username":"ducnv"},"change_message_id":"3bbd7d3c5c5812dc7feb4d1c6518872547510733","unresolved":false,"context_lines":[{"line_number":103,"context_line":"complicated cases, we have yet to resolve them. Here are some problem that"},{"line_number":104,"context_line":"need to be achieved for this feature."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Problem 1: Mapping N options to 1 option:"},{"line_number":107,"context_line":"-----------------------------------------"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"For example:"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3f79a3b5_e586765f","line":106,"range":{"start_line":106,"start_character":0,"end_line":106,"end_character":41},"in_reply_to":"3f79a3b5_dd6d9b67","updated":"2018-10-04 03:48:06.000000000","message":"yes, this is case 3 that I mentioned above. The general problem here is no solution for these remaining case.","commit_id":"3ee48ae04376b028dd2e06f974286eec662fb132"},{"author":{"_account_id":19853,"name":"Nguyen Hung Phuong","email":"phuongnh@vn.fujitsu.com","username":"phuongnh"},"change_message_id":"f84cb3545354eb2f330d2a2231c297575b1ded58","unresolved":false,"context_lines":[{"line_number":123,"context_line":"  identity_uri \u003d http://controller:35357"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"Problem 2: Mapping M*N options to 1 option:"},{"line_number":127,"context_line":"-------------------------------------------"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Currently, ``transport_url`` is a big example for this case. With M is the"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3f79a3b5_fd9f374e","line":126,"range":{"start_line":126,"start_character":0,"end_line":126,"end_character":43},"updated":"2018-10-01 08:44:53.000000000","message":"ditto, what is the problem?","commit_id":"3ee48ae04376b028dd2e06f974286eec662fb132"},{"author":{"_account_id":19853,"name":"Nguyen Hung Phuong","email":"phuongnh@vn.fujitsu.com","username":"phuongnh"},"change_message_id":"f84cb3545354eb2f330d2a2231c297575b1ded58","unresolved":false,"context_lines":[{"line_number":164,"context_line":"  #transport_url \u003d kafka//openstack:9092"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"Problem 3: Dynamic section"},{"line_number":168,"context_line":"--------------------------"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"One important thing that there is a dynamic section. For example, Cinder has"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3f79a3b5_9d088391","line":167,"range":{"start_line":167,"start_character":0,"end_line":167,"end_character":26},"updated":"2018-10-01 08:44:53.000000000","message":"Is this a new case?","commit_id":"3ee48ae04376b028dd2e06f974286eec662fb132"},{"author":{"_account_id":19853,"name":"Nguyen Hung Phuong","email":"phuongnh@vn.fujitsu.com","username":"phuongnh"},"change_message_id":"f84cb3545354eb2f330d2a2231c297575b1ded58","unresolved":false,"context_lines":[{"line_number":205,"context_line":""},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"Both sections ``[lvm]`` and ``[ceph]`` are not registered in codebase, the"},{"line_number":208,"context_line":"options in the these sections are actually registered in section"},{"line_number":209,"context_line":"``[backend_defaults]`` belonging to cinder namespace."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"So how can we understand all values in dynamic section? This can be done via"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3f79a3b5_7dda471d","line":208,"range":{"start_line":208,"start_character":11,"end_line":208,"end_character":20},"updated":"2018-10-01 08:44:53.000000000","message":"s/the these/these","commit_id":"3ee48ae04376b028dd2e06f974286eec662fb132"},{"author":{"_account_id":28278,"name":"Duc Nguyen","email":"ducnv41@viettel.com.vn","username":"ducnv"},"change_message_id":"3bbd7d3c5c5812dc7feb4d1c6518872547510733","unresolved":false,"context_lines":[{"line_number":205,"context_line":""},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"Both sections ``[lvm]`` and ``[ceph]`` are not registered in codebase, the"},{"line_number":208,"context_line":"options in the these sections are actually registered in section"},{"line_number":209,"context_line":"``[backend_defaults]`` belonging to cinder namespace."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"So how can we understand all values in dynamic section? This can be done via"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3f79a3b5_a5771e9f","line":208,"range":{"start_line":208,"start_character":11,"end_line":208,"end_character":20},"in_reply_to":"3f79a3b5_7dda471d","updated":"2018-10-04 03:48:06.000000000","message":"Done","commit_id":"3ee48ae04376b028dd2e06f974286eec662fb132"},{"author":{"_account_id":19853,"name":"Nguyen Hung Phuong","email":"phuongnh@vn.fujitsu.com","username":"phuongnh"},"change_message_id":"f84cb3545354eb2f330d2a2231c297575b1ded58","unresolved":false,"context_lines":[{"line_number":206,"context_line":""},{"line_number":207,"context_line":"Both sections ``[lvm]`` and ``[ceph]`` are not registered in codebase, the"},{"line_number":208,"context_line":"options in the these sections are actually registered in section"},{"line_number":209,"context_line":"``[backend_defaults]`` belonging to cinder namespace."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"So how can we understand all values in dynamic section? This can be done via"},{"line_number":212,"context_line":"dynamic groups or driver groups [2]_ but we don\u0027t have any projects using"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3f79a3b5_fdcdf75d","line":209,"range":{"start_line":209,"start_character":22,"end_line":209,"end_character":32},"updated":"2018-10-01 08:44:53.000000000","message":"and are belonging ...","commit_id":"3ee48ae04376b028dd2e06f974286eec662fb132"},{"author":{"_account_id":28278,"name":"Duc Nguyen","email":"ducnv41@viettel.com.vn","username":"ducnv"},"change_message_id":"3bbd7d3c5c5812dc7feb4d1c6518872547510733","unresolved":false,"context_lines":[{"line_number":206,"context_line":""},{"line_number":207,"context_line":"Both sections ``[lvm]`` and ``[ceph]`` are not registered in codebase, the"},{"line_number":208,"context_line":"options in the these sections are actually registered in section"},{"line_number":209,"context_line":"``[backend_defaults]`` belonging to cinder namespace."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"So how can we understand all values in dynamic section? This can be done via"},{"line_number":212,"context_line":"dynamic groups or driver groups [2]_ but we don\u0027t have any projects using"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3f79a3b5_8574629d","line":209,"range":{"start_line":209,"start_character":22,"end_line":209,"end_character":32},"in_reply_to":"3f79a3b5_fdcdf75d","updated":"2018-10-04 03:48:06.000000000","message":"Done","commit_id":"3ee48ae04376b028dd2e06f974286eec662fb132"},{"author":{"_account_id":19853,"name":"Nguyen Hung Phuong","email":"phuongnh@vn.fujitsu.com","username":"phuongnh"},"change_message_id":"f84cb3545354eb2f330d2a2231c297575b1ded58","unresolved":false,"context_lines":[{"line_number":214,"context_line":"special ways to read dynamic sections."},{"line_number":215,"context_line":""},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"Problem 4: Dynamic option"},{"line_number":218,"context_line":"------------------------------------------------------------"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"The options like ``user_domain_id``, ``project_name`` in ``[keystone_authtoken]``"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3f79a3b5_1df47386","line":217,"range":{"start_line":217,"start_character":0,"end_line":217,"end_character":25},"updated":"2018-10-01 08:44:53.000000000","message":"ditto, where is the problem?","commit_id":"3ee48ae04376b028dd2e06f974286eec662fb132"},{"author":{"_account_id":19853,"name":"Nguyen Hung Phuong","email":"phuongnh@vn.fujitsu.com","username":"phuongnh"},"change_message_id":"f84cb3545354eb2f330d2a2231c297575b1ded58","unresolved":false,"context_lines":[{"line_number":268,"context_line":""},{"line_number":269,"context_line":"* Dai Dang Van \u003cdaidv@vn.fujitsu.com\u003e"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"* Nam Nguyen Hoai \u003cnamnh@vn.fujitsu.com\u003e"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"* Hieu Le \u003chieulq@vn.fujitsu.com\u003e"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"References:"},{"line_number":276,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3f79a3b5_bdec5fbc","line":273,"range":{"start_line":271,"start_character":0,"end_line":273,"end_character":33},"updated":"2018-10-01 08:44:53.000000000","message":"phuongnh@...","commit_id":"3ee48ae04376b028dd2e06f974286eec662fb132"},{"author":{"_account_id":28278,"name":"Duc Nguyen","email":"ducnv41@viettel.com.vn","username":"ducnv"},"change_message_id":"3bbd7d3c5c5812dc7feb4d1c6518872547510733","unresolved":false,"context_lines":[{"line_number":268,"context_line":""},{"line_number":269,"context_line":"* Dai Dang Van \u003cdaidv@vn.fujitsu.com\u003e"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"* Nam Nguyen Hoai \u003cnamnh@vn.fujitsu.com\u003e"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"* Hieu Le \u003chieulq@vn.fujitsu.com\u003e"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"References:"},{"line_number":276,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3f79a3b5_e2f2ec68","line":273,"range":{"start_line":271,"start_character":0,"end_line":273,"end_character":33},"in_reply_to":"3f79a3b5_bdec5fbc","updated":"2018-10-04 03:48:06.000000000","message":"Done","commit_id":"3ee48ae04376b028dd2e06f974286eec662fb132"}]}
