Hello community, here is the log from the commit of package yast2 for openSUSE:Factory checked in at Sat Jul 23 11:41:12 CEST 2011.
-------- --- yast2/yast2.changes 2011-07-21 16:30:50.000000000 +0200 +++ /mounts/work_src_done/STABLE/yast2/yast2.changes 2011-07-22 16:53:52.000000000 +0200 @@ -1,0 +2,14 @@ +Fri Jul 22 16:18:30 CEST 2011 - [email protected] + +- FCoE detection in NetworkStorage::isDiskOnNetwork (bnc#677251, FATE#306855). +- Added NetworkInterfaces::GetTypeFromIfcfg which knows + ETHERDEVICE=>vlan (FATE#311380). +- 2.21.6 + +------------------------------------------------------------------- +Fri Jul 22 16:10:07 CEST 2011 - [email protected] + +- Removed obsoleted X-KDE-SubstituteUID from desktop files + (bnc#540627) + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- yast2-2.21.5.tar.bz2 New: ---- yast2-2.21.6.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ yast2.spec ++++++ --- /var/tmp/diff_new_pack.iSrYfh/_old 2011-07-23 11:40:07.000000000 +0200 +++ /var/tmp/diff_new_pack.iSrYfh/_new 2011-07-23 11:40:07.000000000 +0200 @@ -19,11 +19,11 @@ Name: yast2 -Version: 2.21.5 +Version: 2.21.6 Release: 1 BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source0: yast2-2.21.5.tar.bz2 +Source0: yast2-2.21.6.tar.bz2 Prefix: /usr @@ -130,7 +130,7 @@ installation with YaST2. %prep -%setup -n yast2-2.21.5 +%setup -n yast2-2.21.6 %build %{prefix}/bin/y2tool y2autoconf ++++++ yast2-2.21.5.tar.bz2 -> yast2-2.21.6.tar.bz2 ++++++ ++++ 1937 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-2.21.5/VERSION new/yast2-2.21.6/VERSION --- old/yast2-2.21.5/VERSION 2011-07-21 15:21:37.000000000 +0200 +++ new/yast2-2.21.6/VERSION 2011-07-22 16:19:17.000000000 +0200 @@ -1 +1 @@ -2.21.5 +2.21.6 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-2.21.5/configure.in new/yast2-2.21.6/configure.in --- old/yast2-2.21.5/configure.in 2011-07-21 16:29:11.000000000 +0200 +++ new/yast2-2.21.6/configure.in 2011-01-18 15:43:52.000000000 +0100 @@ -3,7 +3,7 @@ dnl -- This file is generated by y2autoconf 2.18.11 - DO NOT EDIT! -- dnl (edit configure.in.in instead) -AC_INIT(yast2, 2.21.5, http://bugs.opensuse.org/, yast2) +AC_INIT(yast2, 2.20.10, http://bugs.opensuse.org/, yast2) dnl Check for presence of file 'RPMNAME' AC_CONFIG_SRCDIR([RPMNAME]) @@ -18,7 +18,7 @@ AM_INIT_AUTOMAKE(tar-ustar -Wno-portability) dnl Important YaST2 variables -VERSION="2.21.5" +VERSION="2.20.10" RPMNAME="yast2" MAINTAINER="Jiri Srain <[email protected]>" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-2.21.5/library/desktop/groups/hardware.desktop new/yast2-2.21.6/library/desktop/groups/hardware.desktop --- old/yast2-2.21.5/library/desktop/groups/hardware.desktop 2011-06-21 11:31:36.000000000 +0200 +++ new/yast2-2.21.6/library/desktop/groups/hardware.desktop 2011-07-22 16:48:20.000000000 +0200 @@ -14,6 +14,5 @@ Icon=yast-hardware Name=Hardware -X-KDE-SubstituteUID=true Exec=/sbin/yast2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-2.21.5/library/desktop/groups/misc.desktop new/yast2-2.21.6/library/desktop/groups/misc.desktop --- old/yast2-2.21.5/library/desktop/groups/misc.desktop 2011-06-21 11:31:49.000000000 +0200 +++ new/yast2-2.21.6/library/desktop/groups/misc.desktop 2011-07-22 16:48:20.000000000 +0200 @@ -14,6 +14,5 @@ Icon=yast-misc Name=Miscellaneous -X-KDE-SubstituteUID=true Exec=/sbin/yast2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-2.21.5/library/desktop/groups/network_devices.desktop new/yast2-2.21.6/library/desktop/groups/network_devices.desktop --- old/yast2-2.21.5/library/desktop/groups/network_devices.desktop 2011-06-21 11:31:55.000000000 +0200 +++ new/yast2-2.21.6/library/desktop/groups/network_devices.desktop 2011-07-22 16:48:20.000000000 +0200 @@ -14,6 +14,5 @@ Icon=yast-network_devices Name=Network Devices -X-KDE-SubstituteUID=true Exec=/sbin/yast2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-2.21.5/library/desktop/groups/network_services.desktop new/yast2-2.21.6/library/desktop/groups/network_services.desktop --- old/yast2-2.21.5/library/desktop/groups/network_services.desktop 2011-06-21 11:32:00.000000000 +0200 +++ new/yast2-2.21.6/library/desktop/groups/network_services.desktop 2011-07-22 16:48:20.000000000 +0200 @@ -14,6 +14,5 @@ Icon=yast-network_services Name=Network Services -X-KDE-SubstituteUID=true Exec=/sbin/yast2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-2.21.5/library/desktop/groups/security.desktop new/yast2-2.21.6/library/desktop/groups/security.desktop --- old/yast2-2.21.5/library/desktop/groups/security.desktop 2011-06-21 11:32:08.000000000 +0200 +++ new/yast2-2.21.6/library/desktop/groups/security.desktop 2011-07-22 16:48:20.000000000 +0200 @@ -15,6 +15,4 @@ Name=Security and Users -X-KDE-SubstituteUID=true - Exec=/sbin/yast2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-2.21.5/library/desktop/groups/software.desktop new/yast2-2.21.6/library/desktop/groups/software.desktop --- old/yast2-2.21.5/library/desktop/groups/software.desktop 2011-06-21 11:32:14.000000000 +0200 +++ new/yast2-2.21.6/library/desktop/groups/software.desktop 2011-07-22 16:48:20.000000000 +0200 @@ -14,6 +14,5 @@ Icon=yast-software Name=Software -X-KDE-SubstituteUID=true Exec=/sbin/yast2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-2.21.5/library/desktop/groups/support.desktop new/yast2-2.21.6/library/desktop/groups/support.desktop --- old/yast2-2.21.5/library/desktop/groups/support.desktop 2011-06-21 11:32:19.000000000 +0200 +++ new/yast2-2.21.6/library/desktop/groups/support.desktop 2011-07-22 16:48:20.000000000 +0200 @@ -14,6 +14,5 @@ Icon=yast-support Name=Support -X-KDE-SubstituteUID=true Exec=/sbin/yast2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-2.21.5/library/desktop/groups/system.desktop new/yast2-2.21.6/library/desktop/groups/system.desktop --- old/yast2-2.21.5/library/desktop/groups/system.desktop 2011-06-21 11:32:24.000000000 +0200 +++ new/yast2-2.21.6/library/desktop/groups/system.desktop 2011-07-22 16:48:20.000000000 +0200 @@ -14,6 +14,5 @@ Icon=yast-system Name=System -X-KDE-SubstituteUID=true Exec=/sbin/yast2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-2.21.5/library/modules/Version.ycp new/yast2-2.21.6/library/modules/Version.ycp --- old/yast2-2.21.5/library/modules/Version.ycp 2011-07-21 16:29:18.000000000 +0200 +++ new/yast2-2.21.6/library/modules/Version.ycp 2011-07-22 16:26:11.000000000 +0200 @@ -20,7 +20,7 @@ /** * Version of the yast2 package */ -global string yast2 = "2.21.5"; +global string yast2 = "2.21.6"; /* EOF */ } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-2.21.5/library/network/src/NetworkInterfaces.ycp new/yast2-2.21.6/library/network/src/NetworkInterfaces.ycp --- old/yast2-2.21.5/library/network/src/NetworkInterfaces.ycp 2011-01-07 15:03:33.000000000 +0100 +++ new/yast2-2.21.6/library/network/src/NetworkInterfaces.ycp 2011-07-22 16:07:11.000000000 +0200 @@ -180,18 +180,46 @@ return ifcfg_part (dev, "1"); } +list<string> TypeByKeyValue = [ + "INTERFACETYPE", + "TUNNEL", + ]; +list<list<string> > TypeByKeyExistence = [ + ["ETHERDEVICE", "vlan"], + ]; + +/** + * + */ +global string GetTypeFromIfcfg(ifcfg_t ifcfg) { + string type = nil; // unknown + foreach(list<string> key_type, TypeByKeyExistence, { + string rule_key = key_type[0]:""; + string rule_type = key_type[1]:""; + if (ifcfg[rule_key]:"" != "") { + type = rule_type; + } + }); + foreach(string rule_key, TypeByKeyValue, { + string rule_type = ifcfg[rule_key]:""; + if (rule_type != "") { + type = rule_type; + } + }); +//y2internal("from ifcfg: %1", type); + return type; +} + global string GetType(string dev) { - string type = ifcfg_part (dev, "1"); - // test if this is VLAN (ethX.vlanid) - if (type=="eth" && regexpmatch(dev, "^eth[[:digit:]]+\\.[[:digit:]]+$")) return "vlan"; - foreach(string dev_type,map confs, Devices, { - if (haskey(confs, dev)){ - string int_type = confs[dev, "INTERFACETYPE"]:""; - if (size(confs[dev, "TUNNEL"]:"")>0) int_type = confs[dev, "TUNNEL"]:""; - if(size(int_type)>0) type = int_type; - } - }); - return type; + string type = device_type (dev); + foreach(string dev_type,map<string, ifcfg_t> confs, Devices, { + ifcfg_t ifcfg = confs[dev]:$[]; + string ifcfg_type = GetTypeFromIfcfg(ifcfg); + if (ifcfg_type != nil) + type = ifcfg_type; + }); +//y2internal("original %1: %2", dev, type); + return type; } /** @@ -507,14 +535,6 @@ /* Read devices */ maplist(string d, devices, { - string devtype = GetType(d); - -// string devnum = ""; - // if(regexpmatch(d, "[a-z][a-z-]*[0-9]+")) -// devnum = sformat("%1", device_num(d)); -// y2debug("devnum=%1", devnum); - - map<string, ifcfg_t> dev = Devices[devtype]:$[]; string pth = ".network.value.\"" + d + "\""; y2debug("pth=%1", pth); list<string> values = SCR::Dir(topath(pth)); @@ -561,17 +581,12 @@ config = CanonicalizeIP (config); config = CanonicalizeStartmode (config); - if (size(config["INTERFACETYPE"]:"")>0) { - y2milestone("option INTERFACETYPE changes devtype from %1 to %2", devtype, config["INTERFACETYPE"]:""); - devtype=config["INTERFACETYPE"]:""; - dev = Devices[devtype]:$[]; - } -/* - if(haskey(dev, devnum)) { - y2error("device already present: %1", devnum); - return; + string devtype = GetTypeFromIfcfg(config); + if (devtype == nil) { + devtype = GetType(d); } -*/ + + map<string, ifcfg_t> dev = Devices[devtype]:$[]; dev[d] = config; Devices[devtype] = dev; }); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-2.21.5/library/network/src/NetworkStorage.ycp new/yast2-2.21.6/library/network/src/NetworkStorage.ycp --- old/yast2-2.21.5/library/network/src/NetworkStorage.ycp 2011-01-07 15:03:33.000000000 +0100 +++ new/yast2-2.21.6/library/network/src/NetworkStorage.ycp 2011-07-22 16:12:57.000000000 +0200 @@ -15,122 +15,141 @@ import "FileUtils"; -global string getDevice(string mount_point){ - map out = (map)SCR::Execute(.target.bash_output, sformat("grep ' %1 ' /proc/mounts|grep -v rootfs|tr -d '\n'", mount_point)); - y2milestone("mountpoint found %1", out); - list<string> rows = splitstring(out["stdout"]:"", " "); - string device=""; - if (rows[2]:""=="nfs") device="nfs"; - else device=rows[0]:""; - y2milestone("%1 is on device: %2", mount_point, device); - return device; +/** + * Ask /proc/mounts what device a mount point is using. + * @return e.g. /dev/sda2 (or just "nfs") + */ +global string getDevice(string mount_point) { + string cmd = sformat("grep ' %1 ' /proc/mounts|grep -v rootfs|tr -d '\n'", mount_point); + map out = (map)SCR::Execute(.target.bash_output, cmd); + y2milestone("mountpoint found %1", out); + list<string> fields = splitstring(out["stdout"]:"", " "); + string vfstype = fields[2]:""; + string device = (vfstype == "nfs" || vfstype == "nfs4")? "nfs": fields[0]:""; + y2milestone("%1 is on device: %2", mount_point, device); + return device; } /** * If the disk is on a networked device (NFS, ISCSI), * the main NIC needs STARTMODE nfsroot instead of auto. - * @return root dev over network + * @return root dev over network: 1 iSCSI, 2 NFS */ -global integer isDiskOnNetwork(string device){ - y2milestone("begin isDiskOnNetwork(%1) function", device); - if (device=="nfs") return 2; - if (size(device)==0) { - y2error("Empty parameter for isDiskOnNetwork() function"); - return -1; - } - integer network_based=0; - - // test for multipath - if (network_based==0 && issubstring(device, "/dev/dm-")) { - y2warning("multipath detected!"); - string dev_name = splitstring(device, "/")[2]:""; - y2milestone("Multipath device name %1", dev_name); - map<string, any> cmd = (map<string, any>)SCR::Execute(.target.bash_output, sformat("ls /sys/block/%1/slaves/", dev_name)); - y2milestone("Show slaves command:%1", cmd); - if (cmd["exit"]:-1==0){ - // FIXME: what about more slaves? - list<string> slaves = splitstring(cmd["stdout"]:"", "\n"); - integer nb = isDiskOnNetwork(sformat("/dev/%1", slaves[0]:"")); - if (nb>0) network_based=nb; - } else y2error("Error while executed show slaves commad:%1", cmd["stderr"]:""); - } - - // test for LVM - if (network_based==0 && issubstring(device, "/dev/mapper/")) { - y2warning("LVM detected!"); - string group_name = splitstring(splitstring(device, "/")[3]:"", "-")[0]:""; - y2milestone("LVM group name %1", group_name); - map<string, any> command = (map<string, any>)SCR::Execute(.target.bash_output, sformat("pvs 2>/dev/null|grep %1", group_name)); - foreach(string row, filter(string s, splitstring(command["stdout"]:"", "\n"), { return (size(s)>0);}), { - string lvm_device = filter(string s, splitstring(row, " "), { return (size(s)>0);})[0]:""; - y2milestone("LVM physical device: %1", lvm_device); - integer nb = isDiskOnNetwork(lvm_device); - if (nb>0) network_based=nb; - }); - } - - // test for RAID - if (network_based==0 && issubstring(device, "/dev/md")){ - y2warning("RAID detected!"); - string raid = splitstring(device, "/")[2]:""; - y2milestone("RAID %1 detected", raid); - map<string, any> command = (map<string, any>)SCR::Execute(.target.bash_output, sformat("cat /proc/mdstat |grep %1|tr -d '\\n'", raid)); - list<string> raid_devices = sublist(splitstring(command["stdout"]:"", " "), 4); - foreach(string dev, raid_devices, { - if (!issubstring(dev, "/dev/")) dev = sformat("/dev/%1", dev); - string raid_device = substring(dev, 0, findfirstof(dev, "[")); - integer nb = isDiskOnNetwork(raid_device); - if (nb>0) network_based=nb; - } - ); - } - - //test for iSCSI - if (network_based==0){ - if (issubstring(device, "/dev/")){ - device = splitstring(device, "/")[2]:""; - } - string sys=sformat("/sys/class/block/%1", device); - if (FileUtils::Exists(sys)){ - if ((integer)SCR::Execute(.target.bash, sformat("ls -la %1 | grep -q session", sys))==0){ - y2warning("iSCSI detected!"); - network_based=1; - } - } - } - - // test for nfs (bnc#384420) - if (network_based==0) { - string space="[[:space:]]"; - if (SCR::Execute(.target.bash, sformat("grep '%1%2%3*nfs%4' /proc/mounts ", space, device, space, space))==0){ - y2milestone("device %1 is network based : %2", device, network_based); - network_based=2; - } - } - - //test for FCoE - if (network_based==0){ - if (issubstring(device, "/dev/")){ - device = splitstring(device, "/")[2]:""; - } - string sys=sformat("/sys/class/block/%1", device); - if (FileUtils::Exists(sys)){ - if ((integer)SCR::Execute(.target.bash, sformat("ls -la %1 | grep -q target", sys))==0){ - y2warning("FCoE detected!"); - network_based=3; - } - } - } - - return network_based; +global integer isDiskOnNetwork(string device) { + y2milestone("begin isDiskOnNetwork(%1) function", device); + if (device=="nfs") { + return 2; + } + if (size(device)==0) { + y2error("Empty parameter for isDiskOnNetwork() function"); + return -1; + } + integer network_based=0; + + // test for multipath + if (network_based==0 && issubstring(device, "/dev/dm-")) { + y2warning("multipath detected!"); + string dev_name = splitstring(device, "/")[2]:""; + y2milestone("Multipath device name %1", dev_name); + map<string, any> cmd = (map<string, any>)SCR::Execute(.target.bash_output, sformat("ls /sys/block/%1/slaves/", dev_name)); + y2milestone("Show slaves command:%1", cmd); + if (cmd["exit"]:-1==0){ + // FIXME: what about more slaves? + list<string> slaves = splitstring(cmd["stdout"]:"", "\n"); + integer nb = isDiskOnNetwork(sformat("/dev/%1", slaves[0]:"")); + if (nb > 0) { + network_based = nb; + } + } + else { + y2error("Error while executed show slaves commad:%1", cmd["stderr"]:""); + } + } + + // test for LVM + if (network_based==0 && issubstring(device, "/dev/mapper/")) { + y2warning("LVM detected!"); + string group_name = splitstring(splitstring(device, "/")[3]:"", "-")[0]:""; + y2milestone("LVM group name %1", group_name); + map<string, any> command = (map<string, any>)SCR::Execute(.target.bash_output, sformat("pvs 2>/dev/null|grep %1", group_name)); + foreach(string row, filter(string s, splitstring(command["stdout"]:"", "\n"), { return (size(s) > 0);}), { + string lvm_device = filter(string s, splitstring(row, " "), { return (size(s)>0);})[0]:""; + y2milestone("LVM physical device: %1", lvm_device); + integer nb = isDiskOnNetwork(lvm_device); + if (nb > 0) { + network_based = nb; + } + }); + } + + // test for RAID + if (network_based==0 && issubstring(device, "/dev/md")){ + y2warning("RAID detected!"); + string raid = splitstring(device, "/")[2]:""; + y2milestone("RAID %1 detected", raid); + map<string, any> command = (map<string, any>)SCR::Execute(.target.bash_output, sformat("cat /proc/mdstat |grep %1|tr -d '\\n'", raid)); + list<string> raid_devices = sublist(splitstring(command["stdout"]:"", " "), 4); + foreach(string dev, raid_devices, { + if (!issubstring(dev, "/dev/")) { + dev = sformat("/dev/%1", dev); + } + string raid_device = substring(dev, 0, findfirstof(dev, "[")); + integer nb = isDiskOnNetwork(raid_device); + if (nb > 0) { + network_based = nb; + } + }); + } + + //test for iSCSI + if (network_based==0){ + if (issubstring(device, "/dev/")){ + device = splitstring(device, "/")[2]:""; + } + string sys=sformat("/sys/class/block/%1", device); + if (FileUtils::Exists(sys)){ + if ((integer)SCR::Execute(.target.bash, sformat("ls -la %1 | grep -q session", sys))==0){ + y2warning("iSCSI detected!"); + network_based = 1; + } + } + } + + //test for FCoE + if (network_based==0){ + if (issubstring(device, "/dev/")){ + device = splitstring(device, "/")[2]:""; + } + + string sys=sformat("/sys/class/block/%1/device", device); + if (FileUtils::Exists(sys) && FileUtils::IsDirectory(sys)){ + if ((integer)SCR::Execute(.target.bash, sformat("cd %1; pwd -P | grep -q target", sys))==0){ + y2warning("FCoE detected!"); + network_based = 3; + } + } + } + + // test for nfs (bnc#384420) + if (network_based==0) { + string space="[[:space:]]"; + if (SCR::Execute(.target.bash, sformat("grep '%1%2%3*nfs%4' /proc/mounts ", space, device, space, space))==0){ + y2milestone("device %1 is network based : %2", device, network_based); + network_based = 2; + } + } + return network_based; } -global list<string> getiBFTDevices(){ - if (SCR::Execute(.target.bash, "ls /sys/firmware/ibft")==0){ - map<string, any> output = (map<string, any>)SCR::Execute(.target.bash_output, "ls /sys/firmware/ibft/ethernet*/device/net/"); - list<string> ifaces = filter(string row, splitstring(output["stdout"]:"", "\n"), { return (size(row)>0);}); - return ifaces; - } else return []; +global list<string> getiBFTDevices() { + if (SCR::Execute(.target.bash, "ls /sys/firmware/ibft")==0){ + map<string, any> output = (map<string, any>)SCR::Execute(.target.bash_output, "ls /sys/firmware/ibft/ethernet*/device/net/"); + list<string> ifaces = filter(string row, splitstring(output["stdout"]:"", "\n"), { return (size(row)>0);}); + return ifaces; + } + else { + return []; + } } /* EOF */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-2.21.5/library/network/testsuite/tests/NetworkInterfaces.out new/yast2-2.21.6/library/network/testsuite/tests/NetworkInterfaces.out --- old/yast2-2.21.5/library/network/testsuite/tests/NetworkInterfaces.out 2011-01-07 15:03:33.000000000 +0100 +++ new/yast2-2.21.6/library/network/testsuite/tests/NetworkInterfaces.out 2011-07-22 16:40:43.000000000 +0200 @@ -9,8 +9,6 @@ Dump ifcfg-lo, type: lo Dump ifcfg-eth0#1, type: eth Dump ifcfg-eth1#20, type: eth -Dump ifcfg-eth0.1, type: vlan -Dump ifcfg-eth1.20, type: vlan Dump ifcfg-eth-pcmcia-0#3, type: eth Dump ifcfg-eth-usb-1#0, type: eth Dump ifcfg-tr-pcmcia-2#432, type: tr diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-2.21.5/library/network/testsuite/tests/NetworkInterfaces.ycp new/yast2-2.21.6/library/network/testsuite/tests/NetworkInterfaces.ycp --- old/yast2-2.21.5/library/network/testsuite/tests/NetworkInterfaces.ycp 2011-01-07 15:03:33.000000000 +0100 +++ new/yast2-2.21.6/library/network/testsuite/tests/NetworkInterfaces.ycp 2011-07-22 16:40:42.000000000 +0200 @@ -20,8 +20,6 @@ "lo", "eth0#1", "eth1#20", - "eth0.1", - "eth1.20", "eth-pcmcia-0#3", "eth-usb-1#0", "tr-pcmcia-2#432", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-2.21.5/library/network/testsuite/tests/NetworkInterfaces2.out new/yast2-2.21.6/library/network/testsuite/tests/NetworkInterfaces2.out --- old/yast2-2.21.5/library/network/testsuite/tests/NetworkInterfaces2.out 2010-03-10 16:41:23.000000000 +0100 +++ new/yast2-2.21.6/library/network/testsuite/tests/NetworkInterfaces2.out 2011-07-22 16:07:11.000000000 +0200 @@ -1,5 +1,5 @@ Dump NetworkInterfaces::Read -Dir .network.section: ["arc5", "atm5", "ci5", "ctc5", "dummy5", "escon5", "eth5", "eth6", "eth7", "eth8", "eth9", "fddi5", "hippi5", "hsi5", "ippp5", "iucv5", "lo", "mynet0", "myri5", "ppp5", "tr5", "tr~"] +Dir .network.section: ["arc5", "atm5", "ci5", "ctc5", "dummy5", "escon5", "eth0.3", "eth5", "eth6", "eth7", "eth8", "eth9", "fddi5", "hippi5", "hsi5", "ippp5", "iucv5", "lo", "mynet0", "myri5", "myvlantoo", "ppp5", "tr5", "tr~", "virtlan4", "vlan3"] Dir .network.value."arc5": ["BOOTPROTO", "STARTMODE"] Read .network.value."arc5".BOOTPROTO "dhcp" Read .network.value."arc5".STARTMODE "manual" @@ -20,6 +20,10 @@ Dir .network.value."escon5": ["BOOTPROTO", "STARTMODE"] Read .network.value."escon5".BOOTPROTO "dhcp" Read .network.value."escon5".STARTMODE "manual" +Dir .network.value."eth0.3": ["BOOTPROTO", "ETHERDEVICE", "STARTMODE"] +Read .network.value."eth0.3".BOOTPROTO "dhcp" +Read .network.value."eth0.3".ETHERDEVICE "eth0" +Read .network.value."eth0.3".STARTMODE "manual" Dir .network.value."eth5": ["BOOTPROTO", "STARTMODE"] Read .network.value."eth5".BOOTPROTO "dhcp" Read .network.value."eth5".STARTMODE "manual" @@ -64,14 +68,27 @@ Dir .network.value."myri5": ["BOOTPROTO", "STARTMODE"] Read .network.value."myri5".BOOTPROTO "dhcp" Read .network.value."myri5".STARTMODE "manual" +Dir .network.value."myvlantoo": ["BOOTPROTO", "ETHERDEVICE", "STARTMODE", "VLAN_ID"] +Read .network.value."myvlantoo".BOOTPROTO "dhcp" +Read .network.value."myvlantoo".ETHERDEVICE "eth0" +Read .network.value."myvlantoo".STARTMODE "manual" +Read .network.value."myvlantoo".VLAN_ID "2" Dir .network.value."ppp5": ["BOOTPROTO", "STARTMODE"] Read .network.value."ppp5".BOOTPROTO "dhcp" Read .network.value."ppp5".STARTMODE "manual" Dir .network.value."tr5": ["BOOTPROTO", "STARTMODE"] Read .network.value."tr5".BOOTPROTO "dhcp" Read .network.value."tr5".STARTMODE "manual" +Dir .network.value."virtlan4": ["BOOTPROTO", "ETHERDEVICE", "STARTMODE"] +Read .network.value."virtlan4".BOOTPROTO "dhcp" +Read .network.value."virtlan4".ETHERDEVICE "eth0" +Read .network.value."virtlan4".STARTMODE "manual" +Dir .network.value."vlan3": ["BOOTPROTO", "ETHERDEVICE", "STARTMODE"] +Read .network.value."vlan3".BOOTPROTO "dhcp" +Read .network.value."vlan3".ETHERDEVICE "eth0" +Read .network.value."vlan3".STARTMODE "manual" Return true -Dump all=$["arc":$["arc5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "atm":$["atm5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "ci":$["ci5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "ctc":$["ctc5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "dummy":$["dummy5":$["BOOTPROTO":"static", "IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", "PREFIXLEN":"8", "STARTMODE":"manual"]], "escon":$["escon5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "eth":$["eth5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"], "eth6":$["BOOTPROTO":"static", "IPADDR":"1.2.3.4", "NETMASK":"255.255.255.255", "PREFIXLEN":"32", "STARTMODE":"manual"], "eth7":$["STARTMODE":"manual"], "eth8":$["IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", "PREFIXLEN":"8", "STARTMODE":"manual"], "eth9":$["IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", "PREFIXLEN":"8", "STARTMODE":"manual"], "mynet0":$["BOOTPROTO":"dhcp", "INTERFACETYPE":"eth", "STARTMODE":"auto"]], "fddi":$["fddi5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "hippi":$["hippi5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "hsi":$["hsi5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "ippp":$["ippp5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "iucv":$["iucv5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "lo":$["lo":$["BROADCAST":"127.255.255.255", "IPADDR":"127.0.0.1", "NETMASK":"255.0.0.0", "NETWORK":"127.0.0.0", "PREFIXLEN":"8", "STARTMODE":"auto"]], "myri":$["myri5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "ppp":$["ppp5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "tr":$["tr5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]]] +Dump all=$["arc":$["arc5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "atm":$["atm5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "ci":$["ci5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "ctc":$["ctc5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "dummy":$["dummy5":$["BOOTPROTO":"static", "IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", "PREFIXLEN":"8", "STARTMODE":"manual"]], "escon":$["escon5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "eth":$["eth5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"], "eth6":$["BOOTPROTO":"static", "IPADDR":"1.2.3.4", "NETMASK":"255.255.255.255", "PREFIXLEN":"32", "STARTMODE":"manual"], "eth7":$["STARTMODE":"manual"], "eth8":$["IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", "PREFIXLEN":"8", "STARTMODE":"manual"], "eth9":$["IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", "PREFIXLEN":"8", "STARTMODE":"manual"], "mynet0":$["BOOTPROTO":"dhcp", "INTERFACETYPE":"eth", "STARTMODE":"auto"]], "fddi":$["fddi5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "hippi":$["hippi5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "hsi":$["hsi5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "ippp":$["ippp5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "iucv":$["iucv5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "lo":$["lo":$["BROADCAST":"127.255.255.255", "IPADDR":"127.0.0.1", "NETMASK":"255.0.0.0", "NETWORK":"127.0.0.0", "PREFIXLEN":"8", "STARTMODE":"auto"]], "myri":$["myri5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "ppp":$["ppp5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "tr":$["tr5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "vlan":$["eth0.3":$["BOOTPROTO":"dhcp", "ETHERDEVICE":"eth0", "STARTMODE":"manual"], "myvlantoo":$["BOOTPROTO":"dhcp", "ETHERDEVICE":"eth0", "STARTMODE":"manual", "VLAN_ID":"2"], "virtlan4":$["BOOTPROTO":"dhcp", "ETHERDEVICE":"eth0", "STARTMODE":"manual"], "vlan3":$["BOOTPROTO":"dhcp", "ETHERDEVICE":"eth0", "STARTMODE":"manual"]]] Dump NetworkInterfaces::Write Write .network.value."arc5".BOOTPROTO "dhcp" true Write .network.value."arc5".STARTMODE "manual" true @@ -124,6 +141,19 @@ Write .network.value."ppp5".STARTMODE "manual" true Write .network.value."tr5".BOOTPROTO "dhcp" true Write .network.value."tr5".STARTMODE "manual" true +Write .network.value."eth0.3".BOOTPROTO "dhcp" true +Write .network.value."eth0.3".ETHERDEVICE "eth0" true +Write .network.value."eth0.3".STARTMODE "manual" true +Write .network.value."myvlantoo".BOOTPROTO "dhcp" true +Write .network.value."myvlantoo".ETHERDEVICE "eth0" true +Write .network.value."myvlantoo".STARTMODE "manual" true +Write .network.value."myvlantoo".VLAN_ID "2" true +Write .network.value."virtlan4".BOOTPROTO "dhcp" true +Write .network.value."virtlan4".ETHERDEVICE "eth0" true +Write .network.value."virtlan4".STARTMODE "manual" true +Write .network.value."vlan3".BOOTPROTO "dhcp" true +Write .network.value."vlan3".ETHERDEVICE "eth0" true +Write .network.value."vlan3".STARTMODE "manual" true Write .network nil true Return true Write .network.value."eth5".BOOTPROTO "dhcp" true @@ -161,9 +191,9 @@ Write .network nil true Return true Dump NetworkInterfaces::Export -Dump exported=$["arc":$["arc5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "atm":$["atm5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "ci":$["ci5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "ctc":$["ctc5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "dummy":$["dummy5":$["BOOTPROTO":"static", "IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", "PREFIXLEN":"8", "STARTMODE":"manual"]], "escon":$["escon5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "eth":$["eth5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"], "eth6":$["BOOTPROTO":"static", "IPADDR":"1.2.3.4", "NETMASK":"255.255.255.255", "PREFIXLEN":"32", "STARTMODE":"manual"], "eth7":$["STARTMODE":"manual"], "eth8":$["IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", "PREFIXLEN":"8", "STARTMODE":"manual"], "eth9":$["IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", "PREFIXLEN":"8", "STARTMODE":"manual"], "mynet0":$["BOOTPROTO":"dhcp", "INTERFACETYPE":"eth", "STARTMODE":"auto"]], "fddi":$["fddi5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "hippi":$["hippi5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "hsi":$["hsi5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "ippp":$["ippp5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "iucv":$["iucv5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "lo":$["lo":$["BROADCAST":"127.255.255.255", "IPADDR":"127.0.0.1", "NETMASK":"255.0.0.0", "NETWORK":"127.0.0.0", "PREFIXLEN":"8", "STARTMODE":"auto"]], "myri":$["myri5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "ppp":$["ppp5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "tr":$["tr5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]]] +Dump exported=$["arc":$["arc5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "atm":$["atm5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "ci":$["ci5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "ctc":$["ctc5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "dummy":$["dummy5":$["BOOTPROTO":"static", "IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", "PREFIXLEN":"8", "STARTMODE":"manual"]], "escon":$["escon5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "eth":$["eth5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"], "eth6":$["BOOTPROTO":"static", "IPADDR":"1.2.3.4", "NETMASK":"255.255.255.255", "PREFIXLEN":"32", "STARTMODE":"manual"], "eth7":$["STARTMODE":"manual"], "eth8":$["IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", "PREFIXLEN":"8", "STARTMODE":"manual"], "eth9":$["IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", "PREFIXLEN":"8", "STARTMODE":"manual"], "mynet0":$["BOOTPROTO":"dhcp", "INTERFACETYPE":"eth", "STARTMODE":"auto"]], "fddi":$["fddi5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "hippi":$["hippi5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "hsi":$["hsi5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "ippp":$["ippp5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "iucv":$["iucv5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "lo":$["lo":$["BROADCAST":"127.255.255.255", "IPADDR":"127.0.0.1", "NETMASK":"255.0.0.0", "NETWORK":"127.0.0.0", "PREFIXLEN":"8", "STARTMODE":"auto"]], "myri":$["myri5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "ppp":$["ppp5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "tr":$["tr5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "vlan":$["eth0.3":$["BOOTPROTO":"dhcp", "ETHERDEVICE":"eth0", "STARTMODE":"manual"], "myvlantoo":$["BOOTPROTO":"dhcp", "ETHERDEVICE":"eth0", "STARTMODE":"manual", "VLAN_ID":"2"], "virtlan4":$["BOOTPROTO":"dhcp", "ETHERDEVICE":"eth0", "STARTMODE":"manual"], "vlan3":$["BOOTPROTO":"dhcp", "ETHERDEVICE":"eth0", "STARTMODE":"manual"]]] Dump NetworkInterfaces::Import -Dump all =$["arc":$["arc5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "atm":$["atm5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "ci":$["ci5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "ctc":$["ctc5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "dummy":$["dummy5":$["BOOTPROTO":"static", "IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", "PREFIXLEN":"8", "STARTMODE":"manual"]], "escon":$["escon5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "eth":$["eth5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"], "eth6":$["BOOTPROTO":"static", "IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", "PREFIXLEN":"8", "STARTMODE":"manual"], "eth7":$["STARTMODE":"manual"], "eth8":$["IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", "PREFIXLEN":"8", "STARTMODE":"manual"], "eth9":$["IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", "PREFIXLEN":"8", "STARTMODE":"manual"], "mynet0":$["BOOTPROTO":"dhcp", "INTERFACETYPE":"eth", "STARTMODE":"auto"]], "fddi":$["fddi5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "hippi":$["hippi5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "hsi":$["hsi5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "ippp":$["ippp5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "iucv":$["iucv5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "lo":$["lo":$["BROADCAST":"127.255.255.255", "IPADDR":"127.0.0.1", "NETMASK":"255.0.0.0", "NETWORK":"127.0.0.0", "PREFIXLEN":"8", "STARTMODE":"auto"]], "myri":$["myri5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "ppp":$["ppp5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "tr":$["tr5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]]] +Dump all =$["arc":$["arc5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "atm":$["atm5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "ci":$["ci5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "ctc":$["ctc5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "dummy":$["dummy5":$["BOOTPROTO":"static", "IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", "PREFIXLEN":"8", "STARTMODE":"manual"]], "escon":$["escon5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "eth":$["eth5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"], "eth6":$["BOOTPROTO":"static", "IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", "PREFIXLEN":"8", "STARTMODE":"manual"], "eth7":$["STARTMODE":"manual"], "eth8":$["IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", "PREFIXLEN":"8", "STARTMODE":"manual"], "eth9":$["IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", "PREFIXLEN":"8", "STARTMODE":"manual"], "mynet0":$["BOOTPROTO":"dhcp", "INTERFACETYPE":"eth", "STARTMODE":"auto"]], "fddi":$["fddi5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "hippi":$["hippi5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "hsi":$["hsi5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "ippp":$["ippp5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "iucv":$["iucv5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "lo":$["lo":$["BROADCAST":"127.255.255.255", "IPADDR":"127.0.0.1", "NETMASK":"255.0.0.0", "NETWORK":"127.0.0.0", "PREFIXLEN":"8", "STARTMODE":"auto"]], "myri":$["myri5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "ppp":$["ppp5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "tr":$["tr5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], "vlan":$["eth0.3":$["BOOTPROTO":"dhcp", "ETHERDEVICE":"eth0", "STARTMODE":"manual"], "myvlantoo":$["BOOTPROTO":"dhcp", "ETHERDEVICE":"eth0", "STARTMODE":"manual", "VLAN_ID":"2"], "virtlan4":$["BOOTPROTO":"dhcp", "ETHERDEVICE":"eth0", "STARTMODE":"manual"], "vlan3":$["BOOTPROTO":"dhcp", "ETHERDEVICE":"eth0", "STARTMODE":"manual"]]] Dump NetworkInterfaces::GetFreeDevices Return ["1", "2"] Return ["0", "2"] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-2.21.5/library/network/testsuite/tests/NetworkInterfaces2.ycp new/yast2-2.21.6/library/network/testsuite/tests/NetworkInterfaces2.ycp --- old/yast2-2.21.5/library/network/testsuite/tests/NetworkInterfaces2.ycp 2010-03-10 16:41:23.000000000 +0100 +++ new/yast2-2.21.6/library/network/testsuite/tests/NetworkInterfaces2.ycp 2011-07-22 16:07:12.000000000 +0200 @@ -29,6 +29,10 @@ "ppp5" : nil, "tr5" : nil, "tr~" : nil, + "vlan3" : nil, + "eth0.3" : nil, + "virtlan4" : nil, + "myvlantoo" : nil, ], "value" : $[ "arc5" : $["BOOTPROTO":"dhcp", "STARTMODE":"manual"], @@ -55,6 +59,10 @@ "myri5" : $["BOOTPROTO":"dhcp", "STARTMODE":"manual"], "ppp5" : $["BOOTPROTO":"dhcp", "STARTMODE":"manual"], "tr5" : $["BOOTPROTO":"dhcp", "STARTMODE":"manual"], + "vlan3" : $["BOOTPROTO":"dhcp", "STARTMODE":"manual", "ETHERDEVICE": "eth0"], + "eth0.3" : $["BOOTPROTO":"dhcp", "STARTMODE":"manual", "ETHERDEVICE": "eth0"], + "virtlan4" : $["BOOTPROTO":"dhcp", "STARTMODE":"manual", "ETHERDEVICE": "eth0"], + "myvlantoo" : $["BOOTPROTO":"dhcp", "STARTMODE":"manual", "ETHERDEVICE": "eth0", "VLAN_ID": "2"], ] ], "probe" : $[ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-2.21.5/library/network/testsuite/tests/NetworkStorage.out new/yast2-2.21.6/library/network/testsuite/tests/NetworkStorage.out --- old/yast2-2.21.5/library/network/testsuite/tests/NetworkStorage.out 1970-01-01 01:00:00.000000000 +0100 +++ new/yast2-2.21.6/library/network/testsuite/tests/NetworkStorage.out 2011-07-22 16:12:58.000000000 +0200 @@ -0,0 +1,12 @@ +Read .target.tmpdir "/tmp" +Execute .target.bash_output "grep ' / ' /proc/mounts|grep -v rootfs|tr -d '\n'" $["exit":0, "stderr":"", "stdout":"/dev/sda2 / ext3 rw,relatime,errors=continue,user_xattr,acl,commit=15,barrier=1,data=ordered 0 0"] +Return PASS +Execute .target.bash_output "grep ' /home ' /proc/mounts|grep -v rootfs|tr -d '\n'" $["exit":0, "stderr":"", "stdout":"nfs.example.com:/home/ /home nfs4 rw,relatime,vers=4,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=krb5i,clientaddr=10.0.2.2,minorversion=0,local_lock=none,addr=10.0.0.1 0 0"] +Return PASS +Read .target.stat "/sys/class/block/fc0" $["isdir":true] +Execute .target.bash "ls -la /sys/class/block/fc0 | grep -q session" 1 +Read .target.stat "/sys/class/block/fc0/device" $["isdir":true] +Read .target.stat "/sys/class/block/fc0/device" $["isdir":true] +Execute .target.bash "cd /sys/class/block/fc0/device; pwd -P | grep -q target" 0 +Log FCoE detected! +Return PASS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-2.21.5/library/network/testsuite/tests/NetworkStorage.ycp new/yast2-2.21.6/library/network/testsuite/tests/NetworkStorage.ycp --- old/yast2-2.21.5/library/network/testsuite/tests/NetworkStorage.ycp 1970-01-01 01:00:00.000000000 +0100 +++ new/yast2-2.21.6/library/network/testsuite/tests/NetworkStorage.ycp 2011-07-22 16:12:58.000000000 +0200 @@ -0,0 +1,144 @@ +// +{ + +include "testsuite.ycp"; + +// FIXME: factor out as Assert::Equal(...); +string AssertEqual(any expected, any actual, string fail_message) { + if (expected == actual) { + return "PASS"; + } + else { + if (fail_message == nil || fail_message == "") { + fail_message = sformat ("assertion failure, expected '%1', got '%2'", expected, actual); + } + y2error ("%1", fail_message); + return "FAIL"; + } +} + +/* TODO +void Mock(map & dummy, path where, any what) { +... +} +Mock (EXECUTE, .target.bash_output, $["stdout": "O HAI!", ...]); +*/ +map MockBash(string stdout) { + return $[ + "target" : $[ + "bash_output" : $[ + "exit" : 0, + "stdout" : stdout, + "stderr" : "", + ], + ], + ]; +} + +map MockExit(integer exit) { + return $[ + "target" : $[ + "bash" : exit + ], + ]; +} + +map MockDir = + $[ + "target" : $[ + "stat" : $[ + "isdir": true, + ] + ], + ]; + +map MockFileMissing = + $[ + "target" : $[ + "stat" : $[] + ], + ]; + +map Add(map a, map b) { + map c = a; + foreach(any k, any v, b, { + if (is(v, map) && haskey(c, k) && is(c[k]:nil, map)) { + v = Add ((map) v, c[k]:$[]); + } + c[k] = v; + }); + return c; +} + +map Adder(list<map> many) { + map result = $[]; + foreach(map one, many, { + result = Add (result, one); + }); + return result; +} + +map READ = $[ + "target" : $[ + "tmpdir" : "/tmp", + ] +]; +TESTSUITE_INIT([READ], nil); + +import "NetworkStorage"; + +map WRITE = $[]; +map EXECUTE = $[]; + +EXECUTE = MockBash ("/dev/sda2 / ext3 rw,relatime,errors=continue,user_xattr,acl,commit=15,barrier=1,data=ordered 0 0"); +TEST(``( + AssertEqual("/dev/sda2", NetworkStorage::getDevice("/"), "") + ), [READ, WRITE, EXECUTE], nil); + +EXECUTE = MockBash ("nfs.example.com:/home/ /home nfs4 rw,relatime,vers=4,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=krb5i,clientaddr=10.0.2.2,minorversion=0,local_lock=none,addr=10.0.0.1 0 0"); +TEST(``( + AssertEqual("nfs", NetworkStorage::getDevice("/home"), "") + ), [READ, WRITE, EXECUTE], nil); + + READ = MockFileMissing; + +/* +FIXME polish it to really test it + +// pvs | grep foo +// FIXME I have no idea how the actual output looks like +EXECUTE = Adder([ + MockBash ("sda1 etc\nsda2 etc\n"), + MockExit (1), + ]); +TEST(``( + AssertEqual(7, NetworkStorage::isDiskOnNetwork("/dev/mapper/foo-bar"), "") + ), [READ, WRITE, EXECUTE], nil); + +EXECUTE = Adder([ + MockBash ("A B C D E[i] F[j]"), + MockExit (1), + ]); +TEST(``( + AssertEqual(7, NetworkStorage::isDiskOnNetwork("/dev/md9"), "") + ), [READ, WRITE, EXECUTE], nil); + +TEST(``( + AssertEqual(7, NetworkStorage::isDiskOnNetwork("server:/export"), "") + ), [READ, WRITE, EXECUTE], nil); + +TEST(``( + AssertEqual(7, NetworkStorage::isDiskOnNetwork("server-v4:/"), "") + ), [READ, WRITE, EXECUTE], nil); +*/ + +READ = MockDir; +list EXECUTE2 = [ + MockExit (1), //grep session + MockExit (0) //grep target +]; +TEST(``( + AssertEqual(3, NetworkStorage::isDiskOnNetwork("/dev/fc0"), "") + ), [READ, WRITE, EXECUTE2], nil); + +} ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
