Hello community, here is the log from the commit of package yast2-network for openSUSE:Factory checked in at 2017-01-23 11:26:11 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/yast2-network (Old) and /work/SRC/openSUSE:Factory/.yast2-network.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-network" Changes: -------- --- /work/SRC/openSUSE:Factory/yast2-network/yast2-network.changes 2016-12-26 21:44:14.449473289 +0100 +++ /work/SRC/openSUSE:Factory/.yast2-network.new/yast2-network.changes 2017-01-23 11:26:12.672978570 +0100 @@ -1,0 +2,7 @@ +Wed Jan 11 00:56:09 UTC 2017 - [email protected] + +- Fixed the assignment of udev rules to Lan Items when a previous + one does not exist (bsc#996879). +- 3.2.18 + +------------------------------------------------------------------- Old: ---- yast2-network-3.2.17.tar.bz2 New: ---- yast2-network-3.2.18.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ yast2-network.spec ++++++ --- /var/tmp/diff_new_pack.U4MzYW/_old 2017-01-23 11:26:13.208902600 +0100 +++ /var/tmp/diff_new_pack.U4MzYW/_new 2017-01-23 11:26:13.216901466 +0100 @@ -1,7 +1,7 @@ # # spec file for package yast2-network # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: yast2-network -Version: 3.2.17 +Version: 3.2.18 Release: 0 BuildArch: noarch ++++++ yast2-network-3.2.17.tar.bz2 -> yast2-network-3.2.18.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-network-3.2.17/.travis.yml new/yast2-network-3.2.18/.travis.yml --- old/yast2-network-3.2.17/.travis.yml 2016-12-20 09:49:36.693339548 +0100 +++ new/yast2-network-3.2.18/.travis.yml 2017-01-16 17:29:43.928382000 +0100 @@ -1,18 +1,11 @@ -language: cpp -compiler: - - gcc +sudo: required +language: bash +services: + - docker + before_install: - # disable rvm, use system Ruby - - rvm reset - # install newer augeasget repo with newer augeas, otherwise ruby-augeas fails (see https://github.com/yast/yast-network/pull/454#issuecomment-253795507) - - sudo add-apt-repository -y ppa:raphink/augeas - - sudo apt-get update - - sudo apt-get install libaugeas-dev libxml2-dev - # end of augeas install - - wget https://raw.githubusercontent.com/yast/yast-devtools/master/travis-tools/travis_setup.sh - - sh ./travis_setup.sh -p "ruby2.1-dev augeas-lenses libaugeas0 rake yast2-devtools yast2-testsuite yast2 yast2-storage yast2-proxy yast2-country yast2-packager" -g "rspec:3.3.0 yast-rake gettext rubocop:0.41.2 simplecov:0.10.0 coveralls cfa cheetah" + - docker build -t yast-network-image . script: - - rubocop - - rake check:syntax - - rake check:pot - - COVERAGE=1 rake test:unit + # the "yast-travis-ruby" script is included in the base yastdevel/ruby image + # see https://github.com/yast/docker-yast-ruby/blob/master/yast-travis-ruby + - docker run -it -e TRAVIS=1 -e TRAVIS_JOB_ID="$TRAVIS_JOB_ID" yast-network-image yast-travis-ruby diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-network-3.2.17/Dockerfile new/yast2-network-3.2.18/Dockerfile --- old/yast2-network-3.2.17/Dockerfile 1970-01-01 01:00:00.000000000 +0100 +++ new/yast2-network-3.2.18/Dockerfile 2017-01-16 17:29:43.936382000 +0100 @@ -0,0 +1,3 @@ +FROM yastdevel/ruby +COPY . /usr/src/app + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-network-3.2.17/package/yast2-network.changes new/yast2-network-3.2.18/package/yast2-network.changes --- old/yast2-network-3.2.17/package/yast2-network.changes 2016-12-20 09:49:36.805339548 +0100 +++ new/yast2-network-3.2.18/package/yast2-network.changes 2017-01-16 17:29:44.020382000 +0100 @@ -1,4 +1,11 @@ ------------------------------------------------------------------- +Wed Jan 11 00:56:09 UTC 2017 - [email protected] + +- Fixed the assignment of udev rules to Lan Items when a previous + one does not exist (bsc#996879). +- 3.2.18 + +------------------------------------------------------------------- Fri Dec 9 09:19:16 UTC 2016 - [email protected] - bnc#1013605 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-network-3.2.17/package/yast2-network.spec new/yast2-network-3.2.18/package/yast2-network.spec --- old/yast2-network-3.2.17/package/yast2-network.spec 2016-12-20 09:49:36.805339548 +0100 +++ new/yast2-network-3.2.18/package/yast2-network.spec 2017-01-16 17:29:44.020382000 +0100 @@ -17,7 +17,7 @@ Name: yast2-network -Version: 3.2.17 +Version: 3.2.18 Release: 0 BuildArch: noarch diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-network-3.2.17/src/modules/LanItems.rb new/yast2-network-3.2.18/src/modules/LanItems.rb --- old/yast2-network-3.2.17/src/modules/LanItems.rb 2016-12-20 09:49:36.969339548 +0100 +++ new/yast2-network-3.2.18/src/modules/LanItems.rb 2017-01-16 17:29:44.200382000 +0100 @@ -488,7 +488,7 @@ # = for assignment # == for equality checks operator = new_key == "NAME" ? "=" : "==" - current_rule = getUdevFallback + current_rule = GetItemUdevRule(@current) rule = RemoveKeyFromUdevRule(getUdevFallback, replace_key) # NAME="devname" has to be last in the rule. @@ -498,12 +498,12 @@ new_rule = AddToUdevRule(rule, "#{new_key}#{operator}\"#{new_val}\"") new_rule.push(name_tuple) - log.info("ReplaceItemUdev: new udev rule = #{new_rule}") - if current_rule.sort != new_rule.sort SetModified() - Items()[@current]["udev"] = { "net" => {} } if !Items()[@current]["udev"] + log.info("ReplaceItemUdev: new udev rule = #{new_rule}") + + Items()[@current]["udev"] = { "net" => [] } if !Items()[@current]["udev"] Items()[@current]["udev"]["net"] = new_rule end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-network-3.2.17/test/udev_test.rb new/yast2-network-3.2.18/test/udev_test.rb --- old/yast2-network-3.2.17/test/udev_test.rb 2016-12-20 09:49:37.093339548 +0100 +++ new/yast2-network-3.2.18/test/udev_test.rb 2017-01-16 17:29:44.328382000 +0100 @@ -54,7 +54,7 @@ end describe "#udev_rule_key" do - let(:rule) { ["KERNELS=\"invalid\"", "KERNEL=\"eth*\"", "NAME=\"eth1\""] } + let(:rule) { ["KERNELS==\"invalid\"", "KERNEL==\"eth*\"", "NAME=\"eth1\""] } it "raises ArgumentError if given rule is empty" do expect { Yast::LanItems.udev_key_value(nil, "KERNEL") } @@ -73,7 +73,7 @@ describe "NetworkLanUdevInclude#AddToUdevRule" do subject(:udev) { NetworkLanComplexUdev.new } - let(:rule) { ["KERNELS=\"invalid\"", "KERNEL=\"eth*\"", "NAME=\"eth1\""] } + let(:rule) { ["KERNELS==\"invalid\"", "KERNEL==\"eth*\"", "NAME=\"eth1\""] } it "adds new tripled into existing rule" do updated_rule = udev.AddToUdevRule(rule, "ENV{MODALIAS}==\"e1000\"") @@ -84,7 +84,7 @@ describe "NetworkLanUdevInclude#RemoveKeyFromUdevRule" do subject(:udev) { NetworkLanComplexUdev.new } - let(:rule) { ["KERNELS=\"invalid\"", "KERNEL=\"eth*\"", "NAME=\"eth1\""] } + let(:rule) { ["KERNELS==\"invalid\"", "KERNEL==\"eth*\"", "NAME=\"eth1\""] } it "removes tripled from existing rule" do updated_rule = udev.RemoveKeyFromUdevRule(rule, "KERNEL") @@ -93,84 +93,62 @@ end describe "LanItems#ReplaceItemUdev" do - Yast.import "LanItems" + let(:rule) { [] } + let(:items) { { 0 => { "udev" => { "net" => rule } } } } + let(:mac_address) { "xx:01:02:03:04:05" } before(:each) do Yast::LanItems.current = 0 # LanItems should create "udev" and "net" subkeys for each item # during Read - allow(Yast::LanItems) - .to receive(:Items) - .and_return(0 => { "udev" => { "net" => [] } }) - end - - it "replaces triplet in the rule as requested" do - allow(Yast::LanItems) - .to receive(:Items) - .and_return(0 => {}) - allow(Yast::LanItems) - .to receive(:getUdevFallback) - .and_return( - [ - "KERNELS==\"invalid\"", - "KERNEL=\"eth*\"", - "NAME=\"eth1\"" - ] - ) + allow(Yast::LanItems).to receive(:Items).and_return(items) + end - expect(Yast::LanItems).to receive(:SetModified) + context "when the given Item hasn't got an udev rule" do + let(:items) { { 0 => {} } } + let(:default_rule) { Yast::LanItems.GetDefaultUdevRule("eth1", mac_address) } - # internally used in ReplaceItemUdev, needed to be able to mock its usage - Yast::LanItems.current = 0 + it "creates and assings a new rule for the given Item" do + allow(Yast::LanItems).to receive(:getUdevFallback).and_return(default_rule) + + expect(Yast::LanItems).to receive(:SetModified) + + updated_rule = Yast::LanItems.ReplaceItemUdev("KERNELS", "ATTR{address}", mac_address) + item_rule = Yast::LanItems.getCurrentItem["udev"]["net"] + + expect(updated_rule).to include "ATTR{address}==\"#{mac_address}\"" + expect(item_rule).to include "ATTR{address}==\"#{mac_address}\"" + end + end + + context "when the given Item has got an udev rule" do + let(:rule) { ["ATTR==\"#{mac_address}\"", "KERNEL==\"eth*\"", "NAME=\"eth1\""] } + let(:bus_id) { "0000:08:00.0" } + + it "replaces triplet in the rule as requested" do + expect(Yast::LanItems).to receive(:SetModified) + + updated_rule = Yast::LanItems.ReplaceItemUdev("ATTR{address}", "KERNELS", bus_id) + item_rule = Yast::LanItems.getCurrentItem["udev"]["net"] + + expect(updated_rule).to include "KERNELS==\"#{bus_id}\"" + expect(updated_rule).not_to include "ATTR{address}==\"#{mac_address}\"" + expect(item_rule).to include "KERNELS==\"#{bus_id}\"" + expect(item_rule).not_to include "ATTR{address}==\"#{mac_address}\"" + end + + it "does not set modification flag in case of no change" do + Yast::LanItems.ReplaceItemUdev("ATTR{address}", "ATTR{address}", mac_address) + + expect(Yast::LanItems).not_to receive(:SetModified) + end - updated_rule = Yast::LanItems.ReplaceItemUdev( - "KERNELS", - "ATTR{address}", - "xx:01:02:03:04:05" - ) - expect(updated_rule).to include "ATTR{address}==\"xx:01:02:03:04:05\"" - expect(updated_rule).not_to include "KERNELS" - end - - it "do not set modification flag in case of no change" do - allow(Yast::LanItems) - .to receive(:getUdevFallback) - .and_return( - [ - "ATTR{address}==\"xx:01:02:03:04:05\"", - "KERNEL=\"eth*\"", - "NAME=\"eth1\"" - ] - ) - - Yast::LanItems.ReplaceItemUdev( - "KERNELS", - "ATTR{address}", - "xx:01:02:03:04:05" - ) - - expect(Yast::LanItems).not_to receive(:SetModified) - end - - # this is an SCR limitation - it "contains NAME tuplet at last position" do - allow(Yast::LanItems) - .to receive(:getUdevFallback) - .and_return( - [ - "ATTR{address}==\"xx:01:02:03:04:05\"", - "KERNEL=\"eth*\"", - "NAME=\"eth1\"" - ] - ) - - updated_rule = Yast::LanItems.ReplaceItemUdev( - "KERNELS", - "ATTR{address}", - "xx:01:02:03:04:AA" - ) + # this is an SCR limitation + it "contains NAME tuplet at last position" do + updated_rule = Yast::LanItems.ReplaceItemUdev("ATTR{address}", "KERNELS", bus_id) - expect(updated_rule.last).to match(/NAME.*/) + expect(updated_rule.last).to match(/NAME.*/) + end end end
