Author: aschnell
Date: Tue Aug 19 14:32:36 2008
New Revision: 50202
URL: http://svn.opensuse.org/viewcvs/yast?rev=50202&view=rev
Log:
- more udev ids list<string> issues
Modified:
trunk/storage/libstorage/src/AppUtil.cc
trunk/storage/libstorage/src/AppUtil.h
trunk/storage/libstorage/src/DmmultipathCo.cc
trunk/storage/libstorage/src/DmmultipathCo.h
trunk/storage/libstorage/src/DmraidCo.cc
trunk/storage/libstorage/src/DmraidCo.h
trunk/storage/libstorage/src/Storage.cc
Modified: trunk/storage/libstorage/src/AppUtil.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/libstorage/src/AppUtil.cc?rev=50202&r1=50201&r2=50202&view=diff
==============================================================================
--- trunk/storage/libstorage/src/AppUtil.cc (original)
+++ trunk/storage/libstorage/src/AppUtil.cc Tue Aug 19 14:32:36 2008
@@ -416,9 +416,10 @@
}
-void getFindMap( const char* path, map& m, bool unique )
- {
- y2mil( "path: " << path << " unique:" << unique );
+void
+getFindMap(const char* path, map& m)
+{
+ y2mil( "path: " << path);
m.clear();
if( access( path, R_OK )==0 )
{
@@ -436,14 +437,7 @@
{
string& tmp = tlist.back();
string dsk = tmp.substr( tmp.find_first_not_of( "./" ) );
- map::const_iterator mi = m.find(dsk);
- if( unique || mi==m.end() )
- m[dsk] = tlist.front();
- else
- {
- m[dsk] += " ";
- m[dsk] += tlist.front();
- }
+ m[dsk].push_back(tlist.front());
}
++i;
}
Modified: trunk/storage/libstorage/src/AppUtil.h
URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/libstorage/src/AppUtil.h?rev=50202&r1=50201&r2=50202&view=diff
==============================================================================
--- trunk/storage/libstorage/src/AppUtil.h (original)
+++ trunk/storage/libstorage/src/AppUtil.h Tue Aug 19 14:32:36 2008
@@ -36,9 +36,10 @@
std::map makeMap( const std::list<string>& l,
const string& delim = "=",
const string& removeSur = " \t\n" );
-void getFindMap( const char* path, std::map& m,
- bool unique=true );
-void getFindRevMap( const char* path, std::map& m );
+
+void getFindMap(const char* path, std::map& m);
+void getFindRevMap(const char* path, std::map& m);
+
string normalizeDevice( const string& dev );
void normalizeDevice( string& dev );
string undevDevice( const string& dev );
Modified: trunk/storage/libstorage/src/DmmultipathCo.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/libstorage/src/DmmultipathCo.cc?rev=50202&r1=50201&r2=50202&view=diff
==============================================================================
--- trunk/storage/libstorage/src/DmmultipathCo.cc (original)
+++ trunk/storage/libstorage/src/DmmultipathCo.cc Tue Aug 19 14:32:36 2008
@@ -83,21 +83,22 @@
void
-DmmultipathCo::setUdevData( const string& id )
- {
- y2milestone( "disk %s id %s", nm.c_str(), id.c_str() );
- udev_id.clear();
- udev_id = splitString( id );
+DmmultipathCo::setUdevData(const list<string>& id)
+{
+ y2mil("disk:" << nm << " id:" << id);
+ udev_id = id;
udev_id.erase( remove_if(udev_id.begin(), udev_id.end(),
find_begin("dm-uuid-mpath")));
udev_id.sort();
y2mil( "id:" << udev_id );
+
DmmultipathPair pp = dmmultipathPair();
for( DmmultipathIter p=pp.begin(); p!=pp.end(); ++p )
{
p->addUdevData();
}
- }
+}
+
void
DmmultipathCo::newP( DmPart*& dm, unsigned num, Partition* p )
Modified: trunk/storage/libstorage/src/DmmultipathCo.h
URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/libstorage/src/DmmultipathCo.h?rev=50202&r1=50201&r2=50202&view=diff
==============================================================================
--- trunk/storage/libstorage/src/DmmultipathCo.h (original)
+++ trunk/storage/libstorage/src/DmmultipathCo.h Tue Aug 19 14:32:36 2008
@@ -28,7 +28,7 @@
static storage::CType staticType() { return storage::DMMULTIPATH; }
friend std::ostream& operator<< (std::ostream&, const DmmultipathCo& );
void getInfo( storage::DmmultipathCoInfo& info ) const;
- void setUdevData( const string& id );
+ void setUdevData(const list<string>& id);
bool equalContent( const Container& rhs ) const;
string getDiffString( const Container& d ) const;
Modified: trunk/storage/libstorage/src/DmraidCo.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/libstorage/src/DmraidCo.cc?rev=50202&r1=50201&r2=50202&view=diff
==============================================================================
--- trunk/storage/libstorage/src/DmraidCo.cc (original)
+++ trunk/storage/libstorage/src/DmraidCo.cc Tue Aug 19 14:32:36 2008
@@ -70,22 +70,24 @@
delete( pve );
}
+
void
-DmraidCo::setUdevData( const string& id )
- {
- y2milestone( "disk %s id %s", nm.c_str(), id.c_str() );
- udev_id.clear();
- udev_id = splitString( id );
+DmraidCo::setUdevData( const list<string>& id )
+{
+ y2mil("disk:" << nm << " id:" << id);
+ udev_id = id;
udev_id.erase( remove_if(udev_id.begin(), udev_id.end(),
find_begin("dm-uuid-dmraid")));
udev_id.sort();
y2mil( "id:" << udev_id );
+
DmraidPair pp = dmraidPair();
for( DmraidIter p=pp.begin(); p!=pp.end(); ++p )
{
p->addUdevData();
}
- }
+}
+
void
DmraidCo::newP( DmPart*& dm, unsigned num, Partition* p )
Modified: trunk/storage/libstorage/src/DmraidCo.h
URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/libstorage/src/DmraidCo.h?rev=50202&r1=50201&r2=50202&view=diff
==============================================================================
--- trunk/storage/libstorage/src/DmraidCo.h (original)
+++ trunk/storage/libstorage/src/DmraidCo.h Tue Aug 19 14:32:36 2008
@@ -28,7 +28,7 @@
static storage::CType staticType() { return storage::DMRAID; }
friend std::ostream& operator<< (std::ostream&, const DmraidCo& );
void getInfo( storage::DmraidCoInfo& info ) const;
- void setUdevData( const string& id );
+ void setUdevData(const list<string>& id);
bool equalContent( const Container& rhs ) const;
string getDiffString( const Container& d ) const;
Modified: trunk/storage/libstorage/src/Storage.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/libstorage/src/Storage.cc?rev=50202&r1=50201&r2=50202&view=diff
==============================================================================
--- trunk/storage/libstorage/src/Storage.cc (original)
+++ trunk/storage/libstorage/src/Storage.cc Tue Aug 19 14:32:36 2008
@@ -519,16 +519,16 @@
else if( getenv( "YAST2_STORAGE_NO_DMRAID" )==NULL )
{
list<string> l;
- map by_id;
DmraidCo::getRaids( l );
+ map by_id;
if( !l.empty() )
- getFindMap( "/dev/disk/by-id", by_id, false );
+ getFindMap("/dev/disk/by-id", by_id);
for( list<string>::const_iterator i=l.begin(); i!=l.end(); ++i )
{
DmraidCo * v = new DmraidCo( this, *i, ppart );
if( v->isValid() )
{
- string nm = by_id["dm-"+decString(v->minorNr())];
+ list<string> nm = by_id["dm-"+decString(v->minorNr())];
if( !nm.empty() )
v->setUdevData( nm );
addToList( v );
@@ -560,17 +560,17 @@
else if( getenv( "YAST2_STORAGE_NO_DMMULTIPATH" )==NULL )
{
list<string> l;
- map by_id;
DmmultipathCo::getMultipaths( l );
+ map by_id;
if( !l.empty() )
- getFindMap( "/dev/disk/by-id", by_id, false );
+ getFindMap("/dev/disk/by-id", by_id);
for( list<string>::const_iterator i=l.begin(); i!=l.end(); ++i )
{
DmmultipathCo * v = new DmmultipathCo( this, *i, ppart );
if( v->isValid() )
{
/*
- string nm = by_id["dm-"+decString(v->minorNr())];
+ list<string> nm = by_id["dm-"+decString(v->minorNr())];
if( !nm.empty() )
v->setUdevData( nm );
*/
@@ -694,11 +694,11 @@
DIR *Dir;
struct dirent *Entry;
if( (Dir=opendir( sysfs_dir.c_str() ))!=NULL )
- {
- map by_path;
- map by_id;
- getFindMap( "/dev/disk/by-path", by_path );
- getFindMap( "/dev/disk/by-id", by_id, false );
+ {
+ map by_path;
+ map by_id;
+ getFindMap("/dev/disk/by-path", by_path);
+ getFindMap("/dev/disk/by-id", by_id);
list<DiskData> dl;
while( (Entry=readdir( Dir ))!=NULL )
{
@@ -758,8 +758,11 @@
for( list<DiskData>::iterator i = dl.begin(); i!=dl.end(); ++i )
{
if( i->d )
- {
- i->d->setUdevData( by_path[i->dev], splitString(by_id[i->dev]));
+ {
+ string tmp;
+ if (by_path[i->dev].size() > 0)
+ tmp = by_path[i->dev].front();
+ i->d->setUdevData(tmp, by_id[i->dev]);
addToList( i->d );
}
}
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org