Hello community, here is the log from the commit of package yast2-fcoe-client for openSUSE:Factory checked in at 2020-02-22 18:57:33 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/yast2-fcoe-client (Old) and /work/SRC/openSUSE:Factory/.yast2-fcoe-client.new.26092 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-fcoe-client" Sat Feb 22 18:57:33 2020 rev:53 rq:777686 version:4.2.2 Changes: -------- --- /work/SRC/openSUSE:Factory/yast2-fcoe-client/yast2-fcoe-client.changes 2019-08-27 15:53:33.267705115 +0200 +++ /work/SRC/openSUSE:Factory/.yast2-fcoe-client.new.26092/yast2-fcoe-client.changes 2020-02-22 18:57:44.341325603 +0100 @@ -1,0 +2,8 @@ +Thu Feb 20 13:09:42 UTC 2020 - Ancor Gonzalez Sosa <an...@suse.com> + +- Use the correct file names when copying the configuration of the + FCoE VLANs to the target system at the end of installation + (related to bsc#1163343). +- 4.2.2 + +------------------------------------------------------------------- Old: ---- yast2-fcoe-client-4.2.1.tar.bz2 New: ---- yast2-fcoe-client-4.2.2.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ yast2-fcoe-client.spec ++++++ --- /var/tmp/diff_new_pack.dPFWmn/_old 2020-02-22 18:57:45.457327765 +0100 +++ /var/tmp/diff_new_pack.dPFWmn/_new 2020-02-22 18:57:45.485327820 +0100 @@ -1,7 +1,7 @@ # # spec file for package yast2-fcoe-client # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 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-fcoe-client -Version: 4.2.1 +Version: 4.2.2 Release: 0 Summary: YaST2 - Configuration of Fibre Channel over Ethernet License: GPL-2.0-only @@ -30,7 +30,6 @@ BuildRequires: update-desktop-files BuildRequires: yast2 BuildRequires: yast2-devtools >= 4.2.2 -BuildRequires: yast2-testsuite BuildRequires: rubygem(%{rb_default_ruby_abi}:rspec) # Yast2::Systemd::Service ++++++ yast2-fcoe-client-4.2.1.tar.bz2 -> yast2-fcoe-client-4.2.2.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-fcoe-client-4.2.1/package/yast2-fcoe-client.changes new/yast2-fcoe-client-4.2.2/package/yast2-fcoe-client.changes --- old/yast2-fcoe-client-4.2.1/package/yast2-fcoe-client.changes 2019-08-26 09:47:23.000000000 +0200 +++ new/yast2-fcoe-client-4.2.2/package/yast2-fcoe-client.changes 2020-02-20 14:25:55.000000000 +0100 @@ -1,4 +1,12 @@ ------------------------------------------------------------------- +Thu Feb 20 13:09:42 UTC 2020 - Ancor Gonzalez Sosa <an...@suse.com> + +- Use the correct file names when copying the configuration of the + FCoE VLANs to the target system at the end of installation + (related to bsc#1163343). +- 4.2.2 + +------------------------------------------------------------------- Mon Aug 26 09:37:36 CEST 2019 - sch...@suse.de - Using rb_default_ruby_abi tag in the spec file in order to diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-fcoe-client-4.2.1/package/yast2-fcoe-client.spec new/yast2-fcoe-client-4.2.2/package/yast2-fcoe-client.spec --- old/yast2-fcoe-client-4.2.1/package/yast2-fcoe-client.spec 2019-08-26 09:47:23.000000000 +0200 +++ new/yast2-fcoe-client-4.2.2/package/yast2-fcoe-client.spec 2020-02-20 14:25:55.000000000 +0100 @@ -17,7 +17,7 @@ Name: yast2-fcoe-client -Version: 4.2.1 +Version: 4.2.2 Release: 0 Summary: YaST2 - Configuration of Fibre Channel over Ethernet Group: System/YaST @@ -26,7 +26,7 @@ Source0: %{name}-%{version}.tar.bz2 -BuildRequires: perl-XML-Writer update-desktop-files yast2 yast2-testsuite +BuildRequires: perl-XML-Writer update-desktop-files yast2 BuildRequires: yast2-devtools >= 4.2.2 BuildRequires: rubygem(%{rb_default_ruby_abi}:rspec) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-fcoe-client-4.2.1/src/clients/fcoe-client_finish.rb new/yast2-fcoe-client-4.2.2/src/clients/fcoe-client_finish.rb --- old/yast2-fcoe-client-4.2.1/src/clients/fcoe-client_finish.rb 2019-08-26 09:47:23.000000000 +0200 +++ new/yast2-fcoe-client-4.2.2/src/clients/fcoe-client_finish.rb 2020-02-20 14:25:55.000000000 +0100 @@ -87,40 +87,35 @@ Builtins.y2milestone("Nothing to do") end - Builtins.foreach(@netcards) do |card| - command = "" - file_name = "" - if Ops.get_string(card, "fcoe_vlan", "") != FcoeClient.NOT_AVAILABLE && - Ops.get_string(card, "fcoe_vlan", "") != FcoeClient.NOT_CONFIGURED - # FCoE VLAN interface is configured -> start services - @start_services = true - - # copy sysconfig files - file_name = Builtins.sformat( - "/etc/sysconfig/network/ifcfg-%1.%2", - Ops.get_string(card, "dev_name", ""), - Ops.get_string(card, "vlan_interface", "") - ) - command = Builtins.sformat( - "/usr/bin/cp -a %1 %2/etc/sysconfig/network", - file_name.shellescape, - Installation.destdir.shellescape - ) - Builtins.y2milestone("Executing command: %1", command) - WFM.Execute(path(".local.bash"), command) - - file_name = Builtins.sformat( - "/etc/sysconfig/network/ifcfg-%1", - Ops.get_string(card, "dev_name", "") - ) - command = Builtins.sformat( - "/usr/bin/cp -a %1 %2/etc/sysconfig/network", - file_name.shellescape, - Installation.destdir.shellescape - ) - Builtins.y2milestone("Executing command: %1", command) - WFM.Execute(path(".local.bash"), command) - end + @netcards.each do |card| + iface_name = FcoeClient.fcoe_vlan(card) + next if iface_name.nil? + + # FCoE VLAN interface is configured -> start services + @start_services = true + + # copy sysconfig files + file_name = "/etc/sysconfig/network/ifcfg-#{iface_name}" + + command = Builtins.sformat( + "/usr/bin/cp -a %1 %2/etc/sysconfig/network", + file_name.shellescape, + Installation.destdir.shellescape + ) + Builtins.y2milestone("Executing command: %1", command) + WFM.Execute(path(".local.bash"), command) + + file_name = Builtins.sformat( + "/etc/sysconfig/network/ifcfg-%1", + Ops.get_string(card, "dev_name", "") + ) + command = Builtins.sformat( + "/usr/bin/cp -a %1 %2/etc/sysconfig/network", + file_name.shellescape, + Installation.destdir.shellescape + ) + Builtins.y2milestone("Executing command: %1", command) + WFM.Execute(path(".local.bash"), command) end if @start_services diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-fcoe-client-4.2.1/src/modules/FcoeClient.rb new/yast2-fcoe-client-4.2.2/src/modules/FcoeClient.rb --- old/yast2-fcoe-client-4.2.1/src/modules/FcoeClient.rb 2019-08-26 09:47:23.000000000 +0200 +++ new/yast2-fcoe-client-4.2.2/src/modules/FcoeClient.rb 2020-02-20 14:25:55.000000000 +0100 @@ -46,7 +46,7 @@ # @!method [](k) # I am not sure when the keys are present/absent :-/ # @option k [String] 'fcoe_vlan' - # "eth1.500" or "not configured" or "not available" + # "eth1.500-fcoe" or "not configured" or "not available" # @option k [String] 'vlan_interface' # "500", or "0" for no VLAN used; yes, the name is nonsense, should be "vid" # @option k [String] 'dev_name' "eth1" @@ -952,9 +952,7 @@ interfaces = GetNetworkCards() Builtins.foreach(interfaces) do |interface| - if device_name == Ops.get_string(interface, "dev_name", "") && - Ops.get_string(interface, "fcoe_vlan", "") != @NOT_CONFIGURED && - Ops.get_string(interface, "fcoe_vlan", "") != @NOT_AVAILABLE + if device_name == interface.fetch("dev_name", "") && fcoe_vlan?(interface) configured_vlans = Builtins.add( configured_vlans, Ops.get_string(interface, "vlan_interface", "") @@ -1235,35 +1233,34 @@ netcards = GetNetworkCards() success = true - Builtins.foreach(netcards) do |card| - fcoe_vlan = card.fetch("fcoe_vlan", "") - if fcoe_vlan != @NOT_AVAILABLE && - fcoe_vlan != @NOT_CONFIGURED - # write ifcfg-<if>.>VLAN> only if VLAN was created (not for VLAN = 0 which means - # FCoE is started on the network interface itself) - dev_name = card.fetch("dev_name", "") - vid = card.fetch("vlan_interface", "") - if vid != "0" - Builtins.y2milestone("Writing /etc/sysconfig/network/ifcfg-%1", fcoe_vlan) - vifcfg_path = path(".network.value") + fcoe_vlan - # write /etc/sysconfig/network/ifcfg-<fcoe-vlan-interface>, e.g. ifcfg-eth3.200 - SCR.Write(vifcfg_path + "BOOTPROTO", "static") - SCR.Write(vifcfg_path + "STARTMODE", "nfsroot") - SCR.Write(vifcfg_path + "ETHERDEVICE", dev_name) - SCR.Write(vifcfg_path + "USERCONTROL", "no") - SCR.Write(vifcfg_path + "VLAN_ID", vid) - end - ifcfg_file = "/etc/sysconfig/network/ifcfg-#{dev_name}" - Builtins.y2milestone("Writing %1", ifcfg_file) + netcards.each do |card| + fcoe_vlan = fcoe_vlan(card) + # write ifcfg-<if>.<VLAN> only if VLAN was created (not for VLAN = 0 which means + # FCoE is started on the network interface itself) + next if fcoe_vlan.nil? + + dev_name = card.fetch("dev_name", "") + vid = card.fetch("vlan_interface", "") + if vid != "0" + Builtins.y2milestone("Writing /etc/sysconfig/network/ifcfg-%1", fcoe_vlan) + vifcfg_path = path(".network.value") + fcoe_vlan + # write /etc/sysconfig/network/ifcfg-<fcoe-vlan-interface>, e.g. ifcfg-eth3.200 + SCR.Write(vifcfg_path + "BOOTPROTO", "static") + SCR.Write(vifcfg_path + "STARTMODE", "nfsroot") + SCR.Write(vifcfg_path + "ETHERDEVICE", dev_name) + SCR.Write(vifcfg_path + "USERCONTROL", "no") + SCR.Write(vifcfg_path + "VLAN_ID", vid) + end + ifcfg_file = "/etc/sysconfig/network/ifcfg-#{dev_name}" + Builtins.y2milestone("Writing %1", ifcfg_file) - # write /etc/sysconfig/network/ifcfg-<interface> (underlying interface), e.g. ifcfg-eth3 - ifcfg_path = path(".network.value") + dev_name - SCR.Write(ifcfg_path + "STARTMODE", "nfsroot") - # don't overwrite BOOTPROTO !!! - if !FileUtils.Exists(ifcfg_file) - SCR.Write(ifcfg_path + "BOOTPROTO", "static") - SCR.Write(ifcfg_path + "NAME", card.fetch("device", "")) - end + # write /etc/sysconfig/network/ifcfg-<interface> (underlying interface), e.g. ifcfg-eth3 + ifcfg_path = path(".network.value") + dev_name + SCR.Write(ifcfg_path + "STARTMODE", "nfsroot") + # don't overwrite BOOTPROTO !!! + if !FileUtils.Exists(ifcfg_file) + SCR.Write(ifcfg_path + "BOOTPROTO", "static") + SCR.Write(ifcfg_path + "NAME", card.fetch("device", "")) end end # This is very important- it flushes the cache, and stores the configuration on the disk @@ -1282,90 +1279,86 @@ success = false - Builtins.foreach(netcards) do |card| - if Ops.get_string(card, "fcoe_vlan", "") != @NOT_AVAILABLE && - Ops.get_string(card, "fcoe_vlan", "") != @NOT_CONFIGURED - command = "" - output = {} - - Builtins.y2milestone( - "Writing /etc/fcoe/cfg-%1", - Ops.get_string(card, "cfg_device", "") - ) - success = SCR.Write( + netcards.each do |card| + next unless fcoe_vlan?(card) + + Builtins.y2milestone( + "Writing /etc/fcoe/cfg-%1", + Ops.get_string(card, "cfg_device", "") + ) + success = SCR.Write( + Ops.add( Ops.add( - Ops.add( - path(".fcoe.cfg-ethx.value"), - Ops.get_string(card, "cfg_device", "") - ), - "FCOE_ENABLE" + path(".fcoe.cfg-ethx.value"), + Ops.get_string(card, "cfg_device", "") ), + "FCOE_ENABLE" + ), + Ops.get_string(card, "fcoe_enable", "no") + ) + if !success + Builtins.y2error( + "Writing FCOE_ENABLE=%1 failed", Ops.get_string(card, "fcoe_enable", "no") ) - if !success - Builtins.y2error( - "Writing FCOE_ENABLE=%1 failed", - Ops.get_string(card, "fcoe_enable", "no") - ) - end - success = SCR.Write( + end + success = SCR.Write( + Ops.add( Ops.add( - Ops.add( - path(".fcoe.cfg-ethx.value"), - Ops.get_string(card, "cfg_device", "") - ), - "DCB_REQUIRED" + path(".fcoe.cfg-ethx.value"), + Ops.get_string(card, "cfg_device", "") ), + "DCB_REQUIRED" + ), + Ops.get_string(card, "dcb_required", "no") + ) + if !success + Builtins.y2error( + "Writing DCB_REQUIRED=%1 failed", Ops.get_string(card, "dcb_required", "no") ) - if !success - Builtins.y2error( - "Writing DCB_REQUIRED=%1 failed", - Ops.get_string(card, "dcb_required", "no") - ) - end - success = SCR.Write( + end + success = SCR.Write( + Ops.add( Ops.add( - Ops.add( - path(".fcoe.cfg-ethx.value"), - Ops.get_string(card, "cfg_device", "") - ), - "AUTO_VLAN" + path(".fcoe.cfg-ethx.value"), + Ops.get_string(card, "cfg_device", "") ), + "AUTO_VLAN" + ), + Ops.get_string(card, "auto_vlan", "no") + ) + if !success + Builtins.y2error( + "Writing AUTO_VLAN=%1 failed", Ops.get_string(card, "auto_vlan", "no") ) - if !success - Builtins.y2error( - "Writing AUTO_VLAN=%1 failed", - Ops.get_string(card, "auto_vlan", "no") - ) + end + if Ops.get_string(card, "dcb_required", "no") == "yes" + # enable DCB on the interface + command = Builtins.sformat( + "/usr/sbin/dcbtool sc %1 dcb on", + Ops.get_string(card, "dev_name", "").shellescape + ) + Builtins.y2milestone("Executing command: %1", command) + output = SCR.Execute(path(".target.bash_output"), command) + Builtins.y2milestone("Output: %1", output) + if Ops.get_integer(output, "exit", 255) != 0 + # only warning, not necessarily an error + Builtins.y2warning("Command: %1 failed", command) end - if Ops.get_string(card, "dcb_required", "no") == "yes" - # enable DCB on the interface - command = Builtins.sformat( - "/usr/sbin/dcbtool sc %1 dcb on", - Ops.get_string(card, "dev_name", "").shellescape - ) - Builtins.y2milestone("Executing command: %1", command) - output = SCR.Execute(path(".target.bash_output"), command) - Builtins.y2milestone("Output: %1", output) - if Ops.get_integer(output, "exit", 255) != 0 - # only warning, not necessarily an error - Builtins.y2warning("Command: %1 failed", command) - end - # enable App:FCoE on the interface - command = Builtins.sformat( - "/usr/sbin/dcbtool sc %1 app:0 e:1 a:1 w:1", - Ops.get_string(card, "dev_name", "").shellescape - ) - Builtins.y2milestone("Executing command: %1", command) + # enable App:FCoE on the interface + command = Builtins.sformat( + "/usr/sbin/dcbtool sc %1 app:0 e:1 a:1 w:1", + Ops.get_string(card, "dev_name", "").shellescape + ) + Builtins.y2milestone("Executing command: %1", command) - output = SCR.Execute(path(".target.bash_output"), command) - Builtins.y2milestone("Output: %1", output) - if Ops.get_integer(output, "exit", 255) != 0 - # only warning, not necessarily an error - Builtins.y2warning("Command: %1 failed", command) - end + output = SCR.Execute(path(".target.bash_output"), command) + Builtins.y2milestone("Output: %1", output) + if Ops.get_integer(output, "exit", 255) != 0 + # only warning, not necessarily an error + Builtins.y2warning("Command: %1 failed", command) end end end @@ -1690,6 +1683,30 @@ { "install" => [FcoeClientClass::FCOE_PKG_NAME], "remove" => [] } end + # Name of the network interface configured as FCoE VLAN for the given + # network card, if any + # + # @param card [Hash] a hash with all the information about a network interface + # @return [String, nil] nil if no FCoE VLAN is configured for the given interface + def fcoe_vlan(card) + fcoe_vlan = card["fcoe_vlan"] + # It should never contain a nil or an empty string, but better safe than sorry + return nil if fcoe_vlan.nil? || fcoe_vlan.empty? + return nil if fcoe_vlan == @NOT_AVAILABLE || fcoe_vlan == @NOT_CONFIGURED + + fcoe_vlan + end + + # Whether a FCoE VLAN is configured for the given network card + # + # @see #fcoe_vlan + # + # @param card [Hash] a hash with all the information about a network interface + # @return [Boolean] + def fcoe_vlan?(card) + !!fcoe_vlan(card) + end + publish :function => :Modified, :type => "boolean ()" publish :function => :FcoeClient, :type => "void ()" publish :function => :Abort, :type => "boolean ()" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-fcoe-client-4.2.1/test/fcoe_client_write_spec.rb new/yast2-fcoe-client-4.2.2/test/fcoe_client_write_spec.rb --- old/yast2-fcoe-client-4.2.1/test/fcoe_client_write_spec.rb 2019-08-26 09:47:23.000000000 +0200 +++ new/yast2-fcoe-client-4.2.2/test/fcoe_client_write_spec.rb 2020-02-20 14:25:55.000000000 +0100 @@ -16,26 +16,42 @@ end describe "#WriteSysconfigFiles" do - context "for odd cases" do - before do - interfaces = [ - { "fcoe_vlan" => "not available" }, - { "fcoe_vlan" => "not configured" }, + before do + allow(subject).to receive(:GetNetworkCards).and_return(interfaces) + end + + + context "when no VLAN was created for any of the interfaces" do + let(:interfaces) do + [ + { "dev_name" => "eth0", "fcoe_vlan" => "not available" }, + { "dev_name" => "eth1", "fcoe_vlan" => "not configured" }, + { "dev_name" => "eth2", "fcoe_vlan" => "" }, ] - expect(subject).to receive(:GetNetworkCards).and_return(interfaces) end it "smokes not" do expect { subject.WriteSysconfigFiles }.to_not raise_error end + + it "writes nothing into /etc/sysconfig/network" do + expect(Yast::SCR).to_not receive(:Write) + .with(path_matching(/^\.network\..*/), anything) + + subject.WriteSysconfigFiles + end end - context "for a small FCoE setup" do - before do - interfaces = [ - { "fcoe_vlan" => "eth1.500" } + context "if an FCoE VLAN is created for some interface" do + let(:interfaces) do + [ + { "dev_name" => "eth0", "fcoe_vlan" => "not available" }, + { "dev_name" => "eth1", "fcoe_vlan" => "eth1.500-fcoe" }, + { "dev_name" => "eth2", "fcoe_vlan" => "" }, ] - expect(subject).to receive(:GetNetworkCards).and_return(interfaces) + end + + before do allow(Yast::SCR).to receive(:Write).and_return(true) allow(Yast::FileUtils).to receive(:Exists).and_return(false) end @@ -43,6 +59,27 @@ it "smokes not" do expect { subject.WriteSysconfigFiles }.to_not raise_error end + + it "writes the sysconfig configuration for the interface and its FCoE VLAN" do + expect(Yast::SCR).to receive(:Write) + .with(path_matching(/^\.network\.value\.\"eth1.500-fcoe\"\.*/), anything) + expect(Yast::SCR).to receive(:Write) + .with(path_matching(/^\.network\.value\.\"eth1\"\.*/), anything) + # A final call is also needed to flush the content + expect(Yast::SCR).to receive(:Write).with(Yast::Path.new(".network"), nil) + + subject.WriteSysconfigFiles + end + + it "writes nothing in /etc/sysconfig/network for interfaces without FCoE VLAN" do + allow(Yast::SCR).to receive(:Write) do |path, value| + # All calls to SCR.Write must contain a path starting with ".network.value.\"eth1" + # or exactly the path ".network" (for flushing) + expect(path.to_s).to match("(^\.network$)|(^\.network\.value\.\"eth1(\.|\"))") + end + + subject.WriteSysconfigFiles + end end end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-fcoe-client-4.2.1/testsuite/Makefile.am new/yast2-fcoe-client-4.2.2/testsuite/Makefile.am --- old/yast2-fcoe-client-4.2.1/testsuite/Makefile.am 2019-08-26 09:47:23.000000000 +0200 +++ new/yast2-fcoe-client-4.2.2/testsuite/Makefile.am 1970-01-01 01:00:00.000000000 +0100 @@ -1,21 +0,0 @@ -# -# Makefile.am for .../testsuite -# -# Do not edit this file (Makefile.am) as it will be overwritten! -# - -AUTOMAKE_OPTIONS = dejagnu -EXTRA_DIST = $(wildcard tests/*.out) $(wildcard tests/*.err) $(wildcard tests/*.rb) - -testsuite_prepare = @ydatadir@/testsuite/Makefile.testsuite - -all-local: $(testsuite_prepare) - make -f $(testsuite_prepare) RPMNAME=$(RPMNAME) srcdir=$(srcdir) - -clean-local: $(testsuite_prepare) - make -f $(testsuite_prepare) RPMNAME=$(RPMNAME) srcdir=$(srcdir) clean - -check-local: $(testsuite_prepare) - make -f $(testsuite_prepare) RPMNAME=$(RPMNAME) srcdir=$(srcdir) check - -# EOF diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-fcoe-client-4.2.1/testsuite/tests/FcoeClient.out new/yast2-fcoe-client-4.2.2/testsuite/tests/FcoeClient.out --- old/yast2-fcoe-client-4.2.1/testsuite/tests/FcoeClient.out 2019-08-26 09:47:23.000000000 +0200 +++ new/yast2-fcoe-client-4.2.2/testsuite/tests/FcoeClient.out 1970-01-01 01:00:00.000000000 +0100 @@ -1,2 +0,0 @@ -Dump FcoeClient::Modified -Return false diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-fcoe-client-4.2.1/testsuite/tests/FcoeClient.rb new/yast2-fcoe-client-4.2.2/testsuite/tests/FcoeClient.rb --- old/yast2-fcoe-client-4.2.1/testsuite/tests/FcoeClient.rb 2019-08-26 09:47:23.000000000 +0200 +++ new/yast2-fcoe-client-4.2.2/testsuite/tests/FcoeClient.rb 1970-01-01 01:00:00.000000000 +0100 @@ -1,21 +0,0 @@ -# encoding: utf-8 - -module Yast - class FcoeClientClient < Client - def main - # testedfiles: FcoeClient.ycp - - Yast.include self, "testsuite.rb" - TESTSUITE_INIT([], nil) - - Yast.import "FcoeClient" - - DUMP("FcoeClient::Modified") - TEST(lambda { FcoeClient.Modified }, [], nil) - - nil - end - end -end - -Yast::FcoeClientClient.new.main