Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package yast2-network for openSUSE:Factory 
checked in at 2021-09-11 22:24:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-network (Old)
 and      /work/SRC/openSUSE:Factory/.yast2-network.new.1899 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yast2-network"

Sat Sep 11 22:24:17 2021 rev:461 rq:917236 version:4.4.23

Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-network/yast2-network.changes      
2021-08-02 12:04:39.909661198 +0200
+++ /work/SRC/openSUSE:Factory/.yast2-network.new.1899/yast2-network.changes    
2021-09-11 22:24:29.063383881 +0200
@@ -1,0 +2,7 @@
+Tue Sep  7 07:41:52 UTC 2021 - Knut Anderssen <kanders...@suse.com>
+
+- Add support for reading the default NTP servers from the control
+  file in case of defined (bsc#1180699)
+- 4.4.23
+
+-------------------------------------------------------------------

Old:
----
  yast2-network-4.4.22.tar.bz2

New:
----
  yast2-network-4.4.23.tar.bz2

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

Other differences:
------------------
++++++ yast2-network.spec ++++++
--- /var/tmp/diff_new_pack.i0cmQg/_old  2021-09-11 22:24:29.583384394 +0200
+++ /var/tmp/diff_new_pack.i0cmQg/_new  2021-09-11 22:24:29.587384397 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-network
-Version:        4.4.22
+Version:        4.4.23
 Release:        0
 Summary:        YaST2 - Network Configuration
 License:        GPL-2.0-only

++++++ yast2-network-4.4.22.tar.bz2 -> yast2-network-4.4.23.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-network-4.4.22/package/yast2-network.changes 
new/yast2-network-4.4.23/package/yast2-network.changes
--- old/yast2-network-4.4.22/package/yast2-network.changes      2021-07-30 
09:45:46.000000000 +0200
+++ new/yast2-network-4.4.23/package/yast2-network.changes      2021-09-07 
11:17:51.000000000 +0200
@@ -1,4 +1,11 @@
 -------------------------------------------------------------------
+Tue Sep  7 07:41:52 UTC 2021 - Knut Anderssen <kanders...@suse.com>
+
+- Add support for reading the default NTP servers from the control
+  file in case of defined (bsc#1180699)
+- 4.4.23
+
+-------------------------------------------------------------------
 Fri Jul 30 08:07:09 UTC 2021 - Knut Anderssen <kanders...@suse.com>
 
 - Fix write of device routes. (bsc#1188908)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-network-4.4.22/package/yast2-network.spec 
new/yast2-network-4.4.23/package/yast2-network.spec
--- old/yast2-network-4.4.22/package/yast2-network.spec 2021-07-30 
09:45:46.000000000 +0200
+++ new/yast2-network-4.4.23/package/yast2-network.spec 2021-09-07 
11:17:51.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-network
-Version:        4.4.22
+Version:        4.4.23
 Release:        0
 Summary:        YaST2 - Network Configuration
 License:        GPL-2.0-only
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-network-4.4.22/src/lib/y2network/ntp_server.rb 
new/yast2-network-4.4.23/src/lib/y2network/ntp_server.rb
--- old/yast2-network-4.4.22/src/lib/y2network/ntp_server.rb    2021-07-30 
09:45:46.000000000 +0200
+++ new/yast2-network-4.4.23/src/lib/y2network/ntp_server.rb    2021-09-07 
11:17:51.000000000 +0200
@@ -22,6 +22,7 @@
 require "yast2/equatable"
 
 Yast.import "Product"
+Yast.import "ProductFeatures"
 
 module Y2Network
   # Represents an NTP server
@@ -30,6 +31,7 @@
   # in the future as needed.
   class NtpServer
     include Yast2::Equatable
+    include Yast::Logger
 
     # @return [String] Server's hostname
     attr_reader :hostname
@@ -48,11 +50,31 @@
 
       # Determines the default servers
       #
-      # The content of this list depends on the base product.
+      # It reads the default NTP servers from the control file, in case of not 
defined
+      # the content of this list will depend on the base product.
       #
       # @param products [Array<Hash>] List of base products
       # @return [Array<NtpServer>] Default NTP servers
       def default_servers(products = nil)
+        servers = control_servers
+
+        if servers
+          log.info "Using the servers defined in the control file: 
#{servers.inspect}"
+        else
+          servers = product_servers(products)
+          log.info "Using the NTP product servers: #{servers.inspect}"
+        end
+
+        servers.map { |s| new(s) }
+      end
+
+    private
+
+      # It returns a list of NTP servers based on the base products list.
+      #
+      # @param products [Array<Hash>] List of base products
+      # @return [Array<NtpServer>] Default NTP servers
+      def product_servers(products)
         base_products = products || Yast::Product.FindBaseProducts
 
         host =
@@ -62,7 +84,14 @@
             "suse"
           end
 
-        (0..DEFAULT_SERVERS - 1).map { |i| 
new("#{i}.#{host}.#{DEFAULT_SUBDOMAIN}") }
+        (0..DEFAULT_SERVERS - 1).map { |i| "#{i}.#{host}.#{DEFAULT_SUBDOMAIN}" 
}
+      end
+
+      # Convenience method to fetch the default NTP servers from the control 
file
+      #
+      # @return [Array<NtpServer>] Default NTP servers
+      def control_servers
+        Yast::ProductFeatures.GetSection("globals")["default_ntp_servers"]
       end
     end
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-network-4.4.22/test/y2network/ntp_server_test.rb 
new/yast2-network-4.4.23/test/y2network/ntp_server_test.rb
--- old/yast2-network-4.4.22/test/y2network/ntp_server_test.rb  2021-07-30 
09:45:46.000000000 +0200
+++ new/yast2-network-4.4.23/test/y2network/ntp_server_test.rb  2021-09-07 
11:17:51.000000000 +0200
@@ -23,49 +23,72 @@
 
 describe Y2Network::NtpServer do
   describe ".default_servers" do
+    let(:servers) { nil }
+    let(:globals) { { "default_ntp_servers" => servers } }
+
     before do
-      allow(Yast::Product).to receive(:FindBaseProducts)
-        .and_return(products)
+      allow(Yast::ProductFeatures).to 
receive(:GetSection).with("globals").and_return(globals)
     end
 
-    context "when running in an openSUSE system" do
-      let(:products) do
-        [{ "name" => "openSUSE" }]
-      end
+    context "when defined a list of servers in the control file" do
+      let(:servers) { ["1.suse.pool.ntp.org", "2.suse.pool.ntp.org"] }
 
-      it "returns a set of opensuse.pool.ntp.org servers" do
-        domain = "opensuse.pool.ntp.org"
-        expect(described_class.default_servers.map(&:hostname)).to eq(
-          ["0.#{domain}", "1.#{domain}", "2.#{domain}", "3.#{domain}"]
-        )
+      it "returns the list of defined servers" do
+        expect(described_class.default_servers.map(&:hostname)).to eql(servers)
       end
-    end
 
-    context "when not running in an openSUSE system" do
-      let(:products) do
-        [{ "name" => "SLES" }]
-      end
-
-      it "returns a set of suse.pool.ntp.org servers" do
-        domain = "suse.pool.ntp.org"
-        expect(described_class.default_servers.map(&:hostname)).to eq(
-          ["0.#{domain}", "1.#{domain}", "2.#{domain}", "3.#{domain}"]
-        )
+      context "and the list of servers is empty" do
+        it "returns an empty list" do
+          expect(described_class.default_servers.map(&:hostname)).to 
eql(servers)
+        end
       end
     end
 
-    context "when a list of base product is given" do
-      let(:products) do
-        [{ "name" => "openSUSE" }]
-      end
-
-      it "returns the set of servers for that product" do
-        domain = "opensuse.pool.ntp.org"
-        expect(Yast::Product).to_not receive(:FindBaseProducts)
-        servers = described_class.default_servers(products)
-        expect(servers.map(&:hostname)).to eq(
-          ["0.#{domain}", "1.#{domain}", "2.#{domain}", "3.#{domain}"]
-        )
+    context "when no defined a list of servers in the control file" do
+      before do
+        allow(Yast::Product).to receive(:FindBaseProducts)
+          .and_return(products)
+      end
+
+      context "when running in an openSUSE system" do
+        let(:products) do
+          [{ "name" => "openSUSE" }]
+        end
+
+        it "returns a set of opensuse.pool.ntp.org servers" do
+          domain = "opensuse.pool.ntp.org"
+          expect(described_class.default_servers.map(&:hostname)).to eq(
+            ["0.#{domain}", "1.#{domain}", "2.#{domain}", "3.#{domain}"]
+          )
+        end
+      end
+
+      context "when not running in an openSUSE system" do
+        let(:products) do
+          [{ "name" => "SLES" }]
+        end
+
+        it "returns a set of suse.pool.ntp.org servers" do
+          domain = "suse.pool.ntp.org"
+          expect(described_class.default_servers.map(&:hostname)).to eq(
+            ["0.#{domain}", "1.#{domain}", "2.#{domain}", "3.#{domain}"]
+          )
+        end
+      end
+
+      context "when a list of base product is given" do
+        let(:products) do
+          [{ "name" => "openSUSE" }]
+        end
+
+        it "returns the set of servers for that product" do
+          domain = "opensuse.pool.ntp.org"
+          expect(Yast::Product).to_not receive(:FindBaseProducts)
+          servers = described_class.default_servers(products)
+          expect(servers.map(&:hostname)).to eq(
+            ["0.#{domain}", "1.#{domain}", "2.#{domain}", "3.#{domain}"]
+          )
+        end
       end
     end
   end

Reply via email to