Hello community,

here is the log from the commit of package yast2-firewall for openSUSE:Factory 
checked in at 2020-07-27 17:36:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-firewall (Old)
 and      /work/SRC/openSUSE:Factory/.yast2-firewall.new.3592 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yast2-firewall"

Mon Jul 27 17:36:27 2020 rev:83 rq:822625 version:4.3.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-firewall/yast2-firewall.changes    
2020-06-10 00:36:55.205157441 +0200
+++ /work/SRC/openSUSE:Factory/.yast2-firewall.new.3592/yast2-firewall.changes  
2020-07-27 17:36:43.146787394 +0200
@@ -1,0 +2,7 @@
+Thu Jul 23 15:55:52 UTC 2020 - Knut Anderssen <[email protected]>
+
+- AutoYaST: Only export modified zones when it is asked to export a
+  reduced profile. (bsc#1171356)
+- 4.3.2
+
+-------------------------------------------------------------------

Old:
----
  yast2-firewall-4.3.1.tar.bz2

New:
----
  yast2-firewall-4.3.2.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ yast2-firewall.spec ++++++
--- /var/tmp/diff_new_pack.mwZleF/_old  2020-07-27 17:36:46.642790796 +0200
+++ /var/tmp/diff_new_pack.mwZleF/_new  2020-07-27 17:36:46.646790800 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-firewall
-Version:        4.3.1
+Version:        4.3.2
 Release:        0
 Summary:        YaST2 - Firewall Configuration
 License:        GPL-2.0-only
@@ -30,13 +30,13 @@
 BuildRequires:  update-desktop-files
 BuildRequires:  yast2-devtools >= 4.2.2
 BuildRequires:  yast2-testsuite
-# AutoYaST issue report
-BuildRequires:  yast2 >= 4.3.2
+# Y2Firewall::Firewalld#modified_from_default
+BuildRequires:  yast2 >= 4.3.17
 BuildRequires:  rubygem(%rb_default_ruby_abi:rspec)
 BuildRequires:  rubygem(%rb_default_ruby_abi:yast-rake)
 
-# AutoYaST issue report
-Requires:       yast2 >= 4.3.2
+# Y2Firewall::Firewalld#modified_from_default
+Requires:       yast2 >= 4.3.17
 Requires:       yast2-ruby-bindings >= 1.0.0
 
 # ButtonBox widget

++++++ yast2-firewall-4.3.1.tar.bz2 -> yast2-firewall-4.3.2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-firewall-4.3.1/package/yast2-firewall.changes 
new/yast2-firewall-4.3.2/package/yast2-firewall.changes
--- old/yast2-firewall-4.3.1/package/yast2-firewall.changes     2020-05-29 
15:06:39.000000000 +0200
+++ new/yast2-firewall-4.3.2/package/yast2-firewall.changes     2020-07-24 
13:36:38.000000000 +0200
@@ -1,4 +1,11 @@
 -------------------------------------------------------------------
+Thu Jul 23 15:55:52 UTC 2020 - Knut Anderssen <[email protected]>
+
+- AutoYaST: Only export modified zones when it is asked to export a
+  reduced profile. (bsc#1171356)
+- 4.3.2
+
+-------------------------------------------------------------------
 Thu May  7 15:22:56 CEST 2020 - [email protected]
 
 - AutoYaST: Cleanup/improve issue handling (bsc#1171335).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-firewall-4.3.1/package/yast2-firewall.spec 
new/yast2-firewall-4.3.2/package/yast2-firewall.spec
--- old/yast2-firewall-4.3.1/package/yast2-firewall.spec        2020-05-29 
15:06:39.000000000 +0200
+++ new/yast2-firewall-4.3.2/package/yast2-firewall.spec        2020-07-24 
13:36:38.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-firewall
-Version:        4.3.1
+Version:        4.3.2
 Release:        0
 Summary:        YaST2 - Firewall Configuration
 Group:          System/YaST
@@ -28,13 +28,13 @@
 
 BuildRequires:  perl-XML-Writer update-desktop-files yast2-testsuite
 BuildRequires:  yast2-devtools >= 4.2.2
-# AutoYaST issue report
-BuildRequires:  yast2 >= 4.3.2
+# Y2Firewall::Firewalld#modified_from_default
+BuildRequires:  yast2 >= 4.3.17
 BuildRequires:  rubygem(%rb_default_ruby_abi:yast-rake)
 BuildRequires:  rubygem(%rb_default_ruby_abi:rspec)
 
-# AutoYaST issue report
-Requires:       yast2 >= 4.3.2
+# Y2Firewall::Firewalld#modified_from_default
+Requires:       yast2 >= 4.3.17
 Requires:       yast2-ruby-bindings >= 1.0.0
 
 # ButtonBox widget
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-firewall-4.3.1/src/lib/y2firewall/autoyast.rb 
new/yast2-firewall-4.3.2/src/lib/y2firewall/autoyast.rb
--- old/yast2-firewall-4.3.1/src/lib/y2firewall/autoyast.rb     2020-05-29 
15:06:39.000000000 +0200
+++ new/yast2-firewall-4.3.2/src/lib/y2firewall/autoyast.rb     2020-07-24 
13:36:38.000000000 +0200
@@ -45,7 +45,7 @@
     # Return a map with current firewalld settings.
     #
     # @return [Hash] dump firewalld settings
-    def export
+    def export(target: :default)
       return {} unless firewalld.installed?
 
       {
@@ -53,12 +53,24 @@
         "start_firewall"     => firewalld.running?,
         "default_zone"       => firewalld.default_zone,
         "log_denied_packets" => firewalld.log_denied_packets,
-        "zones"              => firewalld.zones.map { |z| export_zone(z) }
+        "zones"              => export_zones(target.to_s)
       }
     end
 
   private
 
+    def zones_to_export(target)
+      return firewalld.modified_from_default("zones") if target == "compact"
+
+      firewalld.zones.map(&:name)
+    end
+
+    def export_zones(target)
+      zones = zones_to_export(target)
+
+      firewalld.zones.select { |z| zones.include?(z.name) }.map { |z| 
export_zone(z) }
+    end
+
     def export_zone(zone)
       (zone.attributes + zone.relations)
         .each_with_object("name" => zone.name) do |field, profile|
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-firewall-4.3.1/src/lib/y2firewall/clients/auto.rb 
new/yast2-firewall-4.3.2/src/lib/y2firewall/clients/auto.rb
--- old/yast2-firewall-4.3.1/src/lib/y2firewall/clients/auto.rb 2020-05-29 
15:06:39.000000000 +0200
+++ new/yast2-firewall-4.3.2/src/lib/y2firewall/clients/auto.rb 2020-07-24 
13:36:38.000000000 +0200
@@ -93,9 +93,11 @@
 
       # Export the current firewalld configuration
       #
+      # @param target [Symbol] Control how much information should be exported
+      #   (e.g., :default or :compact).
       # @return [Hash] with the current firewalld configuration
-      def export
-        autoyast.export
+      def export(target: :default)
+        autoyast.export(target: target)
       end
 
       # Reset the current firewalld configuration.
@@ -123,6 +125,7 @@
       # it again.
       def write
         return false if !firewalld.installed?
+
         import_if_needed
         return false unless imported?
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-firewall-4.3.1/test/lib/y2firewall/autoyast_test.rb 
new/yast2-firewall-4.3.2/test/lib/y2firewall/autoyast_test.rb
--- old/yast2-firewall-4.3.1/test/lib/y2firewall/autoyast_test.rb       
2020-05-29 15:06:39.000000000 +0200
+++ new/yast2-firewall-4.3.2/test/lib/y2firewall/autoyast_test.rb       
2020-07-24 13:36:38.000000000 +0200
@@ -86,6 +86,7 @@
       allow(firewalld).to receive("running?").and_return true
       allow(firewalld).to receive("enabled?").and_return false
       allow(firewalld).to receive("installed?").and_return true
+      allow(firewalld).to 
receive(:modified_from_default).with("zones").and_return(["dmz"])
       firewalld.read
     end
 
@@ -109,6 +110,15 @@
       config = subject.export
       expect { subject.import(config) }.to_not raise_error
     end
+
+    context "when 'compact' export is wanted" do
+      it "exports only modified zones" do
+        config = subject.export(target: "compact")
+
+        expect(config["zones"].size).to eq(1)
+        expect(config["zones"].first["name"]) == "dmz"
+      end
+    end
   end
 
   describe "#strategy_for" do


Reply via email to