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