)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"ffa456e354469f9035ebf4565b53408fa034a323","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"24579eac_331e9c1d","updated":"2021-06-09 12:41:53.000000000","message":"it would be good to add LP bug id https://bugs.launchpad.net/puppet-vswitch/+bug/1929707 to this.","commit_id":"65d9e8a3397035eb38f77436d9c2a0edcd274475"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"8507729cec5bf10ff3b9ac2bd4d2282d9ecd2a0a","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"2e2aa2e6_c2756d1c","in_reply_to":"24579eac_331e9c1d","updated":"2021-06-09 13:02:05.000000000","message":"Once this is finalized I\u0027ll definitely add the lp bug. However this is still too early stage so that\u0027s why I hesitated to add LP bug.\n\nI expect ugly length of patch sets at this moment ... so it would be better to submit a clean commit later .","commit_id":"65d9e8a3397035eb38f77436d9c2a0edcd274475"}],"lib/puppet/provider/vs_port/networkmanager.rb":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"dcf7264979fed0f6148ec5e3dc90a600fa1775d9","unresolved":true,"context_lines":[{"line_number":64,"context_line":"            end"},{"line_number":65,"context_line":"          end"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"          properties \u003d get_address_properties() + get_address_properties(6)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"          nmcli(\u0027conn\u0027, \u0027down\u0027, connname)"},{"line_number":70,"context_line":"          # TODO(mwhahaha): this probably should be part of vs_bridge, also"}],"source_content_type":"text/x-ruby","patch_set":23,"id":"f05b4db5_1bcbef6d","line":67,"range":{"start_line":67,"start_character":21,"end_line":67,"end_character":22},"updated":"2021-07-26 14:16:00.000000000","message":"this should be +\u003d .","commit_id":"5ab6820d668dcd097740ed6377f731b171b321f1"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"269feaec56ef32dbc9dbe949f833db870b0b8c26","unresolved":false,"context_lines":[{"line_number":64,"context_line":"            end"},{"line_number":65,"context_line":"          end"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"          properties \u003d get_address_properties() + get_address_properties(6)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"          nmcli(\u0027conn\u0027, \u0027down\u0027, connname)"},{"line_number":70,"context_line":"          # TODO(mwhahaha): this probably should be part of vs_bridge, also"}],"source_content_type":"text/x-ruby","patch_set":23,"id":"5a267f94_17aa8eec","line":67,"range":{"start_line":67,"start_character":21,"end_line":67,"end_character":22},"in_reply_to":"f05b4db5_1bcbef6d","updated":"2022-01-11 05:28:06.000000000","message":"Done","commit_id":"5ab6820d668dcd097740ed6377f731b171b321f1"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"5bf02979a8c0b7b949f2d3b2db03ccb709ae8c27","unresolved":true,"context_lines":[{"line_number":61,"context_line":"            # Clone the interface mac addr to the ovs bridge."},{"line_number":62,"context_line":"            bridge_mac_address \u003d File.read(\"/sys/class/net/#{@resource[:port]}/address\").chomp"},{"line_number":63,"context_line":"            if bridge_mac_address !\u003d \u0027\u0027"},{"line_number":64,"context_line":"              properties +\u003d \"802-3-ethernet.cloned-mac-address #{mac}\""},{"line_number":65,"context_line":"            end"},{"line_number":66,"context_line":"          end"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":24,"id":"8a3a3f1e_03005979","line":64,"range":{"start_line":64,"start_character":65,"end_line":64,"end_character":68},"updated":"2021-08-02 16:43:06.000000000","message":"bridge_mac_address","commit_id":"67de260ec58a60a4e79cf4f0f01ee86308780514"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"ccd9cc38e4f8a2f2aed8c21d72f3164976e11b9f","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            # Clone the interface mac addr to the ovs bridge."},{"line_number":62,"context_line":"            bridge_mac_address \u003d File.read(\"/sys/class/net/#{@resource[:port]}/address\").chomp"},{"line_number":63,"context_line":"            if bridge_mac_address !\u003d \u0027\u0027"},{"line_number":64,"context_line":"              properties +\u003d \"802-3-ethernet.cloned-mac-address #{mac}\""},{"line_number":65,"context_line":"            end"},{"line_number":66,"context_line":"          end"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":24,"id":"8df74ed8_4fb273ab","line":64,"range":{"start_line":64,"start_character":65,"end_line":64,"end_character":68},"in_reply_to":"8a3a3f1e_03005979","updated":"2021-08-03 01:19:10.000000000","message":"Done","commit_id":"67de260ec58a60a4e79cf4f0f01ee86308780514"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"5bf02979a8c0b7b949f2d3b2db03ccb709ae8c27","unresolved":true,"context_lines":[{"line_number":72,"context_line":"          # I think the IP goes on the bridge-ovs-interface not the bridge"},{"line_number":73,"context_line":"          # need point this to the ovs-int"},{"line_number":74,"context_line":"          nmcli(\u0027conn\u0027, \u0027down\u0027, @resource[:bridge])"},{"line_number":75,"context_line":"          nmcli(\u0027conn\u0027, \u0027modify\u0027, @resource[:bridge], properties)"},{"line_number":76,"context_line":"          nmcli(\u0027conn\u0027, \u0027up\u0027, @resource[:bridge])"},{"line_number":77,"context_line":"        else"},{"line_number":78,"context_line":"          if master !\u003d @resource[:bridge]"}],"source_content_type":"text/x-ruby","patch_set":24,"id":"5db5b9cc_d89b54b3","line":75,"range":{"start_line":75,"start_character":10,"end_line":75,"end_character":65},"updated":"2021-08-02 16:43:06.000000000","message":"This line continuously fails\n\n\nDebug: Executing: \u0027/usr/bin/nmcli conn modify br-ex 802-3-ethernet.cloned-mac-address 1a:66:5b:8c:e3:19 ipv4.method manual  ipv4.addresses 127.2.0.1/24\u0027\nError: Execution of \u0027/usr/bin/nmcli conn modify br-ex 802-3-ethernet.cloned-mac-address 1a:66:5b:8c:e3:19 ipv4.method manual  ipv4.addresses 127.2.0.1/24\u0027 returned 2: Error: value for \u0027802-3-ethernet.cloned-mac-address 1a:66:5b:8c:e3:19 ipv4.method manual  ipv4.addresses 127.2.0.1/24\u0027 is missing.\nError: /Stage[main]/Main/Vs_port[loop1]/ensure: change from \u0027absent\u0027 to \u0027present\u0027 failed: Execution of \u0027/usr/bin/nmcli conn modify br-ex 802-3-ethernet.cloned-mac-address 1a:66:5b:8c:e3:19 ipv4.method manual  ipv4.addresses 127.2.0.1/24\u0027 returned 2: Error: value for \u0027802-3-ethernet.cloned-mac-address 1a:66:5b:8c:e3:19 ipv4.method manual  ipv4.addresses 127.2.0.1/24\u0027 is missing.","commit_id":"67de260ec58a60a4e79cf4f0f01ee86308780514"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"ccd9cc38e4f8a2f2aed8c21d72f3164976e11b9f","unresolved":false,"context_lines":[{"line_number":72,"context_line":"          # I think the IP goes on the bridge-ovs-interface not the bridge"},{"line_number":73,"context_line":"          # need point this to the ovs-int"},{"line_number":74,"context_line":"          nmcli(\u0027conn\u0027, \u0027down\u0027, @resource[:bridge])"},{"line_number":75,"context_line":"          nmcli(\u0027conn\u0027, \u0027modify\u0027, @resource[:bridge], properties)"},{"line_number":76,"context_line":"          nmcli(\u0027conn\u0027, \u0027up\u0027, @resource[:bridge])"},{"line_number":77,"context_line":"        else"},{"line_number":78,"context_line":"          if master !\u003d @resource[:bridge]"}],"source_content_type":"text/x-ruby","patch_set":24,"id":"eccec034_7abf60d3","line":75,"range":{"start_line":75,"start_character":10,"end_line":75,"end_character":65},"in_reply_to":"5db5b9cc_d89b54b3","updated":"2021-08-03 01:19:10.000000000","message":"Fixed by passing array using *array","commit_id":"67de260ec58a60a4e79cf4f0f01ee86308780514"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"5bf02979a8c0b7b949f2d3b2db03ccb709ae8c27","unresolved":true,"context_lines":[{"line_number":87,"context_line":"      # If the connection does not exist, create a new empty connection"},{"line_number":88,"context_line":"      # on that interface"},{"line_number":89,"context_line":"      nmcli(\u0027conn\u0027, \u0027add\u0027,"},{"line_number":90,"context_line":"        \u0027connection.type\u0027, \u0027ethernet\u0027,"},{"line_number":91,"context_line":"        \u0027connection.interface-name\u0027, @resource[:port],"},{"line_number":92,"context_line":"        \u0027con-name\u0027, @resource[:port],"},{"line_number":93,"context_line":"        \u0027connection.master\u0027, ovs_port_uuid,"}],"source_content_type":"text/x-ruby","patch_set":24,"id":"60a9da1e_1e0f3c2f","line":90,"range":{"start_line":90,"start_character":28,"end_line":90,"end_character":36},"updated":"2021-08-02 16:43:06.000000000","message":"We should obtain actual connection type instead of hard-coding this","commit_id":"67de260ec58a60a4e79cf4f0f01ee86308780514"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"ccd9cc38e4f8a2f2aed8c21d72f3164976e11b9f","unresolved":false,"context_lines":[{"line_number":87,"context_line":"      # If the connection does not exist, create a new empty connection"},{"line_number":88,"context_line":"      # on that interface"},{"line_number":89,"context_line":"      nmcli(\u0027conn\u0027, \u0027add\u0027,"},{"line_number":90,"context_line":"        \u0027connection.type\u0027, \u0027ethernet\u0027,"},{"line_number":91,"context_line":"        \u0027connection.interface-name\u0027, @resource[:port],"},{"line_number":92,"context_line":"        \u0027con-name\u0027, @resource[:port],"},{"line_number":93,"context_line":"        \u0027connection.master\u0027, ovs_port_uuid,"}],"source_content_type":"text/x-ruby","patch_set":24,"id":"c347973e_75664daa","line":90,"range":{"start_line":90,"start_character":28,"end_line":90,"end_character":36},"in_reply_to":"60a9da1e_1e0f3c2f","updated":"2021-08-03 01:19:10.000000000","message":"Done","commit_id":"67de260ec58a60a4e79cf4f0f01ee86308780514"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"5bf02979a8c0b7b949f2d3b2db03ccb709ae8c27","unresolved":true,"context_lines":[{"line_number":170,"context_line":"  end"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"  def dynamic?"},{"line_number":173,"context_line":"    dynamic_ipv6 \u003d get_connection_property(\u0027ipv4.method\u0027)"},{"line_number":174,"context_line":"    return dynamic_ipv4 \u003d\u003d \u0027auto\u0027"},{"line_number":175,"context_line":"  end"},{"line_number":176,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":24,"id":"a17e2c60_e463b182","line":173,"range":{"start_line":173,"start_character":4,"end_line":173,"end_character":16},"updated":"2021-08-02 16:43:06.000000000","message":"dynamic_ipv4","commit_id":"67de260ec58a60a4e79cf4f0f01ee86308780514"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"ccd9cc38e4f8a2f2aed8c21d72f3164976e11b9f","unresolved":false,"context_lines":[{"line_number":170,"context_line":"  end"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"  def dynamic?"},{"line_number":173,"context_line":"    dynamic_ipv6 \u003d get_connection_property(\u0027ipv4.method\u0027)"},{"line_number":174,"context_line":"    return dynamic_ipv4 \u003d\u003d \u0027auto\u0027"},{"line_number":175,"context_line":"  end"},{"line_number":176,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":24,"id":"e30189f2_b248039a","line":173,"range":{"start_line":173,"start_character":4,"end_line":173,"end_character":16},"in_reply_to":"a17e2c60_e463b182","updated":"2021-08-03 01:19:10.000000000","message":"Done","commit_id":"67de260ec58a60a4e79cf4f0f01ee86308780514"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"5bf02979a8c0b7b949f2d3b2db03ccb709ae8c27","unresolved":true,"context_lines":[{"line_number":201,"context_line":""},{"line_number":202,"context_line":"  def get_connection_property(property)"},{"line_number":203,"context_line":"    conn \u003d nmcli(\u0027conn\u0027, \u0027show\u0027, connname)"},{"line_number":204,"context_line":"    value conn[/^#{property}:\\s+ (.*?)$/, 1]"},{"line_number":205,"context_line":"    if value \u003d\u003d \u0027--\u0027"},{"line_number":206,"context_line":"      return nil"},{"line_number":207,"context_line":"    else"}],"source_content_type":"text/x-ruby","patch_set":24,"id":"4233c8ea_49fa7928","line":204,"range":{"start_line":204,"start_character":4,"end_line":204,"end_character":44},"updated":"2021-08-02 16:43:06.000000000","message":"missing \u003d between value and conn","commit_id":"67de260ec58a60a4e79cf4f0f01ee86308780514"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"ccd9cc38e4f8a2f2aed8c21d72f3164976e11b9f","unresolved":false,"context_lines":[{"line_number":201,"context_line":""},{"line_number":202,"context_line":"  def get_connection_property(property)"},{"line_number":203,"context_line":"    conn \u003d nmcli(\u0027conn\u0027, \u0027show\u0027, connname)"},{"line_number":204,"context_line":"    value conn[/^#{property}:\\s+ (.*?)$/, 1]"},{"line_number":205,"context_line":"    if value \u003d\u003d \u0027--\u0027"},{"line_number":206,"context_line":"      return nil"},{"line_number":207,"context_line":"    else"}],"source_content_type":"text/x-ruby","patch_set":24,"id":"6ef88759_6f369400","line":204,"range":{"start_line":204,"start_character":4,"end_line":204,"end_character":44},"in_reply_to":"4233c8ea_49fa7928","updated":"2021-08-03 01:19:10.000000000","message":"Done","commit_id":"67de260ec58a60a4e79cf4f0f01ee86308780514"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c2bc8ce45135ae701b40a103956977283055b185","unresolved":true,"context_lines":[{"line_number":79,"context_line":"          nmcli(\u0027conn\u0027, \u0027down\u0027, bridge_ovs_interface)"},{"line_number":80,"context_line":"          nmcli(\u0027conn\u0027, \u0027modify\u0027, bridge_ovs_interface,"},{"line_number":81,"context_line":"                *(get_address_properties()))"},{"line_number":82,"context_line":"          nmcli(\u0027conn\u0027, \u0027up\u0027, bridge_ovs_interface)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"          # Clear address properties from the original connection because now"},{"line_number":85,"context_line":"          # these properties are set on the bridge ovs interface"}],"source_content_type":"text/x-ruby","patch_set":35,"id":"fbe57aad_e5fb47af","line":82,"range":{"start_line":82,"start_character":10,"end_line":82,"end_character":51},"updated":"2021-08-16 14:38:48.000000000","message":"This should be executed after the interface is up, otherwise dhcp request fails.","commit_id":"00a4645d917cf45c868069b693379bf59b80e34c"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"269feaec56ef32dbc9dbe949f833db870b0b8c26","unresolved":false,"context_lines":[{"line_number":79,"context_line":"          nmcli(\u0027conn\u0027, \u0027down\u0027, bridge_ovs_interface)"},{"line_number":80,"context_line":"          nmcli(\u0027conn\u0027, \u0027modify\u0027, bridge_ovs_interface,"},{"line_number":81,"context_line":"                *(get_address_properties()))"},{"line_number":82,"context_line":"          nmcli(\u0027conn\u0027, \u0027up\u0027, bridge_ovs_interface)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"          # Clear address properties from the original connection because now"},{"line_number":85,"context_line":"          # these properties are set on the bridge ovs interface"}],"source_content_type":"text/x-ruby","patch_set":35,"id":"1f9c0148_956cc347","line":82,"range":{"start_line":82,"start_character":10,"end_line":82,"end_character":51},"in_reply_to":"fbe57aad_e5fb47af","updated":"2022-01-11 05:28:06.000000000","message":"Done","commit_id":"00a4645d917cf45c868069b693379bf59b80e34c"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c2bc8ce45135ae701b40a103956977283055b185","unresolved":true,"context_lines":[{"line_number":89,"context_line":"                \u0027connection.master\u0027, ovs_port_connection_uuid,"},{"line_number":90,"context_line":"                \u0027connection.slave-type\u0027, \u0027ovs-port\u0027,"},{"line_number":91,"context_line":"                \u0027connection.autoconnect\u0027, \u0027yes\u0027,"},{"line_number":92,"context_line":"                *(get_address_properties(true)))"},{"line_number":93,"context_line":"          nmcli(\u0027conn\u0027, \u0027up\u0027, @resource[:port])"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        else"}],"source_content_type":"text/x-ruby","patch_set":35,"id":"dcb1350a_ae1a8321","line":92,"range":{"start_line":92,"start_character":16,"end_line":92,"end_character":47},"updated":"2021-08-16 14:38:48.000000000","message":"I noticed this is not required and ip properties are automatically deleted when the interface is slaved to the ovs-port.","commit_id":"00a4645d917cf45c868069b693379bf59b80e34c"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"269feaec56ef32dbc9dbe949f833db870b0b8c26","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                \u0027connection.master\u0027, ovs_port_connection_uuid,"},{"line_number":90,"context_line":"                \u0027connection.slave-type\u0027, \u0027ovs-port\u0027,"},{"line_number":91,"context_line":"                \u0027connection.autoconnect\u0027, \u0027yes\u0027,"},{"line_number":92,"context_line":"                *(get_address_properties(true)))"},{"line_number":93,"context_line":"          nmcli(\u0027conn\u0027, \u0027up\u0027, @resource[:port])"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        else"}],"source_content_type":"text/x-ruby","patch_set":35,"id":"2e9d59e8_2dda25eb","line":92,"range":{"start_line":92,"start_character":16,"end_line":92,"end_character":47},"in_reply_to":"dcb1350a_ae1a8321","updated":"2022-01-11 05:28:06.000000000","message":"Done","commit_id":"00a4645d917cf45c868069b693379bf59b80e34c"}],"lib/puppet/provider/vs_port/ovs_redhat_nm.rb":[{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"1cc9d7286f5cfc90e7f086415059be0201c1c960","unresolved":true,"context_lines":[{"line_number":9,"context_line":""},{"line_number":10,"context_line":"  confine    :osfamily \u003d\u003e :redhat"},{"line_number":11,"context_line":"  defaultfor :osfamily \u003d\u003e :redhat"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"  commands :vsctl  \u003d\u003e \u0027ovs-vsctl\u0027"},{"line_number":14,"context_line":"  commands :nmcli  \u003d\u003e \u0027nmcli\u0027"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":4,"id":"46ad5416_38e33545","line":12,"updated":"2021-06-09 12:48:56.000000000","message":"are we missing the ip command?\n\n  commands :ip     \u003d\u003e \u0027ip\u0027","commit_id":"65d9e8a3397035eb38f77436d9c2a0edcd274475"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"269feaec56ef32dbc9dbe949f833db870b0b8c26","unresolved":false,"context_lines":[{"line_number":9,"context_line":""},{"line_number":10,"context_line":"  confine    :osfamily \u003d\u003e :redhat"},{"line_number":11,"context_line":"  defaultfor :osfamily \u003d\u003e :redhat"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"  commands :vsctl  \u003d\u003e \u0027ovs-vsctl\u0027"},{"line_number":14,"context_line":"  commands :nmcli  \u003d\u003e \u0027nmcli\u0027"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":4,"id":"661fdb29_058aaefe","line":12,"in_reply_to":"276a2db3_ff1ba44b","updated":"2022-01-11 05:28:06.000000000","message":"Done","commit_id":"65d9e8a3397035eb38f77436d9c2a0edcd274475"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"8507729cec5bf10ff3b9ac2bd4d2282d9ecd2a0a","unresolved":true,"context_lines":[{"line_number":9,"context_line":""},{"line_number":10,"context_line":"  confine    :osfamily \u003d\u003e :redhat"},{"line_number":11,"context_line":"  defaultfor :osfamily \u003d\u003e :redhat"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"  commands :vsctl  \u003d\u003e \u0027ovs-vsctl\u0027"},{"line_number":14,"context_line":"  commands :nmcli  \u003d\u003e \u0027nmcli\u0027"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":4,"id":"276a2db3_ff1ba44b","line":12,"in_reply_to":"46ad5416_38e33545","updated":"2021-06-09 13:02:05.000000000","message":"Yes, for current version.\n\nCurrently ip command is used to detect whether an interface uses dhcp or not. Ideally this can be replaced by checking attribute of connections. That\u0027s what I added in todo.","commit_id":"65d9e8a3397035eb38f77436d9c2a0edcd274475"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"06989e8c58c725068ed242b8eaa19b5202ddda2d","unresolved":true,"context_lines":[{"line_number":33,"context_line":"      # TODO(tkajinam): fail_mode is not handled now"},{"line_number":34,"context_line":"      # TODO(tkajinam): Some parameters maintained by dynamic_defualt should be kept as well"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"      # TODO(tkajinam): Do we need any special consideration in case"},{"line_number":37,"context_line":"      #                 the port is the vlan interface ?"},{"line_number":38,"context_line":"      nmcli(\u0027conn\u0027, \u0027add\u0027, \u0027type\u0027, \u0027ovs-port\u0027, \u0027conn.interface\u0027, \"ovs-#{@resource[:port]}\")"},{"line_number":39,"context_line":"      nmcli(\u0027conn\u0027, \u0027add\u0027, \u0027type\u0027, \u0027ethernet\u0027, \u0027conn.interface\u0027, @resource[:port], \u0027master\u0027, @resource[:port])"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":4,"id":"3b605eb6_3c9ad396","line":37,"range":{"start_line":36,"start_character":6,"end_line":37,"end_character":56},"updated":"2021-06-09 11:29:11.000000000","message":"If we reuse the existing connection then we don\u0027t need to care about this, I think.","commit_id":"65d9e8a3397035eb38f77436d9c2a0edcd274475"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"8507729cec5bf10ff3b9ac2bd4d2282d9ecd2a0a","unresolved":true,"context_lines":[{"line_number":33,"context_line":"      # TODO(tkajinam): fail_mode is not handled now"},{"line_number":34,"context_line":"      # TODO(tkajinam): Some parameters maintained by dynamic_defualt should be kept as well"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"      # TODO(tkajinam): Do we need any special consideration in case"},{"line_number":37,"context_line":"      #                 the port is the vlan interface ?"},{"line_number":38,"context_line":"      nmcli(\u0027conn\u0027, \u0027add\u0027, \u0027type\u0027, \u0027ovs-port\u0027, \u0027conn.interface\u0027, \"ovs-#{@resource[:port]}\")"},{"line_number":39,"context_line":"      nmcli(\u0027conn\u0027, \u0027add\u0027, \u0027type\u0027, \u0027ethernet\u0027, \u0027conn.interface\u0027, @resource[:port], \u0027master\u0027, @resource[:port])"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":4,"id":"ab88a182_b620e3f8","line":37,"range":{"start_line":36,"start_character":6,"end_line":37,"end_character":56},"in_reply_to":"26445195_0b41f3b6","updated":"2021-06-09 13:02:05.000000000","message":"That\u0027s correct and we need to care these two cases(bonding and vlan) as well.","commit_id":"65d9e8a3397035eb38f77436d9c2a0edcd274475"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"ffa456e354469f9035ebf4565b53408fa034a323","unresolved":true,"context_lines":[{"line_number":33,"context_line":"      # TODO(tkajinam): fail_mode is not handled now"},{"line_number":34,"context_line":"      # TODO(tkajinam): Some parameters maintained by dynamic_defualt should be kept as well"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"      # TODO(tkajinam): Do we need any special consideration in case"},{"line_number":37,"context_line":"      #                 the port is the vlan interface ?"},{"line_number":38,"context_line":"      nmcli(\u0027conn\u0027, \u0027add\u0027, \u0027type\u0027, \u0027ovs-port\u0027, \u0027conn.interface\u0027, \"ovs-#{@resource[:port]}\")"},{"line_number":39,"context_line":"      nmcli(\u0027conn\u0027, \u0027add\u0027, \u0027type\u0027, \u0027ethernet\u0027, \u0027conn.interface\u0027, @resource[:port], \u0027master\u0027, @resource[:port])"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":4,"id":"26445195_0b41f3b6","line":37,"range":{"start_line":36,"start_character":6,"end_line":37,"end_character":56},"in_reply_to":"3b605eb6_3c9ad396","updated":"2021-06-09 12:41:53.000000000","message":"it looks like the ifcfg implementation supports both vlan and bonding (the question here would be if we do teaming or actual bonding). I think we\u0027re going to need to do the same to be successful. https://github.com/openstack/puppet-vswitch/blob/master/lib/puppet/provider/vs_port/ovs_redhat.rb#L56-L65","commit_id":"65d9e8a3397035eb38f77436d9c2a0edcd274475"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"269feaec56ef32dbc9dbe949f833db870b0b8c26","unresolved":false,"context_lines":[{"line_number":33,"context_line":"      # TODO(tkajinam): fail_mode is not handled now"},{"line_number":34,"context_line":"      # TODO(tkajinam): Some parameters maintained by dynamic_defualt should be kept as well"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"      # TODO(tkajinam): Do we need any special consideration in case"},{"line_number":37,"context_line":"      #                 the port is the vlan interface ?"},{"line_number":38,"context_line":"      nmcli(\u0027conn\u0027, \u0027add\u0027, \u0027type\u0027, \u0027ovs-port\u0027, \u0027conn.interface\u0027, \"ovs-#{@resource[:port]}\")"},{"line_number":39,"context_line":"      nmcli(\u0027conn\u0027, \u0027add\u0027, \u0027type\u0027, \u0027ethernet\u0027, \u0027conn.interface\u0027, @resource[:port], \u0027master\u0027, @resource[:port])"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":4,"id":"8776c14e_9495b9c3","line":37,"range":{"start_line":36,"start_character":6,"end_line":37,"end_character":56},"in_reply_to":"ab88a182_b620e3f8","updated":"2022-01-11 05:28:06.000000000","message":"Done","commit_id":"65d9e8a3397035eb38f77436d9c2a0edcd274475"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"06989e8c58c725068ed242b8eaa19b5202ddda2d","unresolved":true,"context_lines":[{"line_number":36,"context_line":"      # TODO(tkajinam): Do we need any special consideration in case"},{"line_number":37,"context_line":"      #                 the port is the vlan interface ?"},{"line_number":38,"context_line":"      nmcli(\u0027conn\u0027, \u0027add\u0027, \u0027type\u0027, \u0027ovs-port\u0027, \u0027conn.interface\u0027, \"ovs-#{@resource[:port]}\")"},{"line_number":39,"context_line":"      nmcli(\u0027conn\u0027, \u0027add\u0027, \u0027type\u0027, \u0027ethernet\u0027, \u0027conn.interface\u0027, @resource[:port], \u0027master\u0027, @resource[:port])"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"      nmcli(\u0027conn\u0027, \u0027down\u0027, @resource[:bridge])"},{"line_number":42,"context_line":"      nmcli(\u0027conn\u0027, \u0027down\u0027, \"ovs-#{@resource[:port]}\")"}],"source_content_type":"text/x-ruby","patch_set":4,"id":"645aa94c_c7eb54c8","line":39,"range":{"start_line":39,"start_character":6,"end_line":39,"end_character":110},"updated":"2021-06-09 11:29:11.000000000","message":"This should be fixed in case the port has already a connection on it.\nThe safest way would be to identify the existing connection on that interface, but I\u0027m not sure how often an interface can have a connection with a different name.","commit_id":"65d9e8a3397035eb38f77436d9c2a0edcd274475"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"269feaec56ef32dbc9dbe949f833db870b0b8c26","unresolved":false,"context_lines":[{"line_number":36,"context_line":"      # TODO(tkajinam): Do we need any special consideration in case"},{"line_number":37,"context_line":"      #                 the port is the vlan interface ?"},{"line_number":38,"context_line":"      nmcli(\u0027conn\u0027, \u0027add\u0027, \u0027type\u0027, \u0027ovs-port\u0027, \u0027conn.interface\u0027, \"ovs-#{@resource[:port]}\")"},{"line_number":39,"context_line":"      nmcli(\u0027conn\u0027, \u0027add\u0027, \u0027type\u0027, \u0027ethernet\u0027, \u0027conn.interface\u0027, @resource[:port], \u0027master\u0027, @resource[:port])"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"      nmcli(\u0027conn\u0027, \u0027down\u0027, @resource[:bridge])"},{"line_number":42,"context_line":"      nmcli(\u0027conn\u0027, \u0027down\u0027, \"ovs-#{@resource[:port]}\")"}],"source_content_type":"text/x-ruby","patch_set":4,"id":"bd2f7b29_5743d520","line":39,"range":{"start_line":39,"start_character":6,"end_line":39,"end_character":110},"in_reply_to":"645aa94c_c7eb54c8","updated":"2022-01-11 05:28:06.000000000","message":"Done","commit_id":"65d9e8a3397035eb38f77436d9c2a0edcd274475"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"9c85654f21a795e1a8ec9d65a773fec4e0c74d6c","unresolved":true,"context_lines":[{"line_number":43,"context_line":"          #                 functionality as OVSDHCPINTERFACES ?"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"          # TODO(tkajinam): How can we set other-config:hwaddr ?"},{"line_number":46,"context_line":"        end"},{"line_number":47,"context_line":"        # TODO(tkajinam): One serious problem is that we don\u0027t have a good"},{"line_number":48,"context_line":"        #                 way to inherit connection properties from previous"},{"line_number":49,"context_line":"        #                 physical link to ovs bridge. This is required to"},{"line_number":50,"context_line":"        #                 keep ip assigment and etc."},{"line_number":51,"context_line":"      end"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"      nmcli(\u0027conn\u0027, \u0027add\u0027, \u0027type\u0027, \u0027ovs-port\u0027,"}],"source_content_type":"text/x-ruby","patch_set":7,"id":"507cb4b9_1538841e","line":50,"range":{"start_line":46,"start_character":11,"end_line":50,"end_character":52},"updated":"2021-06-09 15:01:55.000000000","message":"I\u0027ll give it another thought on this, but currently I feel like switching to /run/NetworkManager/system-connections/\u003cdev\u003e.nmconnection is better approach.","commit_id":"5b0c706989c62b952ca5ef092be0b5402fea4e2e"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"cb2f6c609588f15075afd9a73c8ef1d41bca5a71","unresolved":true,"context_lines":[{"line_number":43,"context_line":"          #                 functionality as OVSDHCPINTERFACES ?"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"          # TODO(tkajinam): How can we set other-config:hwaddr ?"},{"line_number":46,"context_line":"        end"},{"line_number":47,"context_line":"        # TODO(tkajinam): One serious problem is that we don\u0027t have a good"},{"line_number":48,"context_line":"        #                 way to inherit connection properties from previous"},{"line_number":49,"context_line":"        #                 physical link to ovs bridge. This is required to"},{"line_number":50,"context_line":"        #                 keep ip assigment and etc."},{"line_number":51,"context_line":"      end"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"      nmcli(\u0027conn\u0027, \u0027add\u0027, \u0027type\u0027, \u0027ovs-port\u0027,"}],"source_content_type":"text/x-ruby","patch_set":7,"id":"118a224d_fb63fdb3","line":50,"range":{"start_line":46,"start_character":11,"end_line":50,"end_character":52},"in_reply_to":"507cb4b9_1538841e","updated":"2021-06-09 23:00:56.000000000","message":"I agree that using the file generation process would likely be better/easier; however, IDK for sure.","commit_id":"5b0c706989c62b952ca5ef092be0b5402fea4e2e"}],"manifests/ovs.pp":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"7098ae799a64456d858d1a636d334088280b14ea","unresolved":true,"context_lines":[{"line_number":169,"context_line":"      hasstatus \u003d\u003e true,"},{"line_number":170,"context_line":"    }"},{"line_number":171,"context_line":"    Package[\u0027NetworkManager-ovs\u0027] ~\u003e Service[\u0027NetworkManager\u0027]"},{"line_number":172,"context_line":"    Service[\u0027NetworkManager\u0027] -\u003e Vs_bridge\u003c||\u003e -\u003e Vs_port\u003c||\u003e"},{"line_number":173,"context_line":"  }"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"  Service[\u0027openvswitch\u0027] -\u003e Vs_port\u003c||\u003e"}],"source_content_type":"text/x-puppet","patch_set":38,"id":"400126f3_15123f49","line":172,"range":{"start_line":172,"start_character":33,"end_line":172,"end_character":42},"updated":"2022-01-11 05:22:29.000000000","message":"This is not necessary because vs_bridge resource does not depend on NetworkManager.","commit_id":"7f3f1ea9e534d07bc30a996af23ad603b6e9340f"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"269feaec56ef32dbc9dbe949f833db870b0b8c26","unresolved":false,"context_lines":[{"line_number":169,"context_line":"      hasstatus \u003d\u003e true,"},{"line_number":170,"context_line":"    }"},{"line_number":171,"context_line":"    Package[\u0027NetworkManager-ovs\u0027] ~\u003e Service[\u0027NetworkManager\u0027]"},{"line_number":172,"context_line":"    Service[\u0027NetworkManager\u0027] -\u003e Vs_bridge\u003c||\u003e -\u003e Vs_port\u003c||\u003e"},{"line_number":173,"context_line":"  }"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"  Service[\u0027openvswitch\u0027] -\u003e Vs_port\u003c||\u003e"}],"source_content_type":"text/x-puppet","patch_set":38,"id":"588d8a82_8a801024","line":172,"range":{"start_line":172,"start_character":33,"end_line":172,"end_character":42},"in_reply_to":"400126f3_15123f49","updated":"2022-01-11 05:28:06.000000000","message":"Done","commit_id":"7f3f1ea9e534d07bc30a996af23ad603b6e9340f"}]}
