Hello community,
here is the log from the commit of package yast2-multipath
checked in at Thu Oct 23 12:36:21 CEST 2008.
--------
--- yast2-multipath/yast2-multipath.changes 2008-09-12 14:04:45.000000000 +0200
+++ /mounts/work_src_done/STABLE/yast2-multipath/yast2-multipath.changes 2008-10-14 12:27:16.000000000 +0200
@@ -1,0 +2,10 @@
+Tue Oct 14 18:26:14 CST 2008 - coyli@suse.de
+
+- fix typo from illgal to illegal (bnc #432568)
+
+-------------------------------------------------------------------
+Tue Sep 16 10:49:26 CEST 2008 - locilka@suse.cz
+
+- Added ag_multipath (written in Python) and multipath.scr
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
yast2-multipath-2.17.0.tar.bz2
New:
----
yast2-multipath-2.17.1.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-multipath.spec ++++++
--- /var/tmp/diff_new_pack.eh3070/_old 2008-10-23 12:35:54.000000000 +0200
+++ /var/tmp/diff_new_pack.eh3070/_new 2008-10-23 12:35:54.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package yast2-multipath (Version 2.17.0)
+# spec file for package yast2-multipath (Version 2.17.1)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -20,12 +20,12 @@
Url: http://en.opensuse.org/Yast
Name: yast2-multipath
-Version: 2.17.0
+Version: 2.17.1
Release: 1
License: GPL v2 or later
Group: System/YaST
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Source0: yast2-multipath-2.17.0.tar.bz2
+Source0: yast2-multipath-2.17.1.tar.bz2
Prefix: /usr
Requires: yast2
BuildRequires: perl-XML-Writer update-desktop-files yast2 yast2-devtools yast2-testsuite
@@ -47,7 +47,7 @@
Coly Li
%prep
-%setup -n yast2-multipath-2.17.0
+%setup -n yast2-multipath-2.17.1
%build
%{prefix}/bin/y2tool y2autoconf
@@ -78,8 +78,14 @@
%{prefix}/share/YaST2/modules/Multipath.*
%{prefix}/share/applications/YaST2/multipath.desktop
%{prefix}/share/YaST2/scrconf/*.scr
+%{prefix}/lib/YaST2/servers_non_y2/*
%doc %{prefix}/share/doc/packages/yast2-multipath
+
%changelog
+* Tue Oct 14 2008 coyli@suse.de
+- fix typo from illgal to illegal (bnc #432568)
+* Tue Sep 16 2008 locilka@suse.cz
+- Added ag_multipath (written in Python) and multipath.scr
* Fri Sep 12 2008 locilka@suse.cz
- Checking and installing required packages only in Mode::normal
and Stage::normal (bnc #418703).
++++++ yast2-multipath-2.17.0.tar.bz2 -> yast2-multipath-2.17.1.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-multipath-2.17.0/agents/ag_multipath new/yast2-multipath-2.17.1/agents/ag_multipath
--- old/yast2-multipath-2.17.0/agents/ag_multipath 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-multipath-2.17.1/agents/ag_multipath 2008-09-27 08:18:02.000000000 +0200
@@ -0,0 +1,293 @@
+#!/usr/bin/python
+# -*- coding: utf8 -*-
+
+#
+# Authors: Hu Ziming
+# Lukas Ocilka
+#
+# File: ag_multipath
+#
+# License:
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the GNU General Public License for more details.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version
+# 2 of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+# 02111-1307 USA
+#
+
+import gettext
+from gettext import textdomain
+textdomain('multipath')
+
+import ycp
+from ycp import *
+
+import re
+import os
+
+class Pattern:
+ uuid = r'^\w{3,}'
+ uuid_spliter_1_start = '('
+ uuid_spliter_1_end = ')'
+ uuid_spliter_2 = ','
+ option = r'\[(\w*=[\w ]*)\]'
+ path_group = r'^\\_'
+ path = r' \\_'
+# <-- class Pattern
+
+class Multipath_Parser:
+
+ def __init__(self, command):
+ self.command = command
+
+ def get_mode(self, dataline):
+ if re.compile(Pattern.uuid).match(dataline):
+ return 'HEAD'
+ elif re.compile(Pattern.option).match(dataline):
+ return 'OPTION'
+ elif re.compile(Pattern.path_group).match(dataline):
+ return 'PATH_GROUP'
+ elif re.compile(Pattern.path).match(dataline):
+ return 'PATH'
+ else:
+ return None
+
+ def parse(self):
+ curr_key = -1
+ curr_group = -1
+ curr_path = -1
+
+ # calls system command
+ # TODO: use non blocking Popen3 class
+ fp = os.popen(self.command)
+ self.data = fp.readlines()
+ fp.close()
+ self.formatted = []
+
+ # parses system command output
+ for dataline in self.data:
+ data_dict, mode = self.parse_line(dataline)
+ if mode == None:
+ continue
+
+ elif mode == 'HEAD':
+ curr_key += 1
+ curr_group = -1
+ curr_path = -1
+ self.formatted.append({})
+ for key in data_dict.keys():
+ self.formatted[curr_key][key] = data_dict[key]
+
+ elif mode == 'OPTION':
+ for key in data_dict.keys():
+ self.formatted[curr_key][key] = data_dict[key]
+
+ elif mode == 'PATH_GROUP':
+ curr_group += 1
+ curr_path = -1
+ try:
+ self.formatted[curr_key]['PG%d' % curr_group].append({})
+ except KeyError:
+ self.formatted[curr_key]['PG%d' % curr_group] = {}
+
+ for key in data_dict.keys():
+ self.formatted[curr_key]['PG%d' % curr_group][key] = data_dict[key]
+
+ self.formatted[curr_key]['group_cnt'] = curr_group + 1
+ #print 'DEBUG: %d' % curr_group
+
+ elif mode == 'PATH':
+ curr_path += 1
+ try:
+ self.formatted[curr_key]['PG%d' % curr_group]['P%d' % curr_path].append({})
+ except KeyError:
+ self.formatted[curr_key]['PG%d' % curr_group]['P%d' % curr_path] = {}
+
+ for key in data_dict.keys():
+ self.formatted[curr_key]['PG%d' % curr_group]['P%d' % curr_path][key] = data_dict[key]
+
+ self.formatted[curr_key]['PG%d' % curr_group]['path_cnt'] = curr_path + 1
+
+ #else:
+ # print mode
+ # print data_dict
+
+ # list of maps
+ return self.output()
+
+
+ # Creates YCP list of maps
+ # tabs and newlines are used to provide a human-readable output
+ def output(self):
+ out = "[\n"
+
+ for device in self.formatted:
+ out = out + '\t$[\n'
+
+ for key in ['uuid', 'alias', 'misc', 'size', 'features', 'hwhandler']:
+ out = out + '\t\t"%s":"%s",\n' % (key, device[key])
+
+ for path_group in xrange(device['group_cnt']):
+ out = out + '\t\t"path_group":$[\n'
+ group_index = 'PG%d' % path_group
+
+ for key in ['selector', 'prio']:
+ out = out + '\t\t\t"%s":"%s",\n' % (key, device[group_index][key])
+
+ for path in xrange(device[group_index]['path_cnt']):
+ out = out + '\t\t\t"path":$[\n'
+ path_index = 'P%d' % path
+
+ out = out + '\t\t\t\t"%s":"%s",\n' % ('bus_address' , device[group_index][path_index]['bus_addr'])
+
+ for key in ['path_device', 'major', 'minor', 'status1', 'status2']:
+ out = out + '\t\t\t\t"%s":"%s",\n' % (key , device[group_index][path_index][key])
+
+ out = out + '\t\t\t],\n'
+ out = out + '\t\t],\n'
+ out = out + '\t],\n'
+
+ out = out + "]"
+
+ return out
+
+ def parse_line(self, dataline):
+ mode = self.get_mode(dataline)
+ data_dict = {}
+
+ if mode == 'HEAD':
+ if dataline.find(Pattern.uuid_spliter_1_start) != -1:
+ pos_1 = dataline.find(Pattern.uuid_spliter_1_start)
+ pos_2 = dataline.find(Pattern.uuid_spliter_1_end)
+
+ if dataline[:pos_1].find(':') != -1:
+ data_dict['alias'] = re.compile('\w*: (\w*)').findall(dataline[:pos_1].strip())[0]
+ else:
+ data_dict['alias'] = dataline[:pos_1].strip()
+ data_dict['uuid'] = dataline[pos_1 + len(Pattern.uuid_spliter_1_start):pos_2].strip()
+ data_dict['misc'] = dataline[pos_2 + len(Pattern.uuid_spliter_1_end):].strip()
+
+ elif dataline.find(Pattern.uuid_spliter_2) != -1:
+ pos_1 = dataline.find(Pattern.uuid_spliter_2)
+
+ data_dict['alias'] = ''
+ data_dict['uuid'] = dataline[:pos_1].strip()
+ data_dict['misc'] = dataline[pos_1 + len(Pattern.uuid_spliter_2):].strip()
+
+ else:
+ pass
+
+
+ elif mode == 'OPTION':
+
+ foobar = re.compile(Pattern.option).findall(dataline)
+ for foo in foobar:
+ data_dict[foo.split('=')[0]] = foo.split('=')[1]
+
+
+ elif mode == 'PATH_GROUP':
+
+ foobar = dataline.split()[1:]
+ data_dict['selector'] = '%s %s' % (foobar[0].strip(), foobar[1].strip())
+ foobar2 = re.compile(Pattern.option).findall(foobar[2])
+ for foo in foobar2:
+ data_dict[foo.split('=')[0]] = foo.split('=')[1]
+
+ elif mode == 'PATH':
+
+ foobar = dataline.split()[1:]
+ data_dict['bus_addr'] = foobar[0]
+ data_dict['path_device'] = foobar[1]
+ data_dict['major'], data_dict['minor'] = foobar[2].split(':')
+ data_dict['status1'], data_dict['status2'] = re.compile('\[(\w*)\]').findall(foobar[3])
+
+ else:
+ pass
+
+ return (data_dict, mode)
+# <-- class Multipath_Parser
+
+class SCR_Agent:
+
+ def __init__(self):
+ self.command = ""
+ self.path = ""
+ self.args = ""
+
+ def SCR_Command (self):
+ y2debug ("waiting for a command");
+ scr_command = sys.stdin.readline()
+
+ # scr_command examples:
+ # `Read(.)
+ # `Read (.some.path)
+ # `Write (.some.path, "value")
+
+ y2debug ("newline: %s" % scr_command);
+
+ # the first argument is command
+ p = re.compile ('^`\w+')
+ if (p.match (scr_command)):
+ self.command = p.search (scr_command).group()
+ else:
+ y2error ("No command in '%s'" % scr_command)
+
+ # FIXME: parse path
+ # FIXME: parse args
+
+ # <-- SCR_Command
+# <-- class SCR_Agent
+
+def main():
+ while True:
+ scr_agent = SCR_Agent ()
+ scr_agent.SCR_Command ()
+
+ y2debug ("Command '%s'" % scr_agent.command);
+
+ # SCR::Read
+ if (scr_agent.command == '`Read'):
+ # This is a fake, the command returns what would '/sbin/multipath -l'
+ # return if it was supported
+ # You can use ag_multipath_testdata1.out or ag_multipath_testdata2.out
+ # as a source of data
+ #
+ # foobar = Multipath_Parser('/yast/test/multipath/multipath.sh')
+
+ foobar = Multipath_Parser('/sbin/multipath -l')
+ ret = foobar.parse()
+ y2debug ("Data returned: %s" % ret)
+
+ # print the data to stdout as string
+ print ret + "\n"
+ # flushing, otherwise it is buffered
+ sys.stdout.flush()
+
+ # SCR::Write
+ elif (scr_agent.command == '`Write'):
+ y2warnning ("'Write' is not supported")
+
+ # Exit
+ elif (scr_agent.command == '`result'):
+ break
+
+ else:
+ y2error ("Unknown command: %s" % scr_agent.command)
+ print "nil\n"
+ sys.stdout.flush()
+# <-- main
+
+if __name__ == '__main__':
+ main()
+
+exit
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-multipath-2.17.0/agents/Makefile.am new/yast2-multipath-2.17.1/agents/Makefile.am
--- old/yast2-multipath-2.17.0/agents/Makefile.am 2008-09-12 11:26:58.000000000 +0200
+++ new/yast2-multipath-2.17.1/agents/Makefile.am 2008-09-27 08:18:02.000000000 +0200
@@ -1,7 +1,7 @@
# Makefile.am for multipath/agents
-agent_SCRIPTS =
+agent_SCRIPTS = ag_multipath
-scrconf_DATA = etc_multipath.scr
+scrconf_DATA = etc_multipath.scr multipath.scr
EXTRA_DIST = $(agent_SCRIPTS) $(scrconf_DATA)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-multipath-2.17.0/agents/Makefile.in new/yast2-multipath-2.17.1/agents/Makefile.in
--- old/yast2-multipath-2.17.0/agents/Makefile.in 2008-09-12 11:30:06.000000000 +0200
+++ new/yast2-multipath-2.17.1/agents/Makefile.in 2008-10-14 12:11:37.000000000 +0200
@@ -173,8 +173,8 @@
ydatadir = @ydatadir@
yncludedir = @yncludedir@
ystartupdir = @ystartupdir@
-agent_SCRIPTS =
-scrconf_DATA = etc_multipath.scr
+agent_SCRIPTS = ag_multipath
+scrconf_DATA = etc_multipath.scr multipath.scr
EXTRA_DIST = $(agent_SCRIPTS) $(scrconf_DATA)
all: all-am
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-multipath-2.17.0/agents/multipath.scr new/yast2-multipath-2.17.1/agents/multipath.scr
--- old/yast2-multipath-2.17.0/agents/multipath.scr 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-multipath-2.17.1/agents/multipath.scr 2008-09-27 08:18:02.000000000 +0200
@@ -0,0 +1,6 @@
+/**
+ * FIXME: add docu
+ */
+.multipath
+
+`ag_multipath ()
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-multipath-2.17.0/configure new/yast2-multipath-2.17.1/configure
--- old/yast2-multipath-2.17.0/configure 2008-09-12 11:30:05.000000000 +0200
+++ new/yast2-multipath-2.17.1/configure 2008-10-14 12:11:36.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61 for yast2-multipath 2.17.0.
+# Generated by GNU Autoconf 2.61 for yast2-multipath 2.17.1.
#
# Report bugs to http://bugs.opensuse.org/.
#
@@ -574,8 +574,8 @@
# Identity of this package.
PACKAGE_NAME='yast2-multipath'
PACKAGE_TARNAME='yast2-multipath'
-PACKAGE_VERSION='2.17.0'
-PACKAGE_STRING='yast2-multipath 2.17.0'
+PACKAGE_VERSION='2.17.1'
+PACKAGE_STRING='yast2-multipath 2.17.1'
PACKAGE_BUGREPORT='http://bugs.opensuse.org/'
ac_unique_file="RPMNAME"
@@ -1197,7 +1197,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures yast2-multipath 2.17.0 to adapt to many kinds of systems.
+\`configure' configures yast2-multipath 2.17.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1268,7 +1268,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of yast2-multipath 2.17.0:";;
+ short | recursive ) echo "Configuration of yast2-multipath 2.17.1:";;
esac
cat <<\_ACEOF
@@ -1346,7 +1346,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-yast2-multipath configure 2.17.0
+yast2-multipath configure 2.17.1
generated by GNU Autoconf 2.61
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1360,7 +1360,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by yast2-multipath $as_me 2.17.0, which was
+It was created by yast2-multipath $as_me 2.17.1, which was
generated by GNU Autoconf 2.61. Invocation command line was
$ $0 $@
@@ -2181,7 +2181,7 @@
# Define the identity of the package.
PACKAGE='yast2-multipath'
- VERSION='2.17.0'
+ VERSION='2.17.1'
cat >>confdefs.h <<_ACEOF
@@ -2409,9 +2409,9 @@
-VERSION="2.17.0"
+VERSION="2.17.1"
RPMNAME="yast2-multipath"
-MAINTAINER="Coly Li "
+MAINTAINER="Coly Li "
pkgconfigdir=\${libdir}/pkgconfig
pkgconfigdatadir=\${datadir}/pkgconfig
@@ -3304,7 +3304,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by yast2-multipath $as_me 2.17.0, which was
+This file was extended by yast2-multipath $as_me 2.17.1, which was
generated by GNU Autoconf 2.61. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -3347,7 +3347,7 @@
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-yast2-multipath config.status 2.17.0
+yast2-multipath config.status 2.17.1
configured by $0, generated by GNU Autoconf 2.61,
with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-multipath-2.17.0/configure.in new/yast2-multipath-2.17.1/configure.in
--- old/yast2-multipath-2.17.0/configure.in 2008-09-12 11:30:02.000000000 +0200
+++ new/yast2-multipath-2.17.1/configure.in 2008-10-14 12:11:31.000000000 +0200
@@ -1,9 +1,9 @@
dnl configure.in for yast2-multipath
dnl
-dnl -- This file is generated by y2autoconf 2.17.6 - DO NOT EDIT! --
+dnl -- This file is generated by y2autoconf 2.16.7 - DO NOT EDIT! --
dnl (edit configure.in.in instead)
-AC_INIT(yast2-multipath, 2.17.0, http://bugs.opensuse.org/, yast2-multipath)
+AC_INIT(yast2-multipath, 2.17.1, http://bugs.opensuse.org/, yast2-multipath)
dnl Check for presence of file 'RPMNAME'
AC_CONFIG_SRCDIR([RPMNAME])
@@ -18,9 +18,9 @@
AM_INIT_AUTOMAKE(tar-ustar -Wno-portability)
dnl Important YaST2 variables
-VERSION="2.17.0"
+VERSION="2.17.1"
RPMNAME="yast2-multipath"
-MAINTAINER="Coly Li "
+MAINTAINER="Coly Li "
dnl pkgconfig honors lib64
pkgconfigdir=\${libdir}/pkgconfig
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-multipath-2.17.0/src/Makefile.am new/yast2-multipath-2.17.1/src/Makefile.am
--- old/yast2-multipath-2.17.0/src/Makefile.am 2008-09-12 11:28:51.000000000 +0200
+++ new/yast2-multipath-2.17.1/src/Makefile.am 2008-09-27 08:18:03.000000000 +0200
@@ -8,7 +8,6 @@
ynclude_DATA = \
complex.ycp \
helps.ycp \
- multipath.ycp \
options.ycp \
wizards.ycp
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-multipath-2.17.0/src/Makefile.in new/yast2-multipath-2.17.1/src/Makefile.in
--- old/yast2-multipath-2.17.0/src/Makefile.in 2008-09-12 11:30:06.000000000 +0200
+++ new/yast2-multipath-2.17.1/src/Makefile.in 2008-10-14 12:11:37.000000000 +0200
@@ -187,7 +187,6 @@
ynclude_DATA = \
complex.ycp \
helps.ycp \
- multipath.ycp \
options.ycp \
wizards.ycp
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-multipath-2.17.0/src/options.ycp new/yast2-multipath-2.17.1/src/options.ycp
--- old/yast2-multipath-2.17.0/src/options.ycp 2007-07-26 18:40:38.000000000 +0200
+++ new/yast2-multipath-2.17.1/src/options.ycp 2008-10-14 10:50:44.000000000 +0200
@@ -502,7 +502,7 @@
ret["info"] = "";
} else {
ret["result"] = false;
- ret["info"] = "* \"path_grouping_policy\" " + _("illgal value") + "\n";
+ ret["info"] = "* \"path_grouping_policy\" " + _("illegal value") + "\n";
}
return ret;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-multipath-2.17.0/VERSION new/yast2-multipath-2.17.1/VERSION
--- old/yast2-multipath-2.17.0/VERSION 2008-09-12 11:23:11.000000000 +0200
+++ new/yast2-multipath-2.17.1/VERSION 2008-10-14 12:08:18.000000000 +0200
@@ -1 +1 @@
-2.17.0
+2.17.1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org