Author: mvidner
Date: Wed Oct 26 15:11:08 2011
New Revision: 66602
URL: http://svn.opensuse.org/viewcvs/yast?rev=66602&view=rev
Log:
Use Storage::IsDeviceOnNetwork instead of trying to do it ourselves, wrong (bnc#726057).
But keep NetworkStorage::isDiskOnNetwork because of NFS,
but change its API, symbols are more readable than integers.
Deleted tests for the misimplementation :-/
Modified:
branches/SuSE-Code-11-SP2-Branch/network/VERSION
branches/SuSE-Code-11-SP2-Branch/network/package/yast2-network.changes
branches/SuSE-Code-11-SP2-Branch/network/src/clients/save_network.ycp
branches/SuSE-Code-11-SP2-Branch/network/src/modules/Lan.ycp
branches/SuSE-Code-11-SP2-Branch/network/src/modules/LanItems.ycp
branches/SuSE-Code-11-SP2-Branch/network/src/modules/NetworkStorage.ycp
branches/SuSE-Code-11-SP2-Branch/network/testsuite/tests/NetworkStorage.out
branches/SuSE-Code-11-SP2-Branch/network/testsuite/tests/NetworkStorage.ycp
branches/SuSE-Code-11-SP2-Branch/network/testsuite/tests/Network_YaPI.out
branches/SuSE-Code-11-SP2-Branch/network/testsuite/tests/Network_YaPI.ycp
branches/SuSE-Code-11-SP2-Branch/network/yast2-network.spec.in
Modified: branches/SuSE-Code-11-SP2-Branch/network/VERSION
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/network/VERSION?rev=66602&r1=66601&r2=66602&view=diff
==============================================================================
--- branches/SuSE-Code-11-SP2-Branch/network/VERSION (original)
+++ branches/SuSE-Code-11-SP2-Branch/network/VERSION Wed Oct 26 15:11:08 2011
@@ -1 +1 @@
-2.17.162
+2.17.163
Modified: branches/SuSE-Code-11-SP2-Branch/network/package/yast2-network.changes
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/network/package/yast2-network.changes?rev=66602&r1=66601&r2=66602&view=diff
==============================================================================
--- branches/SuSE-Code-11-SP2-Branch/network/package/yast2-network.changes (original)
+++ branches/SuSE-Code-11-SP2-Branch/network/package/yast2-network.changes Wed Oct 26 15:11:08 2011
@@ -3,6 +3,9 @@
- Moved NetworkStorage from yast2.rpm to yast2-network.rpm
(bnc#726057)
+- Use Storage::IsDeviceOnNetwork instead of trying to do it
+ ourselves, wrong (bnc#726057).
+- 2.17.163
-------------------------------------------------------------------
Fri Sep 2 16:08:07 CEST 2011 - mvidner@suse.cz
Modified: branches/SuSE-Code-11-SP2-Branch/network/src/clients/save_network.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/network/src/clients/save_network.ycp?rev=66602&r1=66601&r2=66602&view=diff
==============================================================================
--- branches/SuSE-Code-11-SP2-Branch/network/src/clients/save_network.ycp (original)
+++ branches/SuSE-Code-11-SP2-Branch/network/src/clients/save_network.ycp Wed Oct 26 15:11:08 2011
@@ -31,7 +31,7 @@
map InstallInf = $[];
// global variable because chrooted environment
-integer network_disk=0;
+symbol network_disk = `no; // `nfs `iscsi `fcoe
string netdevice="";
/**
@@ -231,7 +231,7 @@
void CreateIfcfg() {
string ifcfg="";
- if (network_disk==1 && contains(NetworkStorage::getiBFTDevices(), InstallInf["netdevice"]:"")){
+ if (network_disk == `iscsi && contains(NetworkStorage::getiBFTDevices(), InstallInf["netdevice"]:"")){
ifcfg = sformat("%1STARTMODE='nfsroot'\nBOOTPROTO='ibft'\n", ifcfg);
}
else {
@@ -257,10 +257,10 @@
SCR::Execute(.target.bash_output, "sed -i s/\"DHCLIENT_SET_HOSTNAME=.*\"/'DHCLIENT_SET_HOSTNAME=\"yes\"'/g /etc/sysconfig/network/dhcp");
}
- if (network_disk == 0) {
+ if (network_disk == `no) {
ifcfg = sformat("%1STARTMODE='onboot'\n", ifcfg);
}
- else if (network_disk > 0) {
+ else {
ifcfg = sformat("%1STARTMODE='nfsroot'\n", ifcfg);
}
}
Modified: branches/SuSE-Code-11-SP2-Branch/network/src/modules/Lan.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/network/src/modules/Lan.ycp?rev=66602&r1=66601&r2=66602&view=diff
==============================================================================
--- branches/SuSE-Code-11-SP2-Branch/network/src/modules/Lan.ycp (original)
+++ branches/SuSE-Code-11-SP2-Branch/network/src/modules/Lan.ycp Wed Oct 26 15:11:08 2011
@@ -26,7 +26,6 @@
import "NetworkConfig";
import "NetworkInterfaces";
import "NetworkService";
-//import "NetworkStorage";
import "Package";
import "ProductFeatures";
import "Routing";
Modified: branches/SuSE-Code-11-SP2-Branch/network/src/modules/LanItems.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/network/src/modules/LanItems.ycp?rev=66602&r1=66601&r2=66602&view=diff
==============================================================================
--- branches/SuSE-Code-11-SP2-Branch/network/src/modules/LanItems.ycp (original)
+++ branches/SuSE-Code-11-SP2-Branch/network/src/modules/LanItems.ycp Wed Oct 26 15:11:08 2011
@@ -1540,7 +1540,7 @@
netmask = "";
bootproto = "dhcp";
// #176804
- if (NetworkStorage::isDiskOnNetwork ( NetworkStorage::getDevice("/") )>0)
+ if (NetworkStorage::isDiskOnNetwork ( NetworkStorage::getDevice("/") ) != `no)
{
startmode = "nfsroot";
y2milestone ("startmode nfsroot");
Modified: branches/SuSE-Code-11-SP2-Branch/network/src/modules/NetworkStorage.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/network/src/modules/NetworkStorage.ycp?rev=66602&r1=66601&r2=66602&view=diff
==============================================================================
--- branches/SuSE-Code-11-SP2-Branch/network/src/modules/NetworkStorage.ycp (original)
+++ branches/SuSE-Code-11-SP2-Branch/network/src/modules/NetworkStorage.ycp Wed Oct 26 15:11:08 2011
@@ -13,7 +13,7 @@
module "NetworkStorage";
-import "FileUtils";
+import "Storage";
/**
* Ask /proc/mounts what device a mount point is using.
@@ -33,109 +33,26 @@
/**
* If the disk is on a networked device (NFS, ISCSI),
* the main NIC needs STARTMODE nfsroot instead of auto.
- * @return root dev over network: 1 iSCSI, 2 NFS
+ * @return root dev over network: `no `iscsi `nfs `fcoe
*/
-global integer isDiskOnNetwork(string device) {
+global symbol isDiskOnNetwork(string device) {
y2milestone("begin isDiskOnNetwork(%1) function", device);
if (device=="nfs") {
- return 2;
+ return `nfs;
}
if (size(device)==0) {
y2error("Empty parameter for isDiskOnNetwork() function");
- return -1;
+ return `no;
}
- 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 cmd = (map)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 command = (map)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 command = (map)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;
- }
- }
- }
+ symbol network_based = Storage::IsDeviceOnNetwork(device);
// test for nfs (bnc#384420)
- if (network_based==0) {
+ if (network_based == `no) {
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;
+ network_based = `nfs;
}
}
return network_based;
Modified: branches/SuSE-Code-11-SP2-Branch/network/testsuite/tests/NetworkStorage.out
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/network/testsuite/tests/NetworkStorage.out?rev=66602&r1=66601&r2=66602&view=diff
==============================================================================
--- branches/SuSE-Code-11-SP2-Branch/network/testsuite/tests/NetworkStorage.out (original)
+++ branches/SuSE-Code-11-SP2-Branch/network/testsuite/tests/NetworkStorage.out Wed Oct 26 15:11:08 2011
@@ -1,12 +1,4 @@
-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
+Return true
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
+Return true
Modified: branches/SuSE-Code-11-SP2-Branch/network/testsuite/tests/NetworkStorage.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/network/testsuite/tests/NetworkStorage.ycp?rev=66602&r1=66601&r2=66602&view=diff
==============================================================================
--- branches/SuSE-Code-11-SP2-Branch/network/testsuite/tests/NetworkStorage.ycp (original)
+++ branches/SuSE-Code-11-SP2-Branch/network/testsuite/tests/NetworkStorage.ycp Wed Oct 26 15:11:08 2011
@@ -1,28 +1,10 @@
//
{
-
+// testedfiles: NetworkStorage.ycp
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";
- }
-}
+import "Assert";
-/* TODO
-void Mock(map & dummy, path where, any what) {
-...
-}
-Mock (EXECUTE, .target.bash_output, $["stdout": "O HAI!", ...]);
-*/
map MockBash(string stdout) {
return $[
"target" : $[
@@ -35,110 +17,38 @@
];
}
-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);
+map WRITE = $[];
+map EXECUTE = MockBash("");
-import "NetworkStorage";
+TESTSUITE_INIT([READ, WRITE, EXECUTE], nil);
-map WRITE = $[];
-map EXECUTE = $[];
+import "NetworkStorage";
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("/"), "")
+ Assert::Equal("/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"), "")
+ Assert::Equal("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"), "")
+ Assert::Equal(`nfs, NetworkStorage::isDiskOnNetwork("server:/export"))
), [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:/"), "")
+ Assert::Equal(`nfs, 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);
-
}
Modified: branches/SuSE-Code-11-SP2-Branch/network/testsuite/tests/Network_YaPI.out
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/network/testsuite/tests/Network_YaPI.out?rev=66602&r1=66601&r2=66602&view=diff
==============================================================================
--- branches/SuSE-Code-11-SP2-Branch/network/testsuite/tests/Network_YaPI.out (original)
+++ branches/SuSE-Code-11-SP2-Branch/network/testsuite/tests/Network_YaPI.out Wed Oct 26 15:11:08 2011
@@ -18,6 +18,9 @@
Dir .network.value."eth1": ["BOOTPROTO", "IPADDR"]
Read .network.value."eth1".BOOTPROTO "static"
Read .network.value."eth1".IPADDR "1.2.3.4/24"
+Read .probe.architecture "i386"
+Read .sysconfig.console.CONSOLE_ENCODING "UTF-8"
+Execute .target.bash_output "locale -k charmap" $["exit":0, "stdout":"laptop.suse.cz"]
Read .target.size "/etc/install.inf" 27
Dir .etc.install_inf: []
Read .target.string "/proc/cmdline" "laptop.suse.cz"
Modified: branches/SuSE-Code-11-SP2-Branch/network/testsuite/tests/Network_YaPI.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/network/testsuite/tests/Network_YaPI.ycp?rev=66602&r1=66601&r2=66602&view=diff
==============================================================================
--- branches/SuSE-Code-11-SP2-Branch/network/testsuite/tests/Network_YaPI.ycp (original)
+++ branches/SuSE-Code-11-SP2-Branch/network/testsuite/tests/Network_YaPI.ycp Wed Oct 26 15:11:08 2011
@@ -13,7 +13,13 @@
"string" : "laptop.suse.cz",
"bash_output" : "laptop.suse.cz"
],
+ "probe": $[
+ "architecture": "i386"
+ ],
"sysconfig": $[
+ "console": $[
+ "CONSOLE_ENCODING": "UTF-8"
+ ],
"network" : $[
"config" : $[
"NETCONFIG_DNS_STATIC_SERVERS" : "208.67.222.222 208.67.220.220",
Modified: branches/SuSE-Code-11-SP2-Branch/network/yast2-network.spec.in
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/network/yast2-network.spec.in?rev=66602&r1=66601&r2=66602&view=diff
==============================================================================
--- branches/SuSE-Code-11-SP2-Branch/network/yast2-network.spec.in (original)
+++ branches/SuSE-Code-11-SP2-Branch/network/yast2-network.spec.in Wed Oct 26 15:11:08 2011
@@ -17,6 +17,9 @@
#GetLanguageCountry
#(in newly created yast2-country-data)
Requires: yast2-country-data >= 2.16.3
+# Storage::IsDeviceOnNetwork
+BuildRequires: yast2-storage >= 2.17.118
+Requires: yast2-storage >= 2.17.118
PreReq: /bin/rm
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org