)]}'
{"doc/source/developer-docs/additional-roles.rst":[{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":134,"context_line":".. _as described in the Install Guide: ../install-guide/configure-creds.html#configuring-service-credentials"},{"line_number":135,"context_line":".. _Extending OpenStack-Ansible: extending.html#user-yml-files"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"Role Development Maturity"},{"line_number":138,"context_line":"-------------------------"},{"line_number":139,"context_line":"In order for a role to be included in the integrated build it needs to meet an"},{"line_number":140,"context_line":"appropriate level of maturity requirements. Developers are encouraged to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_534e73c1","line":137,"range":{"start_line":137,"start_character":5,"end_line":137,"end_character":18},"updated":"2016-06-08 14:16:30.000000000","message":"Sentence case for titles \"Role development maturity\"","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":136,"context_line":""},{"line_number":137,"context_line":"Role Development Maturity"},{"line_number":138,"context_line":"-------------------------"},{"line_number":139,"context_line":"In order for a role to be included in the integrated build it needs to meet an"},{"line_number":140,"context_line":"appropriate level of maturity requirements. Developers are encouraged to"},{"line_number":141,"context_line":"observe the below-mentioned patterns in the existing roles. Note that many of"},{"line_number":142,"context_line":"the existing roles may not fully implement all the patterns just yet, so it is"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_5634a1dc","line":139,"updated":"2016-06-08 14:16:30.000000000","message":"\"In order to include a role in an integrated build,*...\"","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":138,"context_line":"-------------------------"},{"line_number":139,"context_line":"In order for a role to be included in the integrated build it needs to meet an"},{"line_number":140,"context_line":"appropriate level of maturity requirements. Developers are encouraged to"},{"line_number":141,"context_line":"observe the below-mentioned patterns in the existing roles. Note that many of"},{"line_number":142,"context_line":"the existing roles may not fully implement all the patterns just yet, so it is"},{"line_number":143,"context_line":"important to look through multiple roles to get an idea of the common patterns"},{"line_number":144,"context_line":"rather than to fixate on a single role\u0027s pattern which may be a little dated."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_365d9515","line":141,"range":{"start_line":141,"start_character":60,"end_line":141,"end_character":65},"updated":"2016-06-08 14:16:30.000000000","message":"Would suggest putting all \u0027note\u0027 in an actual notation.\n\n.. note::\n\n   Many of the existing roles...","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":139,"context_line":"In order for a role to be included in the integrated build it needs to meet an"},{"line_number":140,"context_line":"appropriate level of maturity requirements. Developers are encouraged to"},{"line_number":141,"context_line":"observe the below-mentioned patterns in the existing roles. Note that many of"},{"line_number":142,"context_line":"the existing roles may not fully implement all the patterns just yet, so it is"},{"line_number":143,"context_line":"important to look through multiple roles to get an idea of the common patterns"},{"line_number":144,"context_line":"rather than to fixate on a single role\u0027s pattern which may be a little dated."},{"line_number":145,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_9685695b","line":142,"range":{"start_line":142,"start_character":68,"end_line":142,"end_character":69},"updated":"2016-06-08 14:16:30.000000000","message":"Full stop here otherwise the sentence is too long. Begin the next sentence with, \"it is important to look...\"","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"#. Initial role development"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"   * The role must include the base scaffolding to facilitate the tests"},{"line_number":151,"context_line":"     implemented across all Ansible roles. This includes the lint tests"},{"line_number":152,"context_line":"     for bash/python/Ansible, the documentation build test and a functional"},{"line_number":153,"context_line":"     test on Ubuntu 14.04 LTS, Ubuntu 16.04 LTS and CentOS 7. The"},{"line_number":154,"context_line":"     configuration of these tests is implemented in ``tox.ini`` and should"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_b6dfc538","line":151,"range":{"start_line":150,"start_character":5,"end_line":151,"end_character":42},"updated":"2016-06-08 14:16:30.000000000","message":"\"Include base scaffolding on roles. This facilitates tests implemented across all Ansible roles.\" - suggestion, but not necessary. I just find this easier to read","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":149,"context_line":""},{"line_number":150,"context_line":"   * The role must include the base scaffolding to facilitate the tests"},{"line_number":151,"context_line":"     implemented across all Ansible roles. This includes the lint tests"},{"line_number":152,"context_line":"     for bash/python/Ansible, the documentation build test and a functional"},{"line_number":153,"context_line":"     test on Ubuntu 14.04 LTS, Ubuntu 16.04 LTS and CentOS 7. The"},{"line_number":154,"context_line":"     configuration of these tests is implemented in ``tox.ini`` and should"},{"line_number":155,"context_line":"     be conveniently executed in a test environment through the use of the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_d6b37108","line":152,"range":{"start_line":152,"start_character":9,"end_line":152,"end_character":28},"updated":"2016-06-08 14:16:30.000000000","message":"Is this a directory? Or options? This is unclear","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":150,"context_line":"   * The role must include the base scaffolding to facilitate the tests"},{"line_number":151,"context_line":"     implemented across all Ansible roles. This includes the lint tests"},{"line_number":152,"context_line":"     for bash/python/Ansible, the documentation build test and a functional"},{"line_number":153,"context_line":"     test on Ubuntu 14.04 LTS, Ubuntu 16.04 LTS and CentOS 7. The"},{"line_number":154,"context_line":"     configuration of these tests is implemented in ``tox.ini`` and should"},{"line_number":155,"context_line":"     be conveniently executed in a test environment through the use of the"},{"line_number":156,"context_line":"     ``run_tests.sh`` bash script. A ``Vagrantfile`` should be included"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_96a449ba","line":153,"range":{"start_line":153,"start_character":46,"end_line":153,"end_character":47},"updated":"2016-06-08 14:16:30.000000000","message":"comma after LTS","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":157,"context_line":"     to assist with the testing process."},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"   * The role development should initially be focused simply on implementing"},{"line_number":160,"context_line":"     the appropriate tasks and test playbook to get to the point where"},{"line_number":161,"context_line":"     the applicable service is built from a git source into a python venv,"},{"line_number":162,"context_line":"     it places the applicable configuration files in the right places,"},{"line_number":163,"context_line":"     and the service starts. This may involve consuming other"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_f6c82d57","line":160,"updated":"2016-06-08 14:16:30.000000000","message":"Full stop after playbook. Begin next sentence with \"This is to get to the point where...\"","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":158,"context_line":""},{"line_number":159,"context_line":"   * The role development should initially be focused simply on implementing"},{"line_number":160,"context_line":"     the appropriate tasks and test playbook to get to the point where"},{"line_number":161,"context_line":"     the applicable service is built from a git source into a python venv,"},{"line_number":162,"context_line":"     it places the applicable configuration files in the right places,"},{"line_number":163,"context_line":"     and the service starts. This may involve consuming other"},{"line_number":164,"context_line":"     OpenStack-Ansible roles (eg: galera_server, galera_client,"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_f67aed22","line":161,"range":{"start_line":161,"start_character":62,"end_line":161,"end_character":68},"updated":"2016-06-08 14:16:30.000000000","message":"Python* - should be capitalised. Apply throughout","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":159,"context_line":"   * The role development should initially be focused simply on implementing"},{"line_number":160,"context_line":"     the appropriate tasks and test playbook to get to the point where"},{"line_number":161,"context_line":"     the applicable service is built from a git source into a python venv,"},{"line_number":162,"context_line":"     it places the applicable configuration files in the right places,"},{"line_number":163,"context_line":"     and the service starts. This may involve consuming other"},{"line_number":164,"context_line":"     OpenStack-Ansible roles (eg: galera_server, galera_client,"},{"line_number":165,"context_line":"     rabbitmq_server) in order to ensure that the appropriate infrastructure"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_16d5f9e6","line":162,"range":{"start_line":162,"start_character":5,"end_line":162,"end_character":49},"updated":"2016-06-08 14:16:30.000000000","message":"\"...the applicable configuration files are placed correctly,...\"","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":161,"context_line":"     the applicable service is built from a git source into a python venv,"},{"line_number":162,"context_line":"     it places the applicable configuration files in the right places,"},{"line_number":163,"context_line":"     and the service starts. This may involve consuming other"},{"line_number":164,"context_line":"     OpenStack-Ansible roles (eg: galera_server, galera_client,"},{"line_number":165,"context_line":"     rabbitmq_server) in order to ensure that the appropriate infrastructure"},{"line_number":166,"context_line":"     is in place for that to happen."},{"line_number":167,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_760a7d8b","line":164,"range":{"start_line":164,"start_character":31,"end_line":164,"end_character":33},"updated":"2016-06-08 14:16:30.000000000","message":"For example:*","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":161,"context_line":"     the applicable service is built from a git source into a python venv,"},{"line_number":162,"context_line":"     it places the applicable configuration files in the right places,"},{"line_number":163,"context_line":"     and the service starts. This may involve consuming other"},{"line_number":164,"context_line":"     OpenStack-Ansible roles (eg: galera_server, galera_client,"},{"line_number":165,"context_line":"     rabbitmq_server) in order to ensure that the appropriate infrastructure"},{"line_number":166,"context_line":"     is in place for that to happen."},{"line_number":167,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_f624ad0d","line":164,"range":{"start_line":164,"start_character":49,"end_line":164,"end_character":62},"updated":"2016-06-08 14:16:30.000000000","message":"``galera_client``","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":161,"context_line":"     the applicable service is built from a git source into a python venv,"},{"line_number":162,"context_line":"     it places the applicable configuration files in the right places,"},{"line_number":163,"context_line":"     and the service starts. This may involve consuming other"},{"line_number":164,"context_line":"     OpenStack-Ansible roles (eg: galera_server, galera_client,"},{"line_number":165,"context_line":"     rabbitmq_server) in order to ensure that the appropriate infrastructure"},{"line_number":166,"context_line":"     is in place for that to happen."},{"line_number":167,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_56f2e19a","line":164,"range":{"start_line":164,"start_character":34,"end_line":164,"end_character":47},"updated":"2016-06-08 14:16:30.000000000","message":"``galera_server``","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":162,"context_line":"     it places the applicable configuration files in the right places,"},{"line_number":163,"context_line":"     and the service starts. This may involve consuming other"},{"line_number":164,"context_line":"     OpenStack-Ansible roles (eg: galera_server, galera_client,"},{"line_number":165,"context_line":"     rabbitmq_server) in order to ensure that the appropriate infrastructure"},{"line_number":166,"context_line":"     is in place for that to happen."},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"   * The role implementation should be done in such a way that it is agnostic"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_162a19db","line":165,"range":{"start_line":165,"start_character":5,"end_line":165,"end_character":20},"updated":"2016-06-08 14:16:30.000000000","message":"``rabbitmq_server``","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":163,"context_line":"     and the service starts. This may involve consuming other"},{"line_number":164,"context_line":"     OpenStack-Ansible roles (eg: galera_server, galera_client,"},{"line_number":165,"context_line":"     rabbitmq_server) in order to ensure that the appropriate infrastructure"},{"line_number":166,"context_line":"     is in place for that to happen."},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"   * The role implementation should be done in such a way that it is agnostic"},{"line_number":169,"context_line":"     with regards to whether it is implemented in a container or on a physical"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_d68251c7","line":166,"range":{"start_line":166,"start_character":16,"end_line":166,"end_character":35},"updated":"2016-06-08 14:16:30.000000000","message":"you can remove this","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":166,"context_line":"     is in place for that to happen."},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"   * The role implementation should be done in such a way that it is agnostic"},{"line_number":169,"context_line":"     with regards to whether it is implemented in a container or on a physical"},{"line_number":170,"context_line":"     host. The test infrastructure may make use of LXC containers for the"},{"line_number":171,"context_line":"     separation of services, but if a role is used by a playbook that targets"},{"line_number":172,"context_line":"     a host it must work regardless of whether that host is a container, a"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_96ca8919","line":169,"updated":"2016-06-08 14:16:30.000000000","message":"comma after \u0027container\u0027","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":169,"context_line":"     with regards to whether it is implemented in a container or on a physical"},{"line_number":170,"context_line":"     host. The test infrastructure may make use of LXC containers for the"},{"line_number":171,"context_line":"     separation of services, but if a role is used by a playbook that targets"},{"line_number":172,"context_line":"     a host it must work regardless of whether that host is a container, a"},{"line_number":173,"context_line":"     virtual server or a physical server. The use of LXC containers for role"},{"line_number":174,"context_line":"     tests is not required but it may be useful in order to simulate a"},{"line_number":175,"context_line":"     multi-node build out as part of the testing infrastructure."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_96f1e96d","line":172,"range":{"start_line":172,"start_character":7,"end_line":172,"end_character":11},"updated":"2016-06-08 14:16:30.000000000","message":"comma after host","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":170,"context_line":"     host. The test infrastructure may make use of LXC containers for the"},{"line_number":171,"context_line":"     separation of services, but if a role is used by a playbook that targets"},{"line_number":172,"context_line":"     a host it must work regardless of whether that host is a container, a"},{"line_number":173,"context_line":"     virtual server or a physical server. The use of LXC containers for role"},{"line_number":174,"context_line":"     tests is not required but it may be useful in order to simulate a"},{"line_number":175,"context_line":"     multi-node build out as part of the testing infrastructure."},{"line_number":176,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_d6e7f1a9","line":173,"range":{"start_line":173,"start_character":13,"end_line":173,"end_character":19},"updated":"2016-06-08 14:16:30.000000000","message":"comma after server","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":174,"context_line":"     tests is not required but it may be useful in order to simulate a"},{"line_number":175,"context_line":"     multi-node build out as part of the testing infrastructure."},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"   * Any \u0027secrets\u0027 (eg: passwords) should not be provided with default values"},{"line_number":178,"context_line":"     in the tasks, role vars or role defaults. The tasks should be implemented"},{"line_number":179,"context_line":"     in such a way that any passwords/secrets required, but not provided,"},{"line_number":180,"context_line":"     should result in the task execution failure. It is important for a"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_d69ed105","line":177,"range":{"start_line":177,"start_character":20,"end_line":177,"end_character":23},"updated":"2016-06-08 14:16:30.000000000","message":"For example*","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":174,"context_line":"     tests is not required but it may be useful in order to simulate a"},{"line_number":175,"context_line":"     multi-node build out as part of the testing infrastructure."},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"   * Any \u0027secrets\u0027 (eg: passwords) should not be provided with default values"},{"line_number":178,"context_line":"     in the tasks, role vars or role defaults. The tasks should be implemented"},{"line_number":179,"context_line":"     in such a way that any passwords/secrets required, but not provided,"},{"line_number":180,"context_line":"     should result in the task execution failure. It is important for a"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_769b9d18","line":177,"range":{"start_line":177,"start_character":9,"end_line":177,"end_character":18},"updated":"2016-06-08 14:16:30.000000000","message":"remove the scare quotes","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":176,"context_line":""},{"line_number":177,"context_line":"   * Any \u0027secrets\u0027 (eg: passwords) should not be provided with default values"},{"line_number":178,"context_line":"     in the tasks, role vars or role defaults. The tasks should be implemented"},{"line_number":179,"context_line":"     in such a way that any passwords/secrets required, but not provided,"},{"line_number":180,"context_line":"     should result in the task execution failure. It is important for a"},{"line_number":181,"context_line":"     secure-by-default implementation to ensure that an environment is not"},{"line_number":182,"context_line":"     vulnerable due to the production use of \u0027default\u0027 passwords. Deployers"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_f6878db2","line":179,"range":{"start_line":179,"start_character":28,"end_line":179,"end_character":38},"updated":"2016-06-08 14:16:30.000000000","message":"passwords or secrets*","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":182,"context_line":"     vulnerable due to the production use of \u0027default\u0027 passwords. Deployers"},{"line_number":183,"context_line":"     must be forced to properly provide their own secret variable values."},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"   * Once the initial convergence is working and the services are running"},{"line_number":186,"context_line":"     the role development should focus on implementing some level of"},{"line_number":187,"context_line":"     functional testing. Ideally the functional tests for an OpenStack role"},{"line_number":188,"context_line":"     should make use of Tempest to execute the functional tests, often through"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_36a59546","line":185,"range":{"start_line":185,"start_character":72,"end_line":185,"end_character":73},"updated":"2016-06-08 14:16:30.000000000","message":"comma after running*","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":184,"context_line":""},{"line_number":185,"context_line":"   * Once the initial convergence is working and the services are running"},{"line_number":186,"context_line":"     the role development should focus on implementing some level of"},{"line_number":187,"context_line":"     functional testing. Ideally the functional tests for an OpenStack role"},{"line_number":188,"context_line":"     should make use of Tempest to execute the functional tests, often through"},{"line_number":189,"context_line":"     the use of a Tempest plugin for the service. The ideal tests to execute"},{"line_number":190,"context_line":"     are \u0027scenario\u0027 tests as they are functional tests, but in the absence of"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_d66c110a","line":187,"range":{"start_line":187,"start_character":25,"end_line":187,"end_character":32},"updated":"2016-06-08 14:16:30.000000000","message":"Comma after ideally","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":185,"context_line":"   * Once the initial convergence is working and the services are running"},{"line_number":186,"context_line":"     the role development should focus on implementing some level of"},{"line_number":187,"context_line":"     functional testing. Ideally the functional tests for an OpenStack role"},{"line_number":188,"context_line":"     should make use of Tempest to execute the functional tests, often through"},{"line_number":189,"context_line":"     the use of a Tempest plugin for the service. The ideal tests to execute"},{"line_number":190,"context_line":"     are \u0027scenario\u0027 tests as they are functional tests, but in the absence of"},{"line_number":191,"context_line":"     any scenario tests for the service a fallback option is to implement"},{"line_number":192,"context_line":"     the \u0027smoke\u0027 tests for the role."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_3653d53a","line":189,"range":{"start_line":188,"start_character":65,"end_line":189,"end_character":49},"updated":"2016-06-08 14:16:30.000000000","message":"Could you clarify this? This reads as a separate thought","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":187,"context_line":"     functional testing. Ideally the functional tests for an OpenStack role"},{"line_number":188,"context_line":"     should make use of Tempest to execute the functional tests, often through"},{"line_number":189,"context_line":"     the use of a Tempest plugin for the service. The ideal tests to execute"},{"line_number":190,"context_line":"     are \u0027scenario\u0027 tests as they are functional tests, but in the absence of"},{"line_number":191,"context_line":"     any scenario tests for the service a fallback option is to implement"},{"line_number":192,"context_line":"     the \u0027smoke\u0027 tests for the role."},{"line_number":193,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_d63a51e6","line":190,"range":{"start_line":190,"start_character":9,"end_line":190,"end_character":20},"updated":"2016-06-08 14:16:30.000000000","message":"Remove scare quotes","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":189,"context_line":"     the use of a Tempest plugin for the service. The ideal tests to execute"},{"line_number":190,"context_line":"     are \u0027scenario\u0027 tests as they are functional tests, but in the absence of"},{"line_number":191,"context_line":"     any scenario tests for the service a fallback option is to implement"},{"line_number":192,"context_line":"     the \u0027smoke\u0027 tests for the role."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"   * The role must include documentation. The `Documentation and Release Note"},{"line_number":195,"context_line":"     Guidelines`_ provide specific guidelines with regards to style and"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_b63d05df","line":192,"range":{"start_line":192,"start_character":9,"end_line":192,"end_character":16},"updated":"2016-06-08 14:16:30.000000000","message":"ditto","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":203,"context_line":"   integrating the role into the integrated build. This involves the"},{"line_number":204,"context_line":"   preparation of the following items:"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"   * Host/Container group configuration: This is implemented into the dynamic"},{"line_number":207,"context_line":"     inventory through the definition of content in an ``env.d`` file. A"},{"line_number":208,"context_line":"     description of how these work can be found in `Appendix H`_ of the"},{"line_number":209,"context_line":"     Install Guide."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_761efd70","line":206,"range":{"start_line":206,"start_character":9,"end_line":206,"end_character":10},"updated":"2016-06-08 14:16:30.000000000","message":"Host and container*","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":206,"context_line":"   * Host/Container group configuration: This is implemented into the dynamic"},{"line_number":207,"context_line":"     inventory through the definition of content in an ``env.d`` file. A"},{"line_number":208,"context_line":"     description of how these work can be found in `Appendix H`_ of the"},{"line_number":209,"context_line":"     Install Guide."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"   * Load Balancer configuration: OpenStack-Ansible deploys services in a"},{"line_number":212,"context_line":"     highly available configuraiton by default, so all API services must be"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_b1022f08","line":209,"range":{"start_line":209,"start_character":5,"end_line":209,"end_character":12},"updated":"2016-06-08 14:16:30.000000000","message":"Installation Guide*","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":208,"context_line":"     description of how these work can be found in `Appendix H`_ of the"},{"line_number":209,"context_line":"     Install Guide."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"   * Load Balancer configuration: OpenStack-Ansible deploys services in a"},{"line_number":212,"context_line":"     highly available configuraiton by default, so all API services must be"},{"line_number":213,"context_line":"     configured for implementation behind HAProxy. This is easily done"},{"line_number":214,"context_line":"     through the appropriate modification of"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_716287d9","line":211,"range":{"start_line":211,"start_character":10,"end_line":211,"end_character":11},"updated":"2016-06-08 14:16:30.000000000","message":"I\u0027m pretty sure in this case this is a lowercase b","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":210,"context_line":""},{"line_number":211,"context_line":"   * Load Balancer configuration: OpenStack-Ansible deploys services in a"},{"line_number":212,"context_line":"     highly available configuraiton by default, so all API services must be"},{"line_number":213,"context_line":"     configured for implementation behind HAProxy. This is easily done"},{"line_number":214,"context_line":"     through the appropriate modification of"},{"line_number":215,"context_line":"     ``playbooks/vars/configs/haproxy_config.yml``."},{"line_number":216,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_b177cf9e","line":213,"range":{"start_line":213,"start_character":59,"end_line":213,"end_character":65},"updated":"2016-06-08 14:16:30.000000000","message":"remove","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":216,"context_line":""},{"line_number":217,"context_line":"   * Install playbook: In order to implement the role in the appropriate way,"},{"line_number":218,"context_line":"     an ``os-\u003cservice\u003e-install.yml`` playbook must be created and targeted at"},{"line_number":219,"context_line":"     the appropriate group. The playbook should also ensure that the"},{"line_number":220,"context_line":"     database(s), database user(s), rabbitmq vhost and rabbitmq user are setup"},{"line_number":221,"context_line":"     for the service. It is crucial that the implementation of the service is"},{"line_number":222,"context_line":"     optional and that the deployer must opt-in to the deployment through the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_91a1f3fa","line":219,"range":{"start_line":219,"start_character":9,"end_line":219,"end_character":26},"updated":"2016-06-08 14:16:30.000000000","message":"Elaborate? What is the appropriate group?","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":223,"context_line":"     population of a host in the applicable host group. If the host group has"},{"line_number":224,"context_line":"     no hosts, then the playbook will automatically be skipped by Ansible."},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"   * Secrets: Any \u0027secrets\u0027 required for the role to work must be noted in the"},{"line_number":227,"context_line":"     ``etc/openstack_deploy/user_secrets.yml`` file."},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"   * Group vars: Any variables needed by other roles to connect to the new"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_f17b1779","line":226,"range":{"start_line":226,"start_character":18,"end_line":226,"end_character":27},"updated":"2016-06-08 14:16:30.000000000","message":"remove scare quotes :)","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":229,"context_line":"   * Group vars: Any variables needed by other roles to connect to the new"},{"line_number":230,"context_line":"     role, or by the new role to connect to other roles, should be implemented"},{"line_number":231,"context_line":"     in ``playbooks/inventory/group_vars``. The group vars are essentially the"},{"line_number":232,"context_line":"     \u0027glue\u0027 which playbooks use to ensure that all roles are given the"},{"line_number":233,"context_line":"     appropriate information."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"   * Documentation: Content must be added to the Install Guide to describe how"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_518b0b68","line":232,"range":{"start_line":232,"start_character":5,"end_line":232,"end_character":11},"updated":"2016-06-08 14:16:30.000000000","message":"ditto","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":232,"context_line":"     \u0027glue\u0027 which playbooks use to ensure that all roles are given the"},{"line_number":233,"context_line":"     appropriate information."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"   * Documentation: Content must be added to the Install Guide to describe how"},{"line_number":236,"context_line":"     to implement the new role/service in an integrated environment. This"},{"line_number":237,"context_line":"     content must adhere to the `Documentation and Release Note Guidelines`_."},{"line_number":238,"context_line":"     Until the role has integrated functional testing implemented it must make"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_31e11f2e","line":235,"range":{"start_line":235,"start_character":49,"end_line":235,"end_character":56},"updated":"2016-06-08 14:16:30.000000000","message":"Installation Guide*","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":233,"context_line":"     appropriate information."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"   * Documentation: Content must be added to the Install Guide to describe how"},{"line_number":236,"context_line":"     to implement the new role/service in an integrated environment. This"},{"line_number":237,"context_line":"     content must adhere to the `Documentation and Release Note Guidelines`_."},{"line_number":238,"context_line":"     Until the role has integrated functional testing implemented it must make"},{"line_number":239,"context_line":"     it clear that the service is \u0027experimental\u0027 and is not fully tested by"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_91d6134d","line":236,"range":{"start_line":236,"start_character":30,"end_line":236,"end_character":31},"updated":"2016-06-08 14:16:30.000000000","message":"pick either \u0027and\u0027 or \u0027or\u0027 here","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":236,"context_line":"     to implement the new role/service in an integrated environment. This"},{"line_number":237,"context_line":"     content must adhere to the `Documentation and Release Note Guidelines`_."},{"line_number":238,"context_line":"     Until the role has integrated functional testing implemented it must make"},{"line_number":239,"context_line":"     it clear that the service is \u0027experimental\u0027 and is not fully tested by"},{"line_number":240,"context_line":"     OpenStack-Ansible in an integrated build."},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"   * Release Note: A feature release note must be added to announce the new"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_71be0700","line":239,"range":{"start_line":239,"start_character":34,"end_line":239,"end_character":48},"updated":"2016-06-08 14:16:30.000000000","message":"ditto","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":239,"context_line":"     it clear that the service is \u0027experimental\u0027 and is not fully tested by"},{"line_number":240,"context_line":"     OpenStack-Ansible in an integrated build."},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"   * Release Note: A feature release note must be added to announce the new"},{"line_number":243,"context_line":"     service availability and to refer to the install guide entry and the"},{"line_number":244,"context_line":"     role documentation for further details. This content must adhere to the"},{"line_number":245,"context_line":"     `Documentation and Release Note Guidelines`_."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_913d7391","line":242,"range":{"start_line":242,"start_character":13,"end_line":242,"end_character":14},"updated":"2016-06-08 14:16:30.000000000","message":"lowercase \u0027n\u0027","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":240,"context_line":"     OpenStack-Ansible in an integrated build."},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"   * Release Note: A feature release note must be added to announce the new"},{"line_number":243,"context_line":"     service availability and to refer to the install guide entry and the"},{"line_number":244,"context_line":"     role documentation for further details. This content must adhere to the"},{"line_number":245,"context_line":"     `Documentation and Release Note Guidelines`_."},{"line_number":246,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_314f5f38","line":243,"range":{"start_line":243,"start_character":46,"end_line":243,"end_character":59},"updated":"2016-06-08 14:16:30.000000000","message":"Installation Guide*","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":245,"context_line":"     `Documentation and Release Note Guidelines`_."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"   * Integration test: It must be possible to execute a functional, integrated"},{"line_number":248,"context_line":"     test which implements a full build as it would be implemented in a"},{"line_number":249,"context_line":"     production environment. The test must execute a set of functional tests"},{"line_number":250,"context_line":"     using Tempest. Note that this is the required last step before a"},{"line_number":251,"context_line":"     role/service can remove the \u0027experimental\u0027 warning from the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_111fc308","line":248,"range":{"start_line":248,"start_character":10,"end_line":248,"end_character":15},"updated":"2016-06-08 14:16:30.000000000","message":"to implement a full build*","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":247,"context_line":"   * Integration test: It must be possible to execute a functional, integrated"},{"line_number":248,"context_line":"     test which implements a full build as it would be implemented in a"},{"line_number":249,"context_line":"     production environment. The test must execute a set of functional tests"},{"line_number":250,"context_line":"     using Tempest. Note that this is the required last step before a"},{"line_number":251,"context_line":"     role/service can remove the \u0027experimental\u0027 warning from the"},{"line_number":252,"context_line":"     documentation."},{"line_number":253,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_f1dcb747","line":250,"range":{"start_line":250,"start_character":20,"end_line":250,"end_character":24},"updated":"2016-06-08 14:16:30.000000000","message":"include as a note (as above)","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":248,"context_line":"     test which implements a full build as it would be implemented in a"},{"line_number":249,"context_line":"     production environment. The test must execute a set of functional tests"},{"line_number":250,"context_line":"     using Tempest. Note that this is the required last step before a"},{"line_number":251,"context_line":"     role/service can remove the \u0027experimental\u0027 warning from the"},{"line_number":252,"context_line":"     documentation."},{"line_number":253,"context_line":""},{"line_number":254,"context_line":".. Appendix H: ../install-guide/app-custom-layouts.html"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_51ecabf2","line":251,"range":{"start_line":251,"start_character":33,"end_line":251,"end_character":47},"updated":"2016-06-08 14:16:30.000000000","message":"ditto","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"ed8874f542193eb22a70595cf07d15c43da85a41","unresolved":false,"context_lines":[{"line_number":248,"context_line":"     test which implements a full build as it would be implemented in a"},{"line_number":249,"context_line":"     production environment. The test must execute a set of functional tests"},{"line_number":250,"context_line":"     using Tempest. Note that this is the required last step before a"},{"line_number":251,"context_line":"     role/service can remove the \u0027experimental\u0027 warning from the"},{"line_number":252,"context_line":"     documentation."},{"line_number":253,"context_line":""},{"line_number":254,"context_line":".. Appendix H: ../install-guide/app-custom-layouts.html"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_d1dffb37","line":251,"range":{"start_line":251,"start_character":5,"end_line":251,"end_character":17},"updated":"2016-06-08 14:16:30.000000000","message":"ditto","commit_id":"55f766a397819efcea510fb42c57a303f9289a55"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"10fcdebfd3601d0c3c647f3c56f05c3e64ea165d","unresolved":false,"context_lines":[{"line_number":141,"context_line":"observe the below-mentioned patterns in the existing roles."},{"line_number":142,"context_line":""},{"line_number":143,"context_line":".. note::"},{"line_number":144,"context_line":"   Note that many of the existing roles may not fully implement all the"},{"line_number":145,"context_line":"   patterns just yet. It is important to look through multiple roles to"},{"line_number":146,"context_line":"   get an idea of the common patterns rather than to fixate on a single"},{"line_number":147,"context_line":"   role\u0027s pattern which may be a little dated."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7aa08908_8305f714","line":144,"range":{"start_line":144,"start_character":3,"end_line":144,"end_character":12},"updated":"2016-06-09 09:00:20.000000000","message":"Now you have the notation, you can remove this. Sentence starting with \"Many of the existing...\"","commit_id":"45e33a57f6740dcc7ba719ec5da31d0125e6c401"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"57cc579e739678009fe6d52ef7154a333909af4b","unresolved":false,"context_lines":[{"line_number":141,"context_line":"observe the below-mentioned patterns in the existing roles."},{"line_number":142,"context_line":""},{"line_number":143,"context_line":".. note::"},{"line_number":144,"context_line":"   Note that many of the existing roles may not fully implement all the"},{"line_number":145,"context_line":"   patterns just yet. It is important to look through multiple roles to"},{"line_number":146,"context_line":"   get an idea of the common patterns rather than to fixate on a single"},{"line_number":147,"context_line":"   role\u0027s pattern which may be a little dated."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7aa08908_ca6cf60a","line":144,"range":{"start_line":144,"start_character":3,"end_line":144,"end_character":12},"in_reply_to":"7aa08908_8305f714","updated":"2016-06-10 06:31:09.000000000","message":"Done","commit_id":"45e33a57f6740dcc7ba719ec5da31d0125e6c401"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"10fcdebfd3601d0c3c647f3c56f05c3e64ea165d","unresolved":false,"context_lines":[{"line_number":151,"context_line":"#. Initial role development"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"   * Include base test scaffolding. To facilitate the tests implemented"},{"line_number":154,"context_line":"     across all OpenStack-Ansible roles a base set of folders and files"},{"line_number":155,"context_line":"     need to be implemented. The configuration of these tests is implemented"},{"line_number":156,"context_line":"     in ``tox.ini`` and should be conveniently executed in a test environment"},{"line_number":157,"context_line":"     through the use of the ``run_tests.sh`` bash script. A ``Vagrantfile``"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7aa08908_be012c07","line":154,"range":{"start_line":154,"start_character":38,"end_line":154,"end_character":39},"updated":"2016-06-09 09:00:20.000000000","message":"roles,*","commit_id":"45e33a57f6740dcc7ba719ec5da31d0125e6c401"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"57cc579e739678009fe6d52ef7154a333909af4b","unresolved":false,"context_lines":[{"line_number":151,"context_line":"#. Initial role development"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"   * Include base test scaffolding. To facilitate the tests implemented"},{"line_number":154,"context_line":"     across all OpenStack-Ansible roles a base set of folders and files"},{"line_number":155,"context_line":"     need to be implemented. The configuration of these tests is implemented"},{"line_number":156,"context_line":"     in ``tox.ini`` and should be conveniently executed in a test environment"},{"line_number":157,"context_line":"     through the use of the ``run_tests.sh`` bash script. A ``Vagrantfile``"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7aa08908_aa71aae2","line":154,"range":{"start_line":154,"start_character":38,"end_line":154,"end_character":39},"in_reply_to":"7aa08908_be012c07","updated":"2016-06-10 06:31:09.000000000","message":"Done","commit_id":"45e33a57f6740dcc7ba719ec5da31d0125e6c401"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"10fcdebfd3601d0c3c647f3c56f05c3e64ea165d","unresolved":false,"context_lines":[{"line_number":161,"context_line":"     a set of tasks and a test playbook which converges. The convergence"},{"line_number":162,"context_line":"     must:"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"       * implement developer_mode to build from a git source into a Python"},{"line_number":165,"context_line":"         venv"},{"line_number":166,"context_line":"       * places the applicable configuration files in the right places"},{"line_number":167,"context_line":"       * ensure that the service starts"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7aa08908_5e176844","line":164,"range":{"start_line":164,"start_character":9,"end_line":164,"end_character":10},"updated":"2016-06-09 09:00:20.000000000","message":"Capital I (and capitals for the rest of the start of each of these dot points)","commit_id":"45e33a57f6740dcc7ba719ec5da31d0125e6c401"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"10fcdebfd3601d0c3c647f3c56f05c3e64ea165d","unresolved":false,"context_lines":[{"line_number":161,"context_line":"     a set of tasks and a test playbook which converges. The convergence"},{"line_number":162,"context_line":"     must:"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"       * implement developer_mode to build from a git source into a Python"},{"line_number":165,"context_line":"         venv"},{"line_number":166,"context_line":"       * places the applicable configuration files in the right places"},{"line_number":167,"context_line":"       * ensure that the service starts"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7aa08908_3e3d3cc4","line":164,"range":{"start_line":164,"start_character":19,"end_line":164,"end_character":33},"updated":"2016-06-09 09:00:20.000000000","message":"``developer_mode``","commit_id":"45e33a57f6740dcc7ba719ec5da31d0125e6c401"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"57cc579e739678009fe6d52ef7154a333909af4b","unresolved":false,"context_lines":[{"line_number":161,"context_line":"     a set of tasks and a test playbook which converges. The convergence"},{"line_number":162,"context_line":"     must:"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"       * implement developer_mode to build from a git source into a Python"},{"line_number":165,"context_line":"         venv"},{"line_number":166,"context_line":"       * places the applicable configuration files in the right places"},{"line_number":167,"context_line":"       * ensure that the service starts"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7aa08908_8a62ee14","line":164,"range":{"start_line":164,"start_character":19,"end_line":164,"end_character":33},"in_reply_to":"7aa08908_3e3d3cc4","updated":"2016-06-10 06:31:09.000000000","message":"Done","commit_id":"45e33a57f6740dcc7ba719ec5da31d0125e6c401"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"57cc579e739678009fe6d52ef7154a333909af4b","unresolved":false,"context_lines":[{"line_number":161,"context_line":"     a set of tasks and a test playbook which converges. The convergence"},{"line_number":162,"context_line":"     must:"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"       * implement developer_mode to build from a git source into a Python"},{"line_number":165,"context_line":"         venv"},{"line_number":166,"context_line":"       * places the applicable configuration files in the right places"},{"line_number":167,"context_line":"       * ensure that the service starts"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7aa08908_4aaac61a","line":164,"range":{"start_line":164,"start_character":9,"end_line":164,"end_character":10},"in_reply_to":"7aa08908_5e176844","updated":"2016-06-10 06:31:09.000000000","message":"Done","commit_id":"45e33a57f6740dcc7ba719ec5da31d0125e6c401"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"10fcdebfd3601d0c3c647f3c56f05c3e64ea165d","unresolved":false,"context_lines":[{"line_number":176,"context_line":"     ideally also support CentOS7 but this is not required at this time. The"},{"line_number":177,"context_line":"     patterns to achieve this include:"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"       * the separation of platform specific variables into role vars files"},{"line_number":180,"context_line":"       * the detection and handling of different init systems (init.d, SystemD)"},{"line_number":181,"context_line":"       * the detection and handling of different package managers (apt, yum)"},{"line_number":182,"context_line":"       * the detection and handling of different network configuraiton methods"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7aa08908_1e3fa0b4","line":179,"range":{"start_line":179,"start_character":9,"end_line":179,"end_character":10},"updated":"2016-06-09 09:00:20.000000000","message":"Capitals for the beginning of each dot point please","commit_id":"45e33a57f6740dcc7ba719ec5da31d0125e6c401"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"57cc579e739678009fe6d52ef7154a333909af4b","unresolved":false,"context_lines":[{"line_number":176,"context_line":"     ideally also support CentOS7 but this is not required at this time. The"},{"line_number":177,"context_line":"     patterns to achieve this include:"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"       * the separation of platform specific variables into role vars files"},{"line_number":180,"context_line":"       * the detection and handling of different init systems (init.d, SystemD)"},{"line_number":181,"context_line":"       * the detection and handling of different package managers (apt, yum)"},{"line_number":182,"context_line":"       * the detection and handling of different network configuraiton methods"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7aa08908_eaac5237","line":179,"range":{"start_line":179,"start_character":9,"end_line":179,"end_character":10},"in_reply_to":"7aa08908_1e3fa0b4","updated":"2016-06-10 06:31:09.000000000","message":"Done","commit_id":"45e33a57f6740dcc7ba719ec5da31d0125e6c401"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"10fcdebfd3601d0c3c647f3c56f05c3e64ea165d","unresolved":false,"context_lines":[{"line_number":256,"context_line":"     describe how to implement the new service in an integrated environment."},{"line_number":257,"context_line":"     This content must adhere to the `Documentation and Release Note"},{"line_number":258,"context_line":"     Guidelines`_. Until the role has integrated functional testing"},{"line_number":259,"context_line":"     implemented the documentation must make it clear that the service"},{"line_number":260,"context_line":"     inclusion in OpenStack-Ansible is experimental and is not fully tested by"},{"line_number":261,"context_line":"     OpenStack-Ansible in an integrated build."},{"line_number":262,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7aa08908_3ec7fc96","line":259,"range":{"start_line":259,"start_character":13,"end_line":259,"end_character":16},"updated":"2016-06-09 09:00:20.000000000","message":"comma after implemented,*","commit_id":"45e33a57f6740dcc7ba719ec5da31d0125e6c401"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"57cc579e739678009fe6d52ef7154a333909af4b","unresolved":false,"context_lines":[{"line_number":256,"context_line":"     describe how to implement the new service in an integrated environment."},{"line_number":257,"context_line":"     This content must adhere to the `Documentation and Release Note"},{"line_number":258,"context_line":"     Guidelines`_. Until the role has integrated functional testing"},{"line_number":259,"context_line":"     implemented the documentation must make it clear that the service"},{"line_number":260,"context_line":"     inclusion in OpenStack-Ansible is experimental and is not fully tested by"},{"line_number":261,"context_line":"     OpenStack-Ansible in an integrated build."},{"line_number":262,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7aa08908_aaba4a6c","line":259,"range":{"start_line":259,"start_character":13,"end_line":259,"end_character":16},"in_reply_to":"7aa08908_3ec7fc96","updated":"2016-06-10 06:31:09.000000000","message":"Done","commit_id":"45e33a57f6740dcc7ba719ec5da31d0125e6c401"},{"author":{"_account_id":10897,"name":"Joseph Robinson","email":"josephremail@gmail.com","username":"RobiJoe"},"change_message_id":"a7fc1eac2f94651da347e14277e09b3ef0b75273","unresolved":false,"context_lines":[{"line_number":144,"context_line":"   Many of the existing roles may not fully implement all the patterns"},{"line_number":145,"context_line":"   just yet. It is important to look through multiple roles to get an"},{"line_number":146,"context_line":"   idea of the common patterns rather than to fixate on a single role\u0027s"},{"line_number":147,"context_line":"   pattern which may be a little dated."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"The development of a role will usually go through the following stages:"},{"line_number":150,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_0041bd39","line":147,"updated":"2016-06-10 07:14:55.000000000","message":"Add a comma for the which clause - \"..a single role\u0027s pattern, which may be a little dated.\"","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"5da9d11cd4e8c15428cb8fcec80af77f3687292d","unresolved":false,"context_lines":[{"line_number":144,"context_line":"   Many of the existing roles may not fully implement all the patterns"},{"line_number":145,"context_line":"   just yet. It is important to look through multiple roles to get an"},{"line_number":146,"context_line":"   idea of the common patterns rather than to fixate on a single role\u0027s"},{"line_number":147,"context_line":"   pattern which may be a little dated."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"The development of a role will usually go through the following stages:"},{"line_number":150,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_57b41834","line":147,"in_reply_to":"7aa08908_0041bd39","updated":"2016-06-10 15:33:49.000000000","message":"Done","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":14805,"name":"Jimmy McCrory","email":"jimmy.mccrory@gmail.com","username":"jimmy-mccrory"},"change_message_id":"d960623c99471afe2943dd8e50ef0ef063bfe42e","unresolved":false,"context_lines":[{"line_number":152,"context_line":""},{"line_number":153,"context_line":"   * Include base test scaffolding. To facilitate the tests implemented"},{"line_number":154,"context_line":"     across all OpenStack-Ansible roles, a base set of folders and files"},{"line_number":155,"context_line":"     need to be implemented. The configuration of these tests is implemented"},{"line_number":156,"context_line":"     in ``tox.ini`` and should be conveniently executed in a test environment"},{"line_number":157,"context_line":"     through the use of the ``run_tests.sh`` bash script. A ``Vagrantfile``"},{"line_number":158,"context_line":"     should be included to assist with the testing process."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_c0aa1585","line":155,"range":{"start_line":155,"start_character":5,"end_line":155,"end_character":9},"updated":"2016-06-10 07:21:40.000000000","message":"needs","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"5da9d11cd4e8c15428cb8fcec80af77f3687292d","unresolved":false,"context_lines":[{"line_number":152,"context_line":""},{"line_number":153,"context_line":"   * Include base test scaffolding. To facilitate the tests implemented"},{"line_number":154,"context_line":"     across all OpenStack-Ansible roles, a base set of folders and files"},{"line_number":155,"context_line":"     need to be implemented. The configuration of these tests is implemented"},{"line_number":156,"context_line":"     in ``tox.ini`` and should be conveniently executed in a test environment"},{"line_number":157,"context_line":"     through the use of the ``run_tests.sh`` bash script. A ``Vagrantfile``"},{"line_number":158,"context_line":"     should be included to assist with the testing process."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_77b9542e","line":155,"range":{"start_line":155,"start_character":5,"end_line":155,"end_character":9},"in_reply_to":"7aa08908_c0aa1585","updated":"2016-06-10 15:33:49.000000000","message":"hmm, not sure about that one - the subject in this case is \u0027folders and files\u0027 which need to be implemented. Any advice from Jo/Alex on that one?","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":14805,"name":"Jimmy McCrory","email":"jimmy.mccrory@gmail.com","username":"jimmy-mccrory"},"change_message_id":"d960623c99471afe2943dd8e50ef0ef063bfe42e","unresolved":false,"context_lines":[{"line_number":155,"context_line":"     need to be implemented. The configuration of these tests is implemented"},{"line_number":156,"context_line":"     in ``tox.ini`` and should be conveniently executed in a test environment"},{"line_number":157,"context_line":"     through the use of the ``run_tests.sh`` bash script. A ``Vagrantfile``"},{"line_number":158,"context_line":"     should be included to assist with the testing process."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"   * The role development should initially be focused simply on implementing"},{"line_number":161,"context_line":"     a set of tasks and a test playbook which converges. The convergence"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_e0d751bd","line":158,"updated":"2016-06-10 07:21:40.000000000","message":"Not sure how into the weeds you want to get here with other base files/folders required. (.gitignore, .gitreview, other-requirements.txt, test-requirements.txt, setup.cfg, setup.py)\n\nSome only required for testing against openstack-infra, so if not in this initial section, in an intermediary once the role is added as a new project.","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"5da9d11cd4e8c15428cb8fcec80af77f3687292d","unresolved":false,"context_lines":[{"line_number":155,"context_line":"     need to be implemented. The configuration of these tests is implemented"},{"line_number":156,"context_line":"     in ``tox.ini`` and should be conveniently executed in a test environment"},{"line_number":157,"context_line":"     through the use of the ``run_tests.sh`` bash script. A ``Vagrantfile``"},{"line_number":158,"context_line":"     should be included to assist with the testing process."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"   * The role development should initially be focused simply on implementing"},{"line_number":161,"context_line":"     a set of tasks and a test playbook which converges. The convergence"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_f7af047b","line":158,"in_reply_to":"7aa08908_e0d751bd","updated":"2016-06-10 15:33:49.000000000","message":"I\u0027m trying to avoid listing all the files as they are likely to change frequently, but perhaps I can summarise it in a way. Let me try that in the next patch set.","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":10897,"name":"Joseph Robinson","email":"josephremail@gmail.com","username":"RobiJoe"},"change_message_id":"a7fc1eac2f94651da347e14277e09b3ef0b75273","unresolved":false,"context_lines":[{"line_number":158,"context_line":"     should be included to assist with the testing process."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"   * The role development should initially be focused simply on implementing"},{"line_number":161,"context_line":"     a set of tasks and a test playbook which converges. The convergence"},{"line_number":162,"context_line":"     must:"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"       * Implement ``developer_mode`` to build from a git source into a Python"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_a080a947","line":161,"updated":"2016-06-10 07:14:55.000000000","message":"Switch \"converges\" to \"converge\" here. [optional] remove \u0027simply\"","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"50f91837874e54338372d539496b09878dc8535b","unresolved":false,"context_lines":[{"line_number":158,"context_line":"     should be included to assist with the testing process."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"   * The role development should initially be focused simply on implementing"},{"line_number":161,"context_line":"     a set of tasks and a test playbook which converges. The convergence"},{"line_number":162,"context_line":"     must:"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"       * Implement ``developer_mode`` to build from a git source into a Python"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_4e491db7","line":161,"in_reply_to":"7aa08908_a080a947","updated":"2016-06-10 15:44:43.000000000","message":"Done","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"b8fc85bac61576970b31a8cbf43e79b33f7b3797","unresolved":false,"context_lines":[{"line_number":162,"context_line":"     must:"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"       * Implement ``developer_mode`` to build from a git source into a Python"},{"line_number":165,"context_line":"         venv"},{"line_number":166,"context_line":"       * Deploy the applicable configuration files in the right places"},{"line_number":167,"context_line":"       * Ensure that the service starts"},{"line_number":168,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_239cb55c","line":165,"updated":"2016-06-10 12:23:10.000000000","message":"full stops for the end of each sentence on these dot points","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"50f91837874e54338372d539496b09878dc8535b","unresolved":false,"context_lines":[{"line_number":162,"context_line":"     must:"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"       * Implement ``developer_mode`` to build from a git source into a Python"},{"line_number":165,"context_line":"         venv"},{"line_number":166,"context_line":"       * Deploy the applicable configuration files in the right places"},{"line_number":167,"context_line":"       * Ensure that the service starts"},{"line_number":168,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_aec6c113","line":165,"in_reply_to":"7aa08908_239cb55c","updated":"2016-06-10 15:44:43.000000000","message":"Done","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"674a7e046cf6a828f3619bb1f519361640a4c087","unresolved":false,"context_lines":[{"line_number":162,"context_line":"     must:"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"       * Implement ``developer_mode`` to build from a git source into a Python"},{"line_number":165,"context_line":"         venv"},{"line_number":166,"context_line":"       * Deploy the applicable configuration files in the right places"},{"line_number":167,"context_line":"       * Ensure that the service starts"},{"line_number":168,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_2644c319","line":165,"in_reply_to":"7aa08908_239cb55c","updated":"2016-06-10 12:28:20.000000000","message":"you know... I was going to do that, and then I didn\u0027t because I figured that you would have pointed that out before... I should trust my instinct sometimes :p","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":10897,"name":"Joseph Robinson","email":"josephremail@gmail.com","username":"RobiJoe"},"change_message_id":"a7fc1eac2f94651da347e14277e09b3ef0b75273","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"     The convergence may involve consuming other OpenStack-Ansible roles (For"},{"line_number":170,"context_line":"     example: ``galera_server``, ``galera_client``, ``rabbitmq_server``) in"},{"line_number":171,"context_line":"     order to ensure that the appropriate infrastructure is in place. Re-use"},{"line_number":172,"context_line":"     of existing roles in OpenStack-Ansible or Ansible Galaxy is strongly"},{"line_number":173,"context_line":"     encouraged."},{"line_number":174,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_40e74540","line":171,"updated":"2016-06-10 07:14:55.000000000","message":"Switch \"Re-use\" to \"Reuse\".","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"50f91837874e54338372d539496b09878dc8535b","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"     The convergence may involve consuming other OpenStack-Ansible roles (For"},{"line_number":170,"context_line":"     example: ``galera_server``, ``galera_client``, ``rabbitmq_server``) in"},{"line_number":171,"context_line":"     order to ensure that the appropriate infrastructure is in place. Re-use"},{"line_number":172,"context_line":"     of existing roles in OpenStack-Ansible or Ansible Galaxy is strongly"},{"line_number":173,"context_line":"     encouraged."},{"line_number":174,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_8ec94528","line":171,"in_reply_to":"7aa08908_40e74540","updated":"2016-06-10 15:44:43.000000000","message":"Done","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":10897,"name":"Joseph Robinson","email":"josephremail@gmail.com","username":"RobiJoe"},"change_message_id":"a7fc1eac2f94651da347e14277e09b3ef0b75273","unresolved":false,"context_lines":[{"line_number":190,"context_line":"     physical host. The test infrastructure may make use of LXC containers for"},{"line_number":191,"context_line":"     the separation of services, but if a role is used by a playbook that"},{"line_number":192,"context_line":"     targets a host, it must work regardless of whether that host is a"},{"line_number":193,"context_line":"     container, a virtual server or a physical server. The use of LXC"},{"line_number":194,"context_line":"     containers for role tests is not required but it may be useful in order"},{"line_number":195,"context_line":"     to simulate a multi-node build out as part of the testing infrastructure."},{"line_number":196,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_a0454918","line":193,"updated":"2016-06-10 07:14:55.000000000","message":"Add a serial comma - \"..a container, a virtual server, or a physical server.\"","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"50f91837874e54338372d539496b09878dc8535b","unresolved":false,"context_lines":[{"line_number":190,"context_line":"     physical host. The test infrastructure may make use of LXC containers for"},{"line_number":191,"context_line":"     the separation of services, but if a role is used by a playbook that"},{"line_number":192,"context_line":"     targets a host, it must work regardless of whether that host is a"},{"line_number":193,"context_line":"     container, a virtual server or a physical server. The use of LXC"},{"line_number":194,"context_line":"     containers for role tests is not required but it may be useful in order"},{"line_number":195,"context_line":"     to simulate a multi-node build out as part of the testing infrastructure."},{"line_number":196,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_ced34dd4","line":193,"in_reply_to":"7aa08908_a0454918","updated":"2016-06-10 15:44:43.000000000","message":"Done","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":10897,"name":"Joseph Robinson","email":"josephremail@gmail.com","username":"RobiJoe"},"change_message_id":"a7fc1eac2f94651da347e14277e09b3ef0b75273","unresolved":false,"context_lines":[{"line_number":195,"context_line":"     to simulate a multi-node build out as part of the testing infrastructure."},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"   * Any secrets (For example: passwords) should not be provided with default"},{"line_number":198,"context_line":"     values in the tasks, role vars or role defaults. The tasks should be"},{"line_number":199,"context_line":"     implemented in such a way that any secrets required, but not provided,"},{"line_number":200,"context_line":"     should result in the task execution failure. It is important for a"},{"line_number":201,"context_line":"     secure-by-default implementation to ensure that an environment is not"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_e06e3195","line":198,"updated":"2016-06-10 07:14:55.000000000","message":"Add a second serial comma here - \"tasks, role vars, or role defaults.\"","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"50f91837874e54338372d539496b09878dc8535b","unresolved":false,"context_lines":[{"line_number":195,"context_line":"     to simulate a multi-node build out as part of the testing infrastructure."},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"   * Any secrets (For example: passwords) should not be provided with default"},{"line_number":198,"context_line":"     values in the tasks, role vars or role defaults. The tasks should be"},{"line_number":199,"context_line":"     implemented in such a way that any secrets required, but not provided,"},{"line_number":200,"context_line":"     should result in the task execution failure. It is important for a"},{"line_number":201,"context_line":"     secure-by-default implementation to ensure that an environment is not"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_0ed6f5c2","line":198,"in_reply_to":"7aa08908_e06e3195","updated":"2016-06-10 15:44:43.000000000","message":"Done","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"7536e92b82544f3ff70f76daf989818265d1308f","unresolved":false,"context_lines":[{"line_number":214,"context_line":"   * The role must include documentation. The `Documentation and Release Note"},{"line_number":215,"context_line":"     Guidelines`_ provide specific guidelines with regards to style and"},{"line_number":216,"context_line":"     conventions."},{"line_number":217,"context_line":""},{"line_number":218,"context_line":".. Documentation and Release Note Guidelines: contribute.html#documentation-and-release-note-guidelines"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"#. Integration development"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_684e91c2","line":217,"updated":"2016-06-10 15:11:43.000000000","message":"* The role must avoid as much as possible being tied to the openstack-ansible inventory system for easier reuse.","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"5e2db63a0a551d5a1af7809d5b724154c5ad503c","unresolved":false,"context_lines":[{"line_number":214,"context_line":"   * The role must include documentation. The `Documentation and Release Note"},{"line_number":215,"context_line":"     Guidelines`_ provide specific guidelines with regards to style and"},{"line_number":216,"context_line":"     conventions."},{"line_number":217,"context_line":""},{"line_number":218,"context_line":".. Documentation and Release Note Guidelines: contribute.html#documentation-and-release-note-guidelines"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"#. Integration development"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_ae8ec124","line":217,"in_reply_to":"7aa08908_684e91c2","updated":"2016-06-10 15:43:00.000000000","message":"I\u0027m not sure what this means. Ansible is tied to an inventory of some sort. Do you mean specific inventory group names? I don\u0027t think it\u0027s a problem if the required group names are expressly stated.","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"50f91837874e54338372d539496b09878dc8535b","unresolved":false,"context_lines":[{"line_number":214,"context_line":"   * The role must include documentation. The `Documentation and Release Note"},{"line_number":215,"context_line":"     Guidelines`_ provide specific guidelines with regards to style and"},{"line_number":216,"context_line":"     conventions."},{"line_number":217,"context_line":""},{"line_number":218,"context_line":".. Documentation and Release Note Guidelines: contribute.html#documentation-and-release-note-guidelines"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"#. Integration development"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_4ee0fd96","line":217,"in_reply_to":"7aa08908_ae8ec124","updated":"2016-06-10 15:44:43.000000000","message":"Done","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":14805,"name":"Jimmy McCrory","email":"jimmy.mccrory@gmail.com","username":"jimmy-mccrory"},"change_message_id":"d960623c99471afe2943dd8e50ef0ef063bfe42e","unresolved":false,"context_lines":[{"line_number":217,"context_line":""},{"line_number":218,"context_line":".. Documentation and Release Note Guidelines: contribute.html#documentation-and-release-note-guidelines"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"#. Integration development"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"   Once the role has implemented the above requirements, work can begin on"},{"line_number":223,"context_line":"   integrating the role into the integrated build. This involves the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_fd1ffe06","line":220,"updated":"2016-06-10 07:21:40.000000000","message":"Numbering isn\u0027t working correctly.\nThis is showing up as \u00271\u0027 again.","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"b8fc85bac61576970b31a8cbf43e79b33f7b3797","unresolved":false,"context_lines":[{"line_number":217,"context_line":""},{"line_number":218,"context_line":".. Documentation and Release Note Guidelines: contribute.html#documentation-and-release-note-guidelines"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"#. Integration development"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"   Once the role has implemented the above requirements, work can begin on"},{"line_number":223,"context_line":"   integrating the role into the integrated build. This involves the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_c3f2119a","line":220,"in_reply_to":"7aa08908_fd1ffe06","updated":"2016-06-10 12:23:10.000000000","message":"This is probably because the above link breaks up the numbering. \nJesse - if you indent the link, this should fix this problem.","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":14805,"name":"Jimmy McCrory","email":"jimmy.mccrory@gmail.com","username":"jimmy-mccrory"},"change_message_id":"d960623c99471afe2943dd8e50ef0ef063bfe42e","unresolved":false,"context_lines":[{"line_number":223,"context_line":"   integrating the role into the integrated build. This involves the"},{"line_number":224,"context_line":"   preparation of the following items:"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"   * Host and container group configuration: This is implemented into the"},{"line_number":227,"context_line":"     dynamic inventory through the definition of content in an ``env.d`` file."},{"line_number":228,"context_line":"     A description of how these work can be found in `Appendix H`_ of the"},{"line_number":229,"context_line":"     Installation Guide."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_a0f709f4","line":226,"range":{"start_line":226,"start_character":5,"end_line":226,"end_character":44},"updated":"2016-06-10 07:21:40.000000000","message":"Could each of this topics be bolded, highlighted, or separated from their details in someway? Think it might help readability.\n\nAnd maybe add a topic for each bullet under \u0027Initial role development\u0027 as well.","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"b8fc85bac61576970b31a8cbf43e79b33f7b3797","unresolved":false,"context_lines":[{"line_number":223,"context_line":"   integrating the role into the integrated build. This involves the"},{"line_number":224,"context_line":"   preparation of the following items:"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"   * Host and container group configuration: This is implemented into the"},{"line_number":227,"context_line":"     dynamic inventory through the definition of content in an ``env.d`` file."},{"line_number":228,"context_line":"     A description of how these work can be found in `Appendix H`_ of the"},{"line_number":229,"context_line":"     Installation Guide."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_a34425b7","line":226,"range":{"start_line":226,"start_character":5,"end_line":226,"end_character":44},"in_reply_to":"7aa08908_a0f709f4","updated":"2016-06-10 12:23:10.000000000","message":"You can probably indent this below. So\n* Host and container group information\n            This is implemented...","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"5da9d11cd4e8c15428cb8fcec80af77f3687292d","unresolved":false,"context_lines":[{"line_number":223,"context_line":"   integrating the role into the integrated build. This involves the"},{"line_number":224,"context_line":"   preparation of the following items:"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"   * Host and container group configuration: This is implemented into the"},{"line_number":227,"context_line":"     dynamic inventory through the definition of content in an ``env.d`` file."},{"line_number":228,"context_line":"     A description of how these work can be found in `Appendix H`_ of the"},{"line_number":229,"context_line":"     Installation Guide."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_0e3555da","line":226,"range":{"start_line":226,"start_character":5,"end_line":226,"end_character":44},"in_reply_to":"7aa08908_a34425b7","updated":"2016-06-10 15:33:49.000000000","message":"I tried that and it caused quite a lot of wasted space and made it a bit harder to read because the text was squashed to the right. I think I\u0027ve found something better that increases the whitespace,  solving the problem without squashing all the text to the right.","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":14805,"name":"Jimmy McCrory","email":"jimmy.mccrory@gmail.com","username":"jimmy-mccrory"},"change_message_id":"d960623c99471afe2943dd8e50ef0ef063bfe42e","unresolved":false,"context_lines":[{"line_number":227,"context_line":"     dynamic inventory through the definition of content in an ``env.d`` file."},{"line_number":228,"context_line":"     A description of how these work can be found in `Appendix H`_ of the"},{"line_number":229,"context_line":"     Installation Guide."},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"   * Load balancer configuration: OpenStack-Ansible deploys services in a"},{"line_number":232,"context_line":"     highly available configuration by default, so all API services must be"},{"line_number":233,"context_line":"     configured for implementation behind HAProxy. This is done through the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_80364db2","line":230,"updated":"2016-06-10 07:21:40.000000000","message":"Not sure why but there\u0027s no empty space between bullet points in this group. It\u0027s all running together so a bit hard to read.","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"50f91837874e54338372d539496b09878dc8535b","unresolved":false,"context_lines":[{"line_number":227,"context_line":"     dynamic inventory through the definition of content in an ``env.d`` file."},{"line_number":228,"context_line":"     A description of how these work can be found in `Appendix H`_ of the"},{"line_number":229,"context_line":"     Installation Guide."},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"   * Load balancer configuration: OpenStack-Ansible deploys services in a"},{"line_number":232,"context_line":"     highly available configuration by default, so all API services must be"},{"line_number":233,"context_line":"     configured for implementation behind HAProxy. This is done through the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_eee729aa","line":230,"in_reply_to":"7aa08908_80364db2","updated":"2016-06-10 15:44:43.000000000","message":"Done","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":10897,"name":"Joseph Robinson","email":"josephremail@gmail.com","username":"RobiJoe"},"change_message_id":"a7fc1eac2f94651da347e14277e09b3ef0b75273","unresolved":false,"context_lines":[{"line_number":241,"context_line":"     implementation of the service is optional and that the deployer must"},{"line_number":242,"context_line":"     opt-in to the deployment through the population of a host in the"},{"line_number":243,"context_line":"     applicable host group. If the host group has no hosts, then the playbook"},{"line_number":244,"context_line":"     will automatically be skipped by Ansible."},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"   * Secrets: Any secrets required for the role to work must be noted in the"},{"line_number":247,"context_line":"     ``etc/openstack_deploy/user_secrets.yml`` file."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_60936150","line":244,"updated":"2016-06-10 07:14:55.000000000","message":"Change to active voice for this sentence, and present tense - \"If the host group has no hosts, Ansible skips the playbook automatically\"","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"50f91837874e54338372d539496b09878dc8535b","unresolved":false,"context_lines":[{"line_number":241,"context_line":"     implementation of the service is optional and that the deployer must"},{"line_number":242,"context_line":"     opt-in to the deployment through the population of a host in the"},{"line_number":243,"context_line":"     applicable host group. If the host group has no hosts, then the playbook"},{"line_number":244,"context_line":"     will automatically be skipped by Ansible."},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"   * Secrets: Any secrets required for the role to work must be noted in the"},{"line_number":247,"context_line":"     ``etc/openstack_deploy/user_secrets.yml`` file."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_6efcd93e","line":244,"in_reply_to":"7aa08908_60936150","updated":"2016-06-10 15:44:43.000000000","message":"Done","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"7536e92b82544f3ff70f76daf989818265d1308f","unresolved":false,"context_lines":[{"line_number":258,"context_line":"     Guidelines`_. Until the role has integrated functional testing"},{"line_number":259,"context_line":"     implemented, the documentation must make it clear that the service"},{"line_number":260,"context_line":"     inclusion in OpenStack-Ansible is experimental and is not fully tested by"},{"line_number":261,"context_line":"     OpenStack-Ansible in an integrated build."},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"   * Release note: A feature release note must be added to announce the new"},{"line_number":264,"context_line":"     service availability and to refer to the Installation Guide entry and the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_283f6926","line":261,"updated":"2016-06-10 15:11:43.000000000","message":"The documentation should include role requirements, an example playbook and the mandatory variables definitions needed to make the role run sucessfully.","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"50f91837874e54338372d539496b09878dc8535b","unresolved":false,"context_lines":[{"line_number":258,"context_line":"     Guidelines`_. Until the role has integrated functional testing"},{"line_number":259,"context_line":"     implemented, the documentation must make it clear that the service"},{"line_number":260,"context_line":"     inclusion in OpenStack-Ansible is experimental and is not fully tested by"},{"line_number":261,"context_line":"     OpenStack-Ansible in an integrated build."},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"   * Release note: A feature release note must be added to announce the new"},{"line_number":264,"context_line":"     service availability and to refer to the Installation Guide entry and the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_4ef75d59","line":261,"in_reply_to":"7aa08908_283f6926","updated":"2016-06-10 15:44:43.000000000","message":"Done in the role development section instead of the integrated development section.","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":14805,"name":"Jimmy McCrory","email":"jimmy.mccrory@gmail.com","username":"jimmy-mccrory"},"change_message_id":"d960623c99471afe2943dd8e50ef0ef063bfe42e","unresolved":false,"context_lines":[{"line_number":263,"context_line":"   * Release note: A feature release note must be added to announce the new"},{"line_number":264,"context_line":"     service availability and to refer to the Installation Guide entry and the"},{"line_number":265,"context_line":"     role documentation for further details. This content must adhere to the"},{"line_number":266,"context_line":"     `Documentation and Release Note Guidelines`_."},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"   * Integration test: It must be possible to execute a functional, integrated"},{"line_number":269,"context_line":"     test which executes a deployment in the same way as a production"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_5d99f21e","line":266,"updated":"2016-06-10 07:21:40.000000000","message":"Need a reference link for this at end of section.","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"8aaaa120240261e2ae244ba7983d1391bcaab413","unresolved":false,"context_lines":[{"line_number":263,"context_line":"   * Release note: A feature release note must be added to announce the new"},{"line_number":264,"context_line":"     service availability and to refer to the Installation Guide entry and the"},{"line_number":265,"context_line":"     role documentation for further details. This content must adhere to the"},{"line_number":266,"context_line":"     `Documentation and Release Note Guidelines`_."},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"   * Integration test: It must be possible to execute a functional, integrated"},{"line_number":269,"context_line":"     test which executes a deployment in the same way as a production"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_fb4a6626","line":266,"in_reply_to":"7aa08908_5d99f21e","updated":"2016-06-10 07:34:36.000000000","message":"This will just re-use the same link from the previous section.","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"b8fc85bac61576970b31a8cbf43e79b33f7b3797","unresolved":false,"context_lines":[{"line_number":268,"context_line":"   * Integration test: It must be possible to execute a functional, integrated"},{"line_number":269,"context_line":"     test which executes a deployment in the same way as a production"},{"line_number":270,"context_line":"     environment. The test must execute a set of functional tests using"},{"line_number":271,"context_line":"     Tempest. Note that this is the required last step before a service can"},{"line_number":272,"context_line":"     remove the experimental warning from the documentation."},{"line_number":273,"context_line":""},{"line_number":274,"context_line":".. Appendix H: ../install-guide/app-custom-layouts.html"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_43446173","line":271,"range":{"start_line":271,"start_character":14,"end_line":271,"end_character":18},"updated":"2016-06-10 12:23:10.000000000","message":"Can probs put this in a notation too :)","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"50f91837874e54338372d539496b09878dc8535b","unresolved":false,"context_lines":[{"line_number":268,"context_line":"   * Integration test: It must be possible to execute a functional, integrated"},{"line_number":269,"context_line":"     test which executes a deployment in the same way as a production"},{"line_number":270,"context_line":"     environment. The test must execute a set of functional tests using"},{"line_number":271,"context_line":"     Tempest. Note that this is the required last step before a service can"},{"line_number":272,"context_line":"     remove the experimental warning from the documentation."},{"line_number":273,"context_line":""},{"line_number":274,"context_line":".. Appendix H: ../install-guide/app-custom-layouts.html"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_4e8e3dd1","line":271,"range":{"start_line":271,"start_character":14,"end_line":271,"end_character":18},"in_reply_to":"7aa08908_43446173","updated":"2016-06-10 15:44:43.000000000","message":"Re-worded.","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":14805,"name":"Jimmy McCrory","email":"jimmy.mccrory@gmail.com","username":"jimmy-mccrory"},"change_message_id":"d960623c99471afe2943dd8e50ef0ef063bfe42e","unresolved":false,"context_lines":[{"line_number":271,"context_line":"     Tempest. Note that this is the required last step before a service can"},{"line_number":272,"context_line":"     remove the experimental warning from the documentation."},{"line_number":273,"context_line":""},{"line_number":274,"context_line":".. Appendix H: ../install-guide/app-custom-layouts.html"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"--------------"},{"line_number":277,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_7dedce8d","line":274,"range":{"start_line":274,"start_character":3,"end_line":274,"end_character":13},"updated":"2016-06-10 07:21:40.000000000","message":"_Appendix H","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"50f91837874e54338372d539496b09878dc8535b","unresolved":false,"context_lines":[{"line_number":271,"context_line":"     Tempest. Note that this is the required last step before a service can"},{"line_number":272,"context_line":"     remove the experimental warning from the documentation."},{"line_number":273,"context_line":""},{"line_number":274,"context_line":".. Appendix H: ../install-guide/app-custom-layouts.html"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"--------------"},{"line_number":277,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aa08908_aebb6174","line":274,"range":{"start_line":274,"start_character":3,"end_line":274,"end_character":13},"in_reply_to":"7aa08908_7dedce8d","updated":"2016-06-10 15:44:43.000000000","message":"Done","commit_id":"fff0c7ddc09cc3d37569bfb5ec25fbcb59196c72"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"5d1c897168134f9733be1ef37b84cebdd37494a7","unresolved":false,"context_lines":[{"line_number":38,"context_line":"   and user prepared"},{"line_number":39,"context_line":"#. service add: register the service (each of: service type, service project,"},{"line_number":40,"context_line":"   service user, and endpoints) within Keystone\u0027s service catalog."},{"line_number":41,"context_line":"#. service setup: install a service-startup script (init, upstart, etc.) so"},{"line_number":42,"context_line":"   that the service will start up when the container or host next starts."},{"line_number":43,"context_line":"#. service init/startup: signal to the host or container to start the services"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7aa08908_1cb6c8f8","line":41,"updated":"2016-06-14 06:47:24.000000000","message":"Below we mention init.d and SystemD.  We should be consistent throughout this document on what init systems we care about (presumably what U14.04 and U16.04 have as required minimums)","commit_id":"e97d73d8319a01d4da4efc347fb018a0baf7f8ec"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"9ca78658ac384d3f8a7fa999da42f27e496b5b45","unresolved":false,"context_lines":[{"line_number":38,"context_line":"   and user prepared"},{"line_number":39,"context_line":"#. service add: register the service (each of: service type, service project,"},{"line_number":40,"context_line":"   service user, and endpoints) within Keystone\u0027s service catalog."},{"line_number":41,"context_line":"#. service setup: install a service-startup script (init, upstart, etc.) so"},{"line_number":42,"context_line":"   that the service will start up when the container or host next starts."},{"line_number":43,"context_line":"#. service init/startup: signal to the host or container to start the services"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7aa08908_ec105c5b","line":41,"in_reply_to":"7aa08908_1cb6c8f8","updated":"2016-06-14 11:36:43.000000000","message":"Done","commit_id":"e97d73d8319a01d4da4efc347fb018a0baf7f8ec"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"5d1c897168134f9733be1ef37b84cebdd37494a7","unresolved":false,"context_lines":[{"line_number":103,"context_line":"   for any other variables you will need at this time as well, either in"},{"line_number":104,"context_line":"   ``user_variables.yml`` or another file. This is explained in more depth"},{"line_number":105,"context_line":"   under `Extending OpenStack-Ansible`_."},{"line_number":106,"context_line":"#. If your service is installed from source or relies on python packages which"},{"line_number":107,"context_line":"   need to be installed from source, specify a repository for the source"},{"line_number":108,"context_line":"   code of each requirement by adding a file to your deploy host under"},{"line_number":109,"context_line":"   ``playbooks/defaults/repo_packages`` in the OpenStack-Ansible source repository"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7aa08908_3c96243e","line":106,"range":{"start_line":106,"start_character":11,"end_line":106,"end_character":43},"updated":"2016-06-14 06:47:24.000000000","message":"Isn\u0027t this a given?  Which packages wouldn\u0027t be installed from source? Isn\u0027t this a requirement for openstack?","commit_id":"e97d73d8319a01d4da4efc347fb018a0baf7f8ec"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"9ca78658ac384d3f8a7fa999da42f27e496b5b45","unresolved":false,"context_lines":[{"line_number":103,"context_line":"   for any other variables you will need at this time as well, either in"},{"line_number":104,"context_line":"   ``user_variables.yml`` or another file. This is explained in more depth"},{"line_number":105,"context_line":"   under `Extending OpenStack-Ansible`_."},{"line_number":106,"context_line":"#. If your service is installed from source or relies on python packages which"},{"line_number":107,"context_line":"   need to be installed from source, specify a repository for the source"},{"line_number":108,"context_line":"   code of each requirement by adding a file to your deploy host under"},{"line_number":109,"context_line":"   ``playbooks/defaults/repo_packages`` in the OpenStack-Ansible source repository"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7aa08908_7dd8a053","line":106,"range":{"start_line":106,"start_character":11,"end_line":106,"end_character":43},"in_reply_to":"7aa08908_3c96243e","updated":"2016-06-14 11:36:43.000000000","message":"The service may be something outside of OpenStack (eg: database service, time service, monitoring system, etc)","commit_id":"e97d73d8319a01d4da4efc347fb018a0baf7f8ec"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"5d1c897168134f9733be1ef37b84cebdd37494a7","unresolved":false,"context_lines":[{"line_number":136,"context_line":""},{"line_number":137,"context_line":"Role development maturity"},{"line_number":138,"context_line":"-------------------------"},{"line_number":139,"context_line":"In order to include a role in an integrated build it needs to meet an"},{"line_number":140,"context_line":"appropriate level of maturity requirements. Developers are encouraged to"},{"line_number":141,"context_line":"observe the below-mentioned patterns in the existing roles."},{"line_number":142,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7aa08908_dce280d4","line":139,"range":{"start_line":139,"start_character":33,"end_line":139,"end_character":49},"updated":"2016-06-14 06:47:24.000000000","message":"We should define what this is","commit_id":"e97d73d8319a01d4da4efc347fb018a0baf7f8ec"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"5d1c897168134f9733be1ef37b84cebdd37494a7","unresolved":false,"context_lines":[{"line_number":137,"context_line":"Role development maturity"},{"line_number":138,"context_line":"-------------------------"},{"line_number":139,"context_line":"In order to include a role in an integrated build it needs to meet an"},{"line_number":140,"context_line":"appropriate level of maturity requirements. Developers are encouraged to"},{"line_number":141,"context_line":"observe the below-mentioned patterns in the existing roles."},{"line_number":142,"context_line":""},{"line_number":143,"context_line":".. note::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7aa08908_dc09e096","line":140,"range":{"start_line":140,"start_character":30,"end_line":140,"end_character":42},"updated":"2016-06-14 06:47:24.000000000","message":"nit: Remove \"requirements\" here.  We just want to say that it\u0027s reached an appropriate level of maturity.","commit_id":"e97d73d8319a01d4da4efc347fb018a0baf7f8ec"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"5d1c897168134f9733be1ef37b84cebdd37494a7","unresolved":false,"context_lines":[{"line_number":144,"context_line":"   Many of the existing roles may not fully implement all the patterns"},{"line_number":145,"context_line":"   just yet. It is important to look through multiple roles to get an"},{"line_number":146,"context_line":"   idea of the common patterns rather than to fixate on a single role\u0027s"},{"line_number":147,"context_line":"   pattern, which may be a little dated."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"The development of a role will usually go through the following stages:"},{"line_number":150,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7aa08908_5c3df029","line":147,"range":{"start_line":147,"start_character":25,"end_line":147,"end_character":39},"updated":"2016-06-14 06:47:24.000000000","message":"Nit: s/be a little dated/not meet the current expected requirements/","commit_id":"e97d73d8319a01d4da4efc347fb018a0baf7f8ec"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"5d1c897168134f9733be1ef37b84cebdd37494a7","unresolved":false,"context_lines":[{"line_number":172,"context_line":"     * ``run_tests.sh``:"},{"line_number":173,"context_line":"       A convenient script for developers to execute all standard tests on a"},{"line_number":174,"context_line":"       suitable host."},{"line_number":175,"context_line":"     * ``Vagrantfile``:"},{"line_number":176,"context_line":"       A convenient configuration file to allow a developer to easily create a"},{"line_number":177,"context_line":"       test virtual machine using `Vagrant`_. This must automatically execute"},{"line_number":178,"context_line":"       ``run_tests.sh``."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7aa08908_1c0ec88b","line":175,"range":{"start_line":175,"start_character":9,"end_line":175,"end_character":20},"updated":"2016-06-14 06:47:24.000000000","message":"Is providing a Vagrantfile really expected? vagrant is a thing some people use, but AFAIK a lot of people don\u0027t use this thing.","commit_id":"e97d73d8319a01d4da4efc347fb018a0baf7f8ec"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"9ca78658ac384d3f8a7fa999da42f27e496b5b45","unresolved":false,"context_lines":[{"line_number":172,"context_line":"     * ``run_tests.sh``:"},{"line_number":173,"context_line":"       A convenient script for developers to execute all standard tests on a"},{"line_number":174,"context_line":"       suitable host."},{"line_number":175,"context_line":"     * ``Vagrantfile``:"},{"line_number":176,"context_line":"       A convenient configuration file to allow a developer to easily create a"},{"line_number":177,"context_line":"       test virtual machine using `Vagrant`_. This must automatically execute"},{"line_number":178,"context_line":"       ``run_tests.sh``."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7aa08908_47fd09b0","line":175,"range":{"start_line":175,"start_character":9,"end_line":175,"end_character":20},"in_reply_to":"7aa08908_1c0ec88b","updated":"2016-06-14 11:36:43.000000000","message":"Yes, the Vagrantfile is actually used by many of our contributors for testing. It has become a standard pattern as a result of community contributions.","commit_id":"e97d73d8319a01d4da4efc347fb018a0baf7f8ec"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"5d1c897168134f9733be1ef37b84cebdd37494a7","unresolved":false,"context_lines":[{"line_number":176,"context_line":"       A convenient configuration file to allow a developer to easily create a"},{"line_number":177,"context_line":"       test virtual machine using `Vagrant`_. This must automatically execute"},{"line_number":178,"context_line":"       ``run_tests.sh``."},{"line_number":179,"context_line":"     * ``README.rst``, ``LICENSE``, ``CONTRIBUTING.rst``:"},{"line_number":180,"context_line":"       A set of standard files which have content describing their purpose."},{"line_number":181,"context_line":"     * ``.gitignore``:"},{"line_number":182,"context_line":"       A standard git configuration file for the repository which should be"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7aa08908_9c1ab8c4","line":179,"range":{"start_line":179,"start_character":25,"end_line":179,"end_character":32},"updated":"2016-06-14 06:47:24.000000000","message":"Do we need to say that any new role must be Apache2.0 licensed?","commit_id":"e97d73d8319a01d4da4efc347fb018a0baf7f8ec"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"9ca78658ac384d3f8a7fa999da42f27e496b5b45","unresolved":false,"context_lines":[{"line_number":176,"context_line":"       A convenient configuration file to allow a developer to easily create a"},{"line_number":177,"context_line":"       test virtual machine using `Vagrant`_. This must automatically execute"},{"line_number":178,"context_line":"       ``run_tests.sh``."},{"line_number":179,"context_line":"     * ``README.rst``, ``LICENSE``, ``CONTRIBUTING.rst``:"},{"line_number":180,"context_line":"       A set of standard files which have content describing their purpose."},{"line_number":181,"context_line":"     * ``.gitignore``:"},{"line_number":182,"context_line":"       A standard git configuration file for the repository which should be"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7aa08908_87bff1ce","line":179,"range":{"start_line":179,"start_character":25,"end_line":179,"end_character":32},"in_reply_to":"7aa08908_9c1ab8c4","updated":"2016-06-14 11:36:43.000000000","message":"I don\u0027t think we necessarily have to repeat the governance policy here. We do encourage that the patterns are observed from the existing roles and all roles have an Apache 2.0 license so I think that combined with the governance is good enough.","commit_id":"e97d73d8319a01d4da4efc347fb018a0baf7f8ec"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"6127c86887802586b54181a720d981d6b19f2070","unresolved":false,"context_lines":[{"line_number":244,"context_line":"     mandatory infrastructure (For example: a database and a message queue are"},{"line_number":245,"context_line":"     required), variables (For example: the database name and credentials) and"},{"line_number":246,"context_line":"     group names (For example: The role expects a group named ``foo_all`` to"},{"line_number":247,"context_line":"     be present and it expects the host to be e member of it) for the role\u0027s"},{"line_number":248,"context_line":"     execution to succeed."},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"   .. _Documentation and Release Note Guidelines: contribute.html#documentation-and-release-note-guidelines"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7aa08908_a039a5a5","line":247,"range":{"start_line":247,"start_character":46,"end_line":247,"end_character":47},"updated":"2016-06-10 18:20:31.000000000","message":"a","commit_id":"e97d73d8319a01d4da4efc347fb018a0baf7f8ec"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"9ca78658ac384d3f8a7fa999da42f27e496b5b45","unresolved":false,"context_lines":[{"line_number":244,"context_line":"     mandatory infrastructure (For example: a database and a message queue are"},{"line_number":245,"context_line":"     required), variables (For example: the database name and credentials) and"},{"line_number":246,"context_line":"     group names (For example: The role expects a group named ``foo_all`` to"},{"line_number":247,"context_line":"     be present and it expects the host to be e member of it) for the role\u0027s"},{"line_number":248,"context_line":"     execution to succeed."},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"   .. _Documentation and Release Note Guidelines: contribute.html#documentation-and-release-note-guidelines"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7aa08908_47c22954","line":247,"range":{"start_line":247,"start_character":46,"end_line":247,"end_character":47},"in_reply_to":"7aa08908_a039a5a5","updated":"2016-06-14 11:36:43.000000000","message":"Done","commit_id":"e97d73d8319a01d4da4efc347fb018a0baf7f8ec"},{"author":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"change_message_id":"8597bc26180f105348a71e198a281f2211f3f91f","unresolved":false,"context_lines":[{"line_number":292,"context_line":"     new role to connect to other roles, should be implemented in"},{"line_number":293,"context_line":"     ``playbooks/inventory/group_vars``. The group vars are essentially the"},{"line_number":294,"context_line":"     glue which playbooks use to ensure that all roles are given the"},{"line_number":295,"context_line":"     appropriate information."},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"   * Documentation"},{"line_number":298,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7aa08908_308fc4cd","line":295,"updated":"2016-06-10 19:34:13.000000000","message":"is it worth mentioning that group vars should be used sparingly, only as needed?","commit_id":"e97d73d8319a01d4da4efc347fb018a0baf7f8ec"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"9ca78658ac384d3f8a7fa999da42f27e496b5b45","unresolved":false,"context_lines":[{"line_number":292,"context_line":"     new role to connect to other roles, should be implemented in"},{"line_number":293,"context_line":"     ``playbooks/inventory/group_vars``. The group vars are essentially the"},{"line_number":294,"context_line":"     glue which playbooks use to ensure that all roles are given the"},{"line_number":295,"context_line":"     appropriate information."},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"   * Documentation"},{"line_number":298,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7aa08908_87e251d3","line":295,"in_reply_to":"7aa08908_308fc4cd","updated":"2016-06-14 11:36:43.000000000","message":"Done","commit_id":"e97d73d8319a01d4da4efc347fb018a0baf7f8ec"}]}
