)]}'
{"lib/neutron-legacy":[{"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":"5c3a23229f1ce2f6f21d2a000450642b1c6095eb","unresolved":false,"context_lines":[{"line_number":281,"context_line":"fi"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"# Source OVN driver functions if enabled"},{"line_number":284,"context_line":"IS_OVN_ENABLED\u003dfalse"},{"line_number":285,"context_line":"if [[ $Q_AGENT \u003d\u003d \"ovn\" ]]; then"},{"line_number":286,"context_line":"    IS_OVN_ENABLED\u003dtrue"},{"line_number":287,"context_line":"    source $TOP_DIR/lib/neutron_plugins/ovn"}],"source_content_type":"application/x-shellscript","patch_set":10,"id":"9f560f44_82268d14","line":284,"range":{"start_line":284,"start_character":0,"end_line":284,"end_character":20},"updated":"2020-08-04 07:06:47.000000000","message":"conflicts with the devstack style of string True/False comparison - please see just above for example","commit_id":"62c001aac5832ba48e1841bcd2b2e1e4c12c51b5"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"81880502efeca0d6760c77fa328305db562d2ddc","unresolved":false,"context_lines":[{"line_number":281,"context_line":"fi"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"# Source OVN driver functions if enabled"},{"line_number":284,"context_line":"IS_OVN_ENABLED\u003dfalse"},{"line_number":285,"context_line":"if [[ $Q_AGENT \u003d\u003d \"ovn\" ]]; then"},{"line_number":286,"context_line":"    IS_OVN_ENABLED\u003dtrue"},{"line_number":287,"context_line":"    source $TOP_DIR/lib/neutron_plugins/ovn"}],"source_content_type":"application/x-shellscript","patch_set":10,"id":"9f560f44_9b48a22d","line":284,"range":{"start_line":284,"start_character":0,"end_line":284,"end_character":20},"in_reply_to":"9f560f44_82268d14","updated":"2020-08-05 08:53:03.000000000","message":"This is just for internal use, whether OVN is enabled or not, is based on the Q_AGENT value (if it\u0027s set to \"ovn\"). This IS_OVN_ENABLED variable is just a way to avoid having to keep doing a string comparison for Q_AGENT \u003d\u003d \u0027ovn\u0027 multiple times.\n\nDo you reckon I should change this to some function such as:\n\nif is_ovn_enabled; then\n...\nfi \n\nOr perhaps just use\n\nif [[ $Q_AGENT \u003d\u003d \"ovn\" ]]; then\n...\nfi\n\nWhat you think would be best here ?","commit_id":"62c001aac5832ba48e1841bcd2b2e1e4c12c51b5"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"d9ed3ebad83ce1f3997c4d8f4f4c0972950c92b1","unresolved":false,"context_lines":[{"line_number":259,"context_line":"ENABLE_METADATA_NETWORK\u003d${ENABLE_METADATA_NETWORK:-False}"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"# Source OVN driver functions if enabled"},{"line_number":262,"context_line":"if [[ $Q_AGENT \u003d\u003d \"ovn\" ]]; then"},{"line_number":263,"context_line":"    source $TOP_DIR/lib/neutron_plugins/ovn"},{"line_number":264,"context_line":"fi"},{"line_number":265,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":15,"id":"9f560f44_1d6c459a","line":262,"range":{"start_line":262,"start_character":0,"end_line":262,"end_character":32},"updated":"2020-08-10 09:34:23.000000000","message":"I think we have a problem here because, the L271 (in the ml2 file) is the one that sources the Q_AGENT, so at this point Q_AGENT won\u0027t be set by default (unless specified in the job definition, I think).\n\nI believe we will need to revert the latest changes and source this after \"ml2\" again.\n\nRodoslaw, what if we put the logic between \"router\" and \"ovn-router\" in the ml2 file based on the Q_AGENT value ? Do you think that would be OK ?","commit_id":"f4cc11ed19a72caeb42e3f032ac32f1f1615de26"},{"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":"3c634677a430a5556d834d0685ae55cf3aa8a3fc","unresolved":false,"context_lines":[{"line_number":265,"context_line":"    source $TOP_DIR/lib/neutron_plugins/$Q_PLUGIN"},{"line_number":266,"context_line":"fi"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"# Source OVN driver functions if enabled"},{"line_number":269,"context_line":"if [[ $Q_AGENT \u003d\u003d \"ovn\" ]]; then"},{"line_number":270,"context_line":"    source $TOP_DIR/lib/neutron_plugins/ovn_agent"},{"line_number":271,"context_line":"fi"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"# Agent metering service plugin functions"},{"line_number":274,"context_line":"# -------------------------------------------"}],"source_content_type":"application/x-shellscript","patch_set":18,"id":"9f560f44_2b79f192","line":271,"range":{"start_line":268,"start_character":0,"end_line":271,"end_character":2},"updated":"2020-08-11 14:21:09.000000000","message":"no need to do it now","commit_id":"2b6ec3235fb4128ceb30a7067668ea7426a6f8c7"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"2ee55ce98c363d04428bd0c53d74d4fe77f83c6f","unresolved":false,"context_lines":[{"line_number":265,"context_line":"    source $TOP_DIR/lib/neutron_plugins/$Q_PLUGIN"},{"line_number":266,"context_line":"fi"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"# Source OVN driver functions if enabled"},{"line_number":269,"context_line":"if [[ $Q_AGENT \u003d\u003d \"ovn\" ]]; then"},{"line_number":270,"context_line":"    source $TOP_DIR/lib/neutron_plugins/ovn_agent"},{"line_number":271,"context_line":"fi"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"# Agent metering service plugin functions"},{"line_number":274,"context_line":"# -------------------------------------------"}],"source_content_type":"application/x-shellscript","patch_set":18,"id":"9f560f44_cbcdd587","line":271,"range":{"start_line":268,"start_character":0,"end_line":271,"end_character":2},"in_reply_to":"9f560f44_2b79f192","updated":"2020-08-11 14:45:27.000000000","message":"++ will be removed","commit_id":"2b6ec3235fb4128ceb30a7067668ea7426a6f8c7"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"36e739eaed70a62fd4602c1891209925b9c106a7","unresolved":false,"context_lines":[{"line_number":365,"context_line":"    if [[ $Q_AGENT \u003d\u003d \"ovn\" ]]; then"},{"line_number":366,"context_line":"        configure_ovn"},{"line_number":367,"context_line":"        if is_service_enabled q-port-forwarding neutron-port-forwarding; then"},{"line_number":368,"context_line":"            configure_port_forwarding"},{"line_number":369,"context_line":"        fi"},{"line_number":370,"context_line":"        configure_ovn_plugin"},{"line_number":371,"context_line":"    fi"}],"source_content_type":"application/x-shellscript","patch_set":19,"id":"9f560f44_78682ff4","line":368,"updated":"2020-08-25 14:27:54.000000000","message":"This function seems to be defined only in neutron\u0027s devstack plugin, so it seems wrong to call it here, because it will fail when the plugin isn\u0027t loaded.\n\nI think you would need to move that code into devstack, too.","commit_id":"1d468d45dbb330c31c28e54d9c9abe5f8ec394ba"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"2cb687fae06a0d4608aa27acbd1edc455b257fd1","unresolved":false,"context_lines":[{"line_number":365,"context_line":"    if [[ $Q_AGENT \u003d\u003d \"ovn\" ]]; then"},{"line_number":366,"context_line":"        configure_ovn"},{"line_number":367,"context_line":"        if is_service_enabled q-port-forwarding neutron-port-forwarding; then"},{"line_number":368,"context_line":"            configure_port_forwarding"},{"line_number":369,"context_line":"        fi"},{"line_number":370,"context_line":"        configure_ovn_plugin"},{"line_number":371,"context_line":"    fi"}],"source_content_type":"application/x-shellscript","patch_set":19,"id":"9f560f44_63a4dba6","line":368,"in_reply_to":"9f560f44_43f557ca","updated":"2020-08-26 08:43:47.000000000","message":"I was looking into this, apparently this method is already invoked in the plugin.sh in neutron [0], just like other extensions such as DNS, qos etc...\n\nWe could then just remove it from here because it\u0027s redundant.\n\nAlso, in one of the patches that we have testing this code, I noticed that we are hitting [1] when we leave Q_ML2_PLUGIN_EXT_DRIVERS as the default we have in ovn_agent at the moment. Apparently the \"dns\" extensions is colliding with other dns extensions that get enabled when the q-dns/neutron-dns service is enabled, also in plugin.sh [0].\n\nI will do a follow up patch fixing those.\n\n[0] https://github.com/openstack/neutron/blob/master/devstack/plugin.sh#L101-L103\n[1] https://bugs.launchpad.net/neutron/+bug/1887163","commit_id":"1d468d45dbb330c31c28e54d9c9abe5f8ec394ba"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"f1b3161fe07abba70904ca3446e8719a7a81ba35","unresolved":false,"context_lines":[{"line_number":365,"context_line":"    if [[ $Q_AGENT \u003d\u003d \"ovn\" ]]; then"},{"line_number":366,"context_line":"        configure_ovn"},{"line_number":367,"context_line":"        if is_service_enabled q-port-forwarding neutron-port-forwarding; then"},{"line_number":368,"context_line":"            configure_port_forwarding"},{"line_number":369,"context_line":"        fi"},{"line_number":370,"context_line":"        configure_ovn_plugin"},{"line_number":371,"context_line":"    fi"}],"source_content_type":"application/x-shellscript","patch_set":19,"id":"9f560f44_43f557ca","line":368,"in_reply_to":"9f560f44_78682ff4","updated":"2020-08-26 08:32:13.000000000","message":"Oh that\u0027s a great point! Sure I will post a follow-up patch adding this function to devstack as well. Thank you!","commit_id":"1d468d45dbb330c31c28e54d9c9abe5f8ec394ba"}],"lib/neutron_plugins/ml2":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"f3f24b777802d345db1e86cc346d5ec4325d18f4","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"# Default openvswitch L2 agent"},{"line_number":12,"context_line":"Q_AGENT\u003d${Q_AGENT:-openvswitch}"},{"line_number":13,"context_line":"if [ -f $TOP_DIR/lib/neutron_plugins/${Q_AGENT}_agent ]; then"},{"line_number":14,"context_line":"    source $TOP_DIR/lib/neutron_plugins/${Q_AGENT}_agent"},{"line_number":15,"context_line":"fi"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"if [[ $Q_AGENT \u003d\u003d \"ovn\" ]]; then"},{"line_number":18,"context_line":"    # L3 Plugin to load for ML2"}],"source_content_type":"application/x-shellscript","patch_set":17,"id":"9f560f44_3704b87e","line":15,"range":{"start_line":13,"start_character":0,"end_line":15,"end_character":2},"updated":"2020-08-11 09:09:24.000000000","message":"Radoslaw, I forgot about this, perhaps if I rename the \"ovn\" module to \"ovn_agent\" it will load the defaults here.","commit_id":"216f51e1cfe89de1730b9d4851815549b560c4db"}],"lib/neutron_plugins/ovn":[{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"c3ec42434aa903159370b6b8370567ea33acebe4","unresolved":false,"context_lines":[{"line_number":355,"context_line":"}"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"# Compile openvswitch and its kernel module"},{"line_number":358,"context_line":"function _compile_ovs {"},{"line_number":359,"context_line":"    local build_modules\u003d$1"},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"    # Install the dependencies"}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"bf51134e_9fb79487","line":358,"range":{"start_line":358,"start_character":9,"end_line":358,"end_character":21},"updated":"2020-06-15 07:45:09.000000000","message":"Can we make this function to be unique for both ovs and ovn?","commit_id":"a94a22ff6f492ac1efdce2138b4c11c3ffc4f2e2"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"93983bb94c30bad14c858cd882d8ece8da0b3c1e","unresolved":false,"context_lines":[{"line_number":355,"context_line":"}"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"# Compile openvswitch and its kernel module"},{"line_number":358,"context_line":"function _compile_ovs {"},{"line_number":359,"context_line":"    local build_modules\u003d$1"},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"    # Install the dependencies"}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"bf51134e_d568cbbb","line":358,"range":{"start_line":358,"start_character":9,"end_line":358,"end_character":21},"in_reply_to":"bf51134e_9fb79487","updated":"2020-06-15 09:01:58.000000000","message":"I will check the differences between both functions but should be possible","commit_id":"a94a22ff6f492ac1efdce2138b4c11c3ffc4f2e2"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"a25490461a234e7daaebf9b1e221fe114193b73d","unresolved":false,"context_lines":[{"line_number":355,"context_line":"}"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"# Compile openvswitch and its kernel module"},{"line_number":358,"context_line":"function _compile_ovs {"},{"line_number":359,"context_line":"    local build_modules\u003d$1"},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"    # Install the dependencies"}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"bf51134e_15e6c345","line":358,"range":{"start_line":358,"start_character":9,"end_line":358,"end_character":21},"in_reply_to":"bf51134e_d568cbbb","updated":"2020-06-15 09:04:40.000000000","message":"I just wonder if we should do in this patch or later cause this is an exact copy from the module we have in Neutron right now. No changes.","commit_id":"a94a22ff6f492ac1efdce2138b4c11c3ffc4f2e2"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"65f3c49b2ba37fa0ada43e4cbf6bbd5553eae410","unresolved":false,"context_lines":[{"line_number":17,"context_line":"# --------------"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"# There are some ovs functions OVN depends on that must be sourced from"},{"line_number":20,"context_line":"# the ovs neutron plugins. After doing this, the OVN overrides must be"},{"line_number":21,"context_line":"# re-sourced."},{"line_number":22,"context_line":"source ${TOP_DIR}/lib/neutron_plugins/ovs_base"},{"line_number":23,"context_line":"source ${TOP_DIR}/lib/neutron_plugins/openvswitch_agent"},{"line_number":24,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_a40e3d38","line":21,"range":{"start_line":20,"start_character":27,"end_line":21,"end_character":13},"updated":"2020-07-10 07:24:13.000000000","message":"I don\u0027t understand this, is it an old comment which is no longer relevant?\n\nOr does this refer to L130 ff.?","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"87d10026e218368ba1f03870179041dcf70f5147","unresolved":false,"context_lines":[{"line_number":17,"context_line":"# --------------"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"# There are some ovs functions OVN depends on that must be sourced from"},{"line_number":20,"context_line":"# the ovs neutron plugins. After doing this, the OVN overrides must be"},{"line_number":21,"context_line":"# re-sourced."},{"line_number":22,"context_line":"source ${TOP_DIR}/lib/neutron_plugins/ovs_base"},{"line_number":23,"context_line":"source ${TOP_DIR}/lib/neutron_plugins/openvswitch_agent"},{"line_number":24,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_6653856c","line":21,"range":{"start_line":20,"start_character":27,"end_line":21,"end_character":13},"in_reply_to":"bf51134e_a40e3d38","updated":"2020-07-10 08:51:24.000000000","message":"I don\u0027t get it either hehe I just copied this whole module as-is from the neutron repository to devstack without any changes.\n\nI can remove this tho","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"65f3c49b2ba37fa0ada43e4cbf6bbd5553eae410","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"# ovsdb-server wants an IPv6 address in the quoted form, [::1]"},{"line_number":94,"context_line":"# Initialize un-quoted to handle IPv4, but add them back if version is IPv6"},{"line_number":95,"context_line":"OVSDB_SERVER_LOCAL_HOST\u003d$(ipv6_unquote $SERVICE_LOCAL_HOST)"},{"line_number":96,"context_line":"if [[ \"$SERVICE_IP_VERSION\" \u003d\u003d 6 ]]; then"},{"line_number":97,"context_line":"    OVSDB_SERVER_LOCAL_HOST\u003d[$OVSDB_SERVER_LOCAL_HOST]"},{"line_number":98,"context_line":"fi"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"OVN_IGMP_SNOOPING_ENABLE\u003d$(trueorfalse False OVN_IGMP_SNOOPING_ENABLE)"},{"line_number":101,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_b7b2ed47","line":98,"range":{"start_line":95,"start_character":0,"end_line":98,"end_character":2},"updated":"2020-07-10 07:24:13.000000000","message":"Isn\u0027t $SERVICE_LOCAL_HOST only ever an IPv6 address if \"$SERVICE_IP_VERSION\" \u003d\u003d 6? That would make this redundant and you could simply use\n\nOVSDB_SERVER_LOCAL_HOST\u003d$SERVICE_LOCAL_HOST","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"22c50481d5b45d04156790bc7ff542a911d79271","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"# ovsdb-server wants an IPv6 address in the quoted form, [::1]"},{"line_number":94,"context_line":"# Initialize un-quoted to handle IPv4, but add them back if version is IPv6"},{"line_number":95,"context_line":"OVSDB_SERVER_LOCAL_HOST\u003d$(ipv6_unquote $SERVICE_LOCAL_HOST)"},{"line_number":96,"context_line":"if [[ \"$SERVICE_IP_VERSION\" \u003d\u003d 6 ]]; then"},{"line_number":97,"context_line":"    OVSDB_SERVER_LOCAL_HOST\u003d[$OVSDB_SERVER_LOCAL_HOST]"},{"line_number":98,"context_line":"fi"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"OVN_IGMP_SNOOPING_ENABLE\u003d$(trueorfalse False OVN_IGMP_SNOOPING_ENABLE)"},{"line_number":101,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_18b5c132","line":98,"range":{"start_line":95,"start_character":0,"end_line":98,"end_character":2},"in_reply_to":"bf51134e_b7b2ed47","updated":"2020-07-10 13:57:56.000000000","message":"Done","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"65f3c49b2ba37fa0ada43e4cbf6bbd5553eae410","unresolved":false,"context_lines":[{"line_number":152,"context_line":"}"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"function use_new_ovn_repository {"},{"line_number":155,"context_line":"    if [ \"x$is_new_ovn\" \u003d\u003d \"x\" ]; then"},{"line_number":156,"context_line":"        local ovs_repo_dir\u003d$DEST/$OVS_REPO_NAME"},{"line_number":157,"context_line":"        if [ ! -d $ovs_repo_dir ]; then"},{"line_number":158,"context_line":"            clone_repository $OVS_REPO $ovs_repo_dir $OVS_BRANCH"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_17d3d961","line":155,"range":{"start_line":155,"start_character":7,"end_line":155,"end_character":32},"updated":"2020-07-10 07:24:13.000000000","message":"-z \"$is_new_ovn\"","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"87d10026e218368ba1f03870179041dcf70f5147","unresolved":false,"context_lines":[{"line_number":152,"context_line":"}"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"function use_new_ovn_repository {"},{"line_number":155,"context_line":"    if [ \"x$is_new_ovn\" \u003d\u003d \"x\" ]; then"},{"line_number":156,"context_line":"        local ovs_repo_dir\u003d$DEST/$OVS_REPO_NAME"},{"line_number":157,"context_line":"        if [ ! -d $ovs_repo_dir ]; then"},{"line_number":158,"context_line":"            clone_repository $OVS_REPO $ovs_repo_dir $OVS_BRANCH"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_06c8c91f","line":155,"range":{"start_line":155,"start_character":7,"end_line":155,"end_character":32},"in_reply_to":"bf51134e_17d3d961","updated":"2020-07-10 08:51:24.000000000","message":"Done","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"65f3c49b2ba37fa0ada43e4cbf6bbd5553eae410","unresolved":false,"context_lines":[{"line_number":219,"context_line":"    sudo ovs-appctl -t $service vlog/set console:off syslog:info file:info"},{"line_number":220,"context_line":"}"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"function clone_repository {"},{"line_number":223,"context_line":"    local repo\u003d$1"},{"line_number":224,"context_line":"    local dir\u003d$2"},{"line_number":225,"context_line":"    local branch\u003d$3"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_170639cf","line":222,"updated":"2020-07-10 07:24:13.000000000","message":"I don\u0027t understand why this is needed as opposed to plainly calling git_clone(). Describing this in a comment might be helpful.","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"8b329e1e871a545a96962c6a85aaf9d75fb7cee7","unresolved":false,"context_lines":[{"line_number":219,"context_line":"    sudo ovs-appctl -t $service vlog/set console:off syslog:info file:info"},{"line_number":220,"context_line":"}"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"function clone_repository {"},{"line_number":223,"context_line":"    local repo\u003d$1"},{"line_number":224,"context_line":"    local dir\u003d$2"},{"line_number":225,"context_line":"    local branch\u003d$3"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_ea6637bb","line":222,"in_reply_to":"bf51134e_072ba494","updated":"2020-07-10 11:04:59.000000000","message":"IIRC there were plans to use distro pkgs instead of building from source, at least on Focal, would that solve this issue?\nOtherwise I think we should indeed look into making those repos available pre-cloned in our images, as cloning from github has proved not always to be reliable.","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"87d10026e218368ba1f03870179041dcf70f5147","unresolved":false,"context_lines":[{"line_number":219,"context_line":"    sudo ovs-appctl -t $service vlog/set console:off syslog:info file:info"},{"line_number":220,"context_line":"}"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"function clone_repository {"},{"line_number":223,"context_line":"    local repo\u003d$1"},{"line_number":224,"context_line":"    local dir\u003d$2"},{"line_number":225,"context_line":"    local branch\u003d$3"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_a68c7dd7","line":222,"in_reply_to":"bf51134e_170639cf","updated":"2020-07-10 08:51:24.000000000","message":"True, perhaps it\u0027s redundant I\u0027ll try to investigate replacing it with the normal git_clone one","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"2605a968ef2af847d093206ec63438e8a40183fa","unresolved":false,"context_lines":[{"line_number":219,"context_line":"    sudo ovs-appctl -t $service vlog/set console:off syslog:info file:info"},{"line_number":220,"context_line":"}"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"function clone_repository {"},{"line_number":223,"context_line":"    local repo\u003d$1"},{"line_number":224,"context_line":"    local dir\u003d$2"},{"line_number":225,"context_line":"    local branch\u003d$3"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_072ba494","line":222,"in_reply_to":"bf51134e_a68c7dd7","updated":"2020-07-10 10:36:15.000000000","message":"So apparently we have this method to avoid the ERROR_ON_CLONE from git_clone [0], I see other modules are working it around in different ways as well, for example the ovs modules does [1].\n\nI am not sure we want to add OVN/OVS to the required_projects in the job definition. Do you have any recommendation ?\n\nI can also write a comment about it here or try to use the git_clone() method setting ERROR_ON_CLONE to false for cling OVN/OVS.\n\n[0]\n\n2020-07-10 10:03:06.586245 | controller | ++ functions-common:git_clone:561           :   echo \u0027The /opt/stack/ovn project was not found; if this is a gate job, add\u0027\n2020-07-10 10:03:06.586258 | controller | The /opt/stack/ovn project was not found; if this is a gate job, add\n2020-07-10 10:03:06.587618 | controller | ++ functions-common:git_clone:562           :   echo \u0027the project to the $PROJECTS variable in the job definition.\u0027\n2020-07-10 10:03:06.587644 | controller | the project to the $PROJECTS variable in the job definition.\n2020-07-10 10:03:06.590112 | controller | ++ functions-common:git_clone:563           :   die 563 \u0027Cloning not allowed in this configuration\u0027\n2020-07-10 10:03:06.592052 | controller | ++ functions-common:die:198                 :   local exitcode\u003d0\n\n[1] https://github.com/openstack/neutron/blob/5999716cfc4a00ac426e016eabbb51247ba0b190/devstack/lib/ovs#L45-L55","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"24888bf14b8b89db0c362353f7b04cf2bbec1d25","unresolved":false,"context_lines":[{"line_number":219,"context_line":"    sudo ovs-appctl -t $service vlog/set console:off syslog:info file:info"},{"line_number":220,"context_line":"}"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"function clone_repository {"},{"line_number":223,"context_line":"    local repo\u003d$1"},{"line_number":224,"context_line":"    local dir\u003d$2"},{"line_number":225,"context_line":"    local branch\u003d$3"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_86f5cbcd","line":222,"in_reply_to":"bf51134e_b894958c","updated":"2020-07-14 12:37:10.000000000","message":"Ok","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"22c50481d5b45d04156790bc7ff542a911d79271","unresolved":false,"context_lines":[{"line_number":219,"context_line":"    sudo ovs-appctl -t $service vlog/set console:off syslog:info file:info"},{"line_number":220,"context_line":"}"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"function clone_repository {"},{"line_number":223,"context_line":"    local repo\u003d$1"},{"line_number":224,"context_line":"    local dir\u003d$2"},{"line_number":225,"context_line":"    local branch\u003d$3"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_b894958c","line":222,"in_reply_to":"bf51134e_ea6637bb","updated":"2020-07-10 13:57:56.000000000","message":"Yes there are plans, I think there was a problem with the version of the packages in Ubuntu, I will double-check. Could this be a follow-up for this patch in case we need such a change ?","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"65f3c49b2ba37fa0ada43e4cbf6bbd5553eae410","unresolved":false,"context_lines":[{"line_number":275,"context_line":"    if [ -n \"$IPV6_PUBLIC_RANGE\" ]; then"},{"line_number":276,"context_line":"        local ipv6_cidr_len\u003d${IPV6_PUBLIC_RANGE#*/}"},{"line_number":277,"context_line":"        sudo ip -6 addr add $IPV6_PUBLIC_NETWORK_GATEWAY/$ipv6_cidr_len dev $ext_gw_ifc"},{"line_number":278,"context_line":"        # NOTE(numans): Commenting the below code for now as this is breaking"},{"line_number":279,"context_line":"        # the CI after xenial upgrade."},{"line_number":280,"context_line":"        # https://bugs.launchpad.net/networking-ovn/+bug/1648670"},{"line_number":281,"context_line":"        # sudo ip -6 route replace $FIXED_RANGE_V6 via $IPV6_PUBLIC_NETWORK_GATEWAY dev $ext_gw_ifc"},{"line_number":282,"context_line":"    fi"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"    sudo ip link set $ext_gw_ifc up"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_97e7e912","line":281,"range":{"start_line":278,"start_character":8,"end_line":281,"end_character":99},"updated":"2020-07-10 07:24:13.000000000","message":"Is this still relevant? The cited bug has long been fixed.","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"87d10026e218368ba1f03870179041dcf70f5147","unresolved":false,"context_lines":[{"line_number":275,"context_line":"    if [ -n \"$IPV6_PUBLIC_RANGE\" ]; then"},{"line_number":276,"context_line":"        local ipv6_cidr_len\u003d${IPV6_PUBLIC_RANGE#*/}"},{"line_number":277,"context_line":"        sudo ip -6 addr add $IPV6_PUBLIC_NETWORK_GATEWAY/$ipv6_cidr_len dev $ext_gw_ifc"},{"line_number":278,"context_line":"        # NOTE(numans): Commenting the below code for now as this is breaking"},{"line_number":279,"context_line":"        # the CI after xenial upgrade."},{"line_number":280,"context_line":"        # https://bugs.launchpad.net/networking-ovn/+bug/1648670"},{"line_number":281,"context_line":"        # sudo ip -6 route replace $FIXED_RANGE_V6 via $IPV6_PUBLIC_NETWORK_GATEWAY dev $ext_gw_ifc"},{"line_number":282,"context_line":"    fi"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"    sudo ip link set $ext_gw_ifc up"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_26ba2d6d","line":281,"range":{"start_line":278,"start_character":8,"end_line":281,"end_character":99},"in_reply_to":"bf51134e_97e7e912","updated":"2020-07-10 08:51:24.000000000","message":"++ will be removed","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"65f3c49b2ba37fa0ada43e4cbf6bbd5553eae410","unresolved":false,"context_lines":[{"line_number":421,"context_line":"        # NOTE(arosen) needed for tempest"},{"line_number":422,"context_line":"        export NETWORK_API_EXTENSIONS\u003d$($PYTHON -c \\"},{"line_number":423,"context_line":"            \u0027from neutron.common.ovn import extensions ;\\"},{"line_number":424,"context_line":"            print(\",\".join(extensions.ML2_SUPPORTED_API_EXTENSIONS))\u0027)"},{"line_number":425,"context_line":"        export NETWORK_API_EXTENSIONS\u003d$NETWORK_API_EXTENSIONS,$($PYTHON -c \\"},{"line_number":426,"context_line":"            \u0027from neutron.common.ovn import extensions ;\\"},{"line_number":427,"context_line":"            print(\",\".join(extensions.ML2_SUPPORTED_API_EXTENSIONS_OVN_L3))\u0027)"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_b7714d47","line":424,"updated":"2020-07-10 07:24:13.000000000","message":"This makes it difficult to override settings per job, also not all supported extensions must always be enabled. Is a more flexible solution possible here?","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"22c50481d5b45d04156790bc7ff542a911d79271","unresolved":false,"context_lines":[{"line_number":421,"context_line":"        # NOTE(arosen) needed for tempest"},{"line_number":422,"context_line":"        export NETWORK_API_EXTENSIONS\u003d$($PYTHON -c \\"},{"line_number":423,"context_line":"            \u0027from neutron.common.ovn import extensions ;\\"},{"line_number":424,"context_line":"            print(\",\".join(extensions.ML2_SUPPORTED_API_EXTENSIONS))\u0027)"},{"line_number":425,"context_line":"        export NETWORK_API_EXTENSIONS\u003d$NETWORK_API_EXTENSIONS,$($PYTHON -c \\"},{"line_number":426,"context_line":"            \u0027from neutron.common.ovn import extensions ;\\"},{"line_number":427,"context_line":"            print(\",\".join(extensions.ML2_SUPPORTED_API_EXTENSIONS_OVN_L3))\u0027)"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_9331b25c","line":424,"in_reply_to":"bf51134e_0aff2bab","updated":"2020-07-10 13:57:56.000000000","message":"Indeed it\u0027s not ideal. I was speaking with Daniel and I have an idea that goes like:\n\nRight now we have two lists, the one that you linked that contains all extensions and another with all extensions supported by ML2/OVN.\n\nWhat I could do is an intersection on these lists and in here we try to enable everything that is in the first list minus what is not supported by OVN (based on the second list) and log a message with the extensions being disabled telling why it has been disabled.\n\nThat way if a custom job wants to have a smaller list of extensions in it\u0027s job definition, the devstack module will try to enable only those instead of everything that is suported by OVN.\n\nDoes it sound feasible/acceptable ?","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"07605afe232c416d672e38e391c2765be8a0b561","unresolved":false,"context_lines":[{"line_number":421,"context_line":"        # NOTE(arosen) needed for tempest"},{"line_number":422,"context_line":"        export NETWORK_API_EXTENSIONS\u003d$($PYTHON -c \\"},{"line_number":423,"context_line":"            \u0027from neutron.common.ovn import extensions ;\\"},{"line_number":424,"context_line":"            print(\",\".join(extensions.ML2_SUPPORTED_API_EXTENSIONS))\u0027)"},{"line_number":425,"context_line":"        export NETWORK_API_EXTENSIONS\u003d$NETWORK_API_EXTENSIONS,$($PYTHON -c \\"},{"line_number":426,"context_line":"            \u0027from neutron.common.ovn import extensions ;\\"},{"line_number":427,"context_line":"            print(\",\".join(extensions.ML2_SUPPORTED_API_EXTENSIONS_OVN_L3))\u0027)"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_dc3312f5","line":424,"in_reply_to":"bf51134e_4610d300","updated":"2020-07-14 14:09:32.000000000","message":"I\u0027ve implemented this mechanism in the latest patch-set, the logic is in a function called filter_network_api_extensions [0].\n\n[0] https://review.opendev.org/#/c/734621/9/lib/neutron_plugins/ovn@394","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"24888bf14b8b89db0c362353f7b04cf2bbec1d25","unresolved":false,"context_lines":[{"line_number":421,"context_line":"        # NOTE(arosen) needed for tempest"},{"line_number":422,"context_line":"        export NETWORK_API_EXTENSIONS\u003d$($PYTHON -c \\"},{"line_number":423,"context_line":"            \u0027from neutron.common.ovn import extensions ;\\"},{"line_number":424,"context_line":"            print(\",\".join(extensions.ML2_SUPPORTED_API_EXTENSIONS))\u0027)"},{"line_number":425,"context_line":"        export NETWORK_API_EXTENSIONS\u003d$NETWORK_API_EXTENSIONS,$($PYTHON -c \\"},{"line_number":426,"context_line":"            \u0027from neutron.common.ovn import extensions ;\\"},{"line_number":427,"context_line":"            print(\",\".join(extensions.ML2_SUPPORTED_API_EXTENSIONS_OVN_L3))\u0027)"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_4610d300","line":424,"in_reply_to":"bf51134e_9331b25c","updated":"2020-07-14 12:37:10.000000000","message":"Sounds good to me.","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"87d10026e218368ba1f03870179041dcf70f5147","unresolved":false,"context_lines":[{"line_number":421,"context_line":"        # NOTE(arosen) needed for tempest"},{"line_number":422,"context_line":"        export NETWORK_API_EXTENSIONS\u003d$($PYTHON -c \\"},{"line_number":423,"context_line":"            \u0027from neutron.common.ovn import extensions ;\\"},{"line_number":424,"context_line":"            print(\",\".join(extensions.ML2_SUPPORTED_API_EXTENSIONS))\u0027)"},{"line_number":425,"context_line":"        export NETWORK_API_EXTENSIONS\u003d$NETWORK_API_EXTENSIONS,$($PYTHON -c \\"},{"line_number":426,"context_line":"            \u0027from neutron.common.ovn import extensions ;\\"},{"line_number":427,"context_line":"            print(\",\".join(extensions.ML2_SUPPORTED_API_EXTENSIONS_OVN_L3))\u0027)"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_c4124a58","line":424,"in_reply_to":"bf51134e_b7714d47","updated":"2020-07-10 08:51:24.000000000","message":"This is only the extensions supported by the Neutron OVN driver [0]\n\nI have to take a look at how other drivers are doing this to see how we can make it more flexible. Right now we use these listing of extensions here in DevStack and also in python code [1]\n\nWe could perhaps have the list of extensions in the job definition but, I think that\u0027s less flexible no ?\n\n[0] https://github.com/openstack/neutron/blob/master/neutron/common/ovn/extensions.py\n\n[1] https://github.com/openstack/neutron/blob/206ce246768d6fb04b6bd92e189188f6702c74a7/neutron/services/ovn_l3/plugin.py#L67-L68","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"8b329e1e871a545a96962c6a85aaf9d75fb7cee7","unresolved":false,"context_lines":[{"line_number":421,"context_line":"        # NOTE(arosen) needed for tempest"},{"line_number":422,"context_line":"        export NETWORK_API_EXTENSIONS\u003d$($PYTHON -c \\"},{"line_number":423,"context_line":"            \u0027from neutron.common.ovn import extensions ;\\"},{"line_number":424,"context_line":"            print(\",\".join(extensions.ML2_SUPPORTED_API_EXTENSIONS))\u0027)"},{"line_number":425,"context_line":"        export NETWORK_API_EXTENSIONS\u003d$NETWORK_API_EXTENSIONS,$($PYTHON -c \\"},{"line_number":426,"context_line":"            \u0027from neutron.common.ovn import extensions ;\\"},{"line_number":427,"context_line":"            print(\",\".join(extensions.ML2_SUPPORTED_API_EXTENSIONS_OVN_L3))\u0027)"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_0aff2bab","line":424,"in_reply_to":"bf51134e_c4124a58","updated":"2020-07-10 11:04:59.000000000","message":"Well currently the list is defined in the job definitions like https://opendev.org/openstack/neutron-tempest-plugin/src/branch/master/zuul.d/master_jobs.yaml#L8 , this new code does a hard override of those, which doesn\u0027t fit well together IMO. I\u0027d like to see a solution that is somehow consistent for all neutron jobs, having the option to change things per job instead of having a list hardcoded in code seems the better approach to me, but I\u0027m mainly concerned about one thing overriding the other, so please discuss within the neutron team how you could consistenly solve this.","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"65f3c49b2ba37fa0ada43e4cbf6bbd5553eae410","unresolved":false,"context_lines":[{"line_number":422,"context_line":"        export NETWORK_API_EXTENSIONS\u003d$($PYTHON -c \\"},{"line_number":423,"context_line":"            \u0027from neutron.common.ovn import extensions ;\\"},{"line_number":424,"context_line":"            print(\",\".join(extensions.ML2_SUPPORTED_API_EXTENSIONS))\u0027)"},{"line_number":425,"context_line":"        export NETWORK_API_EXTENSIONS\u003d$NETWORK_API_EXTENSIONS,$($PYTHON -c \\"},{"line_number":426,"context_line":"            \u0027from neutron.common.ovn import extensions ;\\"},{"line_number":427,"context_line":"            print(\",\".join(extensions.ML2_SUPPORTED_API_EXTENSIONS_OVN_L3))\u0027)"},{"line_number":428,"context_line":"        if is_service_enabled q-qos neutron-qos ; then"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_77921559","line":425,"range":{"start_line":425,"start_character":8,"end_line":425,"end_character":15},"updated":"2020-07-10 07:24:13.000000000","message":"This is redundant, one export is enough.","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"87d10026e218368ba1f03870179041dcf70f5147","unresolved":false,"context_lines":[{"line_number":422,"context_line":"        export NETWORK_API_EXTENSIONS\u003d$($PYTHON -c \\"},{"line_number":423,"context_line":"            \u0027from neutron.common.ovn import extensions ;\\"},{"line_number":424,"context_line":"            print(\",\".join(extensions.ML2_SUPPORTED_API_EXTENSIONS))\u0027)"},{"line_number":425,"context_line":"        export NETWORK_API_EXTENSIONS\u003d$NETWORK_API_EXTENSIONS,$($PYTHON -c \\"},{"line_number":426,"context_line":"            \u0027from neutron.common.ovn import extensions ;\\"},{"line_number":427,"context_line":"            print(\",\".join(extensions.ML2_SUPPORTED_API_EXTENSIONS_OVN_L3))\u0027)"},{"line_number":428,"context_line":"        if is_service_enabled q-qos neutron-qos ; then"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_0419e278","line":425,"range":{"start_line":425,"start_character":8,"end_line":425,"end_character":15},"in_reply_to":"bf51134e_77921559","updated":"2020-07-10 08:51:24.000000000","message":"++","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"65f3c49b2ba37fa0ada43e4cbf6bbd5553eae410","unresolved":false,"context_lines":[{"line_number":466,"context_line":""},{"line_number":467,"context_line":"    if is_service_enabled n-api-meta ; then"},{"line_number":468,"context_line":"        if is_service_enabled q-ovn-metadata-agent ; then"},{"line_number":469,"context_line":"            iniset $NOVA_CONF neutron service_metadata_proxy True"},{"line_number":470,"context_line":"        fi"},{"line_number":471,"context_line":"    fi"},{"line_number":472,"context_line":"}"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_570b917b","line":469,"updated":"2020-07-10 07:24:13.000000000","message":"Is this only needed on the controller for multinode jobs? Nova just disabled n-api-meta on computes.","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"24888bf14b8b89db0c362353f7b04cf2bbec1d25","unresolved":false,"context_lines":[{"line_number":466,"context_line":""},{"line_number":467,"context_line":"    if is_service_enabled n-api-meta ; then"},{"line_number":468,"context_line":"        if is_service_enabled q-ovn-metadata-agent ; then"},{"line_number":469,"context_line":"            iniset $NOVA_CONF neutron service_metadata_proxy True"},{"line_number":470,"context_line":"        fi"},{"line_number":471,"context_line":"    fi"},{"line_number":472,"context_line":"}"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_26079fcc","line":469,"in_reply_to":"bf51134e_1874a135","updated":"2020-07-14 12:37:10.000000000","message":"Well with the nested conditionals as they are now, this option will only be set on the controller, now on the computes. If that is correct, then fine. If not, you\u0027ll need to drop the outer if block.","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"07605afe232c416d672e38e391c2765be8a0b561","unresolved":false,"context_lines":[{"line_number":466,"context_line":""},{"line_number":467,"context_line":"    if is_service_enabled n-api-meta ; then"},{"line_number":468,"context_line":"        if is_service_enabled q-ovn-metadata-agent ; then"},{"line_number":469,"context_line":"            iniset $NOVA_CONF neutron service_metadata_proxy True"},{"line_number":470,"context_line":"        fi"},{"line_number":471,"context_line":"    fi"},{"line_number":472,"context_line":"}"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_3ca68e10","line":469,"in_reply_to":"bf51134e_26079fcc","updated":"2020-07-14 14:09:32.000000000","message":"Right yeah, I double checked with Daniel which was the author of these changes (and commented here too) and this is fine, this only needs to be enabled in the controller nodes.","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"87d10026e218368ba1f03870179041dcf70f5147","unresolved":false,"context_lines":[{"line_number":466,"context_line":""},{"line_number":467,"context_line":"    if is_service_enabled n-api-meta ; then"},{"line_number":468,"context_line":"        if is_service_enabled q-ovn-metadata-agent ; then"},{"line_number":469,"context_line":"            iniset $NOVA_CONF neutron service_metadata_proxy True"},{"line_number":470,"context_line":"        fi"},{"line_number":471,"context_line":"    fi"},{"line_number":472,"context_line":"}"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_e42e6e8a","line":469,"in_reply_to":"bf51134e_570b917b","updated":"2020-07-10 08:51:24.000000000","message":"In the case of OVN the ovn-metadata-agent will run on the compute nodes, it\u0027s a distributed service. So I believe we still need this.","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"226dd36390f47554c602185cf4b018ce6b277a4e","unresolved":false,"context_lines":[{"line_number":466,"context_line":""},{"line_number":467,"context_line":"    if is_service_enabled n-api-meta ; then"},{"line_number":468,"context_line":"        if is_service_enabled q-ovn-metadata-agent ; then"},{"line_number":469,"context_line":"            iniset $NOVA_CONF neutron service_metadata_proxy True"},{"line_number":470,"context_line":"        fi"},{"line_number":471,"context_line":"    fi"},{"line_number":472,"context_line":"}"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_d876a9d8","line":469,"in_reply_to":"bf51134e_6a298735","updated":"2020-07-10 13:27:16.000000000","message":"Right, good point on the multinode... OVN metadata service just proxies instances requests from the compute to the Nova metadata api endpoint.\n\nThe n-api-meta must be deployed in the cluster but not necessarily on the compute.","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"22c50481d5b45d04156790bc7ff542a911d79271","unresolved":false,"context_lines":[{"line_number":466,"context_line":""},{"line_number":467,"context_line":"    if is_service_enabled n-api-meta ; then"},{"line_number":468,"context_line":"        if is_service_enabled q-ovn-metadata-agent ; then"},{"line_number":469,"context_line":"            iniset $NOVA_CONF neutron service_metadata_proxy True"},{"line_number":470,"context_line":"        fi"},{"line_number":471,"context_line":"    fi"},{"line_number":472,"context_line":"}"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_1874a135","line":469,"in_reply_to":"bf51134e_6a298735","updated":"2020-07-10 13:57:56.000000000","message":"Thanks for the reply, I just checked it and I was wrong. Apprently the n-api-meta is running only on controllers for the multinode job [0], for computes it\u0027s disabled as you pointed out [1].\n\nSo I think the code is OK ?\n\n[0] https://130e95a9c5888f92af5c-5775ad363b5cad1640e005d0e8356875.ssl.cf2.rackcdn.com/735097/13/check/tempest-multinode-full-py3/31ae468/controller/logs/devstacklog.txt\n\n[1] https://130e95a9c5888f92af5c-5775ad363b5cad1640e005d0e8356875.ssl.cf2.rackcdn.com/735097/13/check/tempest-multinode-full-py3/31ae468/compute1/logs/devstacklog.txt","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"8b329e1e871a545a96962c6a85aaf9d75fb7cee7","unresolved":false,"context_lines":[{"line_number":466,"context_line":""},{"line_number":467,"context_line":"    if is_service_enabled n-api-meta ; then"},{"line_number":468,"context_line":"        if is_service_enabled q-ovn-metadata-agent ; then"},{"line_number":469,"context_line":"            iniset $NOVA_CONF neutron service_metadata_proxy True"},{"line_number":470,"context_line":"        fi"},{"line_number":471,"context_line":"    fi"},{"line_number":472,"context_line":"}"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_6a298735","line":469,"in_reply_to":"bf51134e_e42e6e8a","updated":"2020-07-10 11:04:59.000000000","message":"So I think then you need to drop the dependency on n-api-meta. Can you double-check this by running a multinode job that exercises the metadata API?","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"65f3c49b2ba37fa0ada43e4cbf6bbd5553eae410","unresolved":false,"context_lines":[{"line_number":596,"context_line":"        fi"},{"line_number":597,"context_line":"    fi"},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"    cd $_pwd"},{"line_number":600,"context_line":"}"},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"function _start_ovn_services {"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_7753356c","line":599,"updated":"2020-07-10 07:24:13.000000000","message":"What is this for?","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"87d10026e218368ba1f03870179041dcf70f5147","unresolved":false,"context_lines":[{"line_number":596,"context_line":"        fi"},{"line_number":597,"context_line":"    fi"},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"    cd $_pwd"},{"line_number":600,"context_line":"}"},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"function _start_ovn_services {"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_64589e30","line":599,"in_reply_to":"bf51134e_7753356c","updated":"2020-07-10 08:51:24.000000000","message":"Good point, no idea[0]. I can try to get rid of it.\n\n[0] Since I copied the code from the neutron tree as-is I don\u0027t know all of it.","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"65f3c49b2ba37fa0ada43e4cbf6bbd5553eae410","unresolved":false,"context_lines":[{"line_number":685,"context_line":""},{"line_number":686,"context_line":"function _stop_ovs_dp {"},{"line_number":687,"context_line":"    sudo ovs-dpctl dump-dps | sudo xargs -n1 ovs-dpctl del-dp"},{"line_number":688,"context_line":"    is_kernel_module_loaded vport_geneve \u0026\u0026 sudo rmmod vport_geneve"},{"line_number":689,"context_line":"    is_kernel_module_loaded vport_vxlan \u0026\u0026 sudo rmmod vport_vxlan"},{"line_number":690,"context_line":"    is_kernel_module_loaded openvswitch \u0026\u0026 sudo rmmod openvswitch"},{"line_number":691,"context_line":"}"},{"line_number":692,"context_line":""},{"line_number":693,"context_line":"function stop_ovn {"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_cb1edcb9","line":690,"range":{"start_line":688,"start_character":4,"end_line":690,"end_character":65},"updated":"2020-07-10 07:24:13.000000000","message":"why not use\n\nmodprobe -q -r $all_those_mods || true\n\nwould also get rid of that helper func","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"87d10026e218368ba1f03870179041dcf70f5147","unresolved":false,"context_lines":[{"line_number":685,"context_line":""},{"line_number":686,"context_line":"function _stop_ovs_dp {"},{"line_number":687,"context_line":"    sudo ovs-dpctl dump-dps | sudo xargs -n1 ovs-dpctl del-dp"},{"line_number":688,"context_line":"    is_kernel_module_loaded vport_geneve \u0026\u0026 sudo rmmod vport_geneve"},{"line_number":689,"context_line":"    is_kernel_module_loaded vport_vxlan \u0026\u0026 sudo rmmod vport_vxlan"},{"line_number":690,"context_line":"    is_kernel_module_loaded openvswitch \u0026\u0026 sudo rmmod openvswitch"},{"line_number":691,"context_line":"}"},{"line_number":692,"context_line":""},{"line_number":693,"context_line":"function stop_ovn {"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_44763aa6","line":690,"range":{"start_line":688,"start_character":4,"end_line":690,"end_character":65},"in_reply_to":"bf51134e_cb1edcb9","updated":"2020-07-10 08:51:24.000000000","message":"++ will do","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"65f3c49b2ba37fa0ada43e4cbf6bbd5553eae410","unresolved":false,"context_lines":[{"line_number":740,"context_line":"    sudo rm -f $OVN_RUNDIR"},{"line_number":741,"context_line":"}"},{"line_number":742,"context_line":""},{"line_number":743,"context_line":"function neutron_plugin_create_nova_conf {"},{"line_number":744,"context_line":"    :"},{"line_number":745,"context_line":"}"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_8b3fc423","line":743,"updated":"2020-07-10 07:24:13.000000000","message":"This isn\u0027t a plugin anymore, can this be handled in nova code directly?","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"87d10026e218368ba1f03870179041dcf70f5147","unresolved":false,"context_lines":[{"line_number":740,"context_line":"    sudo rm -f $OVN_RUNDIR"},{"line_number":741,"context_line":"}"},{"line_number":742,"context_line":""},{"line_number":743,"context_line":"function neutron_plugin_create_nova_conf {"},{"line_number":744,"context_line":"    :"},{"line_number":745,"context_line":"}"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bf51134e_c469aabe","line":743,"in_reply_to":"bf51134e_8b3fc423","updated":"2020-07-10 08:51:24.000000000","message":"I remember this was being invoked by the new neutron devstack module (instead of the neutron-legacy) but maybe just because we were a plugin as you mentioned. I can try to get rid of it here.","commit_id":"40fe6f126529c62e3b11b0e91592d2f241919f4b"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"5bde92c75efcd82b5bfa234118f2c9c8c0935d16","unresolved":false,"context_lines":[{"line_number":121,"context_line":"Q_ML2_TENANT_NETWORK_TYPE\u003d${Q_ML2_TENANT_NETWORK_TYPE:-\"geneve\"}"},{"line_number":122,"context_line":"Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS\u003d${Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS:-\"vni_ranges\u003d1:65536\"}"},{"line_number":123,"context_line":"Q_ML2_PLUGIN_EXT_DRIVERS\u003d${Q_ML2_PLUGIN_EXT_DRIVERS:-port_security,dns,qos}"},{"line_number":124,"context_line":"ML2_L3_PLUGIN\u003d\"ovn-router,trunk\""},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"# Utility Functions"}],"source_content_type":"application/x-shellscript","patch_set":11,"id":"9f560f44_52253a08","line":124,"range":{"start_line":124,"start_character":15,"end_line":124,"end_character":31},"updated":"2020-08-06 07:48:29.000000000","message":"why there are 2 plugins given here?","commit_id":"ce557194ced2612f407ddb329730374666dd5f39"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"593aa01ec052d0c9def10950fbde3a10e2cbb926","unresolved":false,"context_lines":[{"line_number":121,"context_line":"Q_ML2_TENANT_NETWORK_TYPE\u003d${Q_ML2_TENANT_NETWORK_TYPE:-\"geneve\"}"},{"line_number":122,"context_line":"Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS\u003d${Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS:-\"vni_ranges\u003d1:65536\"}"},{"line_number":123,"context_line":"Q_ML2_PLUGIN_EXT_DRIVERS\u003d${Q_ML2_PLUGIN_EXT_DRIVERS:-port_security,dns,qos}"},{"line_number":124,"context_line":"ML2_L3_PLUGIN\u003d\"ovn-router,trunk\""},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"# Utility Functions"}],"source_content_type":"application/x-shellscript","patch_set":11,"id":"9f560f44_f81c2d79","line":124,"range":{"start_line":124,"start_character":15,"end_line":124,"end_character":31},"in_reply_to":"9f560f44_38834506","updated":"2020-08-06 09:54:21.000000000","message":"I am sorry, I\u0027ve missed this comment.\n\nSo I had to track down this change cause I wasn\u0027t sure, the change was introduced at [0] (by me, short memory sorry). This seems to be needed for being able to run the trunk tests as part of tempest.\n\nI wonder if we need \"trunk\" by default here or would be better to enable it at the job definition in zuul. Is there a preference for this ?\n\n[0] https://github.com/openstack/networking-ovn/commit/74a495cecb95da04d89deb2fb3b82bc73dc0b24c","commit_id":"ce557194ced2612f407ddb329730374666dd5f39"},{"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":"48749fe737eb50705a95f0c1d0e5a17ea9150f3f","unresolved":false,"context_lines":[{"line_number":121,"context_line":"Q_ML2_TENANT_NETWORK_TYPE\u003d${Q_ML2_TENANT_NETWORK_TYPE:-\"geneve\"}"},{"line_number":122,"context_line":"Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS\u003d${Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS:-\"vni_ranges\u003d1:65536\"}"},{"line_number":123,"context_line":"Q_ML2_PLUGIN_EXT_DRIVERS\u003d${Q_ML2_PLUGIN_EXT_DRIVERS:-port_security,dns,qos}"},{"line_number":124,"context_line":"ML2_L3_PLUGIN\u003d\"ovn-router,trunk\""},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"# Utility Functions"}],"source_content_type":"application/x-shellscript","patch_set":11,"id":"9f560f44_38834506","line":124,"range":{"start_line":124,"start_character":15,"end_line":124,"end_character":31},"in_reply_to":"9f560f44_52253a08","updated":"2020-08-06 09:31:38.000000000","message":"seconding question","commit_id":"ce557194ced2612f407ddb329730374666dd5f39"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"9dfd01b37438c5f17e584d12503c77ef872bdbca","unresolved":false,"context_lines":[{"line_number":121,"context_line":"Q_ML2_TENANT_NETWORK_TYPE\u003d${Q_ML2_TENANT_NETWORK_TYPE:-\"geneve\"}"},{"line_number":122,"context_line":"Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS\u003d${Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS:-\"vni_ranges\u003d1:65536\"}"},{"line_number":123,"context_line":"Q_ML2_PLUGIN_EXT_DRIVERS\u003d${Q_ML2_PLUGIN_EXT_DRIVERS:-port_security,dns,qos}"},{"line_number":124,"context_line":"ML2_L3_PLUGIN\u003d\"ovn-router,trunk\""},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"# Utility Functions"}],"source_content_type":"application/x-shellscript","patch_set":11,"id":"9f560f44_6367d2ea","line":124,"range":{"start_line":124,"start_character":15,"end_line":124,"end_character":31},"in_reply_to":"9f560f44_c31b3e70","updated":"2020-08-06 10:00:58.000000000","message":"Thanks! That makes sense, I will remove it from here and see how I can enable it the right way.","commit_id":"ce557194ced2612f407ddb329730374666dd5f39"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"1f2b22550b752abfb105aa2e5919da5b79519e0d","unresolved":false,"context_lines":[{"line_number":121,"context_line":"Q_ML2_TENANT_NETWORK_TYPE\u003d${Q_ML2_TENANT_NETWORK_TYPE:-\"geneve\"}"},{"line_number":122,"context_line":"Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS\u003d${Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS:-\"vni_ranges\u003d1:65536\"}"},{"line_number":123,"context_line":"Q_ML2_PLUGIN_EXT_DRIVERS\u003d${Q_ML2_PLUGIN_EXT_DRIVERS:-port_security,dns,qos}"},{"line_number":124,"context_line":"ML2_L3_PLUGIN\u003d\"ovn-router,trunk\""},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"# Utility Functions"}],"source_content_type":"application/x-shellscript","patch_set":11,"id":"9f560f44_c31b3e70","line":124,"range":{"start_line":124,"start_character":15,"end_line":124,"end_character":31},"in_reply_to":"9f560f44_f81c2d79","updated":"2020-08-06 09:57:26.000000000","message":"I would not add it here by default as it is IMO a bit confusing. Variable name says that this should be one plugin and that is should be L3 plugin. Now this is a list and trunk is not L3 related :)","commit_id":"ce557194ced2612f407ddb329730374666dd5f39"},{"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":"291ca5ce211d7569b4decd4d5db83445c5c36ff1","unresolved":false,"context_lines":[{"line_number":121,"context_line":"Q_ML2_TENANT_NETWORK_TYPE\u003d${Q_ML2_TENANT_NETWORK_TYPE:-\"geneve\"}"},{"line_number":122,"context_line":"Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS\u003d${Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS:-\"vni_ranges\u003d1:65536\"}"},{"line_number":123,"context_line":"Q_ML2_PLUGIN_EXT_DRIVERS\u003d${Q_ML2_PLUGIN_EXT_DRIVERS:-port_security,dns,qos}"},{"line_number":124,"context_line":"ML2_L3_PLUGIN\u003d\"ovn-router\""},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"# Utility Functions"}],"source_content_type":"application/x-shellscript","patch_set":13,"id":"9f560f44_e42da895","line":124,"range":{"start_line":124,"start_character":0,"end_line":124,"end_character":13},"updated":"2020-08-06 13:17:53.000000000","message":"ok, so this is actually bad as it overwrites the job customizations; better option would be to fix the default for ml2 based on Q_AGENT; i.e. use the DEFAULT_blah_blah pattern with ML2_L3_PLUGIN in lib/neutron_plugins/ml2#47","commit_id":"190414e6abb243eda2be3163fb48df2bba3516bc"},{"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":"73e2e9e23e8e1fb4c0aa4012865763ff2e7b02e5","unresolved":false,"context_lines":[{"line_number":121,"context_line":"Q_ML2_TENANT_NETWORK_TYPE\u003d${Q_ML2_TENANT_NETWORK_TYPE:-\"geneve\"}"},{"line_number":122,"context_line":"Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS\u003d${Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS:-\"vni_ranges\u003d1:65536\"}"},{"line_number":123,"context_line":"Q_ML2_PLUGIN_EXT_DRIVERS\u003d${Q_ML2_PLUGIN_EXT_DRIVERS:-port_security,dns,qos}"},{"line_number":124,"context_line":"ML2_L3_PLUGIN\u003d\"ovn-router\""},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"# Utility Functions"}],"source_content_type":"application/x-shellscript","patch_set":13,"id":"9f560f44_8ed20627","line":124,"range":{"start_line":124,"start_character":0,"end_line":124,"end_character":13},"in_reply_to":"9f560f44_5ba42e08","updated":"2020-08-06 15:58:52.000000000","message":"Ad 1) It\u0027s already like this in ml2, empty gets set as router.\n\nAd 2) The problem I am trying to tackle here is when one wants to override this variable at Zuul level and ovn just overrides it.\n\nI was thinking about seeding the variable with DEFAULT_ prefix before ml2 is sourced since ml2 is sourced BEFORE ovn is (and use it there instead of forced \u0027router\u0027). But it might actually make more sense to source ovn BEFORE ml2 and then just use ML2_L3_PLUGIN\u003d${ML2_L3_PLUGIN:-ovn} in here.\n\nThe referenced drivers set these in a different place but that\u0027s inflexible and exactly what I\u0027m trying to avoid so that you can easily test it with trunk.","commit_id":"190414e6abb243eda2be3163fb48df2bba3516bc"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"0308fdc684cb3d17a5e08d5dcdd62afec0070b34","unresolved":false,"context_lines":[{"line_number":121,"context_line":"Q_ML2_TENANT_NETWORK_TYPE\u003d${Q_ML2_TENANT_NETWORK_TYPE:-\"geneve\"}"},{"line_number":122,"context_line":"Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS\u003d${Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS:-\"vni_ranges\u003d1:65536\"}"},{"line_number":123,"context_line":"Q_ML2_PLUGIN_EXT_DRIVERS\u003d${Q_ML2_PLUGIN_EXT_DRIVERS:-port_security,dns,qos}"},{"line_number":124,"context_line":"ML2_L3_PLUGIN\u003d\"ovn-router\""},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"# Utility Functions"}],"source_content_type":"application/x-shellscript","patch_set":13,"id":"9f560f44_2a82b8c8","line":124,"range":{"start_line":124,"start_character":0,"end_line":124,"end_character":13},"in_reply_to":"9f560f44_8e8046f7","updated":"2020-08-07 08:40:40.000000000","message":"Thanks Radoslaw! It makes sense, yeah sourcing it before and then checking if it\u0027s set makes a lot of sense to me. I will update the patch to do it.\n\nThank you!","commit_id":"190414e6abb243eda2be3163fb48df2bba3516bc"},{"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":"00f7d11e38df9a391a2c49b45390d18929cbb768","unresolved":false,"context_lines":[{"line_number":121,"context_line":"Q_ML2_TENANT_NETWORK_TYPE\u003d${Q_ML2_TENANT_NETWORK_TYPE:-\"geneve\"}"},{"line_number":122,"context_line":"Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS\u003d${Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS:-\"vni_ranges\u003d1:65536\"}"},{"line_number":123,"context_line":"Q_ML2_PLUGIN_EXT_DRIVERS\u003d${Q_ML2_PLUGIN_EXT_DRIVERS:-port_security,dns,qos}"},{"line_number":124,"context_line":"ML2_L3_PLUGIN\u003d\"ovn-router\""},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"# Utility Functions"}],"source_content_type":"application/x-shellscript","patch_set":13,"id":"9f560f44_8e8046f7","line":124,"range":{"start_line":124,"start_character":0,"end_line":124,"end_character":13},"in_reply_to":"9f560f44_8ed20627","updated":"2020-08-06 16:00:50.000000000","message":"* set without colon obviously, just -","commit_id":"190414e6abb243eda2be3163fb48df2bba3516bc"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"93f9243ca7e742bc99e4414bb919a546b18ec536","unresolved":false,"context_lines":[{"line_number":121,"context_line":"Q_ML2_TENANT_NETWORK_TYPE\u003d${Q_ML2_TENANT_NETWORK_TYPE:-\"geneve\"}"},{"line_number":122,"context_line":"Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS\u003d${Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS:-\"vni_ranges\u003d1:65536\"}"},{"line_number":123,"context_line":"Q_ML2_PLUGIN_EXT_DRIVERS\u003d${Q_ML2_PLUGIN_EXT_DRIVERS:-port_security,dns,qos}"},{"line_number":124,"context_line":"ML2_L3_PLUGIN\u003d\"ovn-router\""},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"# Utility Functions"}],"source_content_type":"application/x-shellscript","patch_set":13,"id":"9f560f44_5ba42e08","line":124,"range":{"start_line":124,"start_character":0,"end_line":124,"end_character":13},"in_reply_to":"9f560f44_e42da895","updated":"2020-08-06 15:14:25.000000000","message":"Just double-checking my understanding here. A have a few questions/comments.\n\n1)\nThe comment on lib/neutron_plugins/ml2#47 says that this variable should be allowed to be empty [0]:\n\n   # Make sure it is able to set empty to ML2_L3_PLUGIN.\n\nAnd I can see this being empty in some places [1]. By DEFAULT_* mechanism do you mean something like this:\n\nML2_L3_PLUGIN\u003d${ML2_L3_PLUGIN:-router}\n\nCause if so I may end up breaking that empty constraint.\n\n2)\nRe: Having a default based on the Q_AGENT. This is kinda as-is now I believe because this file will only be sourced if Q_AGENT \u003d\u003d \"ovn\" [2].\n\nI see other drivers doing similar things for example: [3][4]\n\n...\n\nSo maybe I misunderstood your suggestion here but this variable seems like something that drivers should overwrite (or they just often do like we did).\n\nAlso, maybe I misunderstood the DEFAULT_* mechanism you proposed, if so, mind pointing me to an example ? I looked at some but they seem to use that syntax from point 1).\n\n\n[0] https://opendev.org/openstack/devstack/src/branch/master/lib/neutron_plugins/ml2#L46\n\n[1] https://opendev.org/openstack/nova-powervm/src/branch/master/devstack/local.conf.aio-sea-localdisk#L27\n\n[2] https://review.opendev.org/#/c/734621/13/lib/neutron-legacy@285\n\n[3] https://opendev.org/x/networking-huawei/src/branch/master/devstack/settings#L6\n\n[4] https://opendev.org/x/networking-fortinet/src/branch/master/devstack/settings#L4\n\nThanks for the review!","commit_id":"190414e6abb243eda2be3163fb48df2bba3516bc"},{"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":"1f683476e0458b692f223aaf8e373f98d8fff01b","unresolved":false,"context_lines":[{"line_number":121,"context_line":"Q_ML2_TENANT_NETWORK_TYPE\u003d${Q_ML2_TENANT_NETWORK_TYPE:-\"geneve\"}"},{"line_number":122,"context_line":"Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS\u003d${Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS:-\"vni_ranges\u003d1:65536\"}"},{"line_number":123,"context_line":"Q_ML2_PLUGIN_EXT_DRIVERS\u003d${Q_ML2_PLUGIN_EXT_DRIVERS:-port_security,dns,qos}"},{"line_number":124,"context_line":"ML2_L3_PLUGIN\u003d${ML2_L3_PLUGIN:-\"ovn-router\"}"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"# Utility Functions"}],"source_content_type":"application/x-shellscript","patch_set":14,"id":"9f560f44_8db95e16","line":124,"range":{"start_line":124,"start_character":29,"end_line":124,"end_character":30},"updated":"2020-08-07 09:28:30.000000000","message":"I tried pointing out I made a mistake in my first message and wanted to write it without the colon, will fix.","commit_id":"5489a31570431b15288e0cf5cc78a34869095d9a"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"bd55bdd09a8e27393c4ef26732e833254f337152","unresolved":false,"context_lines":[{"line_number":121,"context_line":"Q_ML2_TENANT_NETWORK_TYPE\u003d${Q_ML2_TENANT_NETWORK_TYPE:-\"geneve\"}"},{"line_number":122,"context_line":"Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS\u003d${Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS:-\"vni_ranges\u003d1:65536\"}"},{"line_number":123,"context_line":"Q_ML2_PLUGIN_EXT_DRIVERS\u003d${Q_ML2_PLUGIN_EXT_DRIVERS:-port_security,dns,qos}"},{"line_number":124,"context_line":"ML2_L3_PLUGIN\u003d${ML2_L3_PLUGIN:-\"ovn-router\"}"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"# Utility Functions"}],"source_content_type":"application/x-shellscript","patch_set":14,"id":"9f560f44_ed2d7afe","line":124,"range":{"start_line":124,"start_character":29,"end_line":124,"end_character":30},"in_reply_to":"9f560f44_8db95e16","updated":"2020-08-07 09:50:28.000000000","message":"Ops thanks for the update!","commit_id":"5489a31570431b15288e0cf5cc78a34869095d9a"},{"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":"6b6ad066420c494749d05de188c3ca7c611bcee2","unresolved":false,"context_lines":[{"line_number":114,"context_line":"# Defaults Overwrite"},{"line_number":115,"context_line":"# ------------------"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Q_PLUGIN\u003d${Q_PLUGIN:-\"ml2\"}"},{"line_number":118,"context_line":"Q_AGENT\u003d${Q_AGENT:-\"ovn\"}"},{"line_number":119,"context_line":"Q_ML2_PLUGIN_MECHANISM_DRIVERS\u003d${Q_ML2_PLUGIN_MECHANISM_DRIVERS:-ovn,logger}"},{"line_number":120,"context_line":"Q_ML2_PLUGIN_TYPE_DRIVERS\u003d${Q_ML2_PLUGIN_TYPE_DRIVERS:-local,flat,vlan,geneve}"},{"line_number":121,"context_line":"Q_ML2_TENANT_NETWORK_TYPE\u003d${Q_ML2_TENANT_NETWORK_TYPE:-\"geneve\"}"},{"line_number":122,"context_line":"Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS\u003d${Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS:-\"vni_ranges\u003d1:65536\"}"},{"line_number":123,"context_line":"Q_ML2_PLUGIN_EXT_DRIVERS\u003d${Q_ML2_PLUGIN_EXT_DRIVERS:-port_security,dns,qos}"},{"line_number":124,"context_line":"# this one allows empty:"},{"line_number":125,"context_line":"ML2_L3_PLUGIN\u003d${ML2_L3_PLUGIN-\"ovn-router\"}"},{"line_number":126,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":16,"id":"9f560f44_a0337261","line":123,"range":{"start_line":117,"start_character":0,"end_line":123,"end_character":75},"updated":"2020-08-10 11:42:28.000000000","message":"(discussion continued) are these pretty much noop atm then?","commit_id":"1602f6eac57dc97c20d88fa6e977ab59d841236c"},{"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":"403bfadb303b7f331b48208d938021b61dd236a2","unresolved":false,"context_lines":[{"line_number":114,"context_line":"# Defaults Overwrite"},{"line_number":115,"context_line":"# ------------------"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Q_PLUGIN\u003d${Q_PLUGIN:-\"ml2\"}"},{"line_number":118,"context_line":"Q_AGENT\u003d${Q_AGENT:-\"ovn\"}"},{"line_number":119,"context_line":"Q_ML2_PLUGIN_MECHANISM_DRIVERS\u003d${Q_ML2_PLUGIN_MECHANISM_DRIVERS:-ovn,logger}"},{"line_number":120,"context_line":"Q_ML2_PLUGIN_TYPE_DRIVERS\u003d${Q_ML2_PLUGIN_TYPE_DRIVERS:-local,flat,vlan,geneve}"},{"line_number":121,"context_line":"Q_ML2_TENANT_NETWORK_TYPE\u003d${Q_ML2_TENANT_NETWORK_TYPE:-\"geneve\"}"},{"line_number":122,"context_line":"Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS\u003d${Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS:-\"vni_ranges\u003d1:65536\"}"},{"line_number":123,"context_line":"Q_ML2_PLUGIN_EXT_DRIVERS\u003d${Q_ML2_PLUGIN_EXT_DRIVERS:-port_security,dns,qos}"},{"line_number":124,"context_line":"# this one allows empty:"},{"line_number":125,"context_line":"ML2_L3_PLUGIN\u003d${ML2_L3_PLUGIN-\"ovn-router\"}"},{"line_number":126,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":16,"id":"9f560f44_377b228c","line":123,"range":{"start_line":117,"start_character":0,"end_line":123,"end_character":75},"in_reply_to":"9f560f44_202da2a7","updated":"2020-08-10 15:16:42.000000000","message":"Yeah, I\u0027m having hard time deciding. :-) Maybe some other cores have some opinion on that?","commit_id":"1602f6eac57dc97c20d88fa6e977ab59d841236c"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"fa73c65b24876893fbad0478e22d7090262cd19c","unresolved":false,"context_lines":[{"line_number":114,"context_line":"# Defaults Overwrite"},{"line_number":115,"context_line":"# ------------------"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Q_PLUGIN\u003d${Q_PLUGIN:-\"ml2\"}"},{"line_number":118,"context_line":"Q_AGENT\u003d${Q_AGENT:-\"ovn\"}"},{"line_number":119,"context_line":"Q_ML2_PLUGIN_MECHANISM_DRIVERS\u003d${Q_ML2_PLUGIN_MECHANISM_DRIVERS:-ovn,logger}"},{"line_number":120,"context_line":"Q_ML2_PLUGIN_TYPE_DRIVERS\u003d${Q_ML2_PLUGIN_TYPE_DRIVERS:-local,flat,vlan,geneve}"},{"line_number":121,"context_line":"Q_ML2_TENANT_NETWORK_TYPE\u003d${Q_ML2_TENANT_NETWORK_TYPE:-\"geneve\"}"},{"line_number":122,"context_line":"Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS\u003d${Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS:-\"vni_ranges\u003d1:65536\"}"},{"line_number":123,"context_line":"Q_ML2_PLUGIN_EXT_DRIVERS\u003d${Q_ML2_PLUGIN_EXT_DRIVERS:-port_security,dns,qos}"},{"line_number":124,"context_line":"# this one allows empty:"},{"line_number":125,"context_line":"ML2_L3_PLUGIN\u003d${ML2_L3_PLUGIN-\"ovn-router\"}"},{"line_number":126,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":16,"id":"9f560f44_17f25e9a","line":123,"range":{"start_line":117,"start_character":0,"end_line":123,"end_character":75},"in_reply_to":"9f560f44_377b228c","updated":"2020-08-10 15:48:06.000000000","message":"heh yeah\n\noverall I think makes sense to make the changes in the \"ml2\" module because bothm ml2/ovs and ml2/ovn are the drivers included in the neutron repository. So if the defaults for ml2/ovs is in that file, I think it makes an argument to have the ml2/ovn defaults there too. Food for thought.","commit_id":"1602f6eac57dc97c20d88fa6e977ab59d841236c"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"6713c799b78b34106bd9305dc72f9ffcc5211139","unresolved":false,"context_lines":[{"line_number":114,"context_line":"# Defaults Overwrite"},{"line_number":115,"context_line":"# ------------------"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Q_PLUGIN\u003d${Q_PLUGIN:-\"ml2\"}"},{"line_number":118,"context_line":"Q_AGENT\u003d${Q_AGENT:-\"ovn\"}"},{"line_number":119,"context_line":"Q_ML2_PLUGIN_MECHANISM_DRIVERS\u003d${Q_ML2_PLUGIN_MECHANISM_DRIVERS:-ovn,logger}"},{"line_number":120,"context_line":"Q_ML2_PLUGIN_TYPE_DRIVERS\u003d${Q_ML2_PLUGIN_TYPE_DRIVERS:-local,flat,vlan,geneve}"},{"line_number":121,"context_line":"Q_ML2_TENANT_NETWORK_TYPE\u003d${Q_ML2_TENANT_NETWORK_TYPE:-\"geneve\"}"},{"line_number":122,"context_line":"Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS\u003d${Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS:-\"vni_ranges\u003d1:65536\"}"},{"line_number":123,"context_line":"Q_ML2_PLUGIN_EXT_DRIVERS\u003d${Q_ML2_PLUGIN_EXT_DRIVERS:-port_security,dns,qos}"},{"line_number":124,"context_line":"# this one allows empty:"},{"line_number":125,"context_line":"ML2_L3_PLUGIN\u003d${ML2_L3_PLUGIN-\"ovn-router\"}"},{"line_number":126,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":16,"id":"9f560f44_202da2a7","line":123,"range":{"start_line":117,"start_character":0,"end_line":123,"end_character":75},"in_reply_to":"9f560f44_a0337261","updated":"2020-08-10 12:25:46.000000000","message":"I would say so, we have a bit of a chicken and egg problem due to the Q_AGENT value. I was thinking, maybe it would be best to change the ml2 module and have different default values based on the Q_AGENT driver ?\n\nfor example:\n\nif [[ $Q_AGENT \u003d\u003d \"ovn\" ]]; then\n    Q_ML2_PLUGIN_MECHANISM_DRIVERS\u003d${Q_ML2_PLUGIN_MECHANISM_DRIVERS:-ovn,logger}\n    Q_Ml2_...\nelse\n    Q_ML2_PLUGIN_MECHANISM_DRIVERS\u003d${Q_ML2_PLUGIN_MECHANISM_DRIVERS:-openvswitch,linuxbridge}\n    Q_Ml2_...\nfi\n\nAnd then we can remove these values from here, what do you think ?","commit_id":"1602f6eac57dc97c20d88fa6e977ab59d841236c"}],"lib/neutron_plugins/ovn_agent":[{"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":"3c634677a430a5556d834d0685ae55cf3aa8a3fc","unresolved":false,"context_lines":[{"line_number":114,"context_line":"# Defaults Overwrite"},{"line_number":115,"context_line":"# ------------------"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Q_PLUGIN\u003d${Q_PLUGIN:-\"ml2\"}"},{"line_number":118,"context_line":"Q_AGENT\u003d${Q_AGENT:-\"ovn\"}"},{"line_number":119,"context_line":"Q_ML2_PLUGIN_MECHANISM_DRIVERS\u003d${Q_ML2_PLUGIN_MECHANISM_DRIVERS:-ovn,logger}"},{"line_number":120,"context_line":"Q_ML2_PLUGIN_TYPE_DRIVERS\u003d${Q_ML2_PLUGIN_TYPE_DRIVERS:-local,flat,vlan,geneve}"},{"line_number":121,"context_line":"Q_ML2_TENANT_NETWORK_TYPE\u003d${Q_ML2_TENANT_NETWORK_TYPE:-\"geneve\"}"}],"source_content_type":"application/x-shellscript","patch_set":18,"id":"9f560f44_cb6795ea","line":118,"range":{"start_line":117,"start_character":0,"end_line":118,"end_character":25},"updated":"2020-08-11 14:21:09.000000000","message":"should not be set","commit_id":"2b6ec3235fb4128ceb30a7067668ea7426a6f8c7"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"2ee55ce98c363d04428bd0c53d74d4fe77f83c6f","unresolved":false,"context_lines":[{"line_number":114,"context_line":"# Defaults Overwrite"},{"line_number":115,"context_line":"# ------------------"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Q_PLUGIN\u003d${Q_PLUGIN:-\"ml2\"}"},{"line_number":118,"context_line":"Q_AGENT\u003d${Q_AGENT:-\"ovn\"}"},{"line_number":119,"context_line":"Q_ML2_PLUGIN_MECHANISM_DRIVERS\u003d${Q_ML2_PLUGIN_MECHANISM_DRIVERS:-ovn,logger}"},{"line_number":120,"context_line":"Q_ML2_PLUGIN_TYPE_DRIVERS\u003d${Q_ML2_PLUGIN_TYPE_DRIVERS:-local,flat,vlan,geneve}"},{"line_number":121,"context_line":"Q_ML2_TENANT_NETWORK_TYPE\u003d${Q_ML2_TENANT_NETWORK_TYPE:-\"geneve\"}"}],"source_content_type":"application/x-shellscript","patch_set":18,"id":"9f560f44_ebc41962","line":118,"range":{"start_line":117,"start_character":0,"end_line":118,"end_character":25},"in_reply_to":"9f560f44_cb6795ea","updated":"2020-08-11 14:45:27.000000000","message":"++ will be removed!","commit_id":"2b6ec3235fb4128ceb30a7067668ea7426a6f8c7"}],"stack.sh":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6a572e7a610ce85758ab21ed547692e0244062d2","unresolved":false,"context_lines":[{"line_number":1267,"context_line":"    start_nova_api"},{"line_number":1268,"context_line":"fi"},{"line_number":1269,"context_line":""},{"line_number":1270,"context_line":"if is_service_enabled ovn-controller; then"},{"line_number":1271,"context_line":"    echo_summary \"Starting OVN services\""},{"line_number":1272,"context_line":"    start_ovn_services"},{"line_number":1273,"context_line":"fi"}],"source_content_type":"text/x-sh","patch_set":9,"id":"bf51134e_a661d6ab","line":1270,"updated":"2020-07-15 16:18:30.000000000","message":"Do we need that too if \"ovn-controller-vtep\"?","commit_id":"ba3bdf99f55f14a7ba8df26bc9f0dc18927688f0"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"a3c9f10f359f9c7676556d2e6bac0aa109305c61","unresolved":false,"context_lines":[{"line_number":1267,"context_line":"    start_nova_api"},{"line_number":1268,"context_line":"fi"},{"line_number":1269,"context_line":""},{"line_number":1270,"context_line":"if is_service_enabled ovn-controller; then"},{"line_number":1271,"context_line":"    echo_summary \"Starting OVN services\""},{"line_number":1272,"context_line":"    start_ovn_services"},{"line_number":1273,"context_line":"fi"}],"source_content_type":"text/x-sh","patch_set":9,"id":"bf51134e_522b3432","line":1270,"in_reply_to":"bf51134e_a661d6ab","updated":"2020-07-17 09:22:03.000000000","message":"Oh that\u0027s a good point, I think we do indeed. I will add it here","commit_id":"ba3bdf99f55f14a7ba8df26bc9f0dc18927688f0"}],"stackrc":[{"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":"5c3a23229f1ce2f6f21d2a000450642b1c6095eb","unresolved":false,"context_lines":[{"line_number":561,"context_line":"GITREPO[\"os-traits\"]\u003d${OS_TRAITS_REPO:-${GIT_BASE}/openstack/os-traits.git}"},{"line_number":562,"context_line":"GITBRANCH[\"os-traits\"]\u003d${OS_TRAITS_BRANCH:-$TARGET_BRANCH}"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"# ovsdbapp used by neutron"},{"line_number":565,"context_line":"GITREPO[\"ovsdbapp\"]\u003d${OVSDBAPP_REPO:-${GIT_BASE}/openstack/ovsdbapp.git}"},{"line_number":566,"context_line":"GITBRANCH[\"ovsdbapp\"]\u003d${OVSDBAPP_BRANCH:-$TARGET_BRANCH}"},{"line_number":567,"context_line":"GITDIR[\"ovsdbapp\"]\u003d$DEST/ovsdbapp"}],"source_content_type":"application/x-shellscript","patch_set":10,"id":"9f560f44_e274a900","line":564,"updated":"2020-08-04 07:06:47.000000000","message":"this part sounds orthogonal to ovn; at least mention why it was added now","commit_id":"62c001aac5832ba48e1841bcd2b2e1e4c12c51b5"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"c6edef320a587b4782a24e159802fbc743ab8da0","unresolved":false,"context_lines":[{"line_number":561,"context_line":"GITREPO[\"os-traits\"]\u003d${OS_TRAITS_REPO:-${GIT_BASE}/openstack/os-traits.git}"},{"line_number":562,"context_line":"GITBRANCH[\"os-traits\"]\u003d${OS_TRAITS_BRANCH:-$TARGET_BRANCH}"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"# ovsdbapp used by neutron"},{"line_number":565,"context_line":"GITREPO[\"ovsdbapp\"]\u003d${OVSDBAPP_REPO:-${GIT_BASE}/openstack/ovsdbapp.git}"},{"line_number":566,"context_line":"GITBRANCH[\"ovsdbapp\"]\u003d${OVSDBAPP_BRANCH:-$TARGET_BRANCH}"},{"line_number":567,"context_line":"GITDIR[\"ovsdbapp\"]\u003d$DEST/ovsdbapp"}],"source_content_type":"application/x-shellscript","patch_set":10,"id":"9f560f44_6966a3c3","line":564,"in_reply_to":"9f560f44_09b0c742","updated":"2020-08-05 14:33:54.000000000","message":"I guess the reason why it wasn\u0027t added before is becuase the ovsdbapp gate test that install the lib from source runs with ml2/OVN instead of ml2/OVS","commit_id":"62c001aac5832ba48e1841bcd2b2e1e4c12c51b5"},{"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":"8a5c4af5f70f84dbf6cfa4e2eb3b11fe6e73451c","unresolved":false,"context_lines":[{"line_number":561,"context_line":"GITREPO[\"os-traits\"]\u003d${OS_TRAITS_REPO:-${GIT_BASE}/openstack/os-traits.git}"},{"line_number":562,"context_line":"GITBRANCH[\"os-traits\"]\u003d${OS_TRAITS_BRANCH:-$TARGET_BRANCH}"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"# ovsdbapp used by neutron"},{"line_number":565,"context_line":"GITREPO[\"ovsdbapp\"]\u003d${OVSDBAPP_REPO:-${GIT_BASE}/openstack/ovsdbapp.git}"},{"line_number":566,"context_line":"GITBRANCH[\"ovsdbapp\"]\u003d${OVSDBAPP_BRANCH:-$TARGET_BRANCH}"},{"line_number":567,"context_line":"GITDIR[\"ovsdbapp\"]\u003d$DEST/ovsdbapp"}],"source_content_type":"application/x-shellscript","patch_set":10,"id":"9f560f44_9b61bdac","line":564,"in_reply_to":"9f560f44_1bd81279","updated":"2020-08-05 13:10:21.000000000","message":"Was not it used by ml2 ovs too? As in openvswitch-agent?","commit_id":"62c001aac5832ba48e1841bcd2b2e1e4c12c51b5"},{"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":"c390799c5acfe409928f401e3c72505ad4b6f8e4","unresolved":false,"context_lines":[{"line_number":561,"context_line":"GITREPO[\"os-traits\"]\u003d${OS_TRAITS_REPO:-${GIT_BASE}/openstack/os-traits.git}"},{"line_number":562,"context_line":"GITBRANCH[\"os-traits\"]\u003d${OS_TRAITS_BRANCH:-$TARGET_BRANCH}"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"# ovsdbapp used by neutron"},{"line_number":565,"context_line":"GITREPO[\"ovsdbapp\"]\u003d${OVSDBAPP_REPO:-${GIT_BASE}/openstack/ovsdbapp.git}"},{"line_number":566,"context_line":"GITBRANCH[\"ovsdbapp\"]\u003d${OVSDBAPP_BRANCH:-$TARGET_BRANCH}"},{"line_number":567,"context_line":"GITDIR[\"ovsdbapp\"]\u003d$DEST/ovsdbapp"}],"source_content_type":"application/x-shellscript","patch_set":10,"id":"9f560f44_95285c97","line":564,"in_reply_to":"9f560f44_6966a3c3","updated":"2020-08-06 09:08:21.000000000","message":"It\u0027s ok, just mention it in the commit message with this info so that it is easier to follow. :-)","commit_id":"62c001aac5832ba48e1841bcd2b2e1e4c12c51b5"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"549bb8331c342976143c2b2b740aaa3ebc592202","unresolved":false,"context_lines":[{"line_number":561,"context_line":"GITREPO[\"os-traits\"]\u003d${OS_TRAITS_REPO:-${GIT_BASE}/openstack/os-traits.git}"},{"line_number":562,"context_line":"GITBRANCH[\"os-traits\"]\u003d${OS_TRAITS_BRANCH:-$TARGET_BRANCH}"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"# ovsdbapp used by neutron"},{"line_number":565,"context_line":"GITREPO[\"ovsdbapp\"]\u003d${OVSDBAPP_REPO:-${GIT_BASE}/openstack/ovsdbapp.git}"},{"line_number":566,"context_line":"GITBRANCH[\"ovsdbapp\"]\u003d${OVSDBAPP_BRANCH:-$TARGET_BRANCH}"},{"line_number":567,"context_line":"GITDIR[\"ovsdbapp\"]\u003d$DEST/ovsdbapp"}],"source_content_type":"application/x-shellscript","patch_set":10,"id":"9f560f44_78249d5e","line":564,"in_reply_to":"9f560f44_95285c97","updated":"2020-08-06 09:22:25.000000000","message":"Sure, will do! Thanks for the review","commit_id":"62c001aac5832ba48e1841bcd2b2e1e4c12c51b5"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"ef4a3ec24d9599d0d34cd5179510d8ab6365ec68","unresolved":false,"context_lines":[{"line_number":561,"context_line":"GITREPO[\"os-traits\"]\u003d${OS_TRAITS_REPO:-${GIT_BASE}/openstack/os-traits.git}"},{"line_number":562,"context_line":"GITBRANCH[\"os-traits\"]\u003d${OS_TRAITS_BRANCH:-$TARGET_BRANCH}"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"# ovsdbapp used by neutron"},{"line_number":565,"context_line":"GITREPO[\"ovsdbapp\"]\u003d${OVSDBAPP_REPO:-${GIT_BASE}/openstack/ovsdbapp.git}"},{"line_number":566,"context_line":"GITBRANCH[\"ovsdbapp\"]\u003d${OVSDBAPP_BRANCH:-$TARGET_BRANCH}"},{"line_number":567,"context_line":"GITDIR[\"ovsdbapp\"]\u003d$DEST/ovsdbapp"}],"source_content_type":"application/x-shellscript","patch_set":10,"id":"9f560f44_09b0c742","line":564,"in_reply_to":"9f560f44_9b61bdac","updated":"2020-08-05 14:31:02.000000000","message":"Oh that\u0027s right, I just double-checked it here and it is indeed, for example:\n\nneutron/agent/common/ovs_lib.py:from ovsdbapp.backend.ovs_idl import idlutils\n\nBut is this a problem to have the ovsdbapp as-is here in this file ?","commit_id":"62c001aac5832ba48e1841bcd2b2e1e4c12c51b5"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"81880502efeca0d6760c77fa328305db562d2ddc","unresolved":false,"context_lines":[{"line_number":561,"context_line":"GITREPO[\"os-traits\"]\u003d${OS_TRAITS_REPO:-${GIT_BASE}/openstack/os-traits.git}"},{"line_number":562,"context_line":"GITBRANCH[\"os-traits\"]\u003d${OS_TRAITS_BRANCH:-$TARGET_BRANCH}"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"# ovsdbapp used by neutron"},{"line_number":565,"context_line":"GITREPO[\"ovsdbapp\"]\u003d${OVSDBAPP_REPO:-${GIT_BASE}/openstack/ovsdbapp.git}"},{"line_number":566,"context_line":"GITBRANCH[\"ovsdbapp\"]\u003d${OVSDBAPP_BRANCH:-$TARGET_BRANCH}"},{"line_number":567,"context_line":"GITDIR[\"ovsdbapp\"]\u003d$DEST/ovsdbapp"}],"source_content_type":"application/x-shellscript","patch_set":10,"id":"9f560f44_1bd81279","line":564,"in_reply_to":"9f560f44_e274a900","updated":"2020-08-05 08:53:03.000000000","message":"Oh I can enhance the comment above then. The ovsdbapp is required by the OVN driver, this library is the interfaces the transactions to the OVSDBs (the \"API\" from OVN is an OVSDB called OVSDB Northbound). And we need it here cause it allows some jobs to install it from code, e.g: https://github.com/openstack/ovsdbapp/blob/master/zuul.d/ovsdbapp-jobs.yaml#L7","commit_id":"62c001aac5832ba48e1841bcd2b2e1e4c12c51b5"}],"tests/test_libs_from_pypi.sh":[{"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":"5c3a23229f1ce2f6f21d2a000450642b1c6095eb","unresolved":false,"context_lines":[{"line_number":44,"context_line":"ALL_LIBS+\u003d\" oslo.cache oslo.reports osprofiler cursive\""},{"line_number":45,"context_line":"ALL_LIBS+\u003d\" keystoneauth ironic-lib neutron-lib oslo.privsep\""},{"line_number":46,"context_line":"ALL_LIBS+\u003d\" diskimage-builder os-vif python-brick-cinderclient-ext\""},{"line_number":47,"context_line":"ALL_LIBS+\u003d\" castellan python-barbicanclient ovsdbapp\""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"# Generate the above list with"},{"line_number":50,"context_line":"# echo ${!GITREPO[@]}"}],"source_content_type":"text/x-sh","patch_set":10,"id":"9f560f44_c271a50e","line":47,"updated":"2020-08-04 07:06:47.000000000","message":"ditto","commit_id":"62c001aac5832ba48e1841bcd2b2e1e4c12c51b5"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"81880502efeca0d6760c77fa328305db562d2ddc","unresolved":false,"context_lines":[{"line_number":44,"context_line":"ALL_LIBS+\u003d\" oslo.cache oslo.reports osprofiler cursive\""},{"line_number":45,"context_line":"ALL_LIBS+\u003d\" keystoneauth ironic-lib neutron-lib oslo.privsep\""},{"line_number":46,"context_line":"ALL_LIBS+\u003d\" diskimage-builder os-vif python-brick-cinderclient-ext\""},{"line_number":47,"context_line":"ALL_LIBS+\u003d\" castellan python-barbicanclient ovsdbapp\""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"# Generate the above list with"},{"line_number":50,"context_line":"# echo ${!GITREPO[@]}"}],"source_content_type":"text/x-sh","patch_set":10,"id":"9f560f44_dbb97a15","line":47,"in_reply_to":"9f560f44_c271a50e","updated":"2020-08-05 08:53:03.000000000","message":"Thanks, I left a comment on the previous file about it.","commit_id":"62c001aac5832ba48e1841bcd2b2e1e4c12c51b5"}]}
