)]}'
{"ansible/roles/neutron/tasks/config-neutron-fake.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":"d98da3cf0d221ada62aff97b2f393ab7ba45a9ba","unresolved":false,"context_lines":[{"line_number":42,"context_line":"  notify:"},{"line_number":43,"context_line":"    - Restart fake neutron-openvswitch-agent container"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"- name: Copying over ml2_conf.ini"},{"line_number":46,"context_line":"  become: true"},{"line_number":47,"context_line":"  vars:"},{"line_number":48,"context_line":"    service_name: \"{{ item }}\""}],"source_content_type":"text/x-yaml","patch_set":17,"id":"3fa7e38b_1d5c1218","line":45,"range":{"start_line":45,"start_character":20,"end_line":45,"end_character":33},"updated":"2019-11-27 13:40:35.000000000","message":"I dare to doubt","commit_id":"955f4e29cb9bcf9f81ee80d68ca2db18e49f47e6"}],"ansible/roles/neutron/tasks/config.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":"08c33ed75045164d1c1f6ae72a8057f1257bd54e","unresolved":false,"context_lines":[{"line_number":105,"context_line":"  vars:"},{"line_number":106,"context_line":"    service_name: \"{{ item.key }}\""},{"line_number":107,"context_line":"    services_need_ml2_conf_ini:"},{"line_number":108,"context_line":"      - \"neutron-linuxbridge-agent\""},{"line_number":109,"context_line":"      - \"neutron-openvswitch-agent\""},{"line_number":110,"context_line":"      - \"neutron-infoblox-ipam-agent\""},{"line_number":111,"context_line":"      - \"neutron-server\""},{"line_number":112,"context_line":"  merge_configs:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3fa7e38b_d01c7414","line":109,"range":{"start_line":108,"start_character":0,"end_line":109,"end_character":35},"updated":"2019-11-21 10:59:47.000000000","message":"at least these nah, no idea what infoblox does in here but let\u0027s keep this change simple","commit_id":"e0df96d09f0858c87c79099d43a2ac1172113eab"},{"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":"08c33ed75045164d1c1f6ae72a8057f1257bd54e","unresolved":false,"context_lines":[{"line_number":124,"context_line":"  notify:"},{"line_number":125,"context_line":"    - \"Restart {{ item.key }} container\""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"- name: Copying over ml2_conf.ini for XenAPI"},{"line_number":128,"context_line":"  become: true"},{"line_number":129,"context_line":"  vars:"},{"line_number":130,"context_line":"    service_name: \"{{ item.key }}\""},{"line_number":131,"context_line":"    services_need_ml2_conf_ini:"},{"line_number":132,"context_line":"      - \"neutron-openvswitch-agent-xenapi\""},{"line_number":133,"context_line":"    os_xenapi_variables: \"{{ lookup(\u0027file\u0027, xenapi_facts_root + \u0027/\u0027 + inventory_hostname + \u0027/\u0027 + xenapi_facts_file) | from_json }}\""},{"line_number":134,"context_line":"  merge_configs:"},{"line_number":135,"context_line":"    sources:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3fa7e38b_b0e69815","line":132,"range":{"start_line":127,"start_character":0,"end_line":132,"end_character":42},"updated":"2019-11-21 10:59:47.000000000","message":"not sure if we should touch this or not but it should presumably be about ovs now, not ml2","commit_id":"e0df96d09f0858c87c79099d43a2ac1172113eab"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"66583f1a739b67bd828da1590e52a3269429aa7b","unresolved":false,"context_lines":[{"line_number":132,"context_line":"    sources:"},{"line_number":133,"context_line":"      - \"{{ role_path }}/templates/linuxbridge_agent.ini.j2\""},{"line_number":134,"context_line":"      - \"{{ node_custom_config }}/neutron/linuxbridge_agent.ini\""},{"line_number":135,"context_line":"      - \"{{ node_custom_config }}/neutron/{{ inventory_hostname }}/linuxbridge_agent.ini\""},{"line_number":136,"context_line":"    dest: \"{{ node_config_directory }}/{{ service_name }}/linuxbridge_agent.ini\""},{"line_number":137,"context_line":"    mode: \"0660\""},{"line_number":138,"context_line":"  when:"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"3fa7e38b_aae82bdf","line":135,"updated":"2019-11-26 11:30:55.000000000","message":"We\u0027ve could break existing deployments using ml2_conf.ini here. should we allow that also for a period?","commit_id":"6a66a44fd1c2d63baf310ad76f78a659d17c4a8b"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"d9bf9e2c48ba9b64cac8cb9904c42f3377a32def","unresolved":false,"context_lines":[{"line_number":132,"context_line":"    sources:"},{"line_number":133,"context_line":"      - \"{{ role_path }}/templates/linuxbridge_agent.ini.j2\""},{"line_number":134,"context_line":"      - \"{{ node_custom_config }}/neutron/linuxbridge_agent.ini\""},{"line_number":135,"context_line":"      - \"{{ node_custom_config }}/neutron/{{ inventory_hostname }}/linuxbridge_agent.ini\""},{"line_number":136,"context_line":"    dest: \"{{ node_config_directory }}/{{ service_name }}/linuxbridge_agent.ini\""},{"line_number":137,"context_line":"    mode: \"0660\""},{"line_number":138,"context_line":"  when:"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"3fa7e38b_ea05c316","line":135,"in_reply_to":"3fa7e38b_aae82bdf","updated":"2019-11-26 11:45:41.000000000","message":"You mean add ml2_conf.ini from node_custom_config for one cycle along with a TODO to remove in V?","commit_id":"6a66a44fd1c2d63baf310ad76f78a659d17c4a8b"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"72652841715b9875ed7295d8e4719ba19daffa1f","unresolved":false,"context_lines":[{"line_number":132,"context_line":"    sources:"},{"line_number":133,"context_line":"      - \"{{ role_path }}/templates/linuxbridge_agent.ini.j2\""},{"line_number":134,"context_line":"      - \"{{ node_custom_config }}/neutron/linuxbridge_agent.ini\""},{"line_number":135,"context_line":"      - \"{{ node_custom_config }}/neutron/{{ inventory_hostname }}/linuxbridge_agent.ini\""},{"line_number":136,"context_line":"    dest: \"{{ node_config_directory }}/{{ service_name }}/linuxbridge_agent.ini\""},{"line_number":137,"context_line":"    mode: \"0660\""},{"line_number":138,"context_line":"  when:"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"3fa7e38b_cd64a1e9","line":135,"in_reply_to":"3fa7e38b_ea05c316","updated":"2019-11-26 11:53:57.000000000","message":"Yeah. It gives people 2 chances to read the release notes - deprecation and removal. It\u0027s the kind of thing people are likely to have customised so could affect many.","commit_id":"6a66a44fd1c2d63baf310ad76f78a659d17c4a8b"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"66583f1a739b67bd828da1590e52a3269429aa7b","unresolved":false,"context_lines":[{"line_number":139,"context_line":"    - item.key in services_need_linuxbridge_agent_ini"},{"line_number":140,"context_line":"    - item.value.enabled | bool"},{"line_number":141,"context_line":"    - item.value.host_in_groups | bool"},{"line_number":142,"context_line":"  with_dict: \"{{ neutron_services }}\""},{"line_number":143,"context_line":"  notify:"},{"line_number":144,"context_line":"    - \"Restart {{ item.key }} container\""},{"line_number":145,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":8,"id":"3fa7e38b_4a297738","line":142,"range":{"start_line":142,"start_character":2,"end_line":142,"end_character":37},"updated":"2019-11-26 11:30:55.000000000","message":"We don\u0027t need a loop here, let\u0027s save ourself some skips. It\u0027s especially important for neutron \u0026 nova roles which operate on compute hosts.","commit_id":"6a66a44fd1c2d63baf310ad76f78a659d17c4a8b"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"66583f1a739b67bd828da1590e52a3269429aa7b","unresolved":false,"context_lines":[{"line_number":160,"context_line":"    - item.key in services_need_openvswitch_agent_ini"},{"line_number":161,"context_line":"    - item.value.enabled | bool"},{"line_number":162,"context_line":"    - item.value.host_in_groups | bool"},{"line_number":163,"context_line":"  with_dict: \"{{ neutron_services }}\""},{"line_number":164,"context_line":"  notify:"},{"line_number":165,"context_line":"    - \"Restart {{ item.key }} container\""},{"line_number":166,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":8,"id":"3fa7e38b_6a2eb343","line":163,"range":{"start_line":163,"start_character":2,"end_line":163,"end_character":11},"updated":"2019-11-26 11:30:55.000000000","message":"Ditto","commit_id":"6a66a44fd1c2d63baf310ad76f78a659d17c4a8b"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"66583f1a739b67bd828da1590e52a3269429aa7b","unresolved":false,"context_lines":[{"line_number":179,"context_line":"      - \"{{ node_custom_config }}/neutron/{{ service_name }}/openvswitch_agent_xenapi.ini\""},{"line_number":180,"context_line":"    dest: \"{{ node_config_directory }}/{{ service_name }}/openvswitch_agent.ini\""},{"line_number":181,"context_line":"    mode: \"0660\""},{"line_number":182,"context_line":"  when:"},{"line_number":183,"context_line":"    - item.key in services_need_openvswitch_agent_ini"},{"line_number":184,"context_line":"    - item.value.enabled | bool"},{"line_number":185,"context_line":"    - item.value.host_in_groups | bool"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"3fa7e38b_ea194323","line":182,"range":{"start_line":182,"start_character":2,"end_line":182,"end_character":6},"updated":"2019-11-26 11:30:55.000000000","message":"and here","commit_id":"6a66a44fd1c2d63baf310ad76f78a659d17c4a8b"},{"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":"a21c335ab20b274eaa6636598855a2069f38b8db","unresolved":false,"context_lines":[{"line_number":150,"context_line":"    sources:"},{"line_number":151,"context_line":"      - \"{{ role_path }}/templates/openvswitch_agent.ini.j2\""},{"line_number":152,"context_line":"      - \"{{ node_custom_config }}/neutron/openvswitch_agent.ini\""},{"line_number":153,"context_line":"      - \"{{ node_custom_config }}/neutron/{{ inventory_hostname }}/openvswitch_agent.ini\""},{"line_number":154,"context_line":"    dest: \"{{ node_config_directory }}/{{ service_name }}/openvswitch_agent.ini\""},{"line_number":155,"context_line":"    mode: \"0660\""},{"line_number":156,"context_line":"  when:"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"3fa7e38b_d908df2f","line":153,"updated":"2019-11-26 16:16:37.000000000","message":"where is ml2 here then?","commit_id":"a36926a2f6fc7e8afb93bc4f1a971089e7bab687"},{"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":"fd00555da09ded1092abd7a9577c27c0ec0eb797","unresolved":false,"context_lines":[{"line_number":150,"context_line":"    sources:"},{"line_number":151,"context_line":"      - \"{{ role_path }}/templates/openvswitch_agent.ini.j2\""},{"line_number":152,"context_line":"      - \"{{ node_custom_config }}/neutron/openvswitch_agent.ini\""},{"line_number":153,"context_line":"      - \"{{ node_custom_config }}/neutron/{{ inventory_hostname }}/openvswitch_agent.ini\""},{"line_number":154,"context_line":"    dest: \"{{ node_config_directory }}/{{ service_name }}/openvswitch_agent.ini\""},{"line_number":155,"context_line":"    mode: \"0660\""},{"line_number":156,"context_line":"  when:"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"3fa7e38b_016cbd9b","line":153,"in_reply_to":"3fa7e38b_2e30c855","updated":"2019-11-26 18:18:05.000000000","message":"you miss this, I miss that - happens :D","commit_id":"a36926a2f6fc7e8afb93bc4f1a971089e7bab687"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"58ace11e1e3d2eddba3dfab7dcb33f2b83ffd415","unresolved":false,"context_lines":[{"line_number":150,"context_line":"    sources:"},{"line_number":151,"context_line":"      - \"{{ role_path }}/templates/openvswitch_agent.ini.j2\""},{"line_number":152,"context_line":"      - \"{{ node_custom_config }}/neutron/openvswitch_agent.ini\""},{"line_number":153,"context_line":"      - \"{{ node_custom_config }}/neutron/{{ inventory_hostname }}/openvswitch_agent.ini\""},{"line_number":154,"context_line":"    dest: \"{{ node_config_directory }}/{{ service_name }}/openvswitch_agent.ini\""},{"line_number":155,"context_line":"    mode: \"0660\""},{"line_number":156,"context_line":"  when:"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"3fa7e38b_2e30c855","line":153,"in_reply_to":"3fa7e38b_d908df2f","updated":"2019-11-26 17:29:20.000000000","message":"hmm, how did I miss this","commit_id":"a36926a2f6fc7e8afb93bc4f1a971089e7bab687"},{"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":"cf0cbdce8a134e350e637311e4638c51c4c9e1c6","unresolved":false,"context_lines":[{"line_number":169,"context_line":"      - \"{{ role_path }}/templates/openvswitch_agent_xenapi.ini.j2\""},{"line_number":170,"context_line":"      - \"{{ node_custom_config }}/neutron/openvswitch_agent_xenapi.ini\""},{"line_number":171,"context_line":"      - \"{{ node_custom_config }}/neutron/{{ inventory_hostname }}/openvswitch_agent_xenapi.ini\""},{"line_number":172,"context_line":"      - \"{{ node_custom_config }}/neutron/{{ service_name }}/openvswitch_agent_xenapi.ini\""},{"line_number":173,"context_line":"    dest: \"{{ node_config_directory }}/{{ service_name }}/openvswitch_agent.ini\""},{"line_number":174,"context_line":"    mode: \"0660\""},{"line_number":175,"context_line":"  when:"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"3fa7e38b_b9ff2301","line":172,"updated":"2019-11-26 16:18:32.000000000","message":"and here?","commit_id":"a36926a2f6fc7e8afb93bc4f1a971089e7bab687"}],"ansible/roles/neutron/templates/linuxbridge_agent.ini.j2":[{"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":"4e73a61997ba2a0f93428148b1b70813f42dd8ba","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[vxlan]"},{"line_number":8,"context_line":"l2_population \u003d true"},{"line_number":9,"context_line":"{% if inventory_hostname in groups[\"network\"] or inventory_hostname in groups[\"compute\"] %}"},{"line_number":10,"context_line":"local_ip \u003d {{ tunnel_interface_address }}"},{"line_number":11,"context_line":"{% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"3fa7e38b_42319ea1","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":91},"updated":"2019-11-21 08:45:22.000000000","message":"always true, no need to check after split","commit_id":"84956ef5e3aaf77dd487dac54f7eb2b4b3cfbf1a"}],"ansible/roles/neutron/templates/ml2_conf.ini.j2":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"66583f1a739b67bd828da1590e52a3269429aa7b","unresolved":false,"context_lines":[{"line_number":41,"context_line":"[ml2_type_vxlan]"},{"line_number":42,"context_line":"vni_ranges \u003d 1:1000"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"[securitygroup]"},{"line_number":45,"context_line":"{% if neutron_plugin_agent \u003d\u003d \"openvswitch\" %}"},{"line_number":46,"context_line":"firewall_driver \u003d neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver"},{"line_number":47,"context_line":"{% elif neutron_plugin_agent \u003d\u003d \"linuxbridge\" %}"},{"line_number":48,"context_line":"firewall_driver \u003d neutron.agent.linux.iptables_firewall.IptablesFirewallDriver"},{"line_number":49,"context_line":"{% endif %}"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"{% if neutron_plugin_agent \u003d\u003d \"openvswitch\" %}"},{"line_number":52,"context_line":"[agent]"}],"source_content_type":"text/x-jinja2","patch_set":8,"id":"3fa7e38b_0a7e1fe3","side":"PARENT","line":49,"range":{"start_line":44,"start_character":0,"end_line":49,"end_character":11},"updated":"2019-11-26 11:30:55.000000000","message":"ml2_conf.ini has security_group: https://docs.openstack.org/neutron/latest/configuration/ml2-conf.html#securitygroup","commit_id":"c641096ea6c76e4e568d6a98dafa97139fc8b19e"},{"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":"a21c335ab20b274eaa6636598855a2069f38b8db","unresolved":false,"context_lines":[{"line_number":30,"context_line":"[ml2_type_vxlan]"},{"line_number":31,"context_line":"vni_ranges \u003d 1:1000"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"[securitygroup]"},{"line_number":34,"context_line":"{% if neutron_plugin_agent \u003d\u003d \"openvswitch\" %}"},{"line_number":35,"context_line":"firewall_driver \u003d neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver"},{"line_number":36,"context_line":"{% elif neutron_plugin_agent \u003d\u003d \"linuxbridge\" %}"},{"line_number":37,"context_line":"firewall_driver \u003d neutron.agent.linux.iptables_firewall.IptablesFirewallDriver"},{"line_number":38,"context_line":"{% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":11,"id":"3fa7e38b_998d87d6","line":38,"range":{"start_line":33,"start_character":0,"end_line":38,"end_character":11},"updated":"2019-11-26 16:16:37.000000000","message":"firewall_driver is NOT used by neutron-server, only agents, it is unfortunate all services share the same group but let\u0027s not create the ambiguity for ourselves - please leave a comment if need be though","commit_id":"a36926a2f6fc7e8afb93bc4f1a971089e7bab687"},{"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":"fd00555da09ded1092abd7a9577c27c0ec0eb797","unresolved":false,"context_lines":[{"line_number":30,"context_line":"[ml2_type_vxlan]"},{"line_number":31,"context_line":"vni_ranges \u003d 1:1000"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"[securitygroup]"},{"line_number":34,"context_line":"{% if neutron_plugin_agent \u003d\u003d \"openvswitch\" %}"},{"line_number":35,"context_line":"firewall_driver \u003d neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver"},{"line_number":36,"context_line":"{% elif neutron_plugin_agent \u003d\u003d \"linuxbridge\" %}"},{"line_number":37,"context_line":"firewall_driver \u003d neutron.agent.linux.iptables_firewall.IptablesFirewallDriver"},{"line_number":38,"context_line":"{% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":11,"id":"3fa7e38b_c1c1c550","line":38,"range":{"start_line":33,"start_character":0,"end_line":38,"end_character":11},"in_reply_to":"3fa7e38b_8e2bfce8","updated":"2019-11-26 18:18:05.000000000","message":"Good catch, I missed this usage. Though all the others seem agent-only and this is only used with legacy ovs agents that do not report firewall driver. Completely irrelevant nowadays.","commit_id":"a36926a2f6fc7e8afb93bc4f1a971089e7bab687"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"58ace11e1e3d2eddba3dfab7dcb33f2b83ffd415","unresolved":false,"context_lines":[{"line_number":30,"context_line":"[ml2_type_vxlan]"},{"line_number":31,"context_line":"vni_ranges \u003d 1:1000"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"[securitygroup]"},{"line_number":34,"context_line":"{% if neutron_plugin_agent \u003d\u003d \"openvswitch\" %}"},{"line_number":35,"context_line":"firewall_driver \u003d neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver"},{"line_number":36,"context_line":"{% elif neutron_plugin_agent \u003d\u003d \"linuxbridge\" %}"},{"line_number":37,"context_line":"firewall_driver \u003d neutron.agent.linux.iptables_firewall.IptablesFirewallDriver"},{"line_number":38,"context_line":"{% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":11,"id":"3fa7e38b_8e2bfce8","line":38,"range":{"start_line":33,"start_character":0,"end_line":38,"end_character":11},"in_reply_to":"3fa7e38b_998d87d6","updated":"2019-11-26 17:29:20.000000000","message":"I beg to differ https://opendev.org/openstack/neutron/src/branch/master/neutron/plugins/ml2/drivers/openvswitch/mech_driver/mech_openvswitch.py#L60","commit_id":"a36926a2f6fc7e8afb93bc4f1a971089e7bab687"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"5abb23ab9be3877132c721562b4c5a8f2419411b","unresolved":false,"context_lines":[{"line_number":30,"context_line":"[ml2_type_vxlan]"},{"line_number":31,"context_line":"vni_ranges \u003d 1:1000"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"[securitygroup]"},{"line_number":34,"context_line":"{% if neutron_plugin_agent \u003d\u003d \"openvswitch\" %}"},{"line_number":35,"context_line":"firewall_driver \u003d neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver"},{"line_number":36,"context_line":"{% elif neutron_plugin_agent \u003d\u003d \"linuxbridge\" %}"},{"line_number":37,"context_line":"firewall_driver \u003d neutron.agent.linux.iptables_firewall.IptablesFirewallDriver"},{"line_number":38,"context_line":"{% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":11,"id":"3fa7e38b_bf72a049","line":38,"range":{"start_line":33,"start_character":0,"end_line":38,"end_character":11},"in_reply_to":"3fa7e38b_c1c1c550","updated":"2019-11-26 20:22:38.000000000","message":"This config option is not needed on server side. It is set based on what agent will send in heartbeat here: https://opendev.org/openstack/neutron/src/branch/master/neutron/plugins/ml2/drivers/openvswitch/mech_driver/mech_openvswitch.py#L193","commit_id":"a36926a2f6fc7e8afb93bc4f1a971089e7bab687"}],"ansible/roles/neutron/templates/neutron-linuxbridge-agent.json.j2":[{"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":"4e73a61997ba2a0f93428148b1b70813f42dd8ba","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"command\": \"neutron-linuxbridge-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini\","},{"line_number":3,"context_line":"    \"config_files\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"source\": \"{{ container_config_directory }}/neutron.conf\","}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"3fa7e38b_c2e10efe","line":2,"updated":"2019-11-21 08:45:22.000000000","message":"needs config file here","commit_id":"84956ef5e3aaf77dd487dac54f7eb2b4b3cfbf1a"},{"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":"4e73a61997ba2a0f93428148b1b70813f42dd8ba","unresolved":false,"context_lines":[{"line_number":8,"context_line":"            \"perm\": \"0600\""},{"line_number":9,"context_line":"        },"},{"line_number":10,"context_line":"        {"},{"line_number":11,"context_line":"            \"source\": \"{{ container_config_directory }}/ml2_conf.ini\","},{"line_number":12,"context_line":"            \"dest\": \"/etc/neutron/plugins/ml2/ml2_conf.ini\","},{"line_number":13,"context_line":"            \"owner\": \"neutron\","},{"line_number":14,"context_line":"            \"perm\": \"0600\""}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"3fa7e38b_42d67e29","line":11,"updated":"2019-11-21 08:45:22.000000000","message":"should no longer be necessary","commit_id":"84956ef5e3aaf77dd487dac54f7eb2b4b3cfbf1a"}],"ansible/roles/neutron/templates/neutron-openvswitch-agent.json.j2":[{"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":"4e73a61997ba2a0f93428148b1b70813f42dd8ba","unresolved":false,"context_lines":[{"line_number":8,"context_line":"            \"perm\": \"0600\""},{"line_number":9,"context_line":"        },"},{"line_number":10,"context_line":"        {"},{"line_number":11,"context_line":"            \"source\": \"{{ container_config_directory }}/ml2_conf.ini\","},{"line_number":12,"context_line":"            \"dest\": \"/etc/neutron/plugins/ml2/ml2_conf.ini\","},{"line_number":13,"context_line":"            \"owner\": \"neutron\","},{"line_number":14,"context_line":"            \"perm\": \"0600\""}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"3fa7e38b_e2d8ca52","line":11,"updated":"2019-11-21 08:45:22.000000000","message":"ditto","commit_id":"84956ef5e3aaf77dd487dac54f7eb2b4b3cfbf1a"}],"ansible/roles/neutron/templates/openvswitch_agent.ini.j2":[{"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":"4e73a61997ba2a0f93428148b1b70813f42dd8ba","unresolved":false,"context_lines":[{"line_number":19,"context_line":"bridge_mappings \u003d {% for bridge in neutron_bridge_name.split(\u0027,\u0027) %}physnet{{ loop.index0 + 1 }}:{{ bridge }}{% if not loop.last %},{% endif %}{% endfor %}"},{"line_number":20,"context_line":"{% endif %}"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"{# NOTE: newline above is required for correct config generation. Do not remove. #}"},{"line_number":23,"context_line":"datapath_type \u003d {{ ovs_datapath }}"},{"line_number":24,"context_line":"ovsdb_connection \u003d tcp:127.0.0.1:{{ ovsdb_port }}"},{"line_number":25,"context_line":"{% if enable_nova_fake | bool %}"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"3fa7e38b_82e7960f","line":22,"updated":"2019-11-21 08:45:22.000000000","message":"I strongly doubt :-)","commit_id":"84956ef5e3aaf77dd487dac54f7eb2b4b3cfbf1a"},{"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":"4e73a61997ba2a0f93428148b1b70813f42dd8ba","unresolved":false,"context_lines":[{"line_number":25,"context_line":"{% if enable_nova_fake | bool %}"},{"line_number":26,"context_line":"integration_bridge \u003d br-int-{{ item }}"},{"line_number":27,"context_line":"{% endif %}"},{"line_number":28,"context_line":"{% if inventory_hostname in groups[\"network\"] or inventory_hostname in groups[\"compute\"] %}"},{"line_number":29,"context_line":"local_ip \u003d {{ tunnel_interface_address }}"},{"line_number":30,"context_line":"{% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"3fa7e38b_62ecdaf3","line":28,"updated":"2019-11-21 08:45:22.000000000","message":"ditto, always true","commit_id":"84956ef5e3aaf77dd487dac54f7eb2b4b3cfbf1a"},{"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":"8f1995c102cf64968985edd5e198bcc7a34fe6e8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#jinja2: trim_blocks: False"},{"line_number":2,"context_line":"[agent]"},{"line_number":3,"context_line":"tunnel_types \u003d vxlan"},{"line_number":4,"context_line":"{% if nova_compute_virt_type !\u003d \u0027xenapi\u0027 %}"},{"line_number":5,"context_line":"l2_population \u003d true"},{"line_number":6,"context_line":"{% endif %}"},{"line_number":7,"context_line":"arp_responder \u003d true"}],"source_content_type":"text/x-jinja2","patch_set":16,"id":"3fa7e38b_05235e08","line":4,"range":{"start_line":4,"start_character":0,"end_line":4,"end_character":43},"updated":"2019-11-27 11:05:35.000000000","message":"this condition is irrelevant (always true) as a completely different file is used then","commit_id":"2012296f6cbc4eb46fd6e8b1b922c717a012fc30"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"455c015b19d7602ec930e3eb00f3323752ab7634","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#jinja2: trim_blocks: False"},{"line_number":2,"context_line":"[agent]"},{"line_number":3,"context_line":"tunnel_types \u003d vxlan"},{"line_number":4,"context_line":"{% if nova_compute_virt_type !\u003d \u0027xenapi\u0027 %}"},{"line_number":5,"context_line":"l2_population \u003d true"},{"line_number":6,"context_line":"{% endif %}"},{"line_number":7,"context_line":"arp_responder \u003d true"}],"source_content_type":"text/x-jinja2","patch_set":16,"id":"3fa7e38b_ebfff3ff","line":4,"range":{"start_line":4,"start_character":0,"end_line":4,"end_character":43},"in_reply_to":"3fa7e38b_05235e08","updated":"2019-11-27 13:33:43.000000000","message":"Done","commit_id":"2012296f6cbc4eb46fd6e8b1b922c717a012fc30"},{"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":"8f1995c102cf64968985edd5e198bcc7a34fe6e8","unresolved":false,"context_lines":[{"line_number":4,"context_line":"{% if nova_compute_virt_type !\u003d \u0027xenapi\u0027 %}"},{"line_number":5,"context_line":"l2_population \u003d true"},{"line_number":6,"context_line":"{% endif %}"},{"line_number":7,"context_line":"arp_responder \u003d true"},{"line_number":8,"context_line":"{% if enable_neutron_dvr | bool %}"},{"line_number":9,"context_line":"enable_distributed_routing \u003d True"},{"line_number":10,"context_line":"{% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":16,"id":"3fa7e38b_c571c60f","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":20},"updated":"2019-11-27 11:05:35.000000000","message":"could be copied to linuxbridge","commit_id":"2012296f6cbc4eb46fd6e8b1b922c717a012fc30"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"455c015b19d7602ec930e3eb00f3323752ab7634","unresolved":false,"context_lines":[{"line_number":4,"context_line":"{% if nova_compute_virt_type !\u003d \u0027xenapi\u0027 %}"},{"line_number":5,"context_line":"l2_population \u003d true"},{"line_number":6,"context_line":"{% endif %}"},{"line_number":7,"context_line":"arp_responder \u003d true"},{"line_number":8,"context_line":"{% if enable_neutron_dvr | bool %}"},{"line_number":9,"context_line":"enable_distributed_routing \u003d True"},{"line_number":10,"context_line":"{% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":16,"id":"3fa7e38b_bdfa9e0e","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":20},"in_reply_to":"3fa7e38b_c571c60f","updated":"2019-11-27 13:33:43.000000000","message":"Done","commit_id":"2012296f6cbc4eb46fd6e8b1b922c717a012fc30"},{"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":"8f1995c102cf64968985edd5e198bcc7a34fe6e8","unresolved":false,"context_lines":[{"line_number":8,"context_line":"{% if enable_neutron_dvr | bool %}"},{"line_number":9,"context_line":"enable_distributed_routing \u003d True"},{"line_number":10,"context_line":"{% endif %}"},{"line_number":11,"context_line":"{% if neutron_agent_extensions %}"},{"line_number":12,"context_line":"extensions \u003d {{ neutron_agent_extensions|map(attribute\u003d\u0027name\u0027)|join(\u0027,\u0027) }}"},{"line_number":13,"context_line":"{% endif %}"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"[securitygroup]"},{"line_number":16,"context_line":"firewall_driver \u003d neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver"}],"source_content_type":"text/x-jinja2","patch_set":16,"id":"3fa7e38b_e51962d1","line":13,"range":{"start_line":11,"start_character":0,"end_line":13,"end_character":11},"updated":"2019-11-27 11:05:35.000000000","message":"could be copied to linuxbridge","commit_id":"2012296f6cbc4eb46fd6e8b1b922c717a012fc30"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"455c015b19d7602ec930e3eb00f3323752ab7634","unresolved":false,"context_lines":[{"line_number":8,"context_line":"{% if enable_neutron_dvr | bool %}"},{"line_number":9,"context_line":"enable_distributed_routing \u003d True"},{"line_number":10,"context_line":"{% endif %}"},{"line_number":11,"context_line":"{% if neutron_agent_extensions %}"},{"line_number":12,"context_line":"extensions \u003d {{ neutron_agent_extensions|map(attribute\u003d\u0027name\u0027)|join(\u0027,\u0027) }}"},{"line_number":13,"context_line":"{% endif %}"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"[securitygroup]"},{"line_number":16,"context_line":"firewall_driver \u003d neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver"}],"source_content_type":"text/x-jinja2","patch_set":16,"id":"3fa7e38b_ddff5afe","line":13,"range":{"start_line":11,"start_character":0,"end_line":13,"end_character":11},"in_reply_to":"3fa7e38b_e51962d1","updated":"2019-11-27 13:33:43.000000000","message":"Done","commit_id":"2012296f6cbc4eb46fd6e8b1b922c717a012fc30"},{"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":"8f1995c102cf64968985edd5e198bcc7a34fe6e8","unresolved":false,"context_lines":[{"line_number":23,"context_line":"ovsdb_connection \u003d tcp:127.0.0.1:{{ ovsdb_port }}"},{"line_number":24,"context_line":"local_ip \u003d {{ tunnel_interface_address }}"},{"line_number":25,"context_line":"{% if enable_nova_fake | bool %}"},{"line_number":26,"context_line":"integration_bridge \u003d br-int-{{ item }}"},{"line_number":27,"context_line":"{% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":16,"id":"3fa7e38b_c54a26ac","line":26,"range":{"start_line":26,"start_character":28,"end_line":26,"end_character":38},"updated":"2019-11-27 11:05:35.000000000","message":"I believe we are breaking fake nova now - there is no loop","commit_id":"2012296f6cbc4eb46fd6e8b1b922c717a012fc30"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"455c015b19d7602ec930e3eb00f3323752ab7634","unresolved":false,"context_lines":[{"line_number":23,"context_line":"ovsdb_connection \u003d tcp:127.0.0.1:{{ ovsdb_port }}"},{"line_number":24,"context_line":"local_ip \u003d {{ tunnel_interface_address }}"},{"line_number":25,"context_line":"{% if enable_nova_fake | bool %}"},{"line_number":26,"context_line":"integration_bridge \u003d br-int-{{ item }}"},{"line_number":27,"context_line":"{% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":16,"id":"3fa7e38b_9d09e22c","line":26,"range":{"start_line":26,"start_character":28,"end_line":26,"end_character":38},"in_reply_to":"3fa7e38b_c54a26ac","updated":"2019-11-27 13:33:43.000000000","message":"The loop is here: https://opendev.org/openstack/kolla-ansible/src/branch/master/ansible/roles/neutron/tasks/config-neutron-fake.yml#L45 - but yeah, we need to update the files in there.","commit_id":"2012296f6cbc4eb46fd6e8b1b922c717a012fc30"}],"ansible/roles/neutron/templates/openvswitch_agent_xenapi.ini.j2":[{"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":"58baec2e1f9e7be8d6354714ad03d179acd6749e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"3fa7e38b_2af2e99c","side":"PARENT","line":1,"updated":"2019-11-27 10:13:33.000000000","message":"felt bad to leave it here","commit_id":"c641096ea6c76e4e568d6a98dafa97139fc8b19e"}],"releasenotes/notes/split_ovs_lb_agents_config-96f1f90e7d678209.yaml":[{"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":"23b63431783a1236553538363f43b54379c60ed0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Neutron Linuxbridge and OpenvSwitch Agents config has been split out into"},{"line_number":5,"context_line":"    linuxbridge_agent.ini and openvswitch_agent.ini respectively."},{"line_number":6,"context_line":"    Please move your custom service config from ml2_conf.ini into those files. "}],"source_content_type":"text/x-yaml","patch_set":6,"id":"3fa7e38b_90183ccd","line":4,"updated":"2019-11-21 11:01:35.000000000","message":"Linux bridge\nOpen vSwitch","commit_id":"52bcf47e1286ddf8e30bf1d1fdbea5a83f61e2eb"},{"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":"23b63431783a1236553538363f43b54379c60ed0","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Neutron Linuxbridge and OpenvSwitch Agents config has been split out into"},{"line_number":5,"context_line":"    linuxbridge_agent.ini and openvswitch_agent.ini respectively."},{"line_number":6,"context_line":"    Please move your custom service config from ml2_conf.ini into those files. "}],"source_content_type":"text/x-yaml","patch_set":6,"id":"3fa7e38b_10e68ce8","line":6,"updated":"2019-11-21 11:01:35.000000000","message":"space","commit_id":"52bcf47e1286ddf8e30bf1d1fdbea5a83f61e2eb"},{"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":"cf0cbdce8a134e350e637311e4638c51c4c9e1c6","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Neutron Linux bridge and Open vSwitch Agents config has been split out into"},{"line_number":5,"context_line":"    linuxbridge_agent.ini and openvswitch_agent.ini respectively."},{"line_number":6,"context_line":"    Please move your custom service config from ml2_conf.ini into those files."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"3fa7e38b_eb0dc236","line":6,"updated":"2019-11-26 16:18:32.000000000","message":"add information that ml2_conf.ini chanes will stop being merged in the V cycle - possibly as deprecation note?","commit_id":"a36926a2f6fc7e8afb93bc4f1a971089e7bab687"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"d41dbd49b5cba2a337692af12d99b47650853249","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Neutron Linux bridge and Open vSwitch Agents config has been split out into"},{"line_number":5,"context_line":"    linuxbridge_agent.ini and openvswitch_agent.ini respectively."},{"line_number":6,"context_line":"    Please move your custom service config from ml2_conf.ini into those files."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"3fa7e38b_019b5d64","line":6,"in_reply_to":"3fa7e38b_415ab5f2","updated":"2019-11-26 18:21:54.000000000","message":"Missed that somehow, fixing...","commit_id":"a36926a2f6fc7e8afb93bc4f1a971089e7bab687"},{"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":"fd00555da09ded1092abd7a9577c27c0ec0eb797","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Neutron Linux bridge and Open vSwitch Agents config has been split out into"},{"line_number":5,"context_line":"    linuxbridge_agent.ini and openvswitch_agent.ini respectively."},{"line_number":6,"context_line":"    Please move your custom service config from ml2_conf.ini into those files."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"3fa7e38b_415ab5f2","line":6,"in_reply_to":"3fa7e38b_eb0dc236","updated":"2019-11-26 18:18:05.000000000","message":"still applicable","commit_id":"a36926a2f6fc7e8afb93bc4f1a971089e7bab687"},{"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":"ba6517d972cfda2455bf9ff7708ec17919730878","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    Please move your custom service config from ml2_conf.ini into those files."},{"line_number":7,"context_line":"deprecations:"},{"line_number":8,"context_line":"  - |"},{"line_number":9,"context_line":"    In a transition phase (Ussuri) custom service config ml2_conf.ini will be"},{"line_number":10,"context_line":"    still used when merging configs - but that functionality will be removed"},{"line_number":11,"context_line":"    in V."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"3fa7e38b_41007567","line":9,"range":{"start_line":9,"start_character":7,"end_line":9,"end_character":8},"updated":"2019-11-26 18:26:40.000000000","message":"nit: the","commit_id":"d75a3046e0b57f5d9cbcab832890e815f96fc460"}]}
