)]}'
{"playbooks/common-tasks/determine-execution-strategy.yml":[{"author":{"_account_id":14805,"name":"Jimmy McCrory","email":"jimmy.mccrory@gmail.com","username":"jimmy-mccrory"},"change_message_id":"9b36f6a5a31c536a48d7926d7b8b631f18cf80b4","unresolved":false,"context_lines":[{"line_number":26,"context_line":"      {%- else %}"},{"line_number":27,"context_line":"      {%-   set existing_version \u003d existing_venv_version_list | min %}"},{"line_number":28,"context_line":"      {%-   set existing_version_major \u003d existing_version.split(\u0027.\u0027)[0] %}"},{"line_number":29,"context_line":"      {%-   set openstack_release_major \u003d openstack_release.split(\u0027.\u0027)[0] %}"},{"line_number":30,"context_line":"      {%-   if existing_version_major \u003c openstack_release_major %}"},{"line_number":31,"context_line":"      {%-     set deployment_type \u003d \u0027major upgrade\u0027 %}"},{"line_number":32,"context_line":"      {%-   elif existing_version_major \u003e openstack_release_major %}"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"df140735_8c987c1b","line":29,"range":{"start_line":29,"start_character":42,"end_line":29,"end_character":74},"updated":"2017-05-31 18:07:48.000000000","message":"https://github.com/openstack/openstack-ansible/blob/master/group_vars/all/all.yml#L17\n\nopenstack_release could be a string instead of version (master, dev mode)","commit_id":"2c7b4557e93a9659d89b8e26096d08ae0a858e9d"},{"author":{"_account_id":14805,"name":"Jimmy McCrory","email":"jimmy.mccrory@gmail.com","username":"jimmy-mccrory"},"change_message_id":"b775412d27a60a6e8eed3fa05b8e19e7aee9a730","unresolved":false,"context_lines":[{"line_number":26,"context_line":"      {%- else %}"},{"line_number":27,"context_line":"      {%-   set existing_version \u003d existing_venv_version_list | min %}"},{"line_number":28,"context_line":"      {%-   set existing_version_major \u003d existing_version.split(\u0027.\u0027)[0] %}"},{"line_number":29,"context_line":"      {%-   set openstack_release_major \u003d openstack_release.split(\u0027.\u0027)[0] %}"},{"line_number":30,"context_line":"      {%-   if existing_version_major \u003c openstack_release_major %}"},{"line_number":31,"context_line":"      {%-     set deployment_type \u003d \u0027major upgrade\u0027 %}"},{"line_number":32,"context_line":"      {%-   elif existing_version_major \u003e openstack_release_major %}"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"df140735_e7f3939d","line":29,"range":{"start_line":29,"start_character":42,"end_line":29,"end_character":74},"in_reply_to":"df140735_27418b3a","updated":"2017-05-31 18:35:33.000000000","message":"Ah ok, makes sense. It would only do the major comparisons and not get down into any version_compare, so master should always upgrade unless the existing venv is higher alphabetically.","commit_id":"2c7b4557e93a9659d89b8e26096d08ae0a858e9d"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"cc334820b2a4925f83e8117bf7aee16e4b917c62","unresolved":false,"context_lines":[{"line_number":26,"context_line":"      {%- else %}"},{"line_number":27,"context_line":"      {%-   set existing_version \u003d existing_venv_version_list | min %}"},{"line_number":28,"context_line":"      {%-   set existing_version_major \u003d existing_version.split(\u0027.\u0027)[0] %}"},{"line_number":29,"context_line":"      {%-   set openstack_release_major \u003d openstack_release.split(\u0027.\u0027)[0] %}"},{"line_number":30,"context_line":"      {%-   if existing_version_major \u003c openstack_release_major %}"},{"line_number":31,"context_line":"      {%-     set deployment_type \u003d \u0027major upgrade\u0027 %}"},{"line_number":32,"context_line":"      {%-   elif existing_version_major \u003e openstack_release_major %}"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"df140735_27418b3a","line":29,"range":{"start_line":29,"start_character":42,"end_line":29,"end_character":74},"in_reply_to":"df140735_8c987c1b","updated":"2017-05-31 18:12:56.000000000","message":"Interestingly enough I tested with \u0027master\u0027 and other arbitrary strings - the result is always a major upgrade unless it\u0027s master to master. :)","commit_id":"2c7b4557e93a9659d89b8e26096d08ae0a858e9d"}],"playbooks/os-keystone-install.yml":[{"author":{"_account_id":17799,"name":"Logan V","email":"logan2211@gmail.com","username":"Logan2211"},"change_message_id":"871bf780c4046dcbe37fa1f7873f3b35504982ab","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        - always"},{"line_number":118,"context_line":"  vars:"},{"line_number":119,"context_line":"    is_metal: \"{{ properties.is_metal|default(false) }}\""},{"line_number":120,"context_line":"    keystone_serial: \"{{ (hostvars[ansible_play_hosts[0]][\u0027deployment_type\u0027] \u003d\u003d \u0027new deployment\u0027) | ternary(\u0027100%\u0027, \u00271\u0027) }}\""},{"line_number":121,"context_line":"    keystone_admin_port: 35357"},{"line_number":122,"context_line":"    keystone_galera_user: keystone"},{"line_number":123,"context_line":"    keystone_galera_database: keystone"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"df140735_a74d9b73","line":120,"updated":"2017-05-31 18:15:43.000000000","message":"I see the upgrade serialization has changed from \"[1, 100%]\" to \"1\". Is that because we feel having a minimum online capacity during the upgrade of N-1 is a more sane default than having only 1 node serving the workload? Makes sense but it will come at the expense of significantly increased playbook run times.\n\nMaybe you could template out some generic serializations keyed by deployment_type that could be blanket modified. Ie our default serialization for new deployment is 100%, and upgrades is \u00271\u0027, but somehow a deployer can say I want my upgrade serialization as \"[1, 100%]\" with a single var change and expect it to effect all of the places we implement this framework.","commit_id":"2c7b4557e93a9659d89b8e26096d08ae0a858e9d"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"93c529cce0cc81c33ebe7ce26fb2df358ba2d5d5","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        - always"},{"line_number":118,"context_line":"  vars:"},{"line_number":119,"context_line":"    is_metal: \"{{ properties.is_metal|default(false) }}\""},{"line_number":120,"context_line":"    keystone_serial: \"{{ (hostvars[ansible_play_hosts[0]][\u0027deployment_type\u0027] \u003d\u003d \u0027new deployment\u0027) | ternary(\u0027100%\u0027, \u00271\u0027) }}\""},{"line_number":121,"context_line":"    keystone_admin_port: 35357"},{"line_number":122,"context_line":"    keystone_galera_user: keystone"},{"line_number":123,"context_line":"    keystone_galera_database: keystone"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"df140735_a760fba6","line":120,"in_reply_to":"df140735_a74d9b73","updated":"2017-05-31 18:20:40.000000000","message":"I left it as a var to make it easily overridden using extra-vars. When testing I saw significant performance degradation when using 1,100% versus when using 1 where there was no performance degradation (or none significant enough to affect my testing).\n\nGeneralising the serialisation might be something we can do - I haven\u0027t ventured far enough into the other services to really understand the best strategy for them too.\n\nI guess I could do a hash in group vars now, and change it later if that doesn\u0027t work out.","commit_id":"2c7b4557e93a9659d89b8e26096d08ae0a858e9d"},{"author":{"_account_id":17799,"name":"Logan V","email":"logan2211@gmail.com","username":"Logan2211"},"change_message_id":"b6218f925b5fc5d8bb1e2769792fe84162e3f8f6","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# limitations under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"- name: Prepare MQ/DB services"},{"line_number":17,"context_line":"  hosts: keystone_all[0]"},{"line_number":18,"context_line":"  gather_facts: \"{{ gather_facts | default(True) }}\""},{"line_number":19,"context_line":"  user: root"},{"line_number":20,"context_line":"  environment: \"{{ deployment_environment_variables | default({}) }}\""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"7f231b9d_ac8293fe","line":17,"updated":"2017-06-19 02:48:06.000000000","message":"Questioning whether this should be ansible_play_hosts[0], so that something like \"--limit keystone[1]\" will still run this\n\nSeems like minimal downside unless im missing something","commit_id":"67d8f054df16c79057b6adfb79ff4da6fba2fafc"},{"author":{"_account_id":17799,"name":"Logan V","email":"logan2211@gmail.com","username":"Logan2211"},"change_message_id":"4fcc049a7b2eac96f25a43f2b5d4e9626c95526b","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# limitations under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"- name: Prepare MQ/DB services"},{"line_number":17,"context_line":"  hosts: keystone_all[0]"},{"line_number":18,"context_line":"  gather_facts: \"{{ gather_facts | default(True) }}\""},{"line_number":19,"context_line":"  user: root"},{"line_number":20,"context_line":"  environment: \"{{ deployment_environment_variables | default({}) }}\""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"7f231b9d_89cc5b35","line":17,"in_reply_to":"7f231b9d_43a505a1","updated":"2017-06-19 12:10:13.000000000","message":"Yes you\u0027re right setting the playbook hosts to reference itself using ansible_play_hosts won\u0027t work right at all :)\n\nIm fine with leaving it as is, but another idea could be: scope this play to keystone_all and set the tasks to run_once: true.","commit_id":"67d8f054df16c79057b6adfb79ff4da6fba2fafc"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"003d8e8dadb5ca81ff266cecd2d9f63347ae9a62","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# limitations under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"- name: Prepare MQ/DB services"},{"line_number":17,"context_line":"  hosts: keystone_all[0]"},{"line_number":18,"context_line":"  gather_facts: \"{{ gather_facts | default(True) }}\""},{"line_number":19,"context_line":"  user: root"},{"line_number":20,"context_line":"  environment: \"{{ deployment_environment_variables | default({}) }}\""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"7f231b9d_4fdbe34d","line":17,"in_reply_to":"7f231b9d_89cc5b35","updated":"2017-06-19 12:49:40.000000000","message":"Will run_once do a task skip for the other hosts, or will it never generate a task except for one host. Part of what I\u0027m trying to do here is avoid the kip task because it adds more time.","commit_id":"67d8f054df16c79057b6adfb79ff4da6fba2fafc"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"a66e14dde85329a054a685a0076f035ab9e6bcca","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# limitations under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"- name: Prepare MQ/DB services"},{"line_number":17,"context_line":"  hosts: keystone_all[0]"},{"line_number":18,"context_line":"  gather_facts: \"{{ gather_facts | default(True) }}\""},{"line_number":19,"context_line":"  user: root"},{"line_number":20,"context_line":"  environment: \"{{ deployment_environment_variables | default({}) }}\""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"7f231b9d_cd3026a2","line":17,"in_reply_to":"7f231b9d_ac8293fe","updated":"2017-06-19 08:08:56.000000000","message":"Can do for this one. For the db migration bits all the facts are only being set on one host (keystone[0]) so that can\u0027t really be done unless you can suggest a way to have the facts set on all hosts without wrecking the role?","commit_id":"67d8f054df16c79057b6adfb79ff4da6fba2fafc"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"da7e95218ada8dd907bd7de747b674e6fc9b48ad","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# limitations under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"- name: Prepare MQ/DB services"},{"line_number":17,"context_line":"  hosts: keystone_all[0]"},{"line_number":18,"context_line":"  gather_facts: \"{{ gather_facts | default(True) }}\""},{"line_number":19,"context_line":"  user: root"},{"line_number":20,"context_line":"  environment: \"{{ deployment_environment_variables | default({}) }}\""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"7f231b9d_43a505a1","line":17,"in_reply_to":"7f231b9d_cd3026a2","updated":"2017-06-19 09:18:17.000000000","message":"Just thinking about this - I\u0027m not sure that would work because when executing this playbook you might be targeting \u0027all\u0027 or some other group. It has to be tied to the group somehow.","commit_id":"67d8f054df16c79057b6adfb79ff4da6fba2fafc"},{"author":{"_account_id":17799,"name":"Logan V","email":"logan2211@gmail.com","username":"Logan2211"},"change_message_id":"b6218f925b5fc5d8bb1e2769792fe84162e3f8f6","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        haproxy_state: enabled"},{"line_number":137,"context_line":"      when: \"{{ groups[\u0027keystone_all\u0027] | length \u003e 1 }}\""},{"line_number":138,"context_line":"      with_items:"},{"line_number":139,"context_line":"        - \"keystone_service-back\""},{"line_number":140,"context_line":"        - \"keystone_admin-back\""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"# These facts are set against the deployment host to ensure that"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"7f231b9d_4c7bff26","line":139,"updated":"2017-06-19 02:48:06.000000000","message":"Not something that needs to be or should be addressed in this review but I could see these backend names being better off defined as a group_var, but thats probably more like haproxy config revamp work where we could build the endpoint lists from the group vars of the targets.","commit_id":"67d8f054df16c79057b6adfb79ff4da6fba2fafc"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"a66e14dde85329a054a685a0076f035ab9e6bcca","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        haproxy_state: enabled"},{"line_number":137,"context_line":"      when: \"{{ groups[\u0027keystone_all\u0027] | length \u003e 1 }}\""},{"line_number":138,"context_line":"      with_items:"},{"line_number":139,"context_line":"        - \"keystone_service-back\""},{"line_number":140,"context_line":"        - \"keystone_admin-back\""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"# These facts are set against the deployment host to ensure that"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"7f231b9d_cd6266ae","line":139,"in_reply_to":"7f231b9d_4c7bff26","updated":"2017-06-19 08:08:56.000000000","message":"Yeah, agreed. There are some things being hard set that could probably be more dynamically worked out, but that can follow on as an iterative improvement.","commit_id":"67d8f054df16c79057b6adfb79ff4da6fba2fafc"},{"author":{"_account_id":17799,"name":"Logan V","email":"logan2211@gmail.com","username":"Logan2211"},"change_message_id":"36f00721f013dac53187f7b2d13f01e2205f82fb","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# limitations under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"- name: Prepare MQ/DB services"},{"line_number":17,"context_line":"  hosts: keystone_all[0]"},{"line_number":18,"context_line":"  gather_facts: \"{{ gather_facts | default(True) }}\""},{"line_number":19,"context_line":"  user: root"},{"line_number":20,"context_line":"  environment: \"{{ deployment_environment_variables | default({}) }}\""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5f201791_98ec99f4","line":17,"range":{"start_line":17,"start_character":21,"end_line":17,"end_character":24},"updated":"2017-06-20 13:39:18.000000000","message":"Can target keystone_all instead of keystone_all[0] because of the run_once tasks.","commit_id":"b683cfcd07d7faf4380f1868a9a1ce0d288375ea"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"d34b9965ac1ce91d167bf25eafe8a22d69a49a7b","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# limitations under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"- name: Prepare MQ/DB services"},{"line_number":17,"context_line":"  hosts: keystone_all[0]"},{"line_number":18,"context_line":"  gather_facts: \"{{ gather_facts | default(True) }}\""},{"line_number":19,"context_line":"  user: root"},{"line_number":20,"context_line":"  environment: \"{{ deployment_environment_variables | default({}) }}\""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5f201791_f8b02d8e","line":17,"range":{"start_line":17,"start_character":21,"end_line":17,"end_character":24},"in_reply_to":"5f201791_98ec99f4","updated":"2017-06-20 13:53:35.000000000","message":"Silly me, I thought I\u0027d fixed that. Good catch!","commit_id":"b683cfcd07d7faf4380f1868a9a1ce0d288375ea"}]}
