)]}'
{"specs/ocata/config-grouping-options.rst":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"e1af7ea5383ecf545f90c94ed4b6cb8d056d54d9","unresolved":false,"context_lines":[{"line_number":58,"context_line":"* Get type-checked option values out of each group in the GroupingOpt."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"* Deprecate and rename options, strictly within each OptGroup of a GroupingOpt."},{"line_number":61,"context_line":"  Not between OptGroups or to/from outside a GroupingOpt."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* Output useful documentation + sample files."},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_8645a2b4","line":61,"updated":"2016-11-08 19:52:21.000000000","message":"I don\u0027t understand what this requirement means, can you give more details or an example?","commit_id":"5f3d7b142b98809f546ed422e230073b890fb0ff"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8bd61872e755fef9934ef8f561422763e9ccffb9","unresolved":false,"context_lines":[{"line_number":58,"context_line":"* Get type-checked option values out of each group in the GroupingOpt."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"* Deprecate and rename options, strictly within each OptGroup of a GroupingOpt."},{"line_number":61,"context_line":"  Not between OptGroups or to/from outside a GroupingOpt."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* Output useful documentation + sample files."},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_4f3b7a9c","line":61,"in_reply_to":"9a629dbe_8645a2b4","updated":"2016-11-10 13:18:23.000000000","message":"Normal options can be renamed and the old name marked as deprecated so it continues to work. Nova have used this to move a lot of options around, EG from [DEFAULT] into groups. I\u0027m proposing we should be able to do this, but only within an OptGroup. Semantics change considerably when applying the option to one element of a pipeline versus globally so trying to ensure an option still works doesn\u0027t make sense. Also moving options between types doesn\u0027t make sense because they should be different types, that is a remove and an add not a move.\n\nI\u0027ll try to elucidate this in the spec.","commit_id":"5f3d7b142b98809f546ed422e230073b890fb0ff"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"e1af7ea5383ecf545f90c94ed4b6cb8d056d54d9","unresolved":false,"context_lines":[{"line_number":60,"context_line":"* Deprecate and rename options, strictly within each OptGroup of a GroupingOpt."},{"line_number":61,"context_line":"  Not between OptGroups or to/from outside a GroupingOpt."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* Output useful documentation + sample files."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Adding this feature will make oslo.config able to handle configuration options"},{"line_number":66,"context_line":"for additional OpenStack projects."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_8619227c","line":63,"updated":"2016-11-08 19:52:21.000000000","message":"The discovery logic already supports introducing made up groups and overriding default values for generating sample files to handle this case.","commit_id":"5f3d7b142b98809f546ed422e230073b890fb0ff"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8bd61872e755fef9934ef8f561422763e9ccffb9","unresolved":false,"context_lines":[{"line_number":60,"context_line":"* Deprecate and rename options, strictly within each OptGroup of a GroupingOpt."},{"line_number":61,"context_line":"  Not between OptGroups or to/from outside a GroupingOpt."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* Output useful documentation + sample files."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Adding this feature will make oslo.config able to handle configuration options"},{"line_number":66,"context_line":"for additional OpenStack projects."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_af4c1643","line":63,"in_reply_to":"9a629dbe_8619227c","updated":"2016-11-10 13:18:23.000000000","message":"Excellent.","commit_id":"5f3d7b142b98809f546ed422e230073b890fb0ff"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"e1af7ea5383ecf545f90c94ed4b6cb8d056d54d9","unresolved":false,"context_lines":[{"line_number":97,"context_line":"we can read that as a static option group."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"GroupingOpts which produce multiple groups are also a possibility but no"},{"line_number":100,"context_line":"incidences of this are currently known."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Impact on Existing APIs"},{"line_number":103,"context_line":"-----------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_4b21d3b3","line":100,"updated":"2016-11-08 19:52:21.000000000","message":"Cinder has a class that does something like this already in cinder/volume/configuration.py. It takes a list of options and a group name, registers the options in that group, then provides easy access to just that portion of the configuration. Maybe we can move that class into the library and add whatever features are missing to make it useful for this case, too.","commit_id":"5f3d7b142b98809f546ed422e230073b890fb0ff"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8bd61872e755fef9934ef8f561422763e9ccffb9","unresolved":false,"context_lines":[{"line_number":97,"context_line":"we can read that as a static option group."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"GroupingOpts which produce multiple groups are also a possibility but no"},{"line_number":100,"context_line":"incidences of this are currently known."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Impact on Existing APIs"},{"line_number":103,"context_line":"-----------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_affa56bb","line":100,"in_reply_to":"9a629dbe_4b21d3b3","updated":"2016-11-10 13:18:23.000000000","message":"That sounds like a different feature to the one described on L99-100? It might be able to form the basis of the Grouping object.","commit_id":"5f3d7b142b98809f546ed422e230073b890fb0ff"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"b7a05d5475af62f07d7c19d467afb10240d42659","unresolved":false,"context_lines":[{"line_number":97,"context_line":"we can read that as a static option group."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"GroupingOpts which produce multiple groups are also a possibility but no"},{"line_number":100,"context_line":"incidences of this are currently known."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Impact on Existing APIs"},{"line_number":103,"context_line":"-----------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_b8b6d5f6","line":100,"in_reply_to":"9a629dbe_affa56bb","updated":"2016-11-10 20:05:54.000000000","message":"I thought the new class was meant to manage the creation of a bunch of these option groups. The class in Cinder does that. Really it\u0027s just a function call, so we may not need a whole class, but the Cinder class doubles as an access mechanism as well as doing the registration. Maybe I\u0027m missing something about what you\u0027re proposing, though.","commit_id":"5f3d7b142b98809f546ed422e230073b890fb0ff"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"e1af7ea5383ecf545f90c94ed4b6cb8d056d54d9","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"GroupingOpts which produce multiple groups are also a possibility but no"},{"line_number":100,"context_line":"incidences of this are currently known."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Impact on Existing APIs"},{"line_number":103,"context_line":"-----------------------"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_0686f212","line":101,"updated":"2016-11-08 19:52:21.000000000","message":"How are the values going to be accessed by the application code? Does each element of the pipeline correspond to an instance of a class? If so, we may not need a new class at all because the constructor for that existing class can just register its own options in the given group.\n\nDoes some application logic access all of the options in all of the groups at one time and in one place, so that it needs to know the group names and their contents? Is that what leads to creating a new class to manage this?","commit_id":"5f3d7b142b98809f546ed422e230073b890fb0ff"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8bd61872e755fef9934ef8f561422763e9ccffb9","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"GroupingOpts which produce multiple groups are also a possibility but no"},{"line_number":100,"context_line":"incidences of this are currently known."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Impact on Existing APIs"},{"line_number":103,"context_line":"-----------------------"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_d69c5110","line":101,"in_reply_to":"9a629dbe_0686f212","updated":"2016-11-10 13:18:23.000000000","message":"I was going to ask each pipeline element to register options up-front, but if we get them to do it just-in-time we can only register options for pipeline elements which will be used. I\u0027ll rewrite a bit.","commit_id":"5f3d7b142b98809f546ed422e230073b890fb0ff"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"b7a05d5475af62f07d7c19d467afb10240d42659","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"GroupingOpts which produce multiple groups are also a possibility but no"},{"line_number":100,"context_line":"incidences of this are currently known."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Impact on Existing APIs"},{"line_number":103,"context_line":"-----------------------"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_98af517c","line":101,"in_reply_to":"9a629dbe_d69c5110","updated":"2016-11-10 20:05:54.000000000","message":"I\u0027m not sure where \"up-front\" falls for the pipeline. Probably not at import time like we have in some of the other apps, since there may be many pipeline elements with the same options pulling from different groups.\n\nIt might be useful to look at how some of the oslo.middleware classes handle this, too. Several use oslo.config.","commit_id":"5f3d7b142b98809f546ed422e230073b890fb0ff"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"e1af7ea5383ecf545f90c94ed4b6cb8d056d54d9","unresolved":false,"context_lines":[{"line_number":102,"context_line":"Impact on Existing APIs"},{"line_number":103,"context_line":"-----------------------"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"None."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Security impact"},{"line_number":108,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_e6cadea0","line":105,"updated":"2016-11-08 19:52:21.000000000","message":"A lot of the group names in the examples above aren\u0027t valid Python attribute names. We rely on __getattr__() as the API to get the group object and then the opt value out of a ConfigOpt instance. We should make sure there is a public method that takes the name and does the same thing, for these cases where the name is dynamic and/or not a valid Python identifier.","commit_id":"5f3d7b142b98809f546ed422e230073b890fb0ff"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"b7a05d5475af62f07d7c19d467afb10240d42659","unresolved":false,"context_lines":[{"line_number":102,"context_line":"Impact on Existing APIs"},{"line_number":103,"context_line":"-----------------------"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"None."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Security impact"},{"line_number":108,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_38fe45ae","line":105,"in_reply_to":"9a629dbe_16608900","updated":"2016-11-10 20:05:54.000000000","message":"OK, I didn\u0027t remember that being part of the API. :-)","commit_id":"5f3d7b142b98809f546ed422e230073b890fb0ff"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8bd61872e755fef9934ef8f561422763e9ccffb9","unresolved":false,"context_lines":[{"line_number":102,"context_line":"Impact on Existing APIs"},{"line_number":103,"context_line":"-----------------------"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"None."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Security impact"},{"line_number":108,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_16608900","line":105,"in_reply_to":"9a629dbe_e6cadea0","updated":"2016-11-10 13:18:23.000000000","message":"We have __getitem__() for this :)","commit_id":"5f3d7b142b98809f546ed422e230073b890fb0ff"}]}
