Hello community, here is the log from the commit of package yast2 for openSUSE:Factory checked in at 2019-02-11 21:17:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/yast2 (Old) and /work/SRC/openSUSE:Factory/.yast2.new.28833 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2" Mon Feb 11 21:17:49 2019 rev:442 rq:672409 version:4.1.54 Changes: -------- --- /work/SRC/openSUSE:Factory/yast2/yast2.changes 2019-01-24 14:00:59.108217751 +0100 +++ /work/SRC/openSUSE:Factory/.yast2.new.28833/yast2.changes 2019-02-11 21:17:50.775322595 +0100 @@ -1,0 +2,7 @@ +Thu Feb 7 10:01:59 UTC 2019 - [email protected] + +- Firewall: added some help methods for moving interfaces between + zones in a safe way (fate#324662). +- 4.1.54 + +------------------------------------------------------------------- Old: ---- yast2-4.1.53.tar.bz2 New: ---- yast2-4.1.54.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ yast2.spec ++++++ --- /var/tmp/diff_new_pack.eFJr38/_old 2019-02-11 21:17:51.359322284 +0100 +++ /var/tmp/diff_new_pack.eFJr38/_new 2019-02-11 21:17:51.363322283 +0100 @@ -17,7 +17,7 @@ Name: yast2 -Version: 4.1.53 +Version: 4.1.54 Release: 0 Summary: YaST2 - Main Package License: GPL-2.0-only ++++++ yast2-4.1.53.tar.bz2 -> yast2-4.1.54.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-4.1.53/library/network/src/lib/y2firewall/firewalld/interface.rb new/yast2-4.1.54/library/network/src/lib/y2firewall/firewalld/interface.rb --- old/yast2-4.1.53/library/network/src/lib/y2firewall/firewalld/interface.rb 2019-01-18 09:50:21.000000000 +0100 +++ new/yast2-4.1.54/library/network/src/lib/y2firewall/firewalld/interface.rb 2019-02-07 11:49:53.000000000 +0100 @@ -96,6 +96,15 @@ fw.zones.find { |z| z.interfaces.include?(name) } end + # Assign the interface to the given zone + # + # @param zone_name [String] the name of the zone to be assigned to + def zone=(zone_name) + fw.zones.each { |z| z.remove_interface(name) if z.interfaces.include?(name) } + z = fw.find_zone(zone_name) + z && z.add_interface(name) + end + private # Return an instance of Y2Firewall::Firewalld diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-4.1.53/library/network/src/lib/y2firewall/firewalld/zone.rb new/yast2-4.1.54/library/network/src/lib/y2firewall/firewalld/zone.rb --- old/yast2-4.1.53/library/network/src/lib/y2firewall/firewalld/zone.rb 2019-01-18 09:50:21.000000000 +0100 +++ new/yast2-4.1.54/library/network/src/lib/y2firewall/firewalld/zone.rb 2019-02-07 11:49:53.000000000 +0100 @@ -136,6 +136,15 @@ api.change_interface(name, interface) end + # Assign the interface to the zone removing it previously from any other + # zone that was including it. + # + # @param interface [String] interface name + def change_interface(interface) + firewalld.zones.each { |z| z.remove_interface(interface) } + add_interface(interface) + end + private # Convenience method which return an instance of Y2Firewall::Firewalld diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-4.1.53/library/network/src/modules/NetworkInterfaces.rb new/yast2-4.1.54/library/network/src/modules/NetworkInterfaces.rb --- old/yast2-4.1.53/library/network/src/modules/NetworkInterfaces.rb 2019-01-18 09:50:21.000000000 +0100 +++ new/yast2-4.1.54/library/network/src/modules/NetworkInterfaces.rb 2019-02-07 11:49:53.000000000 +0100 @@ -865,7 +865,6 @@ # TODO : delete PREFIXLEN from config file end end - devmap["ZONE"] = nil if devmap["ZONE"] && devmap["ZONE"].empty? # write all keys to config Builtins.maplist( Convert.convert( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-4.1.53/library/network/test/y2firewall/firewalld/interface_test.rb new/yast2-4.1.54/library/network/test/y2firewall/firewalld/interface_test.rb --- old/yast2-4.1.53/library/network/test/y2firewall/firewalld/interface_test.rb 2019-01-18 09:50:21.000000000 +0100 +++ new/yast2-4.1.54/library/network/test/y2firewall/firewalld/interface_test.rb 2019-02-07 11:49:53.000000000 +0100 @@ -123,4 +123,27 @@ end end end + + describe "#zone=" do + let(:public_zone) { Y2Firewall::Firewalld::Zone.new(name: "public") } + let(:dmz_zone) { Y2Firewall::Firewalld::Zone.new(name: "dmz") } + + before do + allow(Y2Firewall::Firewalld.instance).to receive(:zones) + .and_return([public_zone, dmz_zone]) + public_zone.interfaces = ["eth1"] + dmz_zone.interfaces = ["eth0"] + end + + it "removes the interface from the zones that include the interface" do + iface.zone = "public" + expect(dmz_zone.interfaces).to be_empty + end + + it "adds the interface to the given zone" do + expect(public_zone.interfaces).to_not include("eth0") + iface.zone = "public" + expect(public_zone.interfaces).to include("eth0") + end + end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-4.1.53/library/network/test/y2firewall/firewalld/zone_test.rb new/yast2-4.1.54/library/network/test/y2firewall/firewalld/zone_test.rb --- old/yast2-4.1.53/library/network/test/y2firewall/firewalld/zone_test.rb 2019-01-18 09:50:21.000000000 +0100 +++ new/yast2-4.1.54/library/network/test/y2firewall/firewalld/zone_test.rb 2019-02-07 11:49:53.000000000 +0100 @@ -178,4 +178,26 @@ end end end + + describe "#change_interface" do + subject { described_class.new(name: "test") } + let(:public_zone) { Y2Firewall::Firewalld::Zone.new(name: "public") } + let(:dmz_zone) { Y2Firewall::Firewalld::Zone.new(name: "dmz") } + + before do + allow(firewalld).to receive(:zones).and_return([public_zone, dmz_zone, subject]) + public_zone.interfaces = ["eth1 bond0"] + dmz_zone.interfaces = ["eth0"] + end + + it "removes the given interface from other zones" do + subject.change_interface("eth0") + expect(dmz_zone.interfaces).to be_empty + end + + it "adds the given interface to this zone" do + subject.change_interface("eth0") + expect(subject.interfaces).to include("eth0") + end + end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-4.1.53/package/yast2.changes new/yast2-4.1.54/package/yast2.changes --- old/yast2-4.1.53/package/yast2.changes 2019-01-18 09:50:21.000000000 +0100 +++ new/yast2-4.1.54/package/yast2.changes 2019-02-07 11:49:53.000000000 +0100 @@ -1,4 +1,11 @@ ------------------------------------------------------------------- +Thu Feb 7 10:01:59 UTC 2019 - [email protected] + +- Firewall: added some help methods for moving interfaces between + zones in a safe way (fate#324662). +- 4.1.54 + +------------------------------------------------------------------- Thu Jan 17 00:55:03 UTC 2019 - [email protected] - CWM: Added date field and time field widgets (fate#322722) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-4.1.53/package/yast2.spec new/yast2-4.1.54/package/yast2.spec --- old/yast2-4.1.53/package/yast2.spec 2019-01-18 09:50:21.000000000 +0100 +++ new/yast2-4.1.54/package/yast2.spec 2019-02-07 11:49:53.000000000 +0100 @@ -17,7 +17,7 @@ Name: yast2 -Version: 4.1.53 +Version: 4.1.54 Release: 0 Summary: YaST2 - Main Package License: GPL-2.0-only
