)]}'
{"Rakefile":[{"author":{"_account_id":20971,"name":"Feng Pan","email":"fpan@redhat.com","username":"fpan"},"change_message_id":"e22b58fd9efa5a726ce47b9979f06c50702eef0b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"require \u0027puppet-openstack_spec_helper/rake_tasks\u0027"},{"line_number":2,"context_line":"PuppetLint.configuration.send(\u0027disable_quoted_booleans\u0027)"}],"source_content_type":"application/octet-stream","patch_set":15,"id":"1a1ced50_5bdbb9ed","line":2,"range":{"start_line":2,"start_character":31,"end_line":2,"end_character":54},"updated":"2017-03-17 02:33:48.000000000","message":"why is this needed?","commit_id":"07deea380c2692f0e5456fc3e0f04c15013b26ab"}],"lib/puppet/provider/vs_config/ovs.rb":[{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"98e0e11ec30adea810dd17b8393baaf0a8cf38c9","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"  def exists?"},{"line_number":82,"context_line":"    # if skip_if_version matches ovs_version(), then skip the configuration by faking exists"},{"line_number":83,"context_line":"    if @resource[:skip_if_version].eql? ovs_version() "},{"line_number":84,"context_line":"      return true"},{"line_number":85,"context_line":"    else"},{"line_number":86,"context_line":"      @property_hash[:ensure] \u003d\u003d :present"}],"source_content_type":"text/x-ruby","patch_set":17,"id":"ffe62b97_37dec03d","line":83,"range":{"start_line":83,"start_character":53,"end_line":83,"end_character":54},"updated":"2017-03-29 23:23:11.000000000","message":"extra space.","commit_id":"cbf0528ecca5b410c6d87867faf997c7a9c7c066"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"afbabea3b97ce837b06161caaab4fb1ed6ff2d6a","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"  def exists?"},{"line_number":82,"context_line":"    # if skip_if_version matches ovs_version(), then skip the configuration by faking exists"},{"line_number":83,"context_line":"    if @resource[:skip_if_version].eql? ovs_version() "},{"line_number":84,"context_line":"      return true"},{"line_number":85,"context_line":"    else"},{"line_number":86,"context_line":"      @property_hash[:ensure] \u003d\u003d :present"}],"source_content_type":"text/x-ruby","patch_set":17,"id":"ffe62b97_fcc6e949","line":83,"range":{"start_line":83,"start_character":53,"end_line":83,"end_character":54},"in_reply_to":"ffe62b97_37dec03d","updated":"2017-03-30 11:06:31.000000000","message":"Done","commit_id":"cbf0528ecca5b410c6d87867faf997c7a9c7c066"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"98e0e11ec30adea810dd17b8393baaf0a8cf38c9","unresolved":false,"context_lines":[{"line_number":105,"context_line":"  end"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"  def create"},{"line_number":108,"context_line":"    if  @resource[:value].nil? or  @resource[:value].empty?"},{"line_number":109,"context_line":"      destroy"},{"line_number":110,"context_line":"    else"},{"line_number":111,"context_line":"      _set"}],"source_content_type":"text/x-ruby","patch_set":17,"id":"ffe62b97_37b7e0f7","line":108,"range":{"start_line":108,"start_character":7,"end_line":108,"end_character":8},"updated":"2017-03-29 23:23:11.000000000","message":"extra space","commit_id":"cbf0528ecca5b410c6d87867faf997c7a9c7c066"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"98e0e11ec30adea810dd17b8393baaf0a8cf38c9","unresolved":false,"context_lines":[{"line_number":105,"context_line":"  end"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"  def create"},{"line_number":108,"context_line":"    if  @resource[:value].nil? or  @resource[:value].empty?"},{"line_number":109,"context_line":"      destroy"},{"line_number":110,"context_line":"    else"},{"line_number":111,"context_line":"      _set"}],"source_content_type":"text/x-ruby","patch_set":17,"id":"ffe62b97_97beacd2","line":108,"range":{"start_line":108,"start_character":34,"end_line":108,"end_character":35},"updated":"2017-03-29 23:23:11.000000000","message":"extra space.","commit_id":"cbf0528ecca5b410c6d87867faf997c7a9c7c066"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"afbabea3b97ce837b06161caaab4fb1ed6ff2d6a","unresolved":false,"context_lines":[{"line_number":105,"context_line":"  end"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"  def create"},{"line_number":108,"context_line":"    if  @resource[:value].nil? or  @resource[:value].empty?"},{"line_number":109,"context_line":"      destroy"},{"line_number":110,"context_line":"    else"},{"line_number":111,"context_line":"      _set"}],"source_content_type":"text/x-ruby","patch_set":17,"id":"ffe62b97_dcc32538","line":108,"range":{"start_line":108,"start_character":7,"end_line":108,"end_character":8},"in_reply_to":"ffe62b97_37b7e0f7","updated":"2017-03-30 11:06:31.000000000","message":"Done","commit_id":"cbf0528ecca5b410c6d87867faf997c7a9c7c066"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"afbabea3b97ce837b06161caaab4fb1ed6ff2d6a","unresolved":false,"context_lines":[{"line_number":105,"context_line":"  end"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"  def create"},{"line_number":108,"context_line":"    if  @resource[:value].nil? or  @resource[:value].empty?"},{"line_number":109,"context_line":"      destroy"},{"line_number":110,"context_line":"    else"},{"line_number":111,"context_line":"      _set"}],"source_content_type":"text/x-ruby","patch_set":17,"id":"ffe62b97_bcc0612c","line":108,"range":{"start_line":108,"start_character":34,"end_line":108,"end_character":35},"in_reply_to":"ffe62b97_97beacd2","updated":"2017-03-30 11:06:31.000000000","message":"Done","commit_id":"cbf0528ecca5b410c6d87867faf997c7a9c7c066"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"98e0e11ec30adea810dd17b8393baaf0a8cf38c9","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"  def value"},{"line_number":116,"context_line":"    # if skip_if_version matches ovs_version(), then skip the configuration by returning the same value"},{"line_number":117,"context_line":"    if @resource[:skip_if_version].eql? ovs_version() "},{"line_number":118,"context_line":"      @resource[:value]"},{"line_number":119,"context_line":"    else"},{"line_number":120,"context_line":"      @property_hash[:value]"}],"source_content_type":"text/x-ruby","patch_set":17,"id":"ffe62b97_57a9448d","line":117,"range":{"start_line":117,"start_character":53,"end_line":117,"end_character":54},"updated":"2017-03-29 23:23:11.000000000","message":"extra space.","commit_id":"cbf0528ecca5b410c6d87867faf997c7a9c7c066"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"afbabea3b97ce837b06161caaab4fb1ed6ff2d6a","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"  def value"},{"line_number":116,"context_line":"    # if skip_if_version matches ovs_version(), then skip the configuration by returning the same value"},{"line_number":117,"context_line":"    if @resource[:skip_if_version].eql? ovs_version() "},{"line_number":118,"context_line":"      @resource[:value]"},{"line_number":119,"context_line":"    else"},{"line_number":120,"context_line":"      @property_hash[:value]"}],"source_content_type":"text/x-ruby","patch_set":17,"id":"ffe62b97_7ce099cd","line":117,"range":{"start_line":117,"start_character":53,"end_line":117,"end_character":54},"in_reply_to":"ffe62b97_57a9448d","updated":"2017-03-30 11:06:31.000000000","message":"Done","commit_id":"cbf0528ecca5b410c6d87867faf997c7a9c7c066"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"98e0e11ec30adea810dd17b8393baaf0a8cf38c9","unresolved":false,"context_lines":[{"line_number":126,"context_line":"  end"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"  def ovs_version"},{"line_number":129,"context_line":"    ovs_ver \u003d vsctl(\"--version\")[/.*ovs-vsctl\\s+\\(Open\\s+vSwitch\\)\\s+(\\d+\\.\\d+)/][/(\\d+\\.\\d+)/].chomp()"},{"line_number":130,"context_line":"    ovs_ver"},{"line_number":131,"context_line":"  end"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":17,"id":"ffe62b97_d78f9472","line":129,"range":{"start_line":129,"start_character":4,"end_line":129,"end_character":14},"updated":"2017-03-29 23:23:11.000000000","message":"You can remove the ovs_ver variable here and on the next line as it\u0027s unused.","commit_id":"cbf0528ecca5b410c6d87867faf997c7a9c7c066"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"afbabea3b97ce837b06161caaab4fb1ed6ff2d6a","unresolved":false,"context_lines":[{"line_number":126,"context_line":"  end"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"  def ovs_version"},{"line_number":129,"context_line":"    ovs_ver \u003d vsctl(\"--version\")[/.*ovs-vsctl\\s+\\(Open\\s+vSwitch\\)\\s+(\\d+\\.\\d+)/][/(\\d+\\.\\d+)/].chomp()"},{"line_number":130,"context_line":"    ovs_ver"},{"line_number":131,"context_line":"  end"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":17,"id":"ffe62b97_9c291df4","line":129,"range":{"start_line":129,"start_character":4,"end_line":129,"end_character":14},"in_reply_to":"ffe62b97_d78f9472","updated":"2017-03-30 11:06:31.000000000","message":"Done","commit_id":"cbf0528ecca5b410c6d87867faf997c7a9c7c066"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"98e0e11ec30adea810dd17b8393baaf0a8cf38c9","unresolved":false,"context_lines":[{"line_number":135,"context_line":"  end"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"  def value\u003d(value)"},{"line_number":138,"context_line":"    if  @resource[:value].nil? or  @resource[:value].empty?"},{"line_number":139,"context_line":"      destroy"},{"line_number":140,"context_line":"    else"},{"line_number":141,"context_line":"      _set"}],"source_content_type":"text/x-ruby","patch_set":17,"id":"ffe62b97_370fe088","line":138,"range":{"start_line":138,"start_character":34,"end_line":138,"end_character":35},"updated":"2017-03-29 23:23:11.000000000","message":"extra space.","commit_id":"cbf0528ecca5b410c6d87867faf997c7a9c7c066"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"afbabea3b97ce837b06161caaab4fb1ed6ff2d6a","unresolved":false,"context_lines":[{"line_number":135,"context_line":"  end"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"  def value\u003d(value)"},{"line_number":138,"context_line":"    if  @resource[:value].nil? or  @resource[:value].empty?"},{"line_number":139,"context_line":"      destroy"},{"line_number":140,"context_line":"    else"},{"line_number":141,"context_line":"      _set"}],"source_content_type":"text/x-ruby","patch_set":17,"id":"ffe62b97_7c2e59fb","line":138,"range":{"start_line":138,"start_character":34,"end_line":138,"end_character":35},"in_reply_to":"ffe62b97_370fe088","updated":"2017-03-30 11:06:31.000000000","message":"Done","commit_id":"cbf0528ecca5b410c6d87867faf997c7a9c7c066"}],"lib/puppet/type/vs_config.rb":[{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"98e0e11ec30adea810dd17b8393baaf0a8cf38c9","unresolved":false,"context_lines":[{"line_number":15,"context_line":"    end"},{"line_number":16,"context_line":"  end"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"  newproperty(:skip_if_version) do"},{"line_number":19,"context_line":"    desc \u0027Skip setting the value when ovs version matches\u0027"},{"line_number":20,"context_line":"    validate do |value|"},{"line_number":21,"context_line":"      if !value.is_a?(String)"}],"source_content_type":"text/x-ruby","patch_set":17,"id":"ffe62b97_da00dbad","line":18,"updated":"2017-03-29 23:23:11.000000000","message":"The way it\u0027s used in the provider it\u0027s a newparam, not a newproperty, you cannot infer its value on the host.","commit_id":"cbf0528ecca5b410c6d87867faf997c7a9c7c066"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"afbabea3b97ce837b06161caaab4fb1ed6ff2d6a","unresolved":false,"context_lines":[{"line_number":15,"context_line":"    end"},{"line_number":16,"context_line":"  end"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"  newproperty(:skip_if_version) do"},{"line_number":19,"context_line":"    desc \u0027Skip setting the value when ovs version matches\u0027"},{"line_number":20,"context_line":"    validate do |value|"},{"line_number":21,"context_line":"      if !value.is_a?(String)"}],"source_content_type":"text/x-ruby","patch_set":17,"id":"ffe62b97_1c3d0d2c","line":18,"in_reply_to":"ffe62b97_da00dbad","updated":"2017-03-30 11:06:31.000000000","message":"Done","commit_id":"cbf0528ecca5b410c6d87867faf997c7a9c7c066"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"98e0e11ec30adea810dd17b8393baaf0a8cf38c9","unresolved":false,"context_lines":[{"line_number":18,"context_line":"  newproperty(:skip_if_version) do"},{"line_number":19,"context_line":"    desc \u0027Skip setting the value when ovs version matches\u0027"},{"line_number":20,"context_line":"    validate do |value|"},{"line_number":21,"context_line":"      if !value.is_a?(String)"},{"line_number":22,"context_line":"        raise ArgumentError, \"Invalid format for  #{value}. Requires a String, not a #{value.class}\""},{"line_number":23,"context_line":"      end"},{"line_number":24,"context_line":"    end"}],"source_content_type":"text/x-ruby","patch_set":17,"id":"ffe62b97_576b84ef","line":21,"range":{"start_line":21,"start_character":9,"end_line":21,"end_character":29},"updated":"2017-03-29 23:23:11.000000000","message":"Maybe add\n\n  and value \u003d~ /\\d.\\d/\n\nexplicitely for 2.5, 2.6 ?","commit_id":"cbf0528ecca5b410c6d87867faf997c7a9c7c066"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"afbabea3b97ce837b06161caaab4fb1ed6ff2d6a","unresolved":false,"context_lines":[{"line_number":18,"context_line":"  newproperty(:skip_if_version) do"},{"line_number":19,"context_line":"    desc \u0027Skip setting the value when ovs version matches\u0027"},{"line_number":20,"context_line":"    validate do |value|"},{"line_number":21,"context_line":"      if !value.is_a?(String)"},{"line_number":22,"context_line":"        raise ArgumentError, \"Invalid format for  #{value}. Requires a String, not a #{value.class}\""},{"line_number":23,"context_line":"      end"},{"line_number":24,"context_line":"    end"}],"source_content_type":"text/x-ruby","patch_set":17,"id":"ffe62b97_fc39493f","line":21,"range":{"start_line":21,"start_character":9,"end_line":21,"end_character":29},"in_reply_to":"ffe62b97_576b84ef","updated":"2017-03-30 11:06:31.000000000","message":"Done","commit_id":"cbf0528ecca5b410c6d87867faf997c7a9c7c066"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"98e0e11ec30adea810dd17b8393baaf0a8cf38c9","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    desc \u0027Skip setting the value when ovs version matches\u0027"},{"line_number":20,"context_line":"    validate do |value|"},{"line_number":21,"context_line":"      if !value.is_a?(String)"},{"line_number":22,"context_line":"        raise ArgumentError, \"Invalid format for  #{value}. Requires a String, not a #{value.class}\""},{"line_number":23,"context_line":"      end"},{"line_number":24,"context_line":"    end"},{"line_number":25,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":17,"id":"ffe62b97_5744a473","line":22,"updated":"2017-03-29 23:23:11.000000000","message":"with format \\d+.\\d+","commit_id":"cbf0528ecca5b410c6d87867faf997c7a9c7c066"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"afbabea3b97ce837b06161caaab4fb1ed6ff2d6a","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    desc \u0027Skip setting the value when ovs version matches\u0027"},{"line_number":20,"context_line":"    validate do |value|"},{"line_number":21,"context_line":"      if !value.is_a?(String)"},{"line_number":22,"context_line":"        raise ArgumentError, \"Invalid format for  #{value}. Requires a String, not a #{value.class}\""},{"line_number":23,"context_line":"      end"},{"line_number":24,"context_line":"    end"},{"line_number":25,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":17,"id":"ffe62b97_dc4685c1","line":22,"in_reply_to":"ffe62b97_5744a473","updated":"2017-03-30 11:06:31.000000000","message":"Done","commit_id":"cbf0528ecca5b410c6d87867faf997c7a9c7c066"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"98e0e11ec30adea810dd17b8393baaf0a8cf38c9","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    end"},{"line_number":25,"context_line":"  end"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"  newproperty(:wait) do"},{"line_number":28,"context_line":"    desc \u0027Should it wait for ovs-vswitchd to reconfigure itself before it exits\u0027"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    newvalue(:false)"}],"source_content_type":"text/x-ruby","patch_set":17,"id":"ffe62b97_9ad5b31e","line":27,"updated":"2017-03-29 23:23:11.000000000","message":"It\u0027s a newparam, not a newproperty, for the same reason.","commit_id":"cbf0528ecca5b410c6d87867faf997c7a9c7c066"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"afbabea3b97ce837b06161caaab4fb1ed6ff2d6a","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    end"},{"line_number":25,"context_line":"  end"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"  newproperty(:wait) do"},{"line_number":28,"context_line":"    desc \u0027Should it wait for ovs-vswitchd to reconfigure itself before it exits\u0027"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    newvalue(:false)"}],"source_content_type":"text/x-ruby","patch_set":17,"id":"ffe62b97_bc43c1af","line":27,"in_reply_to":"ffe62b97_9ad5b31e","updated":"2017-03-30 11:06:31.000000000","message":"Done","commit_id":"cbf0528ecca5b410c6d87867faf997c7a9c7c066"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"98e0e11ec30adea810dd17b8393baaf0a8cf38c9","unresolved":false,"context_lines":[{"line_number":27,"context_line":"  newproperty(:wait) do"},{"line_number":28,"context_line":"    desc \u0027Should it wait for ovs-vswitchd to reconfigure itself before it exits\u0027"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    newvalue(:false)"},{"line_number":31,"context_line":"    newvalue(:true)"},{"line_number":32,"context_line":"  end"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"  newproperty(:value) do"}],"source_content_type":"text/x-ruby","patch_set":17,"id":"ffe62b97_579dc407","line":31,"range":{"start_line":30,"start_character":1,"end_line":31,"end_character":19},"updated":"2017-03-29 23:23:11.000000000","message":"If we agree that\u0027s a newparam then it should be:\n\n    newvalues(:true, :false)\n    default_to :true\n\nto keep backward compatible behavior explicitly.","commit_id":"cbf0528ecca5b410c6d87867faf997c7a9c7c066"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"afbabea3b97ce837b06161caaab4fb1ed6ff2d6a","unresolved":false,"context_lines":[{"line_number":27,"context_line":"  newproperty(:wait) do"},{"line_number":28,"context_line":"    desc \u0027Should it wait for ovs-vswitchd to reconfigure itself before it exits\u0027"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    newvalue(:false)"},{"line_number":31,"context_line":"    newvalue(:true)"},{"line_number":32,"context_line":"  end"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"  newproperty(:value) do"}],"source_content_type":"text/x-ruby","patch_set":17,"id":"ffe62b97_7c1779a5","line":31,"range":{"start_line":30,"start_character":1,"end_line":31,"end_character":19},"in_reply_to":"ffe62b97_579dc407","updated":"2017-03-30 11:06:31.000000000","message":"Done","commit_id":"cbf0528ecca5b410c6d87867faf997c7a9c7c066"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"98e0e11ec30adea810dd17b8393baaf0a8cf38c9","unresolved":false,"context_lines":[{"line_number":38,"context_line":"      if !value.is_a?(String)"},{"line_number":39,"context_line":"        raise ArgumentError, \"Invalid external_ids #{value}. Requires a String, not a #{value.class}\""},{"line_number":40,"context_line":"      end"},{"line_number":41,"context_line":"    end "},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    munge do |value|"},{"line_number":44,"context_line":"      if value[0] \u003d\u003d \u0027[\u0027 \u0026\u0026 value[-1] \u003d\u003d \u0027]\u0027"}],"source_content_type":"text/x-ruby","patch_set":17,"id":"ffe62b97_3747e079","line":41,"range":{"start_line":41,"start_character":7,"end_line":41,"end_character":8},"updated":"2017-03-29 23:23:11.000000000","message":"extra space :)","commit_id":"cbf0528ecca5b410c6d87867faf997c7a9c7c066"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"afbabea3b97ce837b06161caaab4fb1ed6ff2d6a","unresolved":false,"context_lines":[{"line_number":38,"context_line":"      if !value.is_a?(String)"},{"line_number":39,"context_line":"        raise ArgumentError, \"Invalid external_ids #{value}. Requires a String, not a #{value.class}\""},{"line_number":40,"context_line":"      end"},{"line_number":41,"context_line":"    end "},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    munge do |value|"},{"line_number":44,"context_line":"      if value[0] \u003d\u003d \u0027[\u0027 \u0026\u0026 value[-1] \u003d\u003d \u0027]\u0027"}],"source_content_type":"text/x-ruby","patch_set":17,"id":"ffe62b97_3c11f1ad","line":41,"range":{"start_line":41,"start_character":7,"end_line":41,"end_character":8},"in_reply_to":"ffe62b97_3747e079","updated":"2017-03-30 11:06:31.000000000","message":"Done","commit_id":"cbf0528ecca5b410c6d87867faf997c7a9c7c066"},{"author":{"_account_id":17280,"name":"Tim Rozet","email":"trozet@redhat.com","username":"trozet"},"change_message_id":"22d20bfa15cd80eb22a650a11968fc747f09a373","unresolved":false,"context_lines":[{"line_number":14,"context_line":"      end"},{"line_number":15,"context_line":"    end"},{"line_number":16,"context_line":"  end"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"  newparam(:skip_if_version) do"},{"line_number":19,"context_line":"    desc \u0027Skip setting the value when ovs version matches\u0027"},{"line_number":20,"context_line":"    validate do |value|"},{"line_number":21,"context_line":"      unless value.is_a?(String) and value \u003d~ /^\\d+.\\d+$/"},{"line_number":22,"context_line":"        raise ArgumentError, \"Invalid format for  #{value}. Requires a String with format \\d+.\\d+, not a #{value.class}\""},{"line_number":23,"context_line":"      end"},{"line_number":24,"context_line":"    end"},{"line_number":25,"context_line":"  end"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"  newparam(:wait) do"},{"line_number":28,"context_line":"    desc \u0027Should it wait for ovs-vswitchd to reconfigure itself before it exits\u0027"}],"source_content_type":"text/x-ruby","patch_set":18,"id":"ffe62b97_ce7b60bc","line":25,"range":{"start_line":17,"start_character":0,"end_line":25,"end_character":5},"updated":"2017-03-30 14:03:28.000000000","message":"I think overall this method will work, and it is fine for now because we do need this functionality today.  I think in a future patch we should cleanup this entire module and implement multiple providers here for the versions.","commit_id":"dc7c7faba4b7cc8399e03d46a344c890cabc56a9"}],"manifests/dpdk.pp":[{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"2e1439cf85fa54d20ad1dfabe9b0bfdffc4c5a63","unresolved":false,"context_lines":[{"line_number":55,"context_line":"  include ::vswitch::params"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"  kmod::load { \u0027vfio-pci\u0027: }"},{"line_number":58,"context_line":"  $ovs_ver_string \u003d inline_template(\u0027\u003c%\u003d Facter.value(\"ovs_version\") %\u003e\u0027)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"  # DPDK_OPTIONS is no longer used in ovs 2.6, instead dpdk information is"},{"line_number":61,"context_line":"  # pulled from the ovsdb."}],"source_content_type":"text/x-puppet","patch_set":4,"id":"fa31d9ce_407384e7","line":58,"updated":"2017-02-12 18:04:20.000000000","message":"Is this not just available as $::ovs_version?  Also i have a feeling this isn\u0027t evaulated until after the package is installed so i\u0027m not sure you can do this here.  The case being on initial install there is no ovs_version so this could not be used until after the package is installe.d","commit_id":"0e263a23a0894169d757739a03cfe22c84cc6205"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"b9f3a44b19f75ea46ac84ad9db9f46975c0315c3","unresolved":false,"context_lines":[{"line_number":55,"context_line":"  include ::vswitch::params"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"  kmod::load { \u0027vfio-pci\u0027: }"},{"line_number":58,"context_line":"  $ovs_ver_string \u003d inline_template(\u0027\u003c%\u003d Facter.value(\"ovs_version\") %\u003e\u0027)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"  # DPDK_OPTIONS is no longer used in ovs 2.6, instead dpdk information is"},{"line_number":61,"context_line":"  # pulled from the ovsdb."}],"source_content_type":"text/x-puppet","patch_set":4,"id":"fa31d9ce_ce5be5f4","line":58,"in_reply_to":"fa31d9ce_407384e7","updated":"2017-02-14 06:43:24.000000000","message":"Yes, we will modify to use  $::ovs_version directly. \n\nAgreed on the issue of package unavailability, which is not applicable for TripleO but in general it will be an issue for using it in puppet. Since there is no way out, we are planning to assume that if the version string is empty, then the package install will fetch the latest one. For Red Hat family, this should be OK as we are going to migrate to OvS2.6 during pike cycle. \n\nFor other distributions, I prefer that we should wait and observe what are the plans to update on the OvS version. What do you think?\n\nOr please do let us know if you have a better way out?","commit_id":"0e263a23a0894169d757739a03cfe22c84cc6205"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"facdb15b1d3ca8e7072bb875ef78ae18d5ba5df0","unresolved":false,"context_lines":[{"line_number":70,"context_line":"  # DPDK_OPTIONS is no longer used in ovs 2.6, since it was a distribution"},{"line_number":71,"context_line":"  # specific hack to the ovs-ctl scripts.  Instead dpdk information is"},{"line_number":72,"context_line":"  # pulled from the ovsdb."},{"line_number":73,"context_line":"  if $::ovs_version \u003d~ /^2\\.5.*/ {"},{"line_number":74,"context_line":"    $legacy_options_support \u003d true"},{"line_number":75,"context_line":"  }"},{"line_number":76,"context_line":"  # Set DPDK_OPTIONS to openvswitch"},{"line_number":77,"context_line":"  if $host_core_list {"},{"line_number":78,"context_line":"    $core_list_string \u003d $host_core_list"}],"source_content_type":"text/x-puppet","patch_set":5,"id":"fa31d9ce_39a3c901","line":75,"range":{"start_line":73,"start_character":0,"end_line":75,"end_character":3},"updated":"2017-02-14 20:12:11.000000000","message":"Since this won\u0027t work on new installs for people not using images with the package baked in, I think it better to simply expose this via a parameter so that it can be configured (and/or overridden) by the consumer of the module. You could use this to throw a warning if legacy is on and we detect version 2.6, but I don\u0027t think we should be using to do some determination of how to configure.","commit_id":"30b05724835df0d6daf22d95311832b1fb970a7d"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"0b58263970e426338c7263276ba271744c8cf2c5","unresolved":false,"context_lines":[{"line_number":70,"context_line":"  # DPDK_OPTIONS is no longer used in ovs 2.6, since it was a distribution"},{"line_number":71,"context_line":"  # specific hack to the ovs-ctl scripts.  Instead dpdk information is"},{"line_number":72,"context_line":"  # pulled from the ovsdb."},{"line_number":73,"context_line":"  if $::ovs_version \u003d~ /^2\\.5.*/ {"},{"line_number":74,"context_line":"    $legacy_options_support \u003d true"},{"line_number":75,"context_line":"  }"},{"line_number":76,"context_line":"  # Set DPDK_OPTIONS to openvswitch"},{"line_number":77,"context_line":"  if $host_core_list {"},{"line_number":78,"context_line":"    $core_list_string \u003d $host_core_list"}],"source_content_type":"text/x-puppet","patch_set":5,"id":"fa31d9ce_aec03451","line":75,"range":{"start_line":73,"start_character":0,"end_line":75,"end_character":3},"in_reply_to":"fa31d9ce_39a3c901","updated":"2017-02-21 15:29:59.000000000","message":"Done","commit_id":"30b05724835df0d6daf22d95311832b1fb970a7d"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"facdb15b1d3ca8e7072bb875ef78ae18d5ba5df0","unresolved":false,"context_lines":[{"line_number":93,"context_line":"      $pci_list \u003d inline_template(\u0027\u003c%\u003d Facter.value(\"pci_address_driver_#@driver_type\") %\u003e\u0027)"},{"line_number":94,"context_line":"      unless empty($pci_list) {"},{"line_number":95,"context_line":"        $white_list \u003d inline_template(\u0027-w \u003c%\u003d @pci_list.gsub(\",\", \" -w \") %\u003e\u0027)"},{"line_number":96,"context_line":"      }"},{"line_number":97,"context_line":"    }"},{"line_number":98,"context_line":"    $options \u003d \"DPDK_OPTIONS \u003d \\\"-l ${core_list_string} -n ${memory_channels} ${socket_string} ${white_list}\\\"\""},{"line_number":99,"context_line":"  }"}],"source_content_type":"text/x-puppet","patch_set":5,"id":"fa31d9ce_f9ea110e","line":96,"updated":"2017-02-14 20:12:11.000000000","message":"I think the newer versions of puppet 4 throw warnings if variables are undefined but used. So you should probably should just if empty($pci_list) { ... } else { ... }","commit_id":"30b05724835df0d6daf22d95311832b1fb970a7d"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"0b58263970e426338c7263276ba271744c8cf2c5","unresolved":false,"context_lines":[{"line_number":93,"context_line":"      $pci_list \u003d inline_template(\u0027\u003c%\u003d Facter.value(\"pci_address_driver_#@driver_type\") %\u003e\u0027)"},{"line_number":94,"context_line":"      unless empty($pci_list) {"},{"line_number":95,"context_line":"        $white_list \u003d inline_template(\u0027-w \u003c%\u003d @pci_list.gsub(\",\", \" -w \") %\u003e\u0027)"},{"line_number":96,"context_line":"      }"},{"line_number":97,"context_line":"    }"},{"line_number":98,"context_line":"    $options \u003d \"DPDK_OPTIONS \u003d \\\"-l ${core_list_string} -n ${memory_channels} ${socket_string} ${white_list}\\\"\""},{"line_number":99,"context_line":"  }"}],"source_content_type":"text/x-puppet","patch_set":5,"id":"da36d5c6_bfbaa221","line":96,"in_reply_to":"fa31d9ce_f9ea110e","updated":"2017-02-21 15:29:59.000000000","message":"Done","commit_id":"30b05724835df0d6daf22d95311832b1fb970a7d"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"facdb15b1d3ca8e7072bb875ef78ae18d5ba5df0","unresolved":false,"context_lines":[{"line_number":104,"context_line":"    }"},{"line_number":105,"context_line":"  }"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"  if $pmd_core_list {"},{"line_number":108,"context_line":"    $pmd_core_list_updated \u003d inline_template(\u0027\u003c%\u003d @pmd_core_list.split(\",\").map{|c| c.include?(\"-\")?(c.split(\"-\").map(\u0026:to_i)[0]..c.split(\"-\").map(\u0026:to_i)[1]).to_a.join(\",\"):c}.join(\",\") %\u003e\u0027)"},{"line_number":109,"context_line":"    $pmd_core_mask \u003d inline_template(\u0027\u003c%\u003d @pmd_core_list_updated.split(\",\").map{|c| 1\u003c\u003cc.to_i}.inject(0,:|).to_s(16)  %\u003e\u0027)"},{"line_number":110,"context_line":"  }"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"  case $::osfamily {"},{"line_number":113,"context_line":"    \u0027Redhat\u0027: {"}],"source_content_type":"text/x-puppet","patch_set":5,"id":"fa31d9ce_d9e2ad2e","line":110,"range":{"start_line":107,"start_character":1,"end_line":110,"end_character":3},"updated":"2017-02-14 20:12:11.000000000","message":"should be removed? it\u0027s duped from lines 101-\u003e104 so this will fail","commit_id":"30b05724835df0d6daf22d95311832b1fb970a7d"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"0b58263970e426338c7263276ba271744c8cf2c5","unresolved":false,"context_lines":[{"line_number":104,"context_line":"    }"},{"line_number":105,"context_line":"  }"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"  if $pmd_core_list {"},{"line_number":108,"context_line":"    $pmd_core_list_updated \u003d inline_template(\u0027\u003c%\u003d @pmd_core_list.split(\",\").map{|c| c.include?(\"-\")?(c.split(\"-\").map(\u0026:to_i)[0]..c.split(\"-\").map(\u0026:to_i)[1]).to_a.join(\",\"):c}.join(\",\") %\u003e\u0027)"},{"line_number":109,"context_line":"    $pmd_core_mask \u003d inline_template(\u0027\u003c%\u003d @pmd_core_list_updated.split(\",\").map{|c| 1\u003c\u003cc.to_i}.inject(0,:|).to_s(16)  %\u003e\u0027)"},{"line_number":110,"context_line":"  }"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"  case $::osfamily {"},{"line_number":113,"context_line":"    \u0027Redhat\u0027: {"}],"source_content_type":"text/x-puppet","patch_set":5,"id":"da36d5c6_9fab1ed6","line":110,"range":{"start_line":107,"start_character":1,"end_line":110,"end_character":3},"in_reply_to":"fa31d9ce_d775f563","updated":"2017-02-21 15:29:59.000000000","message":"Done","commit_id":"30b05724835df0d6daf22d95311832b1fb970a7d"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"b989e21c31617d368cea7469a7837f7202abdc5d","unresolved":false,"context_lines":[{"line_number":104,"context_line":"    }"},{"line_number":105,"context_line":"  }"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"  if $pmd_core_list {"},{"line_number":108,"context_line":"    $pmd_core_list_updated \u003d inline_template(\u0027\u003c%\u003d @pmd_core_list.split(\",\").map{|c| c.include?(\"-\")?(c.split(\"-\").map(\u0026:to_i)[0]..c.split(\"-\").map(\u0026:to_i)[1]).to_a.join(\",\"):c}.join(\",\") %\u003e\u0027)"},{"line_number":109,"context_line":"    $pmd_core_mask \u003d inline_template(\u0027\u003c%\u003d @pmd_core_list_updated.split(\",\").map{|c| 1\u003c\u003cc.to_i}.inject(0,:|).to_s(16)  %\u003e\u0027)"},{"line_number":110,"context_line":"  }"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"  case $::osfamily {"},{"line_number":113,"context_line":"    \u0027Redhat\u0027: {"}],"source_content_type":"text/x-puppet","patch_set":5,"id":"fa31d9ce_d775f563","line":110,"range":{"start_line":107,"start_character":1,"end_line":110,"end_character":3},"in_reply_to":"fa31d9ce_d9e2ad2e","updated":"2017-02-15 13:18:15.000000000","message":"nevermind i see that these vars are the different. ignroe this comment, but you still need an else to set $pmd_core_list_update \u003d \u0027\u0027 and $pmd_core_mask \u003d \u0027\u0027 to prevent the undef warnings","commit_id":"30b05724835df0d6daf22d95311832b1fb970a7d"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"facdb15b1d3ca8e7072bb875ef78ae18d5ba5df0","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        enable \u003d\u003e true,"},{"line_number":138,"context_line":"        name   \u003d\u003e $::vswitch::params::ovs_service_name,"},{"line_number":139,"context_line":"      }"},{"line_number":140,"context_line":"      service { \u0027ovsdb-server\u0027:"},{"line_number":141,"context_line":"        ensure \u003d\u003e true,"},{"line_number":142,"context_line":"        enable \u003d\u003e true,"},{"line_number":143,"context_line":"        name   \u003d\u003e $::vswitch::params::ovsdb_service_name,"},{"line_number":144,"context_line":"      }"},{"line_number":145,"context_line":"    }"},{"line_number":146,"context_line":"    default: {"},{"line_number":147,"context_line":"      fail( \"${::osfamily} not yet supported for dpdk installation by puppet-vswitch\")"}],"source_content_type":"text/x-puppet","patch_set":5,"id":"fa31d9ce_d9fe2dad","line":144,"range":{"start_line":140,"start_character":0,"end_line":144,"end_character":7},"updated":"2017-02-14 20:12:11.000000000","message":"This is defined in vswitch::ovs. If this needs to also be here, we should look to move this out into it\u0027s own class so we can use something like \u0027include ::vswitch::ovsdb\u0027 in both places","commit_id":"30b05724835df0d6daf22d95311832b1fb970a7d"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"0b58263970e426338c7263276ba271744c8cf2c5","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        enable \u003d\u003e true,"},{"line_number":138,"context_line":"        name   \u003d\u003e $::vswitch::params::ovs_service_name,"},{"line_number":139,"context_line":"      }"},{"line_number":140,"context_line":"      service { \u0027ovsdb-server\u0027:"},{"line_number":141,"context_line":"        ensure \u003d\u003e true,"},{"line_number":142,"context_line":"        enable \u003d\u003e true,"},{"line_number":143,"context_line":"        name   \u003d\u003e $::vswitch::params::ovsdb_service_name,"},{"line_number":144,"context_line":"      }"},{"line_number":145,"context_line":"    }"},{"line_number":146,"context_line":"    default: {"},{"line_number":147,"context_line":"      fail( \"${::osfamily} not yet supported for dpdk installation by puppet-vswitch\")"}],"source_content_type":"text/x-puppet","patch_set":5,"id":"fa31d9ce_47403636","line":144,"range":{"start_line":140,"start_character":0,"end_line":144,"end_character":7},"in_reply_to":"fa31d9ce_d9fe2dad","updated":"2017-02-21 15:29:59.000000000","message":"For Redhat Family of OS, the regular OVS (without DPDK) is not configured to start ovsdb-server separately. Adding the same now could lead to regressions.","commit_id":"30b05724835df0d6daf22d95311832b1fb970a7d"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"0c6ae4331637490ff57b989d5f4ad1f33081375a","unresolved":false,"context_lines":[{"line_number":46,"context_line":"  $package_ensure     \u003d \u0027present\u0027,"},{"line_number":47,"context_line":"  $pmd_core_list      \u003d undef,"},{"line_number":48,"context_line":"  $socket_mem         \u003d undef,"},{"line_number":49,"context_line":"  $legacy_support     \u003d undef,"},{"line_number":50,"context_line":") {"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"  include ::vswitch::params"}],"source_content_type":"text/x-puppet","patch_set":8,"id":"fa31d9ce_92f7b58b","line":49,"updated":"2017-02-17 06:52:54.000000000","message":"The default could be false instead of undef as this is a boolean values, can be changed in the doc too.","commit_id":"1696dd3b332fc0424ed3fcf5f0f565cbeda40c55"},{"author":{"_account_id":17280,"name":"Tim Rozet","email":"trozet@redhat.com","username":"trozet"},"change_message_id":"b252a19168352130248925d79ef61d40108bde42","unresolved":false,"context_lines":[{"line_number":35,"context_line":"#   socket 1 and no allocation for socket 0, the value should be \"0,1024\""},{"line_number":36,"context_line":"#   Defaults to undef."},{"line_number":37,"context_line":"#"},{"line_number":38,"context_line":"# [*legacy_support*]"},{"line_number":39,"context_line":"#   (Optional) Shall be set to True, when OVS 2.5 is used"},{"line_number":40,"context_line":"#   Defaults to false."},{"line_number":41,"context_line":"#"},{"line_number":42,"context_line":"class vswitch::dpdk ("},{"line_number":43,"context_line":"  $memory_channels    \u003d undef,"},{"line_number":44,"context_line":"  $driver_type        \u003d \u0027vfio-pci\u0027,"}],"source_content_type":"text/x-puppet","patch_set":13,"id":"ba2be162_3dd6f9c5","line":41,"range":{"start_line":38,"start_character":0,"end_line":41,"end_character":1},"updated":"2017-02-28 19:48:14.000000000","message":"Do we really need this parameter?  Isn\u0027t checking if the OVS version is \u003c 2.6 enough?  I see Alex had some comments about we dont know the package version, but you can require the package is installed before this manifest runs and then run ovs-vsctl --version to get the version without OVS running, you can also set a custom fact for the version of OVS.","commit_id":"be74f36afb2a1c0552d9f7cc53f66a469d0c88a7"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"ff44a8b8dcf212ebd0bfd81a131b0b6c72ef3885","unresolved":false,"context_lines":[{"line_number":35,"context_line":"#   socket 1 and no allocation for socket 0, the value should be \"0,1024\""},{"line_number":36,"context_line":"#   Defaults to undef."},{"line_number":37,"context_line":"#"},{"line_number":38,"context_line":"# [*legacy_support*]"},{"line_number":39,"context_line":"#   (Optional) Shall be set to True, when OVS 2.5 is used"},{"line_number":40,"context_line":"#   Defaults to false."},{"line_number":41,"context_line":"#"},{"line_number":42,"context_line":"class vswitch::dpdk ("},{"line_number":43,"context_line":"  $memory_channels    \u003d undef,"},{"line_number":44,"context_line":"  $driver_type        \u003d \u0027vfio-pci\u0027,"}],"source_content_type":"text/x-puppet","patch_set":13,"id":"ba2be162_4314aef4","line":41,"range":{"start_line":38,"start_character":0,"end_line":41,"end_character":1},"in_reply_to":"ba2be162_3dd6f9c5","updated":"2017-02-28 20:30:46.000000000","message":"No because fact generation occurs prior to the catalog run so it would be up to the operator to ensure that the package is installed (which is supposed to be handled by puppet). I would say that yes this param is required to allow people to transition off of 2.5 to 2.6 and switch when they need to.  From a puppet standpoint we need to make sure that people are aware which version of the puppet-vswitch supports which version of OVS. It sounds like we\u0027ll want a major version bump since we\u0027ll be breaking backwards compatibility with this change.","commit_id":"be74f36afb2a1c0552d9f7cc53f66a469d0c88a7"},{"author":{"_account_id":17280,"name":"Tim Rozet","email":"trozet@redhat.com","username":"trozet"},"change_message_id":"a1aa5c902519b3e3910368c62672fb53a895db97","unresolved":false,"context_lines":[{"line_number":35,"context_line":"#   socket 1 and no allocation for socket 0, the value should be \"0,1024\""},{"line_number":36,"context_line":"#   Defaults to undef."},{"line_number":37,"context_line":"#"},{"line_number":38,"context_line":"# [*legacy_support*]"},{"line_number":39,"context_line":"#   (Optional) Shall be set to True, when OVS 2.5 is used"},{"line_number":40,"context_line":"#   Defaults to false."},{"line_number":41,"context_line":"#"},{"line_number":42,"context_line":"class vswitch::dpdk ("},{"line_number":43,"context_line":"  $memory_channels    \u003d undef,"},{"line_number":44,"context_line":"  $driver_type        \u003d \u0027vfio-pci\u0027,"}],"source_content_type":"text/x-puppet","patch_set":13,"id":"ba2be162_960f9be0","line":41,"range":{"start_line":38,"start_character":0,"end_line":41,"end_character":1},"in_reply_to":"ba2be162_4314aef4","updated":"2017-03-01 15:30:15.000000000","message":"OK I see your point on fact generation, however why cant we just use ovs-vsctl --version?  That can either be in the manifest or handled in the provider library.","commit_id":"be74f36afb2a1c0552d9f7cc53f66a469d0c88a7"},{"author":{"_account_id":17280,"name":"Tim Rozet","email":"trozet@redhat.com","username":"trozet"},"change_message_id":"b252a19168352130248925d79ef61d40108bde42","unresolved":false,"context_lines":[{"line_number":117,"context_line":"    else {"},{"line_number":118,"context_line":"      $dpdk_lcore_mask \u003d undef"},{"line_number":119,"context_line":"    }"},{"line_number":120,"context_line":"    vs_config {"},{"line_number":121,"context_line":"      \u0027other_config:dpdk-init\u0027      : value \u003d\u003e \u0027true\u0027, wait \u003d\u003e false;"},{"line_number":122,"context_line":"      \u0027other_config:dpdk-socket-mem\u0027: value \u003d\u003e $socket_mem, wait \u003d\u003e false;"},{"line_number":123,"context_line":"      \u0027other_config:dpdk-lcore-mask\u0027: value \u003d\u003e $dpdk_lcore_mask, wait \u003d\u003e false;"}],"source_content_type":"text/x-puppet","patch_set":13,"id":"ba2be162_3d40b956","line":120,"range":{"start_line":120,"start_character":4,"end_line":120,"end_character":15},"updated":"2017-02-28 19:48:14.000000000","message":"should you define a ordering chain somewhere to say Vs_config\u003c||\u003e -\u003e Service[\u0027openvswitch\u0027]?  At least openvswitch needs to be restarted after dpdk-init is added, and I would also assume for mask/mem features as well.","commit_id":"be74f36afb2a1c0552d9f7cc53f66a469d0c88a7"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"364869623aa15551fa9fc5cd3a1e379e34dce06a","unresolved":false,"context_lines":[{"line_number":117,"context_line":"    else {"},{"line_number":118,"context_line":"      $dpdk_lcore_mask \u003d undef"},{"line_number":119,"context_line":"    }"},{"line_number":120,"context_line":"    vs_config {"},{"line_number":121,"context_line":"      \u0027other_config:dpdk-init\u0027      : value \u003d\u003e \u0027true\u0027, wait \u003d\u003e false;"},{"line_number":122,"context_line":"      \u0027other_config:dpdk-socket-mem\u0027: value \u003d\u003e $socket_mem, wait \u003d\u003e false;"},{"line_number":123,"context_line":"      \u0027other_config:dpdk-lcore-mask\u0027: value \u003d\u003e $dpdk_lcore_mask, wait \u003d\u003e false;"}],"source_content_type":"text/x-puppet","patch_set":13,"id":"ba2be162_aa0c4f43","line":120,"range":{"start_line":120,"start_character":4,"end_line":120,"end_character":15},"in_reply_to":"ba2be162_2326da68","updated":"2017-03-01 09:06:42.000000000","message":"I\u0027ve defined it in https://review.openstack.org/#/c/432165/13/manifests/dpdk.pp@59. Instead of setting the dependency chain for all Vs_Config, I\u0027ll add  \nnotify \u003d\u003e Service[\u0027openvswitch\u0027]\nrequire \u003d\u003e Service[\u0027ovsdb-server\u0027]\nWould it be fine?\n\nThese configuration changes require restart of openvswitch service.","commit_id":"be74f36afb2a1c0552d9f7cc53f66a469d0c88a7"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"ff44a8b8dcf212ebd0bfd81a131b0b6c72ef3885","unresolved":false,"context_lines":[{"line_number":117,"context_line":"    else {"},{"line_number":118,"context_line":"      $dpdk_lcore_mask \u003d undef"},{"line_number":119,"context_line":"    }"},{"line_number":120,"context_line":"    vs_config {"},{"line_number":121,"context_line":"      \u0027other_config:dpdk-init\u0027      : value \u003d\u003e \u0027true\u0027, wait \u003d\u003e false;"},{"line_number":122,"context_line":"      \u0027other_config:dpdk-socket-mem\u0027: value \u003d\u003e $socket_mem, wait \u003d\u003e false;"},{"line_number":123,"context_line":"      \u0027other_config:dpdk-lcore-mask\u0027: value \u003d\u003e $dpdk_lcore_mask, wait \u003d\u003e false;"}],"source_content_type":"text/x-puppet","patch_set":13,"id":"ba2be162_2326da68","line":120,"range":{"start_line":120,"start_character":4,"end_line":120,"end_character":15},"in_reply_to":"ba2be162_3d40b956","updated":"2017-02-28 20:30:46.000000000","message":"I don\u0027t think you can get away with Vs_config\u003c||\u003e -\u003e Service[\u0027openvswitch\u0027] because I thought there were some options that had to be configured after the service was running (see puppet-ovn).","commit_id":"be74f36afb2a1c0552d9f7cc53f66a469d0c88a7"},{"author":{"_account_id":17280,"name":"Tim Rozet","email":"trozet@redhat.com","username":"trozet"},"change_message_id":"a1aa5c902519b3e3910368c62672fb53a895db97","unresolved":false,"context_lines":[{"line_number":117,"context_line":"    else {"},{"line_number":118,"context_line":"      $dpdk_lcore_mask \u003d undef"},{"line_number":119,"context_line":"    }"},{"line_number":120,"context_line":"    vs_config {"},{"line_number":121,"context_line":"      \u0027other_config:dpdk-init\u0027      : value \u003d\u003e \u0027true\u0027, wait \u003d\u003e false;"},{"line_number":122,"context_line":"      \u0027other_config:dpdk-socket-mem\u0027: value \u003d\u003e $socket_mem, wait \u003d\u003e false;"},{"line_number":123,"context_line":"      \u0027other_config:dpdk-lcore-mask\u0027: value \u003d\u003e $dpdk_lcore_mask, wait \u003d\u003e false;"}],"source_content_type":"text/x-puppet","patch_set":13,"id":"ba2be162_d6c4b393","line":120,"range":{"start_line":120,"start_character":4,"end_line":120,"end_character":15},"in_reply_to":"ba2be162_aa0c4f43","updated":"2017-03-01 15:30:15.000000000","message":"I don\u0027t think you need ovsdb-service.  If you look at the openvswitch systemd file:\nBindsTo\u003dovsdb-server.service\nBindsTo\u003dovs-vswitchd.service\n\nAny refresh on openvswitch should restart both services, and requiring openvswitch service will require ovsdb-server inherently.","commit_id":"be74f36afb2a1c0552d9f7cc53f66a469d0c88a7"},{"author":{"_account_id":17280,"name":"Tim Rozet","email":"trozet@redhat.com","username":"trozet"},"change_message_id":"9146c7e8c3dd282016a8850fe2414ecdf4b4aba6","unresolved":false,"context_lines":[{"line_number":117,"context_line":"    else {"},{"line_number":118,"context_line":"      $dpdk_lcore_mask \u003d undef"},{"line_number":119,"context_line":"    }"},{"line_number":120,"context_line":"    vs_config {"},{"line_number":121,"context_line":"      \u0027other_config:dpdk-init\u0027      : value \u003d\u003e \u0027true\u0027, wait \u003d\u003e false;"},{"line_number":122,"context_line":"      \u0027other_config:dpdk-socket-mem\u0027: value \u003d\u003e $socket_mem, wait \u003d\u003e false;"},{"line_number":123,"context_line":"      \u0027other_config:dpdk-lcore-mask\u0027: value \u003d\u003e $dpdk_lcore_mask, wait \u003d\u003e false;"}],"source_content_type":"text/x-puppet","patch_set":13,"id":"ba2be162_5080b946","line":120,"range":{"start_line":120,"start_character":4,"end_line":120,"end_character":15},"in_reply_to":"ba2be162_ac81b24c","updated":"2017-03-01 21:15:02.000000000","message":"Ah I see.  Then yeah I think your solution is fine.  As I noted in a earlier comment, we should fix this repo so that those services are only defined in a single place and re-use common pieces of manifests.  Let\u0027s handle that later though after your patch.","commit_id":"be74f36afb2a1c0552d9f7cc53f66a469d0c88a7"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"a13cc17a8b2745470cc05e343716a638c7d66e90","unresolved":false,"context_lines":[{"line_number":117,"context_line":"    else {"},{"line_number":118,"context_line":"      $dpdk_lcore_mask \u003d undef"},{"line_number":119,"context_line":"    }"},{"line_number":120,"context_line":"    vs_config {"},{"line_number":121,"context_line":"      \u0027other_config:dpdk-init\u0027      : value \u003d\u003e \u0027true\u0027, wait \u003d\u003e false;"},{"line_number":122,"context_line":"      \u0027other_config:dpdk-socket-mem\u0027: value \u003d\u003e $socket_mem, wait \u003d\u003e false;"},{"line_number":123,"context_line":"      \u0027other_config:dpdk-lcore-mask\u0027: value \u003d\u003e $dpdk_lcore_mask, wait \u003d\u003e false;"}],"source_content_type":"text/x-puppet","patch_set":13,"id":"ba2be162_ac81b24c","line":120,"range":{"start_line":120,"start_character":4,"end_line":120,"end_character":15},"in_reply_to":"ba2be162_d6c4b393","updated":"2017-03-01 16:04:50.000000000","message":"Yes, but i think its not possible to have both \nnotify\u003d\u003eService[\u0027openvswitch\u0027]\nand\nrequire\u003d\u003eService[\u0027openvswitch\u0027]\nGiven that these vs_configs needs restart of openvswitch and  if \"--no-wait\" is used, the execution of the command by ovs-vswitchd will be deferred. I could not think of  alternative other than starting the ovsdb_server, preserving the configs in ovsdb and then starting openvswitch to apply the config. Please let me know if there are any other options.","commit_id":"be74f36afb2a1c0552d9f7cc53f66a469d0c88a7"},{"author":{"_account_id":17280,"name":"Tim Rozet","email":"trozet@redhat.com","username":"trozet"},"change_message_id":"b252a19168352130248925d79ef61d40108bde42","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    }"},{"line_number":126,"context_line":"  }"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"  service { \u0027openvswitch\u0027:"},{"line_number":129,"context_line":"    ensure \u003d\u003e true,"},{"line_number":130,"context_line":"    enable \u003d\u003e true,"},{"line_number":131,"context_line":"    name   \u003d\u003e $::vswitch::params::ovs_service_name,"},{"line_number":132,"context_line":"  }"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"  service { \u0027ovsdb-server\u0027:"},{"line_number":135,"context_line":"    ensure \u003d\u003e true,"},{"line_number":136,"context_line":"    enable \u003d\u003e true,"},{"line_number":137,"context_line":"    name   \u003d\u003e \u0027ovsdb-server\u0027,"},{"line_number":138,"context_line":"  }"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"}"},{"line_number":141,"context_line":""}],"source_content_type":"text/x-puppet","patch_set":13,"id":"ba2be162_5d5e4d46","line":138,"range":{"start_line":128,"start_character":0,"end_line":138,"end_character":3},"updated":"2017-02-28 19:48:14.000000000","message":"Isn\u0027t it kind of odd that these services are defined here as well as in ovs.pp?  I think a better format would be to just include/require the base ovs manifest in this file?  I saw your comment about ovsdb-server, but ovsdb-server starts with openvswitch process right?","commit_id":"be74f36afb2a1c0552d9f7cc53f66a469d0c88a7"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"ff44a8b8dcf212ebd0bfd81a131b0b6c72ef3885","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    }"},{"line_number":126,"context_line":"  }"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"  service { \u0027openvswitch\u0027:"},{"line_number":129,"context_line":"    ensure \u003d\u003e true,"},{"line_number":130,"context_line":"    enable \u003d\u003e true,"},{"line_number":131,"context_line":"    name   \u003d\u003e $::vswitch::params::ovs_service_name,"},{"line_number":132,"context_line":"  }"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"  service { \u0027ovsdb-server\u0027:"},{"line_number":135,"context_line":"    ensure \u003d\u003e true,"},{"line_number":136,"context_line":"    enable \u003d\u003e true,"},{"line_number":137,"context_line":"    name   \u003d\u003e \u0027ovsdb-server\u0027,"},{"line_number":138,"context_line":"  }"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"}"},{"line_number":141,"context_line":""}],"source_content_type":"text/x-puppet","patch_set":13,"id":"ba2be162_6395323f","line":138,"range":{"start_line":128,"start_character":0,"end_line":138,"end_character":3},"in_reply_to":"ba2be162_5d5e4d46","updated":"2017-02-28 20:30:46.000000000","message":"They are also already defined in vswitch::ovs","commit_id":"be74f36afb2a1c0552d9f7cc53f66a469d0c88a7"},{"author":{"_account_id":17280,"name":"Tim Rozet","email":"trozet@redhat.com","username":"trozet"},"change_message_id":"a1aa5c902519b3e3910368c62672fb53a895db97","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    }"},{"line_number":126,"context_line":"  }"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"  service { \u0027openvswitch\u0027:"},{"line_number":129,"context_line":"    ensure \u003d\u003e true,"},{"line_number":130,"context_line":"    enable \u003d\u003e true,"},{"line_number":131,"context_line":"    name   \u003d\u003e $::vswitch::params::ovs_service_name,"},{"line_number":132,"context_line":"  }"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"  service { \u0027ovsdb-server\u0027:"},{"line_number":135,"context_line":"    ensure \u003d\u003e true,"},{"line_number":136,"context_line":"    enable \u003d\u003e true,"},{"line_number":137,"context_line":"    name   \u003d\u003e \u0027ovsdb-server\u0027,"},{"line_number":138,"context_line":"  }"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"}"},{"line_number":141,"context_line":""}],"source_content_type":"text/x-puppet","patch_set":13,"id":"ba2be162_d325a5c2","line":138,"range":{"start_line":128,"start_character":0,"end_line":138,"end_character":3},"in_reply_to":"ba2be162_6395323f","updated":"2017-03-01 15:30:15.000000000","message":"Yeah I think this puppet module needs some rework and break things into separate manifests for install, configure.  The init class cannot even be used on RH platform because it points to a manifest that doesnt exist I think.  Perhaps we can tackle that in a follow up patch.","commit_id":"be74f36afb2a1c0552d9f7cc53f66a469d0c88a7"},{"author":{"_account_id":17280,"name":"Tim Rozet","email":"trozet@redhat.com","username":"trozet"},"change_message_id":"2f1a1e0e1c2b8a03864f39f7657674740e45076d","unresolved":false,"context_lines":[{"line_number":46,"context_line":"  $package_ensure     \u003d \u0027present\u0027,"},{"line_number":47,"context_line":"  $pmd_core_list      \u003d undef,"},{"line_number":48,"context_line":"  $socket_mem         \u003d undef,"},{"line_number":49,"context_line":"  $legacy_support     \u003d false,"},{"line_number":50,"context_line":") {"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"  include ::vswitch::params"}],"source_content_type":"text/x-puppet","patch_set":14,"id":"9a30ddce_a6bdf1b8","line":49,"range":{"start_line":49,"start_character":2,"end_line":49,"end_character":30},"updated":"2017-03-09 22:01:42.000000000","message":"i still think you should remove this and detect the version with the ovs-vsctl command","commit_id":"44432c845675e0be58cfc8138b7f5fee9a2f2f34"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"24cb4d6e92173ac52b58258ab21811c6b2580c8b","unresolved":false,"context_lines":[{"line_number":46,"context_line":"  $package_ensure     \u003d \u0027present\u0027,"},{"line_number":47,"context_line":"  $pmd_core_list      \u003d undef,"},{"line_number":48,"context_line":"  $socket_mem         \u003d undef,"},{"line_number":49,"context_line":"  $legacy_support     \u003d false,"},{"line_number":50,"context_line":") {"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"  include ::vswitch::params"}],"source_content_type":"text/x-puppet","patch_set":14,"id":"9a30ddce_e10c333d","line":49,"range":{"start_line":49,"start_character":2,"end_line":49,"end_character":30},"in_reply_to":"9a30ddce_46a99523","updated":"2017-03-09 22:10:17.000000000","message":"Now it could be argued that for the TripleO use case the package is already installed (right?) so this isn\u0027t a case that needs to be worried about for that, but it is something that another user of this module would need to handle themselves outside of this.  I prefer to still allow the end user to be able to override some of this automagic version decisions because we can\u0027t always be sure of the use cases out there.","commit_id":"44432c845675e0be58cfc8138b7f5fee9a2f2f34"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"acc1c023166e45b0530ef48f764f120c21bcef1d","unresolved":false,"context_lines":[{"line_number":46,"context_line":"  $package_ensure     \u003d \u0027present\u0027,"},{"line_number":47,"context_line":"  $pmd_core_list      \u003d undef,"},{"line_number":48,"context_line":"  $socket_mem         \u003d undef,"},{"line_number":49,"context_line":"  $legacy_support     \u003d false,"},{"line_number":50,"context_line":") {"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"  include ::vswitch::params"}],"source_content_type":"text/x-puppet","patch_set":14,"id":"9a30ddce_46a99523","line":49,"range":{"start_line":49,"start_character":2,"end_line":49,"end_character":30},"in_reply_to":"9a30ddce_a6bdf1b8","updated":"2017-03-09 22:06:49.000000000","message":"You can\u0027t because the package has to exist before the run (and this class installs the package).  This is not a case that puppet handles.  Additionally this should be true by default to properly maintain backwards compatibility.  It\u0027s arguable that ovs 2.5 vs 2.6 should have such a dramatic breaking change as this really seems like a poor migration UX.","commit_id":"44432c845675e0be58cfc8138b7f5fee9a2f2f34"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"33a33867196a2ac3bda294f1de5a31be0d8e5cd2","unresolved":false,"context_lines":[{"line_number":71,"context_line":"  else {"},{"line_number":72,"context_line":"    $pmd_core_mask \u003d undef"},{"line_number":73,"context_line":"  }"},{"line_number":74,"context_line":"  # DPDK_OPTIONS is no longer used in ovs 2.6, since it was a distribution"},{"line_number":75,"context_line":"  # specific hack to the ovs-ctl scripts.  Instead dpdk information is"},{"line_number":76,"context_line":"  # pulled from the ovsdb."},{"line_number":77,"context_line":"  if $legacy_support and (empty($::ovs_version) or $::ovs_version \u003d~ /^2\\.5.*/) {"},{"line_number":78,"context_line":"    if !$memory_channels {"},{"line_number":79,"context_line":"      fail(\u0027memory_channels must be set for ovs agent when DPDK is enabled\u0027)"},{"line_number":80,"context_line":"    }"},{"line_number":81,"context_line":"    if !$host_core_list {"},{"line_number":82,"context_line":"      fail(\u0027host_core_list must be set for ovs agent when DPDK is enabled\u0027)"},{"line_number":83,"context_line":"    }"},{"line_number":84,"context_line":"    if $socket_mem {"},{"line_number":85,"context_line":"      $socket_string \u003d \"--socket-mem ${socket_mem}\""},{"line_number":86,"context_line":"    }"},{"line_number":87,"context_line":"    else {"},{"line_number":88,"context_line":"      $socket_string \u003d undef"},{"line_number":89,"context_line":"    }"},{"line_number":90,"context_line":"    if $driver_type {"},{"line_number":91,"context_line":"      $pci_list \u003d inline_template(\u0027\u003c%\u003d Facter.value(\"pci_address_driver_#@driver_type\") %\u003e\u0027)"},{"line_number":92,"context_line":"      if empty($pci_list) {"},{"line_number":93,"context_line":"        $white_list \u003d undef"},{"line_number":94,"context_line":"      }"},{"line_number":95,"context_line":"      else {"},{"line_number":96,"context_line":"        $white_list \u003d inline_template(\u0027-w \u003c%\u003d @pci_list.gsub(\",\", \" -w \") %\u003e\u0027)"},{"line_number":97,"context_line":"      }"},{"line_number":98,"context_line":"    }"},{"line_number":99,"context_line":"    $options \u003d \"DPDK_OPTIONS \u003d \\\"-l ${host_core_list} -n ${memory_channels} ${socket_string} ${white_list}\\\"\""},{"line_number":100,"context_line":"    file_line { \u0027/etc/sysconfig/openvswitch\u0027:"},{"line_number":101,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":102,"context_line":"      path    \u003d\u003e \u0027/etc/sysconfig/openvswitch\u0027,"},{"line_number":103,"context_line":"      match   \u003d\u003e \u0027^DPDK_OPTIONS.*\u0027,"},{"line_number":104,"context_line":"      line    \u003d\u003e $options,"},{"line_number":105,"context_line":"      require \u003d\u003e Package[$::vswitch::params::ovs_dpdk_package_name],"},{"line_number":106,"context_line":"      before  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":107,"context_line":"    }"},{"line_number":108,"context_line":"    vs_config {\u0027other_config:pmd-cpu-mask\u0027:"},{"line_number":109,"context_line":"      value   \u003d\u003e $pmd_core_mask,"},{"line_number":110,"context_line":"      wait    \u003d\u003e false,"},{"line_number":111,"context_line":"      require \u003d\u003e Service[\u0027ovsdb-server\u0027],"},{"line_number":112,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":113,"context_line":"    }"},{"line_number":114,"context_line":"  }"},{"line_number":115,"context_line":"  else {"},{"line_number":116,"context_line":"    if $host_core_list {"},{"line_number":117,"context_line":"      $host_core_list_updated \u003d inline_template(\u0027\u003c%\u003d @host_core_list.split(\",\").map{|c| c.include?(\"-\")?(c.split(\"-\").map(\u0026:to_i)[0]..c.split(\"-\").map(\u0026:to_i)[1]).to_a.join(\",\"):c}.join(\",\") %\u003e\u0027)"},{"line_number":118,"context_line":"      $dpdk_lcore_mask \u003d inline_template(\u0027\u003c%\u003d @host_core_list_updated.split(\",\").map{|c| 1\u003c\u003cc.to_i}.inject(0,:|).to_s(16)  %\u003e\u0027)"},{"line_number":119,"context_line":"    }"},{"line_number":120,"context_line":"    else {"},{"line_number":121,"context_line":"      $dpdk_lcore_mask \u003d undef"},{"line_number":122,"context_line":"    }"},{"line_number":123,"context_line":"    vs_config {\u0027other_config:dpdk-init\u0027:"},{"line_number":124,"context_line":"      value   \u003d\u003e \u0027true\u0027,"},{"line_number":125,"context_line":"      wait    \u003d\u003e false,"},{"line_number":126,"context_line":"      require \u003d\u003e Service[\u0027ovsdb-server\u0027],"},{"line_number":127,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":128,"context_line":"    }"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    vs_config {\u0027other_config:dpdk-socket-mem\u0027:"},{"line_number":131,"context_line":"      value   \u003d\u003e $socket_mem,"},{"line_number":132,"context_line":"      wait    \u003d\u003e false,"},{"line_number":133,"context_line":"      require \u003d\u003e Service[\u0027ovsdb-server\u0027],"},{"line_number":134,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":135,"context_line":"    }"},{"line_number":136,"context_line":"    vs_config {\u0027other_config:dpdk-lcore-mask\u0027:"},{"line_number":137,"context_line":"      value   \u003d\u003e $dpdk_lcore_mask,"},{"line_number":138,"context_line":"      wait    \u003d\u003e false,"},{"line_number":139,"context_line":"      require \u003d\u003e Service[\u0027ovsdb-server\u0027],"},{"line_number":140,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":141,"context_line":"    }"},{"line_number":142,"context_line":"    vs_config {\u0027other_config:pmd-cpu-mask\u0027:"},{"line_number":143,"context_line":"      value   \u003d\u003e $pmd_core_mask,"},{"line_number":144,"context_line":"      wait    \u003d\u003e false,"},{"line_number":145,"context_line":"      require \u003d\u003e Service[\u0027ovsdb-server\u0027],"},{"line_number":146,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":147,"context_line":"    }"},{"line_number":148,"context_line":"  }"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"  service { \u0027openvswitch\u0027:"},{"line_number":151,"context_line":"    ensure \u003d\u003e true,"}],"source_content_type":"text/x-puppet","patch_set":14,"id":"9a30ddce_fcc69698","line":148,"range":{"start_line":74,"start_character":2,"end_line":148,"end_character":3},"updated":"2017-03-09 22:33:35.000000000","message":"So here\u0027s the deal. The only way not to end up doing this without a user provided parameter is to wrap this in a provider. This is because the provider can be ordered during execution to be run after the package install. inline_template and other such things in puppet are parser functions meaning they can\u0027t be run after a specific thing.  So honestly I think the best way to do this to handle it automatically is to wrap this stuff in a provider that can run the ovs-vsctl command to get the version to determine how it should handle these core options.  Since we already have vs_config, you could just update that to do the check and munge the sysconfig file there. That way you\u0027re using only a single way of doing it. Alternatively write a new provider.  I have a feeling that the best way to do this is via a provider as the relying on an external source for version information may prove to be faulty or more complex than writing it into the vs_config provider.  Honestly the newer versions of ovs should just still support being passed via command line so this wouldn\u0027t be a problem but short of that, the only way to cleanly tackle this with the least about of disruption to the end user is what I described.","commit_id":"44432c845675e0be58cfc8138b7f5fee9a2f2f34"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"69a07a2d9e4b2cb6a65415c286fee62a1b5b567e","unresolved":false,"context_lines":[{"line_number":71,"context_line":"  else {"},{"line_number":72,"context_line":"    $pmd_core_mask \u003d undef"},{"line_number":73,"context_line":"  }"},{"line_number":74,"context_line":"  # DPDK_OPTIONS is no longer used in ovs 2.6, since it was a distribution"},{"line_number":75,"context_line":"  # specific hack to the ovs-ctl scripts.  Instead dpdk information is"},{"line_number":76,"context_line":"  # pulled from the ovsdb."},{"line_number":77,"context_line":"  if $legacy_support and (empty($::ovs_version) or $::ovs_version \u003d~ /^2\\.5.*/) {"},{"line_number":78,"context_line":"    if !$memory_channels {"},{"line_number":79,"context_line":"      fail(\u0027memory_channels must be set for ovs agent when DPDK is enabled\u0027)"},{"line_number":80,"context_line":"    }"},{"line_number":81,"context_line":"    if !$host_core_list {"},{"line_number":82,"context_line":"      fail(\u0027host_core_list must be set for ovs agent when DPDK is enabled\u0027)"},{"line_number":83,"context_line":"    }"},{"line_number":84,"context_line":"    if $socket_mem {"},{"line_number":85,"context_line":"      $socket_string \u003d \"--socket-mem ${socket_mem}\""},{"line_number":86,"context_line":"    }"},{"line_number":87,"context_line":"    else {"},{"line_number":88,"context_line":"      $socket_string \u003d undef"},{"line_number":89,"context_line":"    }"},{"line_number":90,"context_line":"    if $driver_type {"},{"line_number":91,"context_line":"      $pci_list \u003d inline_template(\u0027\u003c%\u003d Facter.value(\"pci_address_driver_#@driver_type\") %\u003e\u0027)"},{"line_number":92,"context_line":"      if empty($pci_list) {"},{"line_number":93,"context_line":"        $white_list \u003d undef"},{"line_number":94,"context_line":"      }"},{"line_number":95,"context_line":"      else {"},{"line_number":96,"context_line":"        $white_list \u003d inline_template(\u0027-w \u003c%\u003d @pci_list.gsub(\",\", \" -w \") %\u003e\u0027)"},{"line_number":97,"context_line":"      }"},{"line_number":98,"context_line":"    }"},{"line_number":99,"context_line":"    $options \u003d \"DPDK_OPTIONS \u003d \\\"-l ${host_core_list} -n ${memory_channels} ${socket_string} ${white_list}\\\"\""},{"line_number":100,"context_line":"    file_line { \u0027/etc/sysconfig/openvswitch\u0027:"},{"line_number":101,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":102,"context_line":"      path    \u003d\u003e \u0027/etc/sysconfig/openvswitch\u0027,"},{"line_number":103,"context_line":"      match   \u003d\u003e \u0027^DPDK_OPTIONS.*\u0027,"},{"line_number":104,"context_line":"      line    \u003d\u003e $options,"},{"line_number":105,"context_line":"      require \u003d\u003e Package[$::vswitch::params::ovs_dpdk_package_name],"},{"line_number":106,"context_line":"      before  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":107,"context_line":"    }"},{"line_number":108,"context_line":"    vs_config {\u0027other_config:pmd-cpu-mask\u0027:"},{"line_number":109,"context_line":"      value   \u003d\u003e $pmd_core_mask,"},{"line_number":110,"context_line":"      wait    \u003d\u003e false,"},{"line_number":111,"context_line":"      require \u003d\u003e Service[\u0027ovsdb-server\u0027],"},{"line_number":112,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":113,"context_line":"    }"},{"line_number":114,"context_line":"  }"},{"line_number":115,"context_line":"  else {"},{"line_number":116,"context_line":"    if $host_core_list {"},{"line_number":117,"context_line":"      $host_core_list_updated \u003d inline_template(\u0027\u003c%\u003d @host_core_list.split(\",\").map{|c| c.include?(\"-\")?(c.split(\"-\").map(\u0026:to_i)[0]..c.split(\"-\").map(\u0026:to_i)[1]).to_a.join(\",\"):c}.join(\",\") %\u003e\u0027)"},{"line_number":118,"context_line":"      $dpdk_lcore_mask \u003d inline_template(\u0027\u003c%\u003d @host_core_list_updated.split(\",\").map{|c| 1\u003c\u003cc.to_i}.inject(0,:|).to_s(16)  %\u003e\u0027)"},{"line_number":119,"context_line":"    }"},{"line_number":120,"context_line":"    else {"},{"line_number":121,"context_line":"      $dpdk_lcore_mask \u003d undef"},{"line_number":122,"context_line":"    }"},{"line_number":123,"context_line":"    vs_config {\u0027other_config:dpdk-init\u0027:"},{"line_number":124,"context_line":"      value   \u003d\u003e \u0027true\u0027,"},{"line_number":125,"context_line":"      wait    \u003d\u003e false,"},{"line_number":126,"context_line":"      require \u003d\u003e Service[\u0027ovsdb-server\u0027],"},{"line_number":127,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":128,"context_line":"    }"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    vs_config {\u0027other_config:dpdk-socket-mem\u0027:"},{"line_number":131,"context_line":"      value   \u003d\u003e $socket_mem,"},{"line_number":132,"context_line":"      wait    \u003d\u003e false,"},{"line_number":133,"context_line":"      require \u003d\u003e Service[\u0027ovsdb-server\u0027],"},{"line_number":134,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":135,"context_line":"    }"},{"line_number":136,"context_line":"    vs_config {\u0027other_config:dpdk-lcore-mask\u0027:"},{"line_number":137,"context_line":"      value   \u003d\u003e $dpdk_lcore_mask,"},{"line_number":138,"context_line":"      wait    \u003d\u003e false,"},{"line_number":139,"context_line":"      require \u003d\u003e Service[\u0027ovsdb-server\u0027],"},{"line_number":140,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":141,"context_line":"    }"},{"line_number":142,"context_line":"    vs_config {\u0027other_config:pmd-cpu-mask\u0027:"},{"line_number":143,"context_line":"      value   \u003d\u003e $pmd_core_mask,"},{"line_number":144,"context_line":"      wait    \u003d\u003e false,"},{"line_number":145,"context_line":"      require \u003d\u003e Service[\u0027ovsdb-server\u0027],"},{"line_number":146,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":147,"context_line":"    }"},{"line_number":148,"context_line":"  }"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"  service { \u0027openvswitch\u0027:"},{"line_number":151,"context_line":"    ensure \u003d\u003e true,"}],"source_content_type":"text/x-puppet","patch_set":14,"id":"5a22e58a_6ec1a32e","line":148,"range":{"start_line":74,"start_character":2,"end_line":148,"end_character":3},"in_reply_to":"9a30ddce_0125705a","updated":"2017-03-16 15:31:59.000000000","message":"vs_config shall have the check for OvS2.6 version and apply the\ncorresponding settings. But OvS2.5 configuration cannot be moved inside vs_config, because vs_config is generic and DPDK_OPTIONS is specific to DPDK and redhat family (Debian has a different name and file). In order to add version check in vs_config, we will add an parameter to vs_config to ensure the new settings are applied only for OvS2.6 and above. We are looking in deeper to ensure idem-potency  is ensured with this version check.\n\nDPDK_OPTIONS is obsolete in OvS2.6 (confirmed with openvswitch team). Having DPDK_OPTIONS in OvS2.6 will not affect openvswitch at all. Until we support OvS2.5, let us also write the sysconfig file as like today, with a warning comment stating that obsolete in OvS2.6 version. I hope this will avoid lot of confusion around this setting. We will make sure it is removed in Q cycle.","commit_id":"44432c845675e0be58cfc8138b7f5fee9a2f2f34"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"4fdce051b9f97c55603a5ee6273ceec71ce9995a","unresolved":false,"context_lines":[{"line_number":71,"context_line":"  else {"},{"line_number":72,"context_line":"    $pmd_core_mask \u003d undef"},{"line_number":73,"context_line":"  }"},{"line_number":74,"context_line":"  # DPDK_OPTIONS is no longer used in ovs 2.6, since it was a distribution"},{"line_number":75,"context_line":"  # specific hack to the ovs-ctl scripts.  Instead dpdk information is"},{"line_number":76,"context_line":"  # pulled from the ovsdb."},{"line_number":77,"context_line":"  if $legacy_support and (empty($::ovs_version) or $::ovs_version \u003d~ /^2\\.5.*/) {"},{"line_number":78,"context_line":"    if !$memory_channels {"},{"line_number":79,"context_line":"      fail(\u0027memory_channels must be set for ovs agent when DPDK is enabled\u0027)"},{"line_number":80,"context_line":"    }"},{"line_number":81,"context_line":"    if !$host_core_list {"},{"line_number":82,"context_line":"      fail(\u0027host_core_list must be set for ovs agent when DPDK is enabled\u0027)"},{"line_number":83,"context_line":"    }"},{"line_number":84,"context_line":"    if $socket_mem {"},{"line_number":85,"context_line":"      $socket_string \u003d \"--socket-mem ${socket_mem}\""},{"line_number":86,"context_line":"    }"},{"line_number":87,"context_line":"    else {"},{"line_number":88,"context_line":"      $socket_string \u003d undef"},{"line_number":89,"context_line":"    }"},{"line_number":90,"context_line":"    if $driver_type {"},{"line_number":91,"context_line":"      $pci_list \u003d inline_template(\u0027\u003c%\u003d Facter.value(\"pci_address_driver_#@driver_type\") %\u003e\u0027)"},{"line_number":92,"context_line":"      if empty($pci_list) {"},{"line_number":93,"context_line":"        $white_list \u003d undef"},{"line_number":94,"context_line":"      }"},{"line_number":95,"context_line":"      else {"},{"line_number":96,"context_line":"        $white_list \u003d inline_template(\u0027-w \u003c%\u003d @pci_list.gsub(\",\", \" -w \") %\u003e\u0027)"},{"line_number":97,"context_line":"      }"},{"line_number":98,"context_line":"    }"},{"line_number":99,"context_line":"    $options \u003d \"DPDK_OPTIONS \u003d \\\"-l ${host_core_list} -n ${memory_channels} ${socket_string} ${white_list}\\\"\""},{"line_number":100,"context_line":"    file_line { \u0027/etc/sysconfig/openvswitch\u0027:"},{"line_number":101,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":102,"context_line":"      path    \u003d\u003e \u0027/etc/sysconfig/openvswitch\u0027,"},{"line_number":103,"context_line":"      match   \u003d\u003e \u0027^DPDK_OPTIONS.*\u0027,"},{"line_number":104,"context_line":"      line    \u003d\u003e $options,"},{"line_number":105,"context_line":"      require \u003d\u003e Package[$::vswitch::params::ovs_dpdk_package_name],"},{"line_number":106,"context_line":"      before  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":107,"context_line":"    }"},{"line_number":108,"context_line":"    vs_config {\u0027other_config:pmd-cpu-mask\u0027:"},{"line_number":109,"context_line":"      value   \u003d\u003e $pmd_core_mask,"},{"line_number":110,"context_line":"      wait    \u003d\u003e false,"},{"line_number":111,"context_line":"      require \u003d\u003e Service[\u0027ovsdb-server\u0027],"},{"line_number":112,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":113,"context_line":"    }"},{"line_number":114,"context_line":"  }"},{"line_number":115,"context_line":"  else {"},{"line_number":116,"context_line":"    if $host_core_list {"},{"line_number":117,"context_line":"      $host_core_list_updated \u003d inline_template(\u0027\u003c%\u003d @host_core_list.split(\",\").map{|c| c.include?(\"-\")?(c.split(\"-\").map(\u0026:to_i)[0]..c.split(\"-\").map(\u0026:to_i)[1]).to_a.join(\",\"):c}.join(\",\") %\u003e\u0027)"},{"line_number":118,"context_line":"      $dpdk_lcore_mask \u003d inline_template(\u0027\u003c%\u003d @host_core_list_updated.split(\",\").map{|c| 1\u003c\u003cc.to_i}.inject(0,:|).to_s(16)  %\u003e\u0027)"},{"line_number":119,"context_line":"    }"},{"line_number":120,"context_line":"    else {"},{"line_number":121,"context_line":"      $dpdk_lcore_mask \u003d undef"},{"line_number":122,"context_line":"    }"},{"line_number":123,"context_line":"    vs_config {\u0027other_config:dpdk-init\u0027:"},{"line_number":124,"context_line":"      value   \u003d\u003e \u0027true\u0027,"},{"line_number":125,"context_line":"      wait    \u003d\u003e false,"},{"line_number":126,"context_line":"      require \u003d\u003e Service[\u0027ovsdb-server\u0027],"},{"line_number":127,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":128,"context_line":"    }"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    vs_config {\u0027other_config:dpdk-socket-mem\u0027:"},{"line_number":131,"context_line":"      value   \u003d\u003e $socket_mem,"},{"line_number":132,"context_line":"      wait    \u003d\u003e false,"},{"line_number":133,"context_line":"      require \u003d\u003e Service[\u0027ovsdb-server\u0027],"},{"line_number":134,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":135,"context_line":"    }"},{"line_number":136,"context_line":"    vs_config {\u0027other_config:dpdk-lcore-mask\u0027:"},{"line_number":137,"context_line":"      value   \u003d\u003e $dpdk_lcore_mask,"},{"line_number":138,"context_line":"      wait    \u003d\u003e false,"},{"line_number":139,"context_line":"      require \u003d\u003e Service[\u0027ovsdb-server\u0027],"},{"line_number":140,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":141,"context_line":"    }"},{"line_number":142,"context_line":"    vs_config {\u0027other_config:pmd-cpu-mask\u0027:"},{"line_number":143,"context_line":"      value   \u003d\u003e $pmd_core_mask,"},{"line_number":144,"context_line":"      wait    \u003d\u003e false,"},{"line_number":145,"context_line":"      require \u003d\u003e Service[\u0027ovsdb-server\u0027],"},{"line_number":146,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":147,"context_line":"    }"},{"line_number":148,"context_line":"  }"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"  service { \u0027openvswitch\u0027:"},{"line_number":151,"context_line":"    ensure \u003d\u003e true,"}],"source_content_type":"text/x-puppet","patch_set":14,"id":"9a30ddce_0125705a","line":148,"range":{"start_line":74,"start_character":2,"end_line":148,"end_character":3},"in_reply_to":"9a30ddce_04bf5061","updated":"2017-03-13 14:01:15.000000000","message":"Please be aware that this module could be used outside of tripleo and 2.5 could still be used by operators which is why backwards compatibility is still important. I would prefer that we keep the backwards compatibility for pike and move the version checking into vs_config.","commit_id":"44432c845675e0be58cfc8138b7f5fee9a2f2f34"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"916a620a6c8bd3b77598aea992d7bc7e6c9f702a","unresolved":false,"context_lines":[{"line_number":71,"context_line":"  else {"},{"line_number":72,"context_line":"    $pmd_core_mask \u003d undef"},{"line_number":73,"context_line":"  }"},{"line_number":74,"context_line":"  # DPDK_OPTIONS is no longer used in ovs 2.6, since it was a distribution"},{"line_number":75,"context_line":"  # specific hack to the ovs-ctl scripts.  Instead dpdk information is"},{"line_number":76,"context_line":"  # pulled from the ovsdb."},{"line_number":77,"context_line":"  if $legacy_support and (empty($::ovs_version) or $::ovs_version \u003d~ /^2\\.5.*/) {"},{"line_number":78,"context_line":"    if !$memory_channels {"},{"line_number":79,"context_line":"      fail(\u0027memory_channels must be set for ovs agent when DPDK is enabled\u0027)"},{"line_number":80,"context_line":"    }"},{"line_number":81,"context_line":"    if !$host_core_list {"},{"line_number":82,"context_line":"      fail(\u0027host_core_list must be set for ovs agent when DPDK is enabled\u0027)"},{"line_number":83,"context_line":"    }"},{"line_number":84,"context_line":"    if $socket_mem {"},{"line_number":85,"context_line":"      $socket_string \u003d \"--socket-mem ${socket_mem}\""},{"line_number":86,"context_line":"    }"},{"line_number":87,"context_line":"    else {"},{"line_number":88,"context_line":"      $socket_string \u003d undef"},{"line_number":89,"context_line":"    }"},{"line_number":90,"context_line":"    if $driver_type {"},{"line_number":91,"context_line":"      $pci_list \u003d inline_template(\u0027\u003c%\u003d Facter.value(\"pci_address_driver_#@driver_type\") %\u003e\u0027)"},{"line_number":92,"context_line":"      if empty($pci_list) {"},{"line_number":93,"context_line":"        $white_list \u003d undef"},{"line_number":94,"context_line":"      }"},{"line_number":95,"context_line":"      else {"},{"line_number":96,"context_line":"        $white_list \u003d inline_template(\u0027-w \u003c%\u003d @pci_list.gsub(\",\", \" -w \") %\u003e\u0027)"},{"line_number":97,"context_line":"      }"},{"line_number":98,"context_line":"    }"},{"line_number":99,"context_line":"    $options \u003d \"DPDK_OPTIONS \u003d \\\"-l ${host_core_list} -n ${memory_channels} ${socket_string} ${white_list}\\\"\""},{"line_number":100,"context_line":"    file_line { \u0027/etc/sysconfig/openvswitch\u0027:"},{"line_number":101,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":102,"context_line":"      path    \u003d\u003e \u0027/etc/sysconfig/openvswitch\u0027,"},{"line_number":103,"context_line":"      match   \u003d\u003e \u0027^DPDK_OPTIONS.*\u0027,"},{"line_number":104,"context_line":"      line    \u003d\u003e $options,"},{"line_number":105,"context_line":"      require \u003d\u003e Package[$::vswitch::params::ovs_dpdk_package_name],"},{"line_number":106,"context_line":"      before  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":107,"context_line":"    }"},{"line_number":108,"context_line":"    vs_config {\u0027other_config:pmd-cpu-mask\u0027:"},{"line_number":109,"context_line":"      value   \u003d\u003e $pmd_core_mask,"},{"line_number":110,"context_line":"      wait    \u003d\u003e false,"},{"line_number":111,"context_line":"      require \u003d\u003e Service[\u0027ovsdb-server\u0027],"},{"line_number":112,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":113,"context_line":"    }"},{"line_number":114,"context_line":"  }"},{"line_number":115,"context_line":"  else {"},{"line_number":116,"context_line":"    if $host_core_list {"},{"line_number":117,"context_line":"      $host_core_list_updated \u003d inline_template(\u0027\u003c%\u003d @host_core_list.split(\",\").map{|c| c.include?(\"-\")?(c.split(\"-\").map(\u0026:to_i)[0]..c.split(\"-\").map(\u0026:to_i)[1]).to_a.join(\",\"):c}.join(\",\") %\u003e\u0027)"},{"line_number":118,"context_line":"      $dpdk_lcore_mask \u003d inline_template(\u0027\u003c%\u003d @host_core_list_updated.split(\",\").map{|c| 1\u003c\u003cc.to_i}.inject(0,:|).to_s(16)  %\u003e\u0027)"},{"line_number":119,"context_line":"    }"},{"line_number":120,"context_line":"    else {"},{"line_number":121,"context_line":"      $dpdk_lcore_mask \u003d undef"},{"line_number":122,"context_line":"    }"},{"line_number":123,"context_line":"    vs_config {\u0027other_config:dpdk-init\u0027:"},{"line_number":124,"context_line":"      value   \u003d\u003e \u0027true\u0027,"},{"line_number":125,"context_line":"      wait    \u003d\u003e false,"},{"line_number":126,"context_line":"      require \u003d\u003e Service[\u0027ovsdb-server\u0027],"},{"line_number":127,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":128,"context_line":"    }"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    vs_config {\u0027other_config:dpdk-socket-mem\u0027:"},{"line_number":131,"context_line":"      value   \u003d\u003e $socket_mem,"},{"line_number":132,"context_line":"      wait    \u003d\u003e false,"},{"line_number":133,"context_line":"      require \u003d\u003e Service[\u0027ovsdb-server\u0027],"},{"line_number":134,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":135,"context_line":"    }"},{"line_number":136,"context_line":"    vs_config {\u0027other_config:dpdk-lcore-mask\u0027:"},{"line_number":137,"context_line":"      value   \u003d\u003e $dpdk_lcore_mask,"},{"line_number":138,"context_line":"      wait    \u003d\u003e false,"},{"line_number":139,"context_line":"      require \u003d\u003e Service[\u0027ovsdb-server\u0027],"},{"line_number":140,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":141,"context_line":"    }"},{"line_number":142,"context_line":"    vs_config {\u0027other_config:pmd-cpu-mask\u0027:"},{"line_number":143,"context_line":"      value   \u003d\u003e $pmd_core_mask,"},{"line_number":144,"context_line":"      wait    \u003d\u003e false,"},{"line_number":145,"context_line":"      require \u003d\u003e Service[\u0027ovsdb-server\u0027],"},{"line_number":146,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":147,"context_line":"    }"},{"line_number":148,"context_line":"  }"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"  service { \u0027openvswitch\u0027:"},{"line_number":151,"context_line":"    ensure \u003d\u003e true,"}],"source_content_type":"text/x-puppet","patch_set":14,"id":"9a30ddce_04bf5061","line":148,"range":{"start_line":74,"start_character":2,"end_line":148,"end_character":3},"in_reply_to":"9a30ddce_48c33b57","updated":"2017-03-13 07:06:21.000000000","message":"The changes proposed are required for Pike, which will be on OVS2.6. Even if we do backport, newton and ocata release will also be updated with OvS2.6 version only. So there is no need to support OvS2.5. I will modify the patch accordingly.","commit_id":"44432c845675e0be58cfc8138b7f5fee9a2f2f34"},{"author":{"_account_id":17280,"name":"Tim Rozet","email":"trozet@redhat.com","username":"trozet"},"change_message_id":"4c28aa86aab9642f31e25451ff07da56dbad9610","unresolved":false,"context_lines":[{"line_number":71,"context_line":"  else {"},{"line_number":72,"context_line":"    $pmd_core_mask \u003d undef"},{"line_number":73,"context_line":"  }"},{"line_number":74,"context_line":"  # DPDK_OPTIONS is no longer used in ovs 2.6, since it was a distribution"},{"line_number":75,"context_line":"  # specific hack to the ovs-ctl scripts.  Instead dpdk information is"},{"line_number":76,"context_line":"  # pulled from the ovsdb."},{"line_number":77,"context_line":"  if $legacy_support and (empty($::ovs_version) or $::ovs_version \u003d~ /^2\\.5.*/) {"},{"line_number":78,"context_line":"    if !$memory_channels {"},{"line_number":79,"context_line":"      fail(\u0027memory_channels must be set for ovs agent when DPDK is enabled\u0027)"},{"line_number":80,"context_line":"    }"},{"line_number":81,"context_line":"    if !$host_core_list {"},{"line_number":82,"context_line":"      fail(\u0027host_core_list must be set for ovs agent when DPDK is enabled\u0027)"},{"line_number":83,"context_line":"    }"},{"line_number":84,"context_line":"    if $socket_mem {"},{"line_number":85,"context_line":"      $socket_string \u003d \"--socket-mem ${socket_mem}\""},{"line_number":86,"context_line":"    }"},{"line_number":87,"context_line":"    else {"},{"line_number":88,"context_line":"      $socket_string \u003d undef"},{"line_number":89,"context_line":"    }"},{"line_number":90,"context_line":"    if $driver_type {"},{"line_number":91,"context_line":"      $pci_list \u003d inline_template(\u0027\u003c%\u003d Facter.value(\"pci_address_driver_#@driver_type\") %\u003e\u0027)"},{"line_number":92,"context_line":"      if empty($pci_list) {"},{"line_number":93,"context_line":"        $white_list \u003d undef"},{"line_number":94,"context_line":"      }"},{"line_number":95,"context_line":"      else {"},{"line_number":96,"context_line":"        $white_list \u003d inline_template(\u0027-w \u003c%\u003d @pci_list.gsub(\",\", \" -w \") %\u003e\u0027)"},{"line_number":97,"context_line":"      }"},{"line_number":98,"context_line":"    }"},{"line_number":99,"context_line":"    $options \u003d \"DPDK_OPTIONS \u003d \\\"-l ${host_core_list} -n ${memory_channels} ${socket_string} ${white_list}\\\"\""},{"line_number":100,"context_line":"    file_line { \u0027/etc/sysconfig/openvswitch\u0027:"},{"line_number":101,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":102,"context_line":"      path    \u003d\u003e \u0027/etc/sysconfig/openvswitch\u0027,"},{"line_number":103,"context_line":"      match   \u003d\u003e \u0027^DPDK_OPTIONS.*\u0027,"},{"line_number":104,"context_line":"      line    \u003d\u003e $options,"},{"line_number":105,"context_line":"      require \u003d\u003e Package[$::vswitch::params::ovs_dpdk_package_name],"},{"line_number":106,"context_line":"      before  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":107,"context_line":"    }"},{"line_number":108,"context_line":"    vs_config {\u0027other_config:pmd-cpu-mask\u0027:"},{"line_number":109,"context_line":"      value   \u003d\u003e $pmd_core_mask,"},{"line_number":110,"context_line":"      wait    \u003d\u003e false,"},{"line_number":111,"context_line":"      require \u003d\u003e Service[\u0027ovsdb-server\u0027],"},{"line_number":112,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":113,"context_line":"    }"},{"line_number":114,"context_line":"  }"},{"line_number":115,"context_line":"  else {"},{"line_number":116,"context_line":"    if $host_core_list {"},{"line_number":117,"context_line":"      $host_core_list_updated \u003d inline_template(\u0027\u003c%\u003d @host_core_list.split(\",\").map{|c| c.include?(\"-\")?(c.split(\"-\").map(\u0026:to_i)[0]..c.split(\"-\").map(\u0026:to_i)[1]).to_a.join(\",\"):c}.join(\",\") %\u003e\u0027)"},{"line_number":118,"context_line":"      $dpdk_lcore_mask \u003d inline_template(\u0027\u003c%\u003d @host_core_list_updated.split(\",\").map{|c| 1\u003c\u003cc.to_i}.inject(0,:|).to_s(16)  %\u003e\u0027)"},{"line_number":119,"context_line":"    }"},{"line_number":120,"context_line":"    else {"},{"line_number":121,"context_line":"      $dpdk_lcore_mask \u003d undef"},{"line_number":122,"context_line":"    }"},{"line_number":123,"context_line":"    vs_config {\u0027other_config:dpdk-init\u0027:"},{"line_number":124,"context_line":"      value   \u003d\u003e \u0027true\u0027,"},{"line_number":125,"context_line":"      wait    \u003d\u003e false,"},{"line_number":126,"context_line":"      require \u003d\u003e Service[\u0027ovsdb-server\u0027],"},{"line_number":127,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":128,"context_line":"    }"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    vs_config {\u0027other_config:dpdk-socket-mem\u0027:"},{"line_number":131,"context_line":"      value   \u003d\u003e $socket_mem,"},{"line_number":132,"context_line":"      wait    \u003d\u003e false,"},{"line_number":133,"context_line":"      require \u003d\u003e Service[\u0027ovsdb-server\u0027],"},{"line_number":134,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":135,"context_line":"    }"},{"line_number":136,"context_line":"    vs_config {\u0027other_config:dpdk-lcore-mask\u0027:"},{"line_number":137,"context_line":"      value   \u003d\u003e $dpdk_lcore_mask,"},{"line_number":138,"context_line":"      wait    \u003d\u003e false,"},{"line_number":139,"context_line":"      require \u003d\u003e Service[\u0027ovsdb-server\u0027],"},{"line_number":140,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":141,"context_line":"    }"},{"line_number":142,"context_line":"    vs_config {\u0027other_config:pmd-cpu-mask\u0027:"},{"line_number":143,"context_line":"      value   \u003d\u003e $pmd_core_mask,"},{"line_number":144,"context_line":"      wait    \u003d\u003e false,"},{"line_number":145,"context_line":"      require \u003d\u003e Service[\u0027ovsdb-server\u0027],"},{"line_number":146,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":147,"context_line":"    }"},{"line_number":148,"context_line":"  }"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"  service { \u0027openvswitch\u0027:"},{"line_number":151,"context_line":"    ensure \u003d\u003e true,"}],"source_content_type":"text/x-puppet","patch_set":14,"id":"9a30ddce_48c33b57","line":148,"range":{"start_line":74,"start_character":2,"end_line":148,"end_character":3},"in_reply_to":"9a30ddce_d596fb3c","updated":"2017-03-10 16:55:10.000000000","message":"+1 to making version detection happen in vs_config provider.  Karthik, this changed is proposed to master which effectively is Pike, so then none of the OVS 2.5 support is needed.  Are you just doing this to be able to backport this patch into stable branches?","commit_id":"44432c845675e0be58cfc8138b7f5fee9a2f2f34"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"2658cb0ae0a75ff5809ec840f5bb598547f4a24c","unresolved":false,"context_lines":[{"line_number":71,"context_line":"  else {"},{"line_number":72,"context_line":"    $pmd_core_mask \u003d undef"},{"line_number":73,"context_line":"  }"},{"line_number":74,"context_line":"  # DPDK_OPTIONS is no longer used in ovs 2.6, since it was a distribution"},{"line_number":75,"context_line":"  # specific hack to the ovs-ctl scripts.  Instead dpdk information is"},{"line_number":76,"context_line":"  # pulled from the ovsdb."},{"line_number":77,"context_line":"  if $legacy_support and (empty($::ovs_version) or $::ovs_version \u003d~ /^2\\.5.*/) {"},{"line_number":78,"context_line":"    if !$memory_channels {"},{"line_number":79,"context_line":"      fail(\u0027memory_channels must be set for ovs agent when DPDK is enabled\u0027)"},{"line_number":80,"context_line":"    }"},{"line_number":81,"context_line":"    if !$host_core_list {"},{"line_number":82,"context_line":"      fail(\u0027host_core_list must be set for ovs agent when DPDK is enabled\u0027)"},{"line_number":83,"context_line":"    }"},{"line_number":84,"context_line":"    if $socket_mem {"},{"line_number":85,"context_line":"      $socket_string \u003d \"--socket-mem ${socket_mem}\""},{"line_number":86,"context_line":"    }"},{"line_number":87,"context_line":"    else {"},{"line_number":88,"context_line":"      $socket_string \u003d undef"},{"line_number":89,"context_line":"    }"},{"line_number":90,"context_line":"    if $driver_type {"},{"line_number":91,"context_line":"      $pci_list \u003d inline_template(\u0027\u003c%\u003d Facter.value(\"pci_address_driver_#@driver_type\") %\u003e\u0027)"},{"line_number":92,"context_line":"      if empty($pci_list) {"},{"line_number":93,"context_line":"        $white_list \u003d undef"},{"line_number":94,"context_line":"      }"},{"line_number":95,"context_line":"      else {"},{"line_number":96,"context_line":"        $white_list \u003d inline_template(\u0027-w \u003c%\u003d @pci_list.gsub(\",\", \" -w \") %\u003e\u0027)"},{"line_number":97,"context_line":"      }"},{"line_number":98,"context_line":"    }"},{"line_number":99,"context_line":"    $options \u003d \"DPDK_OPTIONS \u003d \\\"-l ${host_core_list} -n ${memory_channels} ${socket_string} ${white_list}\\\"\""},{"line_number":100,"context_line":"    file_line { \u0027/etc/sysconfig/openvswitch\u0027:"},{"line_number":101,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":102,"context_line":"      path    \u003d\u003e \u0027/etc/sysconfig/openvswitch\u0027,"},{"line_number":103,"context_line":"      match   \u003d\u003e \u0027^DPDK_OPTIONS.*\u0027,"},{"line_number":104,"context_line":"      line    \u003d\u003e $options,"},{"line_number":105,"context_line":"      require \u003d\u003e Package[$::vswitch::params::ovs_dpdk_package_name],"},{"line_number":106,"context_line":"      before  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":107,"context_line":"    }"},{"line_number":108,"context_line":"    vs_config {\u0027other_config:pmd-cpu-mask\u0027:"},{"line_number":109,"context_line":"      value   \u003d\u003e $pmd_core_mask,"},{"line_number":110,"context_line":"      wait    \u003d\u003e false,"},{"line_number":111,"context_line":"      require \u003d\u003e Service[\u0027ovsdb-server\u0027],"},{"line_number":112,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":113,"context_line":"    }"},{"line_number":114,"context_line":"  }"},{"line_number":115,"context_line":"  else {"},{"line_number":116,"context_line":"    if $host_core_list {"},{"line_number":117,"context_line":"      $host_core_list_updated \u003d inline_template(\u0027\u003c%\u003d @host_core_list.split(\",\").map{|c| c.include?(\"-\")?(c.split(\"-\").map(\u0026:to_i)[0]..c.split(\"-\").map(\u0026:to_i)[1]).to_a.join(\",\"):c}.join(\",\") %\u003e\u0027)"},{"line_number":118,"context_line":"      $dpdk_lcore_mask \u003d inline_template(\u0027\u003c%\u003d @host_core_list_updated.split(\",\").map{|c| 1\u003c\u003cc.to_i}.inject(0,:|).to_s(16)  %\u003e\u0027)"},{"line_number":119,"context_line":"    }"},{"line_number":120,"context_line":"    else {"},{"line_number":121,"context_line":"      $dpdk_lcore_mask \u003d undef"},{"line_number":122,"context_line":"    }"},{"line_number":123,"context_line":"    vs_config {\u0027other_config:dpdk-init\u0027:"},{"line_number":124,"context_line":"      value   \u003d\u003e \u0027true\u0027,"},{"line_number":125,"context_line":"      wait    \u003d\u003e false,"},{"line_number":126,"context_line":"      require \u003d\u003e Service[\u0027ovsdb-server\u0027],"},{"line_number":127,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":128,"context_line":"    }"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    vs_config {\u0027other_config:dpdk-socket-mem\u0027:"},{"line_number":131,"context_line":"      value   \u003d\u003e $socket_mem,"},{"line_number":132,"context_line":"      wait    \u003d\u003e false,"},{"line_number":133,"context_line":"      require \u003d\u003e Service[\u0027ovsdb-server\u0027],"},{"line_number":134,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":135,"context_line":"    }"},{"line_number":136,"context_line":"    vs_config {\u0027other_config:dpdk-lcore-mask\u0027:"},{"line_number":137,"context_line":"      value   \u003d\u003e $dpdk_lcore_mask,"},{"line_number":138,"context_line":"      wait    \u003d\u003e false,"},{"line_number":139,"context_line":"      require \u003d\u003e Service[\u0027ovsdb-server\u0027],"},{"line_number":140,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":141,"context_line":"    }"},{"line_number":142,"context_line":"    vs_config {\u0027other_config:pmd-cpu-mask\u0027:"},{"line_number":143,"context_line":"      value   \u003d\u003e $pmd_core_mask,"},{"line_number":144,"context_line":"      wait    \u003d\u003e false,"},{"line_number":145,"context_line":"      require \u003d\u003e Service[\u0027ovsdb-server\u0027],"},{"line_number":146,"context_line":"      notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":147,"context_line":"    }"},{"line_number":148,"context_line":"  }"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"  service { \u0027openvswitch\u0027:"},{"line_number":151,"context_line":"    ensure \u003d\u003e true,"}],"source_content_type":"text/x-puppet","patch_set":14,"id":"9a30ddce_d596fb3c","line":148,"range":{"start_line":74,"start_character":2,"end_line":148,"end_character":3},"in_reply_to":"9a30ddce_fcc69698","updated":"2017-03-10 07:34:45.000000000","message":"a) We\u0027ll move to OVS2.6 in Redhat family optimistically in a month, after which the backward compatibility will not be required. This code may not be valid at the end of Pike cycle  but we wanted to have this support for this transistion period. It is assured that it will be removed in next cycle.\nb) The DPDK_OPTIONS configuration is specific to OVS2.5 + Redhat family. And ubuntu has DPDK_OPTS with additional \"--dpdk\" parameter too. And this need not be supported for redhat family once migrated to 2.6 version. \n\nGiven the fact that the \"legacy_support\" is introduced only for redhat and since redhat will migrate to 2.6, Will it make sense it support only 2.6 and remove 2.5 support for Pike release?\nThere will be no change in the parameters.","commit_id":"44432c845675e0be58cfc8138b7f5fee9a2f2f34"},{"author":{"_account_id":17280,"name":"Tim Rozet","email":"trozet@redhat.com","username":"trozet"},"change_message_id":"4dac388886b24b7a16e98df46eeb6ccc5e8aef31","unresolved":false,"context_lines":[{"line_number":41,"context_line":"  $package_ensure     \u003d \u0027present\u0027,"},{"line_number":42,"context_line":"  $pmd_core_list      \u003d undef,"},{"line_number":43,"context_line":"  $socket_mem         \u003d undef,"},{"line_number":44,"context_line":") {"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"  include ::vswitch::params"},{"line_number":47,"context_line":"  kmod::load { \u0027vfio-pci\u0027: }"}],"source_content_type":"text/x-puppet","patch_set":15,"id":"1a1ced50_42cbd772","line":44,"updated":"2017-03-16 20:39:15.000000000","message":"do you also want to add an optional parameter for other_config:dpdk-hugepage-dir?","commit_id":"07deea380c2692f0e5456fc3e0f04c15013b26ab"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"29296bf106aa1601f54f0b3b1c7f3634cf263bef","unresolved":false,"context_lines":[{"line_number":41,"context_line":"  $package_ensure     \u003d \u0027present\u0027,"},{"line_number":42,"context_line":"  $pmd_core_list      \u003d undef,"},{"line_number":43,"context_line":"  $socket_mem         \u003d undef,"},{"line_number":44,"context_line":") {"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"  include ::vswitch::params"},{"line_number":47,"context_line":"  kmod::load { \u0027vfio-pci\u0027: }"}],"source_content_type":"text/x-puppet","patch_set":15,"id":"1a1ced50_2ab9972e","line":44,"in_reply_to":"1a1ced50_42cbd772","updated":"2017-03-22 14:26:33.000000000","message":"Will there be a need to override the default ? If yes can we do it in a follow up patch ?","commit_id":"07deea380c2692f0e5456fc3e0f04c15013b26ab"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"c8a5da547db8f92a2cba712bf706e42b1a1fa6e8","unresolved":false,"context_lines":[{"line_number":62,"context_line":"  # DPDK_OPTIONS is no longer used in ovs 2.6, since it was a distribution"},{"line_number":63,"context_line":"  # specific hack to the ovs-ctl scripts. Instead dpdk information is"},{"line_number":64,"context_line":"  # pulled from the ovsdb."},{"line_number":65,"context_line":"  if $socket_mem {"},{"line_number":66,"context_line":"    $socket_string \u003d \"--socket-mem ${socket_mem}\""},{"line_number":67,"context_line":"  }"},{"line_number":68,"context_line":"  else {"}],"source_content_type":"text/x-puppet","patch_set":15,"id":"1a1ced50_98b541d2","line":65,"updated":"2017-03-16 18:59:38.000000000","message":"If this option is deprecated (as i don\u0027t see it used for anything else further down). You should deprecate this parameter and throw a warning if set messaging the fact that it\u0027s no longer required for OVS2.6+ and will be removed from this class in a future version. This is consistent with our deprecation process","commit_id":"07deea380c2692f0e5456fc3e0f04c15013b26ab"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"4a9027737f081c619d0a51c8b5f112c7a871bb18","unresolved":false,"context_lines":[{"line_number":62,"context_line":"  # DPDK_OPTIONS is no longer used in ovs 2.6, since it was a distribution"},{"line_number":63,"context_line":"  # specific hack to the ovs-ctl scripts. Instead dpdk information is"},{"line_number":64,"context_line":"  # pulled from the ovsdb."},{"line_number":65,"context_line":"  if $socket_mem {"},{"line_number":66,"context_line":"    $socket_string \u003d \"--socket-mem ${socket_mem}\""},{"line_number":67,"context_line":"  }"},{"line_number":68,"context_line":"  else {"}],"source_content_type":"text/x-puppet","patch_set":15,"id":"1a1ced50_82030f0f","line":65,"in_reply_to":"1a1ced50_022b9f31","updated":"2017-03-16 20:54:03.000000000","message":"oh you\u0027re right i missed that","commit_id":"07deea380c2692f0e5456fc3e0f04c15013b26ab"},{"author":{"_account_id":17280,"name":"Tim Rozet","email":"trozet@redhat.com","username":"trozet"},"change_message_id":"4dac388886b24b7a16e98df46eeb6ccc5e8aef31","unresolved":false,"context_lines":[{"line_number":62,"context_line":"  # DPDK_OPTIONS is no longer used in ovs 2.6, since it was a distribution"},{"line_number":63,"context_line":"  # specific hack to the ovs-ctl scripts. Instead dpdk information is"},{"line_number":64,"context_line":"  # pulled from the ovsdb."},{"line_number":65,"context_line":"  if $socket_mem {"},{"line_number":66,"context_line":"    $socket_string \u003d \"--socket-mem ${socket_mem}\""},{"line_number":67,"context_line":"  }"},{"line_number":68,"context_line":"  else {"}],"source_content_type":"text/x-puppet","patch_set":15,"id":"1a1ced50_022b9f31","line":65,"in_reply_to":"1a1ced50_98b541d2","updated":"2017-03-16 20:39:15.000000000","message":"socket mem is still used in 2.6.  I think he is just saying DPDK_OPTIONS string is only used in \u003c 2.6.  socket_string is added below into DPDK_OPTIONS, and socket_mem is used later in 2.6 dpdk_config","commit_id":"07deea380c2692f0e5456fc3e0f04c15013b26ab"},{"author":{"_account_id":20971,"name":"Feng Pan","email":"fpan@redhat.com","username":"fpan"},"change_message_id":"e22b58fd9efa5a726ce47b9979f06c50702eef0b","unresolved":false,"context_lines":[{"line_number":78,"context_line":"    }"},{"line_number":79,"context_line":"  }"},{"line_number":80,"context_line":"  $options \u003d \"DPDK_OPTIONS \u003d \\\"-l ${host_core_list} -n ${memory_channels} ${socket_string} ${white_list}\\\"\""},{"line_number":81,"context_line":"  file_line { \u0027/etc/sysconfig/openvswitch\u0027:"},{"line_number":82,"context_line":"    notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":83,"context_line":"    path    \u003d\u003e \u0027/etc/sysconfig/openvswitch\u0027,"},{"line_number":84,"context_line":"    match   \u003d\u003e \u0027^DPDK_OPTIONS.*\u0027,"}],"source_content_type":"text/x-puppet","patch_set":15,"id":"1a1ced50_1bb6a18a","line":81,"range":{"start_line":81,"start_character":2,"end_line":81,"end_character":11},"updated":"2017-03-17 02:33:48.000000000","message":"If this is not needed for ovs\u003e\u003d2.6, it should not be configured. I would suggest moving all actual configurations (either to a config file or to ovs-vsctl command) to providers, you can implement an ovs\u003c\u003d2.5 and a ovs\u003e\u003d2.6 provider that does different types of configurations. That way, this manifest only needs to worry about semantics of the options, and leave actual configuration to providers.","commit_id":"07deea380c2692f0e5456fc3e0f04c15013b26ab"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"29296bf106aa1601f54f0b3b1c7f3634cf263bef","unresolved":false,"context_lines":[{"line_number":78,"context_line":"    }"},{"line_number":79,"context_line":"  }"},{"line_number":80,"context_line":"  $options \u003d \"DPDK_OPTIONS \u003d \\\"-l ${host_core_list} -n ${memory_channels} ${socket_string} ${white_list}\\\"\""},{"line_number":81,"context_line":"  file_line { \u0027/etc/sysconfig/openvswitch\u0027:"},{"line_number":82,"context_line":"    notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":83,"context_line":"    path    \u003d\u003e \u0027/etc/sysconfig/openvswitch\u0027,"},{"line_number":84,"context_line":"    match   \u003d\u003e \u0027^DPDK_OPTIONS.*\u0027,"}],"source_content_type":"text/x-puppet","patch_set":15,"id":"1a1ced50_6ae0efcd","line":81,"range":{"start_line":81,"start_character":2,"end_line":81,"end_character":11},"in_reply_to":"1a1ced50_1bb6a18a","updated":"2017-03-22 14:26:33.000000000","message":"The only option is to move it to a new provider and check the version.. this is anyways going to be removed for next release.  IMHO, I think we dont need to re-implement the complete thing which will be removed in 3 months. we have checked with the OpenvSwitch team and learnt that there are no side effects of having DPDK_OPTIONS with ovs2.6.","commit_id":"07deea380c2692f0e5456fc3e0f04c15013b26ab"},{"author":{"_account_id":20971,"name":"Feng Pan","email":"fpan@redhat.com","username":"fpan"},"change_message_id":"e22b58fd9efa5a726ce47b9979f06c50702eef0b","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"  if $host_core_list and !empty($host_core_list) {"},{"line_number":100,"context_line":"    $host_core_list_updated \u003d inline_template(\u0027\u003c%\u003d @host_core_list.split(\",\").map{|c| c.include?(\"-\")?(c.split(\"-\").map(\u0026:to_i)[0]..c.split(\"-\").map(\u0026:to_i)[1]).to_a.join(\",\"):c}.join(\",\") %\u003e\u0027)"},{"line_number":101,"context_line":"    $dpdk_lcore_mask \u003d inline_template(\u0027\u003c%\u003d @host_core_list_updated.split(\",\").map{|c| 1\u003c\u003cc.to_i}.inject(0,:|).to_s(16)  %\u003e\u0027)"},{"line_number":102,"context_line":"  }"},{"line_number":103,"context_line":"  else {"},{"line_number":104,"context_line":"    $dpdk_lcore_mask \u003d \u0027\u0027"}],"source_content_type":"text/x-puppet","patch_set":15,"id":"1a1ced50_5b7739d4","line":101,"range":{"start_line":100,"start_character":0,"end_line":101,"end_character":125},"updated":"2017-03-17 02:33:48.000000000","message":"Since this is used more than once, this block should be implemented as a custom function so it\u0027s clear how the conversion is done.\n\nAlso, why is it that this is the only option that is different from what ovs expects? Every other option exposed from puppet is just what ovs expects, but here, you are exposing a list of cores while ovs expects a mask, why not just make this parameter a core mask?","commit_id":"07deea380c2692f0e5456fc3e0f04c15013b26ab"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"29296bf106aa1601f54f0b3b1c7f3634cf263bef","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"  if $host_core_list and !empty($host_core_list) {"},{"line_number":100,"context_line":"    $host_core_list_updated \u003d inline_template(\u0027\u003c%\u003d @host_core_list.split(\",\").map{|c| c.include?(\"-\")?(c.split(\"-\").map(\u0026:to_i)[0]..c.split(\"-\").map(\u0026:to_i)[1]).to_a.join(\",\"):c}.join(\",\") %\u003e\u0027)"},{"line_number":101,"context_line":"    $dpdk_lcore_mask \u003d inline_template(\u0027\u003c%\u003d @host_core_list_updated.split(\",\").map{|c| 1\u003c\u003cc.to_i}.inject(0,:|).to_s(16)  %\u003e\u0027)"},{"line_number":102,"context_line":"  }"},{"line_number":103,"context_line":"  else {"},{"line_number":104,"context_line":"    $dpdk_lcore_mask \u003d \u0027\u0027"}],"source_content_type":"text/x-puppet","patch_set":15,"id":"1a1ced50_90647ab9","line":101,"range":{"start_line":100,"start_character":0,"end_line":101,"end_character":125},"in_reply_to":"1a1ced50_5b7739d4","updated":"2017-03-22 14:26:33.000000000","message":"A follow up patch https://review.openstack.org/448605 is added to convert a range to mask. IMHO providing a range or list would increase the user experience.","commit_id":"07deea380c2692f0e5456fc3e0f04c15013b26ab"},{"author":{"_account_id":17280,"name":"Tim Rozet","email":"trozet@redhat.com","username":"trozet"},"change_message_id":"4dac388886b24b7a16e98df46eeb6ccc5e8aef31","unresolved":false,"context_lines":[{"line_number":112,"context_line":"  }"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"  $dpdk_configs \u003d {"},{"line_number":115,"context_line":"    \u0027other_config:dpdk-extra\u0027      \u003d\u003e { \u0027value\u0027 \u003d\u003e $memory_channels_conf, \u0027skip_if_version\u0027 \u003d\u003e \"2.5\"},"},{"line_number":116,"context_line":"    \u0027other_config:dpdk-init\u0027       \u003d\u003e { \u0027value\u0027 \u003d\u003e \u0027true\u0027, \u0027skip_if_version\u0027 \u003d\u003e \"2.5\"},"},{"line_number":117,"context_line":"    \u0027other_config:dpdk-socket-mem\u0027 \u003d\u003e { \u0027value\u0027 \u003d\u003e $socket_mem, \u0027skip_if_version\u0027 \u003d\u003e \"2.5\"},"},{"line_number":118,"context_line":"    \u0027other_config:dpdk-socket-mem\u0027 \u003d\u003e { \u0027value\u0027 \u003d\u003e $socket_mem, \u0027skip_if_version\u0027 \u003d\u003e \"2.5\"},"}],"source_content_type":"text/x-puppet","patch_set":15,"id":"1a1ced50_62be1301","line":115,"range":{"start_line":115,"start_character":5,"end_line":115,"end_character":28},"updated":"2017-03-16 20:39:15.000000000","message":"What about using: other_config:dpdk-mem-channels, then you can get rid of the above memory_channels_conf stuff","commit_id":"07deea380c2692f0e5456fc3e0f04c15013b26ab"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"29296bf106aa1601f54f0b3b1c7f3634cf263bef","unresolved":false,"context_lines":[{"line_number":112,"context_line":"  }"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"  $dpdk_configs \u003d {"},{"line_number":115,"context_line":"    \u0027other_config:dpdk-extra\u0027      \u003d\u003e { \u0027value\u0027 \u003d\u003e $memory_channels_conf, \u0027skip_if_version\u0027 \u003d\u003e \"2.5\"},"},{"line_number":116,"context_line":"    \u0027other_config:dpdk-init\u0027       \u003d\u003e { \u0027value\u0027 \u003d\u003e \u0027true\u0027, \u0027skip_if_version\u0027 \u003d\u003e \"2.5\"},"},{"line_number":117,"context_line":"    \u0027other_config:dpdk-socket-mem\u0027 \u003d\u003e { \u0027value\u0027 \u003d\u003e $socket_mem, \u0027skip_if_version\u0027 \u003d\u003e \"2.5\"},"},{"line_number":118,"context_line":"    \u0027other_config:dpdk-socket-mem\u0027 \u003d\u003e { \u0027value\u0027 \u003d\u003e $socket_mem, \u0027skip_if_version\u0027 \u003d\u003e \"2.5\"},"}],"source_content_type":"text/x-puppet","patch_set":15,"id":"1a1ced50_908e3a2c","line":115,"range":{"start_line":115,"start_character":5,"end_line":115,"end_character":28},"in_reply_to":"1a1ced50_62be1301","updated":"2017-03-22 14:26:33.000000000","message":"We got this recommendation from openvswitch team, we\u0027ll check out for this option.","commit_id":"07deea380c2692f0e5456fc3e0f04c15013b26ab"},{"author":{"_account_id":17280,"name":"Tim Rozet","email":"trozet@redhat.com","username":"trozet"},"change_message_id":"4dac388886b24b7a16e98df46eeb6ccc5e8aef31","unresolved":false,"context_lines":[{"line_number":114,"context_line":"  $dpdk_configs \u003d {"},{"line_number":115,"context_line":"    \u0027other_config:dpdk-extra\u0027      \u003d\u003e { \u0027value\u0027 \u003d\u003e $memory_channels_conf, \u0027skip_if_version\u0027 \u003d\u003e \"2.5\"},"},{"line_number":116,"context_line":"    \u0027other_config:dpdk-init\u0027       \u003d\u003e { \u0027value\u0027 \u003d\u003e \u0027true\u0027, \u0027skip_if_version\u0027 \u003d\u003e \"2.5\"},"},{"line_number":117,"context_line":"    \u0027other_config:dpdk-socket-mem\u0027 \u003d\u003e { \u0027value\u0027 \u003d\u003e $socket_mem, \u0027skip_if_version\u0027 \u003d\u003e \"2.5\"},"},{"line_number":118,"context_line":"    \u0027other_config:dpdk-socket-mem\u0027 \u003d\u003e { \u0027value\u0027 \u003d\u003e $socket_mem, \u0027skip_if_version\u0027 \u003d\u003e \"2.5\"},"},{"line_number":119,"context_line":"    \u0027other_config:dpdk-lcore-mask\u0027 \u003d\u003e { \u0027value\u0027 \u003d\u003e $dpdk_lcore_mask, \u0027skip_if_version\u0027 \u003d\u003e \"2.5\"},"},{"line_number":120,"context_line":"    \u0027other_config:pmd-cpu-mask\u0027    \u003d\u003e { \u0027value\u0027 \u003d\u003e $pmd_core_mask},"}],"source_content_type":"text/x-puppet","patch_set":15,"id":"1a1ced50_e240430a","line":117,"range":{"start_line":117,"start_character":4,"end_line":117,"end_character":92},"updated":"2017-03-16 20:39:15.000000000","message":"why is this listed twice? also on line 118","commit_id":"07deea380c2692f0e5456fc3e0f04c15013b26ab"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"29296bf106aa1601f54f0b3b1c7f3634cf263bef","unresolved":false,"context_lines":[{"line_number":114,"context_line":"  $dpdk_configs \u003d {"},{"line_number":115,"context_line":"    \u0027other_config:dpdk-extra\u0027      \u003d\u003e { \u0027value\u0027 \u003d\u003e $memory_channels_conf, \u0027skip_if_version\u0027 \u003d\u003e \"2.5\"},"},{"line_number":116,"context_line":"    \u0027other_config:dpdk-init\u0027       \u003d\u003e { \u0027value\u0027 \u003d\u003e \u0027true\u0027, \u0027skip_if_version\u0027 \u003d\u003e \"2.5\"},"},{"line_number":117,"context_line":"    \u0027other_config:dpdk-socket-mem\u0027 \u003d\u003e { \u0027value\u0027 \u003d\u003e $socket_mem, \u0027skip_if_version\u0027 \u003d\u003e \"2.5\"},"},{"line_number":118,"context_line":"    \u0027other_config:dpdk-socket-mem\u0027 \u003d\u003e { \u0027value\u0027 \u003d\u003e $socket_mem, \u0027skip_if_version\u0027 \u003d\u003e \"2.5\"},"},{"line_number":119,"context_line":"    \u0027other_config:dpdk-lcore-mask\u0027 \u003d\u003e { \u0027value\u0027 \u003d\u003e $dpdk_lcore_mask, \u0027skip_if_version\u0027 \u003d\u003e \"2.5\"},"},{"line_number":120,"context_line":"    \u0027other_config:pmd-cpu-mask\u0027    \u003d\u003e { \u0027value\u0027 \u003d\u003e $pmd_core_mask},"}],"source_content_type":"text/x-puppet","patch_set":15,"id":"1a1ced50_b08176fd","line":117,"range":{"start_line":117,"start_character":4,"end_line":117,"end_character":92},"in_reply_to":"1a1ced50_e240430a","updated":"2017-03-22 14:26:33.000000000","message":"Done","commit_id":"07deea380c2692f0e5456fc3e0f04c15013b26ab"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"c8a5da547db8f92a2cba712bf706e42b1a1fa6e8","unresolved":false,"context_lines":[{"line_number":126,"context_line":"    notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":127,"context_line":"  }"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"  service { \u0027openvswitch\u0027:"},{"line_number":130,"context_line":"    ensure \u003d\u003e true,"},{"line_number":131,"context_line":"    enable \u003d\u003e true,"},{"line_number":132,"context_line":"    name   \u003d\u003e $::vswitch::params::ovs_service_name,"},{"line_number":133,"context_line":"  }"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"  service { \u0027ovsdb-server\u0027:"},{"line_number":136,"context_line":"    ensure \u003d\u003e true,"},{"line_number":137,"context_line":"    enable \u003d\u003e true,"},{"line_number":138,"context_line":"    name   \u003d\u003e \u0027ovsdb-server\u0027,"},{"line_number":139,"context_line":"  }"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"  create_resources (\u0027vs_config\u0027, $dpdk_configs, $dpdk_dependencies)"},{"line_number":142,"context_line":""}],"source_content_type":"text/x-puppet","patch_set":15,"id":"1a1ced50_d8e6d9e7","line":139,"range":{"start_line":129,"start_character":0,"end_line":139,"end_character":3},"updated":"2017-03-16 18:59:38.000000000","message":"We should pull these items out of this class (and the other one it\u0027s defined in vswitch::ovs) and just switch this to something like include ::vswitch::ovs::services. This will allow us to use both vswitch::dpdk and vswitch::vs without conflicting on on these service definitions","commit_id":"07deea380c2692f0e5456fc3e0f04c15013b26ab"},{"author":{"_account_id":17280,"name":"Tim Rozet","email":"trozet@redhat.com","username":"trozet"},"change_message_id":"4dac388886b24b7a16e98df46eeb6ccc5e8aef31","unresolved":false,"context_lines":[{"line_number":126,"context_line":"    notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":127,"context_line":"  }"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"  service { \u0027openvswitch\u0027:"},{"line_number":130,"context_line":"    ensure \u003d\u003e true,"},{"line_number":131,"context_line":"    enable \u003d\u003e true,"},{"line_number":132,"context_line":"    name   \u003d\u003e $::vswitch::params::ovs_service_name,"},{"line_number":133,"context_line":"  }"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"  service { \u0027ovsdb-server\u0027:"},{"line_number":136,"context_line":"    ensure \u003d\u003e true,"},{"line_number":137,"context_line":"    enable \u003d\u003e true,"},{"line_number":138,"context_line":"    name   \u003d\u003e \u0027ovsdb-server\u0027,"},{"line_number":139,"context_line":"  }"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"  create_resources (\u0027vs_config\u0027, $dpdk_configs, $dpdk_dependencies)"},{"line_number":142,"context_line":""}],"source_content_type":"text/x-puppet","patch_set":15,"id":"1a1ced50_62f1b3cd","line":139,"range":{"start_line":129,"start_character":0,"end_line":139,"end_character":3},"in_reply_to":"1a1ced50_d8e6d9e7","updated":"2017-03-16 20:39:15.000000000","message":"+1","commit_id":"07deea380c2692f0e5456fc3e0f04c15013b26ab"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"29296bf106aa1601f54f0b3b1c7f3634cf263bef","unresolved":false,"context_lines":[{"line_number":126,"context_line":"    notify  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":127,"context_line":"  }"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"  service { \u0027openvswitch\u0027:"},{"line_number":130,"context_line":"    ensure \u003d\u003e true,"},{"line_number":131,"context_line":"    enable \u003d\u003e true,"},{"line_number":132,"context_line":"    name   \u003d\u003e $::vswitch::params::ovs_service_name,"},{"line_number":133,"context_line":"  }"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"  service { \u0027ovsdb-server\u0027:"},{"line_number":136,"context_line":"    ensure \u003d\u003e true,"},{"line_number":137,"context_line":"    enable \u003d\u003e true,"},{"line_number":138,"context_line":"    name   \u003d\u003e \u0027ovsdb-server\u0027,"},{"line_number":139,"context_line":"  }"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"  create_resources (\u0027vs_config\u0027, $dpdk_configs, $dpdk_dependencies)"},{"line_number":142,"context_line":""}],"source_content_type":"text/x-puppet","patch_set":15,"id":"1a1ced50_3076663e","line":139,"range":{"start_line":129,"start_character":0,"end_line":139,"end_character":3},"in_reply_to":"1a1ced50_d8e6d9e7","updated":"2017-03-22 14:26:33.000000000","message":"Can we get this as part of a follow up patch ?","commit_id":"07deea380c2692f0e5456fc3e0f04c15013b26ab"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"98e0e11ec30adea810dd17b8393baaf0a8cf38c9","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    match   \u003d\u003e \u0027^DPDK_OPTIONS.*\u0027,"},{"line_number":82,"context_line":"    line    \u003d\u003e $options,"},{"line_number":83,"context_line":"    require \u003d\u003e Package[$::vswitch::params::ovs_dpdk_package_name],"},{"line_number":84,"context_line":"    before  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":85,"context_line":"  }"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"  if $pmd_core_list and !empty($pmd_core_list){"}],"source_content_type":"text/x-puppet","patch_set":17,"id":"ffe62b97_7ae2efd6","line":84,"range":{"start_line":84,"start_character":4,"end_line":84,"end_character":10},"updated":"2017-03-29 23:23:11.000000000","message":"Wouldn\u0027t notify be more appropriate here ?","commit_id":"cbf0528ecca5b410c6d87867faf997c7a9c7c066"},{"author":{"_account_id":17280,"name":"Tim Rozet","email":"trozet@redhat.com","username":"trozet"},"change_message_id":"92b161c7a00896a6462d81f5040a6e9608544e7e","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    match   \u003d\u003e \u0027^DPDK_OPTIONS.*\u0027,"},{"line_number":82,"context_line":"    line    \u003d\u003e $options,"},{"line_number":83,"context_line":"    require \u003d\u003e Package[$::vswitch::params::ovs_dpdk_package_name],"},{"line_number":84,"context_line":"    before  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":85,"context_line":"  }"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"  if $pmd_core_list and !empty($pmd_core_list){"}],"source_content_type":"text/x-puppet","patch_set":17,"id":"ffe62b97_4e9cf05c","line":84,"range":{"start_line":84,"start_character":4,"end_line":84,"end_character":10},"in_reply_to":"ffe62b97_51393ef0","updated":"2017-03-30 13:55:20.000000000","message":"Restarting openvswitch doesn\u0027t cause linux interfaces for the bridge to lose their IP.  I just tested it with ovs 2.6.1.","commit_id":"cbf0528ecca5b410c6d87867faf997c7a9c7c066"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"afbabea3b97ce837b06161caaab4fb1ed6ff2d6a","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    match   \u003d\u003e \u0027^DPDK_OPTIONS.*\u0027,"},{"line_number":82,"context_line":"    line    \u003d\u003e $options,"},{"line_number":83,"context_line":"    require \u003d\u003e Package[$::vswitch::params::ovs_dpdk_package_name],"},{"line_number":84,"context_line":"    before  \u003d\u003e Service[\u0027openvswitch\u0027],"},{"line_number":85,"context_line":"  }"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"  if $pmd_core_list and !empty($pmd_core_list){"}],"source_content_type":"text/x-puppet","patch_set":17,"id":"ffe62b97_51393ef0","line":84,"range":{"start_line":84,"start_character":4,"end_line":84,"end_character":10},"in_reply_to":"ffe62b97_7ae2efd6","updated":"2017-03-30 11:06:31.000000000","message":"notify will restart ovs service, which will cause the ovs bridges to lose IP and may result in OSP upgrade failure. IMHO, the installer needs to handle the restart of these services at the right moment.","commit_id":"cbf0528ecca5b410c6d87867faf997c7a9c7c066"},{"author":{"_account_id":17280,"name":"Tim Rozet","email":"trozet@redhat.com","username":"trozet"},"change_message_id":"1617f47ba39e0e48d693be14e8fa613ea9c0c872","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#   This parameter is required only for OVS versions \u003c\u003d 2.5."},{"line_number":13,"context_line":"#"},{"line_number":14,"context_line":"# [*host_core_list*]"},{"line_number":15,"context_line":"#   (optional) The list of host cores to be used by the DPDK Poll Mode Driver"},{"line_number":16,"context_line":"#   The host_core_list is a string with format as \u003cc1\u003e[-c2][,c3[-c4],...]"},{"line_number":17,"context_line":"#   where c1, c2, etc are core indexes between 0 and 128."},{"line_number":18,"context_line":"#   For example, to configure 3 cores the value should be \"0-2\""},{"line_number":19,"context_line":"#"},{"line_number":20,"context_line":"# [*package_ensure*]"},{"line_number":21,"context_line":"#   (Optional) State of the openvswitch package"}],"source_content_type":"text/x-puppet","patch_set":18,"id":"dfeb2761_719e6464","line":18,"range":{"start_line":15,"start_character":0,"end_line":18,"end_character":63},"updated":"2017-03-31 14:30:19.000000000","message":"Actually this description and probably parameter name is not right.  This eventually sets the dpdk-lcore-mask which is used to pin lcore threads.  According to OVS devs these are helper and validator threads that only affect kernel path, so setting this for dpdk provides little/no performance gain.","commit_id":"dc7c7faba4b7cc8399e03d46a344c890cabc56a9"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"ef8d1b1a9fdb04dad8dbe1b4ae278cd3619296a0","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#   This parameter is required only for OVS versions \u003c\u003d 2.5."},{"line_number":13,"context_line":"#"},{"line_number":14,"context_line":"# [*host_core_list*]"},{"line_number":15,"context_line":"#   (optional) The list of host cores to be used by the DPDK Poll Mode Driver"},{"line_number":16,"context_line":"#   The host_core_list is a string with format as \u003cc1\u003e[-c2][,c3[-c4],...]"},{"line_number":17,"context_line":"#   where c1, c2, etc are core indexes between 0 and 128."},{"line_number":18,"context_line":"#   For example, to configure 3 cores the value should be \"0-2\""},{"line_number":19,"context_line":"#"},{"line_number":20,"context_line":"# [*package_ensure*]"},{"line_number":21,"context_line":"#   (Optional) State of the openvswitch package"}],"source_content_type":"text/x-puppet","patch_set":18,"id":"dfeb2761_f7dca447","line":18,"range":{"start_line":15,"start_character":0,"end_line":18,"end_character":63},"in_reply_to":"dfeb2761_719e6464","updated":"2017-03-31 15:24:27.000000000","message":"Ack","commit_id":"dc7c7faba4b7cc8399e03d46a344c890cabc56a9"},{"author":{"_account_id":17280,"name":"Tim Rozet","email":"trozet@redhat.com","username":"trozet"},"change_message_id":"1617f47ba39e0e48d693be14e8fa613ea9c0c872","unresolved":false,"context_lines":[{"line_number":22,"context_line":"#   Defaults to \u0027present\u0027."},{"line_number":23,"context_line":"#"},{"line_number":24,"context_line":"# [*pmd_core_list*]"},{"line_number":25,"context_line":"#   (optional) The list of cores to be used by the OVS Agent"},{"line_number":26,"context_line":"#   The pmd_core_list is a string with format as \u003cc1\u003e[-c2][,c3[-c4],...] where"},{"line_number":27,"context_line":"#   c1, c2, etc are core indexes between 0 and 128"},{"line_number":28,"context_line":"#   For example, to configure 3 cores the value should be \"0-2\""}],"source_content_type":"text/x-puppet","patch_set":18,"id":"dfeb2761_7177843c","line":25,"range":{"start_line":25,"start_character":4,"end_line":25,"end_character":60},"updated":"2017-03-31 14:30:19.000000000","message":"This should be \"The list of cores where PMD threads will run\"","commit_id":"dc7c7faba4b7cc8399e03d46a344c890cabc56a9"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"ef8d1b1a9fdb04dad8dbe1b4ae278cd3619296a0","unresolved":false,"context_lines":[{"line_number":22,"context_line":"#   Defaults to \u0027present\u0027."},{"line_number":23,"context_line":"#"},{"line_number":24,"context_line":"# [*pmd_core_list*]"},{"line_number":25,"context_line":"#   (optional) The list of cores to be used by the OVS Agent"},{"line_number":26,"context_line":"#   The pmd_core_list is a string with format as \u003cc1\u003e[-c2][,c3[-c4],...] where"},{"line_number":27,"context_line":"#   c1, c2, etc are core indexes between 0 and 128"},{"line_number":28,"context_line":"#   For example, to configure 3 cores the value should be \"0-2\""}],"source_content_type":"text/x-puppet","patch_set":18,"id":"dfeb2761_b7e61c16","line":25,"range":{"start_line":25,"start_character":4,"end_line":25,"end_character":60},"in_reply_to":"dfeb2761_7177843c","updated":"2017-03-31 15:24:27.000000000","message":"Done","commit_id":"dc7c7faba4b7cc8399e03d46a344c890cabc56a9"},{"author":{"_account_id":17280,"name":"Tim Rozet","email":"trozet@redhat.com","username":"trozet"},"change_message_id":"1617f47ba39e0e48d693be14e8fa613ea9c0c872","unresolved":false,"context_lines":[{"line_number":33,"context_line":"#   order of socket numbers. For example, to allocate memory of 1GB for"},{"line_number":34,"context_line":"#   socket 1 and no allocation for socket 0, the value should be \"0,1024\""},{"line_number":35,"context_line":"#   Defaults to undef."},{"line_number":36,"context_line":"#"},{"line_number":37,"context_line":"class vswitch::dpdk ("},{"line_number":38,"context_line":"  $memory_channels    \u003d undef,"},{"line_number":39,"context_line":"  $driver_type        \u003d \u0027vfio-pci\u0027,"}],"source_content_type":"text/x-puppet","patch_set":18,"id":"dfeb2761_919fa84f","line":36,"updated":"2017-03-31 14:30:19.000000000","message":"We are also missing the option to set the number of RX queues.  We should probably add that as it can be a necessary configuration option when using multiple PMD threads.\novs-vsctl set Interface \u003cDPDK interface\u003e options:n_rxq\u003d\u003cinteger\u003e","commit_id":"dc7c7faba4b7cc8399e03d46a344c890cabc56a9"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"ef8d1b1a9fdb04dad8dbe1b4ae278cd3619296a0","unresolved":false,"context_lines":[{"line_number":33,"context_line":"#   order of socket numbers. For example, to allocate memory of 1GB for"},{"line_number":34,"context_line":"#   socket 1 and no allocation for socket 0, the value should be \"0,1024\""},{"line_number":35,"context_line":"#   Defaults to undef."},{"line_number":36,"context_line":"#"},{"line_number":37,"context_line":"class vswitch::dpdk ("},{"line_number":38,"context_line":"  $memory_channels    \u003d undef,"},{"line_number":39,"context_line":"  $driver_type        \u003d \u0027vfio-pci\u0027,"}],"source_content_type":"text/x-puppet","patch_set":18,"id":"dfeb2761_773534da","line":36,"in_reply_to":"dfeb2761_919fa84f","updated":"2017-03-31 15:24:27.000000000","message":"This puppet manifests for DPDK aims to configure the generic DPDK parameters and not interface specific parameters. AFAIK the interface specific parameters will be taken care by the respective installer.","commit_id":"dc7c7faba4b7cc8399e03d46a344c890cabc56a9"},{"author":{"_account_id":17280,"name":"Tim Rozet","email":"trozet@redhat.com","username":"trozet"},"change_message_id":"22d20bfa15cd80eb22a650a11968fc747f09a373","unresolved":false,"context_lines":[{"line_number":39,"context_line":"  $driver_type        \u003d \u0027vfio-pci\u0027,"},{"line_number":40,"context_line":"  $host_core_list     \u003d undef,"},{"line_number":41,"context_line":"  $package_ensure     \u003d \u0027present\u0027,"},{"line_number":42,"context_line":"  $pmd_core_list      \u003d undef,"},{"line_number":43,"context_line":"  $socket_mem         \u003d undef,"},{"line_number":44,"context_line":") {"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-puppet","patch_set":18,"id":"ffe62b97_aec5bc0c","line":42,"range":{"start_line":42,"start_character":3,"end_line":42,"end_character":16},"updated":"2017-03-30 14:03:28.000000000","message":"I like leaving these as lists rather than masks.  It is easier to use.","commit_id":"dc7c7faba4b7cc8399e03d46a344c890cabc56a9"},{"author":{"_account_id":17280,"name":"Tim Rozet","email":"trozet@redhat.com","username":"trozet"},"change_message_id":"22d20bfa15cd80eb22a650a11968fc747f09a373","unresolved":false,"context_lines":[{"line_number":109,"context_line":"  }"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"  $dpdk_configs \u003d {"},{"line_number":112,"context_line":"    \u0027other_config:dpdk-extra\u0027      \u003d\u003e { value \u003d\u003e $memory_channels_conf, skip_if_version \u003d\u003e \u00272.5\u0027},"},{"line_number":113,"context_line":"    \u0027other_config:dpdk-init\u0027       \u003d\u003e { value \u003d\u003e \u0027true\u0027, skip_if_version \u003d\u003e \u00272.5\u0027},"},{"line_number":114,"context_line":"    \u0027other_config:dpdk-socket-mem\u0027 \u003d\u003e { value \u003d\u003e $socket_mem, skip_if_version \u003d\u003e \u00272.5\u0027},"},{"line_number":115,"context_line":"    \u0027other_config:dpdk-lcore-mask\u0027 \u003d\u003e { value \u003d\u003e $dpdk_lcore_mask, skip_if_version \u003d\u003e \u00272.5\u0027},"}],"source_content_type":"text/x-puppet","patch_set":18,"id":"ffe62b97_ee74e400","line":112,"range":{"start_line":112,"start_character":5,"end_line":112,"end_character":28},"updated":"2017-03-30 14:03:28.000000000","message":"did you ever confirm you can use other_config:dpdk-mem-channels ?","commit_id":"dc7c7faba4b7cc8399e03d46a344c890cabc56a9"},{"author":{"_account_id":18904,"name":"Karthik S","email":"ksundara@redhat.com","username":"karthiks"},"change_message_id":"ef8d1b1a9fdb04dad8dbe1b4ae278cd3619296a0","unresolved":false,"context_lines":[{"line_number":109,"context_line":"  }"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"  $dpdk_configs \u003d {"},{"line_number":112,"context_line":"    \u0027other_config:dpdk-extra\u0027      \u003d\u003e { value \u003d\u003e $memory_channels_conf, skip_if_version \u003d\u003e \u00272.5\u0027},"},{"line_number":113,"context_line":"    \u0027other_config:dpdk-init\u0027       \u003d\u003e { value \u003d\u003e \u0027true\u0027, skip_if_version \u003d\u003e \u00272.5\u0027},"},{"line_number":114,"context_line":"    \u0027other_config:dpdk-socket-mem\u0027 \u003d\u003e { value \u003d\u003e $socket_mem, skip_if_version \u003d\u003e \u00272.5\u0027},"},{"line_number":115,"context_line":"    \u0027other_config:dpdk-lcore-mask\u0027 \u003d\u003e { value \u003d\u003e $dpdk_lcore_mask, skip_if_version \u003d\u003e \u00272.5\u0027},"}],"source_content_type":"text/x-puppet","patch_set":18,"id":"dfeb2761_775414cb","line":112,"range":{"start_line":112,"start_character":5,"end_line":112,"end_character":28},"in_reply_to":"ffe62b97_ee74e400","updated":"2017-03-31 15:24:27.000000000","message":"I\u0027ve checked with openvswitch team and learnt that there is no db entry like \u0027other_config:dpdk-mem-channels\u0027. And from ovs2.6 its optional to configure memory channels.","commit_id":"dc7c7faba4b7cc8399e03d46a344c890cabc56a9"}]}
