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]

Reply via email to