)]}'
{"ansible/roles/neutron/defaults/main.yml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"87edb4ac4d88d2675dafc26da68130cbf1657ae1","unresolved":false,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":"services_requiring_tunnel_interface:"},{"line_number":159,"context_line":"  - neutron-linuxbridge-agent"},{"line_number":160,"context_line":"  - neutron-openvswitch-agent"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"####################"},{"line_number":163,"context_line":"# Database"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"7faddb67_558e84d0","line":160,"updated":"2019-07-11 13:28:10.000000000","message":"Also neutron-sriov-agent\n\nAnd anything that uses ml2_conf.ini (neutron-infoblox-ipam-agent, neutron-server)\n\nAnd neutron-openvswitch-agent-xenapi.","commit_id":"54539dc41396741ca49c6475bbef899422222e74"},{"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":"8e39968758d34da85aade8e9898d30a71a494352","unresolved":false,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":"services_requiring_tunnel_interface:"},{"line_number":159,"context_line":"  - neutron-linuxbridge-agent"},{"line_number":160,"context_line":"  - neutron-openvswitch-agent"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"####################"},{"line_number":163,"context_line":"# Database"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"7faddb67_6fc833a5","line":160,"in_reply_to":"7faddb67_558e84d0","updated":"2019-07-17 19:19:23.000000000","message":"No - this is meant to be for services *really* using the tunnel interface. Others seem not.","commit_id":"54539dc41396741ca49c6475bbef899422222e74"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"cc5e203d6dc5731be782b2c1730d6ab5efabb2aa","unresolved":false,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":"services_requiring_tunnel_interface:"},{"line_number":159,"context_line":"  - neutron-linuxbridge-agent"},{"line_number":160,"context_line":"  - neutron-openvswitch-agent"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"####################"},{"line_number":163,"context_line":"# Database"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"7faddb67_6f0a76d2","line":160,"in_reply_to":"7faddb67_6fc833a5","updated":"2019-08-03 15:27:08.000000000","message":"No, but they will reference the variable in ml2_conf.ini, so we need to avoid that otherwise this check would pass but then fail later during configuration.","commit_id":"54539dc41396741ca49c6475bbef899422222e74"}],"ansible/roles/neutron/tasks/precheck.yml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"87edb4ac4d88d2675dafc26da68130cbf1657ae1","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    - container_facts[\u0027neutron_server\u0027] is not defined"},{"line_number":18,"context_line":"    - inventory_hostname in groups[\u0027neutron-server\u0027]"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# NOTE(yoctozepto): not using \u0027fail\u0027 module to have proper \u0027skipping/ok/fatal\u0027 behavior (otherwise there is no \u0027ok\u0027 to observe)"},{"line_number":21,"context_line":"- name: Check tunnel interface address is correct"},{"line_number":22,"context_line":"  debug:"},{"line_number":23,"context_line":"    msg:  # no message on purpose"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"7faddb67_55a76450","line":20,"updated":"2019-07-11 13:28:10.000000000","message":"I\u0027m not sure I get the reasoning here.","commit_id":"54539dc41396741ca49c6475bbef899422222e74"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"cc5e203d6dc5731be782b2c1730d6ab5efabb2aa","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    - container_facts[\u0027neutron_server\u0027] is not defined"},{"line_number":18,"context_line":"    - inventory_hostname in groups[\u0027neutron-server\u0027]"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# NOTE(yoctozepto): not using \u0027fail\u0027 module to have proper \u0027skipping/ok/fatal\u0027 behavior (otherwise there is no \u0027ok\u0027 to observe)"},{"line_number":21,"context_line":"- name: Check tunnel interface address is correct"},{"line_number":22,"context_line":"  debug:"},{"line_number":23,"context_line":"    msg:  # no message on purpose"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"7faddb67_0f266269","line":20,"in_reply_to":"7faddb67_0f665fc2","updated":"2019-08-03 15:27:08.000000000","message":"I see your point, but this is a little confusing for the reader.\n\nThere is the assert module which might be more what you\u0027re looking for, not sure how user friendly that is.","commit_id":"54539dc41396741ca49c6475bbef899422222e74"},{"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":"8e39968758d34da85aade8e9898d30a71a494352","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    - container_facts[\u0027neutron_server\u0027] is not defined"},{"line_number":18,"context_line":"    - inventory_hostname in groups[\u0027neutron-server\u0027]"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# NOTE(yoctozepto): not using \u0027fail\u0027 module to have proper \u0027skipping/ok/fatal\u0027 behavior (otherwise there is no \u0027ok\u0027 to observe)"},{"line_number":21,"context_line":"- name: Check tunnel interface address is correct"},{"line_number":22,"context_line":"  debug:"},{"line_number":23,"context_line":"    msg:  # no message on purpose"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"7faddb67_0f665fc2","line":20,"in_reply_to":"7faddb67_55a76450","updated":"2019-07-17 19:19:23.000000000","message":"If I use the \u0027fail\u0027 module, I must design the \u0027when\u0027 conditions such that they skip the task - there is no differentiation between ok and skip in there (\u0027fail\u0027 will always fail if hit). I want to be  explicit. :-)","commit_id":"54539dc41396741ca49c6475bbef899422222e74"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"87edb4ac4d88d2675dafc26da68130cbf1657ae1","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    service: \"{{ neutron_services[item] }}\""},{"line_number":26,"context_line":"  failed_when:"},{"line_number":27,"context_line":"    # below checks whether interface and IPv4 address match (and also that they are both defined)"},{"line_number":28,"context_line":"    - tunnel_interface_address !\u003d hostvars[inventory_hostname][\u0027ansible_\u0027 + tunnel_interface][\u0027ipv4\u0027][\u0027address\u0027]"},{"line_number":29,"context_line":"  when:"},{"line_number":30,"context_line":"    - service.enabled | bool"},{"line_number":31,"context_line":"    - service.host_in_groups | bool"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"7faddb67_1567ac27","line":28,"updated":"2019-07-11 13:28:10.000000000","message":"Do we do anything like this elsewhere for other interfaces? Why check this one in particular?","commit_id":"54539dc41396741ca49c6475bbef899422222e74"},{"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":"8e39968758d34da85aade8e9898d30a71a494352","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    service: \"{{ neutron_services[item] }}\""},{"line_number":26,"context_line":"  failed_when:"},{"line_number":27,"context_line":"    # below checks whether interface and IPv4 address match (and also that they are both defined)"},{"line_number":28,"context_line":"    - tunnel_interface_address !\u003d hostvars[inventory_hostname][\u0027ansible_\u0027 + tunnel_interface][\u0027ipv4\u0027][\u0027address\u0027]"},{"line_number":29,"context_line":"  when:"},{"line_number":30,"context_line":"    - service.enabled | bool"},{"line_number":31,"context_line":"    - service.host_in_groups | bool"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"7faddb67_4fb9b712","line":28,"in_reply_to":"7faddb67_1567ac27","updated":"2019-07-17 19:19:23.000000000","message":"Nope, but I wanted to propose some sane standard. ;-)","commit_id":"54539dc41396741ca49c6475bbef899422222e74"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"cc5e203d6dc5731be782b2c1730d6ab5efabb2aa","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    service: \"{{ neutron_services[item] }}\""},{"line_number":26,"context_line":"  failed_when:"},{"line_number":27,"context_line":"    # below checks whether interface and IPv4 address match (and also that they are both defined)"},{"line_number":28,"context_line":"    - tunnel_interface_address !\u003d hostvars[inventory_hostname][\u0027ansible_\u0027 + tunnel_interface][\u0027ipv4\u0027][\u0027address\u0027]"},{"line_number":29,"context_line":"  when:"},{"line_number":30,"context_line":"    - service.enabled | bool"},{"line_number":31,"context_line":"    - service.host_in_groups | bool"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"7faddb67_affb8ebb","line":28,"in_reply_to":"7faddb67_4fb9b712","updated":"2019-08-03 15:27:08.000000000","message":"This is the default value of tunnel_interface_address, so this check seems a bit useless.\n\nWhat we want to check is that the tunnel_interface exists:\n\ntunnel_interface in ansible_interfaces\n\nAnd that it has an IP:\n\n\u0027ipv4\u0027 in hostvars[inventory_hostname][\u0027ansible_\u0027 + tunnel_interface]\n\nand\n\n\u0027address\u0027 in hostvars[inventory_hostname][\u0027ansible_\u0027 + tunnel_interface][\u0027ipv4\u0027]\n\nOr something like that. Not sure if we need to validate the IP itself.","commit_id":"54539dc41396741ca49c6475bbef899422222e74"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"cc5e203d6dc5731be782b2c1730d6ab5efabb2aa","unresolved":false,"context_lines":[{"line_number":29,"context_line":"  when:"},{"line_number":30,"context_line":"    - service.enabled | bool"},{"line_number":31,"context_line":"    - service.host_in_groups | bool"},{"line_number":32,"context_line":"  loop: \"{{ services_requiring_tunnel_interface }}\""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"- name: Checking number of network agents"},{"line_number":35,"context_line":"  local_action: fail msg\u003d\"Number of network agents are less than two when enabling agent ha\""}],"source_content_type":"text/x-yaml","patch_set":1,"id":"7faddb67_cf236a55","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":51},"updated":"2019-08-03 15:27:08.000000000","message":"Strictly we just want to run this once, if either service is mapped to this host. The filters in https://review.opendev.org/665922 could help there.","commit_id":"54539dc41396741ca49c6475bbef899422222e74"}]}
