)]}'
{"specs/newton/approved/plugins-parameters.rst":[{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"8d6fd6f418220a662f37d8d552b0cb6aee768fe9","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Allow the developer of a Watcher plugin to add specific parameters"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/watcher/+spec/plugins-parameters"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_461db272","line":11,"updated":"2016-05-18 15:03:49.000000000","message":"FYI, You should delete the template instructions like this.","commit_id":"adfbc6745a97ae5c786bbedb9f16e5811261cf26"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"20e91afcb53b5d592ae965f30329c517c53e766d","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Allow the developer of a Watcher plugin to add specific parameters"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/watcher/+spec/plugins-parameters"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_4a66a251","line":11,"in_reply_to":"bab6814e_461db272","updated":"2016-05-23 13:30:05.000000000","message":"Done","commit_id":"adfbc6745a97ae5c786bbedb9f16e5811261cf26"},{"author":{"_account_id":11235,"name":"Edwin Zhai","email":"edwin.zhai@intel.com","username":"gzhai"},"change_message_id":"4d279c08529d484f10a2c35ed90ef7c310119638","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/watcher/+spec/plugins-parameters"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"In Watcher, it is possible to deploy and configure new strategies, actions,"},{"line_number":16,"context_line":"planners, etc. and associate each \"plugin\" to a Python class, without having"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_8fb93fce","line":13,"updated":"2016-05-19 11:37:53.000000000","message":"broken link.","commit_id":"adfbc6745a97ae5c786bbedb9f16e5811261cf26"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"20e91afcb53b5d592ae965f30329c517c53e766d","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/watcher/+spec/plugins-parameters"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"In Watcher, it is possible to deploy and configure new strategies, actions,"},{"line_number":16,"context_line":"planners, etc. and associate each \"plugin\" to a Python class, without having"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_ca8732b3","line":13,"in_reply_to":"bab6814e_8fb93fce","updated":"2016-05-23 13:30:05.000000000","message":"I tested it on the generated doc and it works for me although it doesn\u0027t get displayed well by gerrit.","commit_id":"adfbc6745a97ae5c786bbedb9f16e5811261cf26"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"8d6fd6f418220a662f37d8d552b0cb6aee768fe9","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Problem description"},{"line_number":29,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"As of now, all plugins that a developer develops cannot have any associated"},{"line_number":32,"context_line":"configuration in an out-of-the-box fashion."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Hence, it should be possible to pass some extra parameters depending of the"},{"line_number":35,"context_line":"configuration of the OpenStack cluster or some behaviour (e.g. timeout,"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_21ba1824","line":32,"range":{"start_line":31,"start_character":0,"end_line":32,"end_character":43},"updated":"2016-05-18 15:03:49.000000000","message":"I\u0027m not sure what this means. If this is a custom plugin, why can\u0027t it be configured? You should probably explain this more.","commit_id":"adfbc6745a97ae5c786bbedb9f16e5811261cf26"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"20e91afcb53b5d592ae965f30329c517c53e766d","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Problem description"},{"line_number":29,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"As of now, all plugins that a developer develops cannot have any associated"},{"line_number":32,"context_line":"configuration in an out-of-the-box fashion."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Hence, it should be possible to pass some extra parameters depending of the"},{"line_number":35,"context_line":"configuration of the OpenStack cluster or some behaviour (e.g. timeout,"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_6066252b","line":32,"range":{"start_line":31,"start_character":0,"end_line":32,"end_character":43},"in_reply_to":"bab6814e_21ba1824","updated":"2016-05-23 13:30:05.000000000","message":"I just developed this part to better explain what we are the problems we are facing.","commit_id":"adfbc6745a97ae5c786bbedb9f16e5811261cf26"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"8d6fd6f418220a662f37d8d552b0cb6aee768fe9","unresolved":false,"context_lines":[{"line_number":35,"context_line":"configuration of the OpenStack cluster or some behaviour (e.g. timeout,"},{"line_number":36,"context_line":"weights, etc.) on which Watcher is operating."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"This is the reason why, we should provide to the developer a standard way to"},{"line_number":39,"context_line":"add some parameters depending on the configuration of openstack cluster on the"},{"line_number":40,"context_line":"plugins."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Use Cases"},{"line_number":43,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_73b4f3f1","line":40,"range":{"start_line":38,"start_character":0,"end_line":40,"end_character":8},"updated":"2016-05-18 15:03:49.000000000","message":"Are you talking about parameters that are part of the plugin loading process? Or parameters that are sent to an already-loaded plugin to change its behavior?","commit_id":"adfbc6745a97ae5c786bbedb9f16e5811261cf26"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"20e91afcb53b5d592ae965f30329c517c53e766d","unresolved":false,"context_lines":[{"line_number":35,"context_line":"configuration of the OpenStack cluster or some behaviour (e.g. timeout,"},{"line_number":36,"context_line":"weights, etc.) on which Watcher is operating."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"This is the reason why, we should provide to the developer a standard way to"},{"line_number":39,"context_line":"add some parameters depending on the configuration of openstack cluster on the"},{"line_number":40,"context_line":"plugins."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Use Cases"},{"line_number":43,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_1b622ad8","line":40,"range":{"start_line":38,"start_character":0,"end_line":40,"end_character":8},"in_reply_to":"bab6814e_73b4f3f1","updated":"2016-05-23 13:30:05.000000000","message":"I am talking about parameters that are passed down to the plugin during the loading process. The second option is actually covered by the blueprint optimization-threshold (although only for actions).","commit_id":"adfbc6745a97ae5c786bbedb9f16e5811261cf26"},{"author":{"_account_id":11235,"name":"Edwin Zhai","email":"edwin.zhai@intel.com","username":"gzhai"},"change_message_id":"4d279c08529d484f10a2c35ed90ef7c310119638","unresolved":false,"context_lines":[{"line_number":76,"context_line":"its ``load()`` is being called. This method should be improved so it also fetch"},{"line_number":77,"context_line":"the configuration provided by the plugin using the ``get_config_opts()``"},{"line_number":78,"context_line":"abstract class method that every plugin class should implement."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":".. image:: ../../../doc/source/images/sequence_diagram_plugin_parameters_load_plugin_parameters.png"},{"line_number":81,"context_line":"   :width: 140%"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_e12c5f4c","line":79,"updated":"2016-05-19 11:37:53.000000000","message":"Doesn\u0027t stevedore load plugins in run time? E.g. no strategy is instantiated until related audit-template/audit are created. But this BP needs collect configs from plugins in static time, like doc generation when install or \u0027tox -e config\u0027. \n\nSo do we need extra calling to load() when deployment? Pls. clarify it.","commit_id":"adfbc6745a97ae5c786bbedb9f16e5811261cf26"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"20e91afcb53b5d592ae965f30329c517c53e766d","unresolved":false,"context_lines":[{"line_number":76,"context_line":"its ``load()`` is being called. This method should be improved so it also fetch"},{"line_number":77,"context_line":"the configuration provided by the plugin using the ``get_config_opts()``"},{"line_number":78,"context_line":"abstract class method that every plugin class should implement."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":".. image:: ../../../doc/source/images/sequence_diagram_plugin_parameters_load_plugin_parameters.png"},{"line_number":81,"context_line":"   :width: 140%"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_fb700642","line":79,"in_reply_to":"bab6814e_e12c5f4c","updated":"2016-05-23 13:30:05.000000000","message":"The collection of configs from the plugins is indeed done in a static manner with any instantiation. This is the reason why I made get_config_opts() a classmethod so that we can inspect the parameters a plugin developer declared without having to instantiate the plugin.\nSo there will be no need for an extra load() call to generate the doc. I updated the doc to mention this.","commit_id":"adfbc6745a97ae5c786bbedb9f16e5811261cf26"},{"author":{"_account_id":11235,"name":"Edwin Zhai","email":"edwin.zhai@intel.com","username":"gzhai"},"change_message_id":"4d279c08529d484f10a2c35ed90ef7c310119638","unresolved":false,"context_lines":[{"line_number":83,"context_line":"In order to expose these plugin parameters to the administrator, we also have"},{"line_number":84,"context_line":"to auto-discover them when we use the configuration file generator which is"},{"line_number":85,"context_line":"triggered either during the generation of the Watcher documentation or manually"},{"line_number":86,"context_line":"with the ``tox -e config`` command:"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":".. image:: ../../../doc/source/images/sequence_diagram_plugin_parameters_generate_config.png"},{"line_number":89,"context_line":"   :width: 140%"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_c1bf9b5e","line":86,"updated":"2016-05-19 11:37:53.000000000","message":"How does operator specify plugin parameters? Via config file? Then operator needs overwritten it and restart watcher service for each parameter tuning? How to achieve different parameters for multiple instances of same plugin type?\n\nStrictly speaking, config is for watcher project, so allow plugins produce watcher config is probably not ideal solution.","commit_id":"adfbc6745a97ae5c786bbedb9f16e5811261cf26"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"20e91afcb53b5d592ae965f30329c517c53e766d","unresolved":false,"context_lines":[{"line_number":83,"context_line":"In order to expose these plugin parameters to the administrator, we also have"},{"line_number":84,"context_line":"to auto-discover them when we use the configuration file generator which is"},{"line_number":85,"context_line":"triggered either during the generation of the Watcher documentation or manually"},{"line_number":86,"context_line":"with the ``tox -e config`` command:"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":".. image:: ../../../doc/source/images/sequence_diagram_plugin_parameters_generate_config.png"},{"line_number":89,"context_line":"   :width: 140%"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_7ea6baae","line":86,"in_reply_to":"bab6814e_c1bf9b5e","updated":"2016-05-23 13:30:05.000000000","message":"This blueprint only targets the case where an operator wants to define a configuration that is related to its entire cloud infrastructure, in which case the operator shouldn\u0027t need to tune these options differently for each instance.\n\nThe use case you are exposing here is obviously very important and this is where the blueprint optimization-threshold comes into play.","commit_id":"adfbc6745a97ae5c786bbedb9f16e5811261cf26"},{"author":{"_account_id":11235,"name":"Edwin Zhai","email":"edwin.zhai@intel.com","username":"gzhai"},"change_message_id":"4d279c08529d484f10a2c35ed90ef7c310119638","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":".. image:: ../../../doc/source/images/sequence_diagram_plugin_parameters_generate_config.png"},{"line_number":89,"context_line":"   :width: 140%"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Alternatives"},{"line_number":93,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_24de753f","line":90,"updated":"2016-05-19 11:37:53.000000000","message":"Better to add a description of the whole process including the operator.\nE.g.\n\n* Plugin provides a function to describe the parameters\n\n* Doc generation or \u0027tox -e config\u0027 would call this function and produce required options in config file\n\n* Operator check the config file and specify the parameter\n\nCorrect me if this process is wrong.","commit_id":"adfbc6745a97ae5c786bbedb9f16e5811261cf26"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"20e91afcb53b5d592ae965f30329c517c53e766d","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":".. image:: ../../../doc/source/images/sequence_diagram_plugin_parameters_generate_config.png"},{"line_number":89,"context_line":"   :width: 140%"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Alternatives"},{"line_number":93,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_31fd836e","line":90,"in_reply_to":"bab6814e_24de753f","updated":"2016-05-23 13:30:05.000000000","message":"Yes that\u0027s it. I\u0027ll put a recap here.","commit_id":"adfbc6745a97ae5c786bbedb9f16e5811261cf26"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"8d6fd6f418220a662f37d8d552b0cb6aee768fe9","unresolved":false,"context_lines":[{"line_number":92,"context_line":"Alternatives"},{"line_number":93,"context_line":"------------"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Instead of using a ``Loadable`` abstract class, we do it by convention."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"Data model impact"},{"line_number":98,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_13bbe7c5","line":95,"range":{"start_line":95,"start_character":48,"end_line":95,"end_character":71},"updated":"2016-05-18 15:03:49.000000000","message":"You need to explain what \u0027by convention\u0027 means here.","commit_id":"adfbc6745a97ae5c786bbedb9f16e5811261cf26"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"20e91afcb53b5d592ae965f30329c517c53e766d","unresolved":false,"context_lines":[{"line_number":92,"context_line":"Alternatives"},{"line_number":93,"context_line":"------------"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Instead of using a ``Loadable`` abstract class, we do it by convention."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"Data model impact"},{"line_number":98,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_b1a97326","line":95,"range":{"start_line":95,"start_character":48,"end_line":95,"end_character":71},"in_reply_to":"bab6814e_13bbe7c5","updated":"2016-05-23 13:30:05.000000000","message":"Done","commit_id":"adfbc6745a97ae5c786bbedb9f16e5811261cf26"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"8d6fd6f418220a662f37d8d552b0cb6aee768fe9","unresolved":false,"context_lines":[{"line_number":128,"context_line":"---------------------"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"New configuration sections and options will be added to the Watcher"},{"line_number":131,"context_line":"configuration file. Hence, the administrator should be aware of them."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Developer impact"},{"line_number":134,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_5303af73","line":131,"updated":"2016-05-18 15:03:49.000000000","message":"There will also be a documentation requirement to state what each option\u0027s effect will be.","commit_id":"adfbc6745a97ae5c786bbedb9f16e5811261cf26"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"20e91afcb53b5d592ae965f30329c517c53e766d","unresolved":false,"context_lines":[{"line_number":128,"context_line":"---------------------"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"New configuration sections and options will be added to the Watcher"},{"line_number":131,"context_line":"configuration file. Hence, the administrator should be aware of them."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Developer impact"},{"line_number":134,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_3408d127","line":131,"in_reply_to":"bab6814e_5303af73","updated":"2016-05-23 13:30:05.000000000","message":"Done","commit_id":"adfbc6745a97ae5c786bbedb9f16e5811261cf26"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"8d6fd6f418220a662f37d8d552b0cb6aee768fe9","unresolved":false,"context_lines":[{"line_number":133,"context_line":"Developer impact"},{"line_number":134,"context_line":"----------------"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"Discuss things that will affect other developers working on OpenStack."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_332b8bed","line":136,"updated":"2016-05-18 15:03:49.000000000","message":"You should replace this section with \u0027None\u0027, if that\u0027s the case.","commit_id":"adfbc6745a97ae5c786bbedb9f16e5811261cf26"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"20e91afcb53b5d592ae965f30329c517c53e766d","unresolved":false,"context_lines":[{"line_number":133,"context_line":"Developer impact"},{"line_number":134,"context_line":"----------------"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"Discuss things that will affect other developers working on OpenStack."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_d42b4580","line":136,"in_reply_to":"bab6814e_332b8bed","updated":"2016-05-23 13:30:05.000000000","message":"Done","commit_id":"adfbc6745a97ae5c786bbedb9f16e5811261cf26"},{"author":{"_account_id":11235,"name":"Edwin Zhai","email":"edwin.zhai@intel.com","username":"gzhai"},"change_message_id":"4d279c08529d484f10a2c35ed90ef7c310119638","unresolved":false,"context_lines":[{"line_number":168,"context_line":"  ``get_config_opts()`` that returns an empty list which should be the default"},{"line_number":169,"context_line":"  behaviour."},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"- Enhance the ``load()`` method of the ``DefaultLoader`` class to now also load"},{"line_number":172,"context_line":"  the configuration options that relates to the plugin we want to load and"},{"line_number":173,"context_line":"  inject them into the loaded plugin upon instantiating it."},{"line_number":174,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_d774799d","line":171,"updated":"2016-05-19 11:37:53.000000000","message":"Do we need extra calling to load() when installation, so that collect plugins parameters? Then specify them when instantiate plugins in current load().","commit_id":"adfbc6745a97ae5c786bbedb9f16e5811261cf26"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"20e91afcb53b5d592ae965f30329c517c53e766d","unresolved":false,"context_lines":[{"line_number":168,"context_line":"  ``get_config_opts()`` that returns an empty list which should be the default"},{"line_number":169,"context_line":"  behaviour."},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"- Enhance the ``load()`` method of the ``DefaultLoader`` class to now also load"},{"line_number":172,"context_line":"  the configuration options that relates to the plugin we want to load and"},{"line_number":173,"context_line":"  inject them into the loaded plugin upon instantiating it."},{"line_number":174,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_948a5d62","line":171,"in_reply_to":"bab6814e_d774799d","updated":"2016-05-23 13:30:05.000000000","message":"As stated in a previous comment, plugin configuration options are collected without having to instantiate the plugin (see the list_available() method of the DefaultLoader). The load() method will only inject the options contained within the section dedicated to any given plugin after the parsing/validation of the Watcher configuration file.","commit_id":"adfbc6745a97ae5c786bbedb9f16e5811261cf26"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7ab23999527c82066073cc40d5de7bd266b44e78","unresolved":false,"context_lines":[{"line_number":119,"context_line":"  configuration sample file."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"The administrator would then have adapt this configuration sample file to"},{"line_number":122,"context_line":"the requirements of any given OpenStack cluster."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab6814e_433dcfc2","line":122,"updated":"2016-05-23 17:13:45.000000000","message":"So do I understand this correctly? If an operator wishes to use a plugin, they have to:\n\na) Load the plugin module(s)\nb) Run tox -e config to create a sample file that contains (along with all the standard Watcher config options) all of the plugin config options.\nc) Modify any of those plugin options that need changing\nd) Replace the existing config file with this new file\ne) restart Watcher\n\nIs that correct? And will it have to be repeated when either a new plugin is added, or Watcher is updated?","commit_id":"0aa4d324dc4ea50d3a57ecfab0afeffa6fa23ecf"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"9b1efad5981267e8087bfdf26e83d8ff88f4b9f8","unresolved":false,"context_lines":[{"line_number":119,"context_line":"  configuration sample file."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"The administrator would then have adapt this configuration sample file to"},{"line_number":122,"context_line":"the requirements of any given OpenStack cluster."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab6814e_093bcc9d","line":122,"in_reply_to":"bab6814e_433dcfc2","updated":"2016-05-24 08:45:14.000000000","message":"Yes this is the process. It is actually quite cumbersome, so I was thinking about decoupling the main Watcher configuration file from the plugin configuration file. The thing is that I don\u0027t really know if that\u0027s recommended or not. So if you think we should have 2 separate files (say watcher.conf and watcher-plugins.conf), then feel free to tell me :)","commit_id":"0aa4d324dc4ea50d3a57ecfab0afeffa6fa23ecf"}]}
