)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"f19750fa164203782aae8a7b16741506ea8c14db","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Mark Goddard \u003cmark@stackhpc.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-07-02 10:24:58 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"WIP: Wait for all compute services to be discovered"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I2915e2610e5c0b8d67412e7ec77f7575b8fe9921"},{"line_number":10,"context_line":"Closes-Bug: #1835002"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9fb8cfa7_8f6462ba","line":7,"range":{"start_line":7,"start_character":5,"end_line":7,"end_character":51},"updated":"2019-07-02 09:26:43.000000000","message":"Not quite accurate","commit_id":"c02cface468c18d4f2facd39e6d87e1d92419cb3"}],"ansible/roles/nova/tasks/discover_computes.yml":[{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"4017b30659a729838ec9bf5e5973ed8e396516cd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"# Use ansible_hostname rather than inventory_hostname."},{"line_number":3,"context_line":"# Try to work with --limit by including only hosts in ansible_play_batch."},{"line_number":4,"context_line":"# Append \u0027-ironic\u0027 to the hostname of ironic compute services."},{"line_number":5,"context_line":"- name: Build a list of expected virt compute services"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9fb8cfa7_2c38e4eb","line":2,"range":{"start_line":2,"start_character":6,"end_line":2,"end_character":22},"updated":"2019-07-02 09:07:40.000000000","message":"Maybe it should be fqdn?","commit_id":"612d121779ca4fbce51430299aeb5014523fa050"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"f19750fa164203782aae8a7b16741506ea8c14db","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"# Use ansible_hostname rather than inventory_hostname."},{"line_number":3,"context_line":"# Try to work with --limit by including only hosts in ansible_play_batch."},{"line_number":4,"context_line":"# Append \u0027-ironic\u0027 to the hostname of ironic compute services."},{"line_number":5,"context_line":"- name: Build a list of expected virt compute services"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9fb8cfa7_0f3dd2b9","line":2,"range":{"start_line":2,"start_character":6,"end_line":2,"end_character":22},"in_reply_to":"9fb8cfa7_2c38e4eb","updated":"2019-07-02 09:26:43.000000000","message":"I am reliably informed by priteau that we should use ansible_nodename.","commit_id":"612d121779ca4fbce51430299aeb5014523fa050"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"4017b30659a729838ec9bf5e5973ed8e396516cd","unresolved":false,"context_lines":[{"line_number":2,"context_line":"# Use ansible_hostname rather than inventory_hostname."},{"line_number":3,"context_line":"# Try to work with --limit by including only hosts in ansible_play_batch."},{"line_number":4,"context_line":"# Append \u0027-ironic\u0027 to the hostname of ironic compute services."},{"line_number":5,"context_line":"- name: Build a list of expected virt compute services"},{"line_number":6,"context_line":"  set_fact:"},{"line_number":7,"context_line":"    virt_compute_services: \u003e-"},{"line_number":8,"context_line":"      {{ groups[\u0027compute\u0027] |"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9fb8cfa7_0c5c0049","line":5,"range":{"start_line":5,"start_character":33,"end_line":5,"end_character":38},"updated":"2019-07-02 09:07:40.000000000","message":"and ironic, or best leave the word out","commit_id":"612d121779ca4fbce51430299aeb5014523fa050"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"f19750fa164203782aae8a7b16741506ea8c14db","unresolved":false,"context_lines":[{"line_number":2,"context_line":"# Use ansible_hostname rather than inventory_hostname."},{"line_number":3,"context_line":"# Try to work with --limit by including only hosts in ansible_play_batch."},{"line_number":4,"context_line":"# Append \u0027-ironic\u0027 to the hostname of ironic compute services."},{"line_number":5,"context_line":"- name: Build a list of expected virt compute services"},{"line_number":6,"context_line":"  set_fact:"},{"line_number":7,"context_line":"    virt_compute_services: \u003e-"},{"line_number":8,"context_line":"      {{ groups[\u0027compute\u0027] |"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9fb8cfa7_af47e64b","line":5,"range":{"start_line":5,"start_character":33,"end_line":5,"end_character":38},"in_reply_to":"9fb8cfa7_0c5c0049","updated":"2019-07-02 09:26:43.000000000","message":"Done","commit_id":"612d121779ca4fbce51430299aeb5014523fa050"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"4017b30659a729838ec9bf5e5973ed8e396516cd","unresolved":false,"context_lines":[{"line_number":5,"context_line":"- name: Build a list of expected virt compute services"},{"line_number":6,"context_line":"  set_fact:"},{"line_number":7,"context_line":"    virt_compute_services: \u003e-"},{"line_number":8,"context_line":"      {{ groups[\u0027compute\u0027] |"},{"line_number":9,"context_line":"         intersect(ansible_play_batch) |"},{"line_number":10,"context_line":"         map(\u0027extract\u0027, hostvars, \u0027ansible_hostname\u0027) |"},{"line_number":11,"context_line":"         list }}"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9fb8cfa7_0c2160b4","line":8,"range":{"start_line":8,"start_character":17,"end_line":8,"end_character":24},"updated":"2019-07-02 09:07:40.000000000","message":"nova-compute","commit_id":"612d121779ca4fbce51430299aeb5014523fa050"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"f19750fa164203782aae8a7b16741506ea8c14db","unresolved":false,"context_lines":[{"line_number":5,"context_line":"- name: Build a list of expected virt compute services"},{"line_number":6,"context_line":"  set_fact:"},{"line_number":7,"context_line":"    virt_compute_services: \u003e-"},{"line_number":8,"context_line":"      {{ groups[\u0027compute\u0027] |"},{"line_number":9,"context_line":"         intersect(ansible_play_batch) |"},{"line_number":10,"context_line":"         map(\u0027extract\u0027, hostvars, \u0027ansible_hostname\u0027) |"},{"line_number":11,"context_line":"         list }}"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9fb8cfa7_6f77aea1","line":8,"range":{"start_line":8,"start_character":17,"end_line":8,"end_character":24},"in_reply_to":"9fb8cfa7_0c2160b4","updated":"2019-07-02 09:26:43.000000000","message":"Nope :)","commit_id":"612d121779ca4fbce51430299aeb5014523fa050"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"a488b3497e2f7ce18fcb1a7e4305e1162eae943a","unresolved":false,"context_lines":[{"line_number":5,"context_line":"- name: Build a list of expected virt compute services"},{"line_number":6,"context_line":"  set_fact:"},{"line_number":7,"context_line":"    virt_compute_services: \u003e-"},{"line_number":8,"context_line":"      {{ groups[\u0027compute\u0027] |"},{"line_number":9,"context_line":"         intersect(ansible_play_batch) |"},{"line_number":10,"context_line":"         map(\u0027extract\u0027, hostvars, \u0027ansible_hostname\u0027) |"},{"line_number":11,"context_line":"         list }}"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9fb8cfa7_2f81b6fb","line":8,"range":{"start_line":8,"start_character":17,"end_line":8,"end_character":24},"in_reply_to":"9fb8cfa7_6f77aea1","updated":"2019-07-02 09:41:05.000000000","message":"Yeah, I somehow managed to convince myself there was \u0027nova-compute\u0027 yesterday evening, probably due to \u0027nova-compute-ironic\u0027. ;-)","commit_id":"612d121779ca4fbce51430299aeb5014523fa050"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"4017b30659a729838ec9bf5e5973ed8e396516cd","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    compute_service_hosts: \u003e-"},{"line_number":25,"context_line":"      {{ nova_compute_services.stdout |"},{"line_number":26,"context_line":"         from_json |"},{"line_number":27,"context_line":"         map(attribute\u003d\u0027Host\u0027) |"},{"line_number":28,"context_line":"         list }}"},{"line_number":29,"context_line":"  become: true"},{"line_number":30,"context_line":"  command: \u003e"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9fb8cfa7_0c0ac024","line":27,"updated":"2019-07-02 09:07:40.000000000","message":"Filter on state (up) and status (enabled) of these hosts before mapping.","commit_id":"612d121779ca4fbce51430299aeb5014523fa050"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"f19750fa164203782aae8a7b16741506ea8c14db","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    compute_service_hosts: \u003e-"},{"line_number":25,"context_line":"      {{ nova_compute_services.stdout |"},{"line_number":26,"context_line":"         from_json |"},{"line_number":27,"context_line":"         map(attribute\u003d\u0027Host\u0027) |"},{"line_number":28,"context_line":"         list }}"},{"line_number":29,"context_line":"  become: true"},{"line_number":30,"context_line":"  command: \u003e"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9fb8cfa7_2f6d36cb","line":27,"in_reply_to":"9fb8cfa7_0c0ac024","updated":"2019-07-02 09:26:43.000000000","message":"Is that what nova requires for hosts to be discoverable?","commit_id":"612d121779ca4fbce51430299aeb5014523fa050"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"a488b3497e2f7ce18fcb1a7e4305e1162eae943a","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    compute_service_hosts: \u003e-"},{"line_number":25,"context_line":"      {{ nova_compute_services.stdout |"},{"line_number":26,"context_line":"         from_json |"},{"line_number":27,"context_line":"         map(attribute\u003d\u0027Host\u0027) |"},{"line_number":28,"context_line":"         list }}"},{"line_number":29,"context_line":"  become: true"},{"line_number":30,"context_line":"  command: \u003e"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9fb8cfa7_cf96da49","line":27,"in_reply_to":"9fb8cfa7_2f6d36cb","updated":"2019-07-02 09:41:05.000000000","message":"Nope but this is what constitutes being up and we don\u0027t deploy them as disabled. More of a sanity check here.","commit_id":"612d121779ca4fbce51430299aeb5014523fa050"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"4017b30659a729838ec9bf5e5973ed8e396516cd","unresolved":false,"context_lines":[{"line_number":48,"context_line":"  until:"},{"line_number":49,"context_line":"    - nova_compute_services is success"},{"line_number":50,"context_line":"    - compute_service_hosts is superset(virt_compute_services)"},{"line_number":51,"context_line":"    - not enable_ironic | bool or compute_service_hosts is superset(ironic_compute_services)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"# TODO(yoctozepto): no need to do --by-service if ironic not used"},{"line_number":54,"context_line":"- name: Discover nova hosts"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9fb8cfa7_ec608c03","line":51,"range":{"start_line":51,"start_character":6,"end_line":51,"end_character":34},"updated":"2019-07-02 09:07:40.000000000","message":"No need to repeat this condition.","commit_id":"612d121779ca4fbce51430299aeb5014523fa050"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"f19750fa164203782aae8a7b16741506ea8c14db","unresolved":false,"context_lines":[{"line_number":48,"context_line":"  until:"},{"line_number":49,"context_line":"    - nova_compute_services is success"},{"line_number":50,"context_line":"    - compute_service_hosts is superset(virt_compute_services)"},{"line_number":51,"context_line":"    - not enable_ironic | bool or compute_service_hosts is superset(ironic_compute_services)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"# TODO(yoctozepto): no need to do --by-service if ironic not used"},{"line_number":54,"context_line":"- name: Discover nova hosts"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9fb8cfa7_4f70aaa4","line":51,"range":{"start_line":51,"start_character":6,"end_line":51,"end_character":34},"in_reply_to":"9fb8cfa7_ec608c03","updated":"2019-07-02 09:26:43.000000000","message":"True.","commit_id":"612d121779ca4fbce51430299aeb5014523fa050"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"f48b1740e7f6ce693e8934fc465031e17e994999","unresolved":false,"context_lines":[{"line_number":32,"context_line":"      {{ nova_compute_services.stdout |"},{"line_number":33,"context_line":"         from_json |"},{"line_number":34,"context_line":"         selectattr(\u0027State\u0027, \u0027equalto\u0027, \u0027up\u0027) |"},{"line_number":35,"context_line":"         selectattr(\u0027Status\u0027, \u0027equalto\u0027, \u0027enabled\u0027) |"},{"line_number":36,"context_line":"         map(attribute\u003d\u0027Host\u0027) |"},{"line_number":37,"context_line":"         list }}"},{"line_number":38,"context_line":"  become: true"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"9fb8cfa7_8fe1c2d2","line":35,"updated":"2019-07-02 09:47:37.000000000","message":"Not quite convinced this is the right thing - the operator may have disabled compute services, and this would break deployment.","commit_id":"84bd2302c3775eb0ec999678b6c35c37306b9a2d"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"ce7e9aa2d826a03fcac5edb0435bbe70c2b377b4","unresolved":false,"context_lines":[{"line_number":32,"context_line":"      {{ nova_compute_services.stdout |"},{"line_number":33,"context_line":"         from_json |"},{"line_number":34,"context_line":"         selectattr(\u0027State\u0027, \u0027equalto\u0027, \u0027up\u0027) |"},{"line_number":35,"context_line":"         selectattr(\u0027Status\u0027, \u0027equalto\u0027, \u0027enabled\u0027) |"},{"line_number":36,"context_line":"         map(attribute\u003d\u0027Host\u0027) |"},{"line_number":37,"context_line":"         list }}"},{"line_number":38,"context_line":"  become: true"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"9fb8cfa7_aff04692","line":35,"in_reply_to":"9fb8cfa7_8fe1c2d2","updated":"2019-07-02 09:50:39.000000000","message":"Only true for kolla-deployed being redeployed.","commit_id":"84bd2302c3775eb0ec999678b6c35c37306b9a2d"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"54867b3c03c57d470ef9ec18a71f11daea76c437","unresolved":false,"context_lines":[{"line_number":32,"context_line":"      {{ nova_compute_services.stdout |"},{"line_number":33,"context_line":"         from_json |"},{"line_number":34,"context_line":"         selectattr(\u0027State\u0027, \u0027equalto\u0027, \u0027up\u0027) |"},{"line_number":35,"context_line":"         selectattr(\u0027Status\u0027, \u0027equalto\u0027, \u0027enabled\u0027) |"},{"line_number":36,"context_line":"         map(attribute\u003d\u0027Host\u0027) |"},{"line_number":37,"context_line":"         list }}"},{"line_number":38,"context_line":"  become: true"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"9fb8cfa7_2f59b68c","line":35,"in_reply_to":"9fb8cfa7_aff04692","updated":"2019-07-02 09:57:27.000000000","message":"Which is very much something we should be thinking about :)","commit_id":"84bd2302c3775eb0ec999678b6c35c37306b9a2d"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"00b046c572f6c06eebe8ed19e65477546d39da65","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"# We need to wait for all expected compute services to come up before running"},{"line_number":3,"context_line":"# cells v2 discovery."},{"line_number":4,"context_line":"# Try to work with --limit by including only hosts in ansible_play_batch."},{"line_number":5,"context_line":"- name: Build a list of expected compute services"},{"line_number":6,"context_line":"  set_fact:"},{"line_number":7,"context_line":"    # For virt, use ansible_nodename rather than inventory_hostname, since this"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"9fb8cfa7_50bb6274","line":4,"range":{"start_line":4,"start_character":2,"end_line":4,"end_character":13},"updated":"2019-07-02 17:04:28.000000000","message":"Work","commit_id":"e7e6b7b9cf92110ac14e7495763d41728f250e10"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"4c99cf86a817b03b27180ed83b655129c81c1af4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"# We need to wait for all expected compute services to come up before running"},{"line_number":3,"context_line":"# cells v2 discovery."},{"line_number":4,"context_line":"# Try to work with --limit by including only hosts in ansible_play_batch."},{"line_number":5,"context_line":"- name: Build a list of expected compute services"},{"line_number":6,"context_line":"  set_fact:"},{"line_number":7,"context_line":"    # For virt, use ansible_nodename rather than inventory_hostname, since this"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"7faddb67_8c478bbd","line":4,"range":{"start_line":4,"start_character":2,"end_line":4,"end_character":13},"in_reply_to":"9fb8cfa7_50bb6274","updated":"2019-07-03 19:44:36.000000000","message":"Done","commit_id":"e7e6b7b9cf92110ac14e7495763d41728f250e10"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"00b046c572f6c06eebe8ed19e65477546d39da65","unresolved":false,"context_lines":[{"line_number":2,"context_line":"# We need to wait for all expected compute services to come up before running"},{"line_number":3,"context_line":"# cells v2 discovery."},{"line_number":4,"context_line":"# Try to work with --limit by including only hosts in ansible_play_batch."},{"line_number":5,"context_line":"- name: Build a list of expected compute services"},{"line_number":6,"context_line":"  set_fact:"},{"line_number":7,"context_line":"    # For virt, use ansible_nodename rather than inventory_hostname, since this"},{"line_number":8,"context_line":"    # is similar to what nova uses internally as its default for the"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"9fb8cfa7_30ba6e6e","line":5,"range":{"start_line":5,"start_character":41,"end_line":5,"end_character":49},"updated":"2019-07-02 17:04:28.000000000","message":"hosts","commit_id":"e7e6b7b9cf92110ac14e7495763d41728f250e10"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"4c99cf86a817b03b27180ed83b655129c81c1af4","unresolved":false,"context_lines":[{"line_number":2,"context_line":"# We need to wait for all expected compute services to come up before running"},{"line_number":3,"context_line":"# cells v2 discovery."},{"line_number":4,"context_line":"# Try to work with --limit by including only hosts in ansible_play_batch."},{"line_number":5,"context_line":"- name: Build a list of expected compute services"},{"line_number":6,"context_line":"  set_fact:"},{"line_number":7,"context_line":"    # For virt, use ansible_nodename rather than inventory_hostname, since this"},{"line_number":8,"context_line":"    # is similar to what nova uses internally as its default for the"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"7faddb67_ec687f22","line":5,"range":{"start_line":5,"start_character":41,"end_line":5,"end_character":49},"in_reply_to":"9fb8cfa7_30ba6e6e","updated":"2019-07-03 19:44:36.000000000","message":"hmm, sort of, although in ironic land a compute host is something different (an ironic node, multiple per compute service). I\u0027ll go with compute service host.","commit_id":"e7e6b7b9cf92110ac14e7495763d41728f250e10"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"00b046c572f6c06eebe8ed19e65477546d39da65","unresolved":false,"context_lines":[{"line_number":3,"context_line":"# cells v2 discovery."},{"line_number":4,"context_line":"# Try to work with --limit by including only hosts in ansible_play_batch."},{"line_number":5,"context_line":"- name: Build a list of expected compute services"},{"line_number":6,"context_line":"  set_fact:"},{"line_number":7,"context_line":"    # For virt, use ansible_nodename rather than inventory_hostname, since this"},{"line_number":8,"context_line":"    # is similar to what nova uses internally as its default for the"},{"line_number":9,"context_line":"    # [DEFAULT] host config option."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"9fb8cfa7_5bcf03b3","line":6,"range":{"start_line":6,"start_character":2,"end_line":6,"end_character":10},"updated":"2019-07-02 17:04:28.000000000","message":"maybe convert to vars and set_fact a concatenation of them named expected_compute_hosts_up","commit_id":"e7e6b7b9cf92110ac14e7495763d41728f250e10"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"4c99cf86a817b03b27180ed83b655129c81c1af4","unresolved":false,"context_lines":[{"line_number":3,"context_line":"# cells v2 discovery."},{"line_number":4,"context_line":"# Try to work with --limit by including only hosts in ansible_play_batch."},{"line_number":5,"context_line":"- name: Build a list of expected compute services"},{"line_number":6,"context_line":"  set_fact:"},{"line_number":7,"context_line":"    # For virt, use ansible_nodename rather than inventory_hostname, since this"},{"line_number":8,"context_line":"    # is similar to what nova uses internally as its default for the"},{"line_number":9,"context_line":"    # [DEFAULT] host config option."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"7faddb67_ac728710","line":6,"range":{"start_line":6,"start_character":2,"end_line":6,"end_character":10},"in_reply_to":"9fb8cfa7_5bcf03b3","updated":"2019-07-03 19:44:36.000000000","message":"Done","commit_id":"e7e6b7b9cf92110ac14e7495763d41728f250e10"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"00b046c572f6c06eebe8ed19e65477546d39da65","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    # For virt, use ansible_nodename rather than inventory_hostname, since this"},{"line_number":8,"context_line":"    # is similar to what nova uses internally as its default for the"},{"line_number":9,"context_line":"    # [DEFAULT] host config option."},{"line_number":10,"context_line":"    virt_compute_services: \u003e-"},{"line_number":11,"context_line":"      {{ groups[\u0027compute\u0027] |"},{"line_number":12,"context_line":"         intersect(ansible_play_batch) |"},{"line_number":13,"context_line":"         map(\u0027extract\u0027, hostvars, \u0027ansible_nodename\u0027) |"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"9fb8cfa7_f0ab761b","line":10,"range":{"start_line":10,"start_character":17,"end_line":10,"end_character":25},"updated":"2019-07-02 17:04:28.000000000","message":"hosts","commit_id":"e7e6b7b9cf92110ac14e7495763d41728f250e10"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"00b046c572f6c06eebe8ed19e65477546d39da65","unresolved":false,"context_lines":[{"line_number":14,"context_line":"         list }}"},{"line_number":15,"context_line":"    # For ironic, use {{ansible_hostname}}-ironic since this is what we"},{"line_number":16,"context_line":"    # configure for [DEFAULT] host in nova.conf."},{"line_number":17,"context_line":"    ironic_compute_services: \u003e-"},{"line_number":18,"context_line":"      {{ (groups[\u0027nova-compute-ironic\u0027] |"},{"line_number":19,"context_line":"          intersect(ansible_play_batch) |"},{"line_number":20,"context_line":"          map(\u0027extract\u0027, hostvars, \u0027ansible_hostname\u0027) |"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"9fb8cfa7_7065461d","line":17,"range":{"start_line":17,"start_character":19,"end_line":17,"end_character":27},"updated":"2019-07-02 17:04:28.000000000","message":"hosts","commit_id":"e7e6b7b9cf92110ac14e7495763d41728f250e10"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"ce607a79ef13b15a18e595dbca595fcb0898e6db","unresolved":false,"context_lines":[{"line_number":18,"context_line":"      {{ (groups[\u0027nova-compute-ironic\u0027] |"},{"line_number":19,"context_line":"          intersect(ansible_play_batch) |"},{"line_number":20,"context_line":"          map(\u0027extract\u0027, hostvars, \u0027ansible_hostname\u0027) |"},{"line_number":21,"context_line":"          map(\u0027regex_replace\u0027, \u0027^(.*)$\u0027, \u0027\\\\\\\\1-ironic\u0027) |"},{"line_number":22,"context_line":"          list)"},{"line_number":23,"context_line":"         if enable_ironic | bool else [] }}"},{"line_number":24,"context_line":"  run_once: True"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"9fb8cfa7_bc8b9566","line":21,"range":{"start_line":21,"start_character":42,"end_line":21,"end_character":44},"updated":"2019-07-02 20:06:20.000000000","message":"Too much escaping perhaps?","commit_id":"e7e6b7b9cf92110ac14e7495763d41728f250e10"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"4c99cf86a817b03b27180ed83b655129c81c1af4","unresolved":false,"context_lines":[{"line_number":18,"context_line":"      {{ (groups[\u0027nova-compute-ironic\u0027] |"},{"line_number":19,"context_line":"          intersect(ansible_play_batch) |"},{"line_number":20,"context_line":"          map(\u0027extract\u0027, hostvars, \u0027ansible_hostname\u0027) |"},{"line_number":21,"context_line":"          map(\u0027regex_replace\u0027, \u0027^(.*)$\u0027, \u0027\\\\\\\\1-ironic\u0027) |"},{"line_number":22,"context_line":"          list)"},{"line_number":23,"context_line":"         if enable_ironic | bool else [] }}"},{"line_number":24,"context_line":"  run_once: True"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"7faddb67_ec515f64","line":21,"range":{"start_line":21,"start_character":42,"end_line":21,"end_character":44},"in_reply_to":"9fb8cfa7_bc8b9566","updated":"2019-07-03 19:44:36.000000000","message":"Seems so.","commit_id":"e7e6b7b9cf92110ac14e7495763d41728f250e10"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"00b046c572f6c06eebe8ed19e65477546d39da65","unresolved":false,"context_lines":[{"line_number":27,"context_line":"- name: Waiting for nova-compute service up"},{"line_number":28,"context_line":"  vars:"},{"line_number":29,"context_line":"    # A list containing the \u0027Host\u0027 field of compute services that are up."},{"line_number":30,"context_line":"    # Include compute services that are disabled since these could have been"},{"line_number":31,"context_line":"    # explicitly disabled by the operator."},{"line_number":32,"context_line":"    compute_service_hosts: \u003e-"},{"line_number":33,"context_line":"      {{ nova_compute_services.stdout |"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"9fb8cfa7_fb44b71b","line":30,"range":{"start_line":30,"start_character":6,"end_line":30,"end_character":13},"updated":"2019-07-02 17:04:28.000000000","message":"Or rather: \u0027Not excluding\u0027","commit_id":"e7e6b7b9cf92110ac14e7495763d41728f250e10"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"3c0f884a9f4516bb2b285594840e4cb3825bc48f","unresolved":false,"context_lines":[{"line_number":27,"context_line":"- name: Waiting for nova-compute service up"},{"line_number":28,"context_line":"  vars:"},{"line_number":29,"context_line":"    # A list containing the \u0027Host\u0027 field of compute services that are up."},{"line_number":30,"context_line":"    # Include compute services that are disabled since these could have been"},{"line_number":31,"context_line":"    # explicitly disabled by the operator."},{"line_number":32,"context_line":"    compute_service_hosts: \u003e-"},{"line_number":33,"context_line":"      {{ nova_compute_services.stdout |"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"7faddb67_8f4e9dbf","line":30,"range":{"start_line":30,"start_character":6,"end_line":30,"end_character":13},"in_reply_to":"7faddb67_8c4eabbf","updated":"2019-07-03 19:54:50.000000000","message":"\u003e Same thing :)\n\nExplicit/implicit thing.","commit_id":"e7e6b7b9cf92110ac14e7495763d41728f250e10"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"4c99cf86a817b03b27180ed83b655129c81c1af4","unresolved":false,"context_lines":[{"line_number":27,"context_line":"- name: Waiting for nova-compute service up"},{"line_number":28,"context_line":"  vars:"},{"line_number":29,"context_line":"    # A list containing the \u0027Host\u0027 field of compute services that are up."},{"line_number":30,"context_line":"    # Include compute services that are disabled since these could have been"},{"line_number":31,"context_line":"    # explicitly disabled by the operator."},{"line_number":32,"context_line":"    compute_service_hosts: \u003e-"},{"line_number":33,"context_line":"      {{ nova_compute_services.stdout |"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"7faddb67_8c4eabbf","line":30,"range":{"start_line":30,"start_character":6,"end_line":30,"end_character":13},"in_reply_to":"9fb8cfa7_fb44b71b","updated":"2019-07-03 19:44:36.000000000","message":"Same thing :)","commit_id":"e7e6b7b9cf92110ac14e7495763d41728f250e10"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"00b046c572f6c06eebe8ed19e65477546d39da65","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    # A list containing the \u0027Host\u0027 field of compute services that are up."},{"line_number":30,"context_line":"    # Include compute services that are disabled since these could have been"},{"line_number":31,"context_line":"    # explicitly disabled by the operator."},{"line_number":32,"context_line":"    compute_service_hosts: \u003e-"},{"line_number":33,"context_line":"      {{ nova_compute_services.stdout |"},{"line_number":34,"context_line":"         from_json |"},{"line_number":35,"context_line":"         selectattr(\u0027State\u0027, \u0027equalto\u0027, \u0027up\u0027) |"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"9fb8cfa7_5bfce30b","line":32,"range":{"start_line":32,"start_character":4,"end_line":32,"end_character":25},"updated":"2019-07-02 17:04:28.000000000","message":"found_compute_hosts_up","commit_id":"e7e6b7b9cf92110ac14e7495763d41728f250e10"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"00b046c572f6c06eebe8ed19e65477546d39da65","unresolved":false,"context_lines":[{"line_number":56,"context_line":"  delay: 10"},{"line_number":57,"context_line":"  until:"},{"line_number":58,"context_line":"    - nova_compute_services is success"},{"line_number":59,"context_line":"    - compute_service_hosts is superset(virt_compute_services)"},{"line_number":60,"context_line":"    - compute_service_hosts is superset(ironic_compute_services)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"# TODO(yoctozepto): no need to do --by-service if ironic not used"},{"line_number":63,"context_line":"- name: Discover nova hosts"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"9fb8cfa7_5b25c3ad","line":60,"range":{"start_line":59,"start_character":6,"end_line":60,"end_character":64},"updated":"2019-07-02 17:04:28.000000000","message":"finally this translates into more readable:\nfound_compute_hosts_up is superset(expected_compute_hosts_up)","commit_id":"e7e6b7b9cf92110ac14e7495763d41728f250e10"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"4c99cf86a817b03b27180ed83b655129c81c1af4","unresolved":false,"context_lines":[{"line_number":56,"context_line":"  delay: 10"},{"line_number":57,"context_line":"  until:"},{"line_number":58,"context_line":"    - nova_compute_services is success"},{"line_number":59,"context_line":"    - compute_service_hosts is superset(virt_compute_services)"},{"line_number":60,"context_line":"    - compute_service_hosts is superset(ironic_compute_services)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"# TODO(yoctozepto): no need to do --by-service if ironic not used"},{"line_number":63,"context_line":"- name: Discover nova hosts"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"7faddb67_cfcfb555","line":60,"range":{"start_line":59,"start_character":6,"end_line":60,"end_character":64},"in_reply_to":"9fb8cfa7_5b25c3ad","updated":"2019-07-03 19:44:36.000000000","message":"Done","commit_id":"e7e6b7b9cf92110ac14e7495763d41728f250e10"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"3c0f884a9f4516bb2b285594840e4cb3825bc48f","unresolved":false,"context_lines":[{"line_number":27,"context_line":"  run_once: True"},{"line_number":28,"context_line":"  delegate_to: \"{{ groups[\u0027nova-api\u0027][0] }}\""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"- name: Waiting for nova-compute service up"},{"line_number":31,"context_line":"  vars:"},{"line_number":32,"context_line":"    # A list containing the \u0027Host\u0027 field of compute services that are up."},{"line_number":33,"context_line":"    # Include compute services that are disabled since these could have been"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"7faddb67_8fe3fda4","line":30,"range":{"start_line":30,"start_character":33,"end_line":30,"end_character":43},"updated":"2019-07-03 19:54:50.000000000","message":"services to register themselves","commit_id":"5153fc56434986eab077d4014024b8f7238724a9"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"0a522f1c4fe48edcec275150d5754c911e4c91a2","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    --os-password {{ keystone_admin_password }}"},{"line_number":51,"context_line":"    --os-user-domain-name {{ openstack_auth.domain_name }}"},{"line_number":52,"context_line":"    --os-region-name {{ openstack_region_name }}"},{"line_number":53,"context_line":"    compute service list -f json --fields Host --service nova-compute"},{"line_number":54,"context_line":"  register: nova_compute_services"},{"line_number":55,"context_line":"  changed_when: false"},{"line_number":56,"context_line":"  run_once: True"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"7faddb67_e37c0522","line":53,"range":{"start_line":53,"start_character":33,"end_line":53,"end_character":47},"updated":"2019-07-04 06:20:54.000000000","message":"seems unavailable","commit_id":"5153fc56434986eab077d4014024b8f7238724a9"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"211c79e2eb2bdfba28f9577b8ee38121184e0fdc","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    --os-password {{ keystone_admin_password }}"},{"line_number":51,"context_line":"    --os-user-domain-name {{ openstack_auth.domain_name }}"},{"line_number":52,"context_line":"    --os-region-name {{ openstack_region_name }}"},{"line_number":53,"context_line":"    compute service list -f json --fields Host --service nova-compute"},{"line_number":54,"context_line":"  register: nova_compute_services"},{"line_number":55,"context_line":"  changed_when: false"},{"line_number":56,"context_line":"  run_once: True"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"7faddb67_c176a13f","line":53,"range":{"start_line":53,"start_character":33,"end_line":53,"end_character":47},"in_reply_to":"7faddb67_e37c0522","updated":"2019-07-04 08:32:55.000000000","message":"using --columns instead","commit_id":"5153fc56434986eab077d4014024b8f7238724a9"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"af90ddece3ab53daf351b1cf8ef41edd57a7c9fb","unresolved":false,"context_lines":[{"line_number":19,"context_line":"      {{ (groups[\u0027nova-compute-ironic\u0027] |"},{"line_number":20,"context_line":"          intersect(ansible_play_batch) |"},{"line_number":21,"context_line":"          map(\u0027extract\u0027, hostvars, \u0027ansible_hostname\u0027) |"},{"line_number":22,"context_line":"          map(\u0027regex_replace\u0027, \u0027^(.*)$\u0027, \u0027\\\\1-ironic\u0027) |"},{"line_number":23,"context_line":"          list)"},{"line_number":24,"context_line":"         if enable_ironic | bool else [] }}"},{"line_number":25,"context_line":"  set_fact:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7faddb67_ba3b8b9a","line":22,"range":{"start_line":22,"start_character":42,"end_line":22,"end_character":44},"updated":"2019-07-04 12:44:22.000000000","message":"in this context it must not be escaped, use \\","commit_id":"60812e1ba8697be96b1adee9d9c588c0ec37a114"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"cdbeb41ea73abacf64c9f5017bbc15958ac1cef4","unresolved":false,"context_lines":[{"line_number":19,"context_line":"      {{ (groups[\u0027nova-compute-ironic\u0027] |"},{"line_number":20,"context_line":"          intersect(ansible_play_batch) |"},{"line_number":21,"context_line":"          map(\u0027extract\u0027, hostvars, \u0027ansible_hostname\u0027) |"},{"line_number":22,"context_line":"          map(\u0027regex_replace\u0027, \u0027^(.*)$\u0027, \u0027\\\\1-ironic\u0027) |"},{"line_number":23,"context_line":"          list)"},{"line_number":24,"context_line":"         if enable_ironic | bool else [] }}"},{"line_number":25,"context_line":"  set_fact:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7faddb67_3a3b1b39","line":22,"range":{"start_line":22,"start_character":42,"end_line":22,"end_character":44},"in_reply_to":"7faddb67_ba3b8b9a","updated":"2019-07-04 18:09:36.000000000","message":"TIL. If you use a yaml literal block scalar (\u003e-) then you don\u0027t need the double escape.","commit_id":"60812e1ba8697be96b1adee9d9c588c0ec37a114"}]}
