[iscsi] On évite les conflits entre les fichiers de mapping des 2 baies
Ignore-this: 7a14d9e365b2b0a5299ee5015bad02d0 darcs-hash:20120807222443-108b1-d23b778fbb79a32b079d7bad34480df9ccf3e938.gz
This commit is contained in:
parent
7bf024e825
commit
668ba63330
4 changed files with 68 additions and 3 deletions
|
@ -108,6 +108,7 @@ cfengine_main = bcfg2_main
|
||||||
|
|
||||||
## Fichier de mapping lun/nom de volume iscsi
|
## Fichier de mapping lun/nom de volume iscsi
|
||||||
ISCSI_MAP_FILE = "/usr/scripts/var/iscsi_names.py"
|
ISCSI_MAP_FILE = "/usr/scripts/var/iscsi_names.py"
|
||||||
|
ISCSI_NEW_MAP_FILE = "/usr/scripts/var/iscsi_names_new.py"
|
||||||
|
|
||||||
## Impression
|
## Impression
|
||||||
class impression:
|
class impression:
|
||||||
|
|
|
@ -13,7 +13,7 @@ stockage'''
|
||||||
import nolslib, re, sys
|
import nolslib, re, sys
|
||||||
|
|
||||||
sys.path.append("/usr/scripts/gestion")
|
sys.path.append("/usr/scripts/gestion")
|
||||||
from config import ISCSI_MAP_FILE
|
from config import ISCSI_NEW_MAP_FILE
|
||||||
import affich_tools
|
import affich_tools
|
||||||
|
|
||||||
print u"Connexion à la baie de stockage..."
|
print u"Connexion à la baie de stockage..."
|
||||||
|
@ -31,7 +31,7 @@ nols.logout()
|
||||||
|
|
||||||
print u"Enregistrement des informations..."
|
print u"Enregistrement des informations..."
|
||||||
|
|
||||||
f = open(ISCSI_MAP_FILE, "w")
|
f = open(ISCSI_NEW_MAP_FILE, "w")
|
||||||
f.write((u"""\
|
f.write((u"""\
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Fichier de mapping lun -> nom de volume
|
# Fichier de mapping lun -> nom de volume
|
||||||
|
@ -48,7 +48,7 @@ f.write("}\n")
|
||||||
|
|
||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
print u"Terminé, mapping enregistré dans %s" % ISCSI_MAP_FILE
|
print u"Terminé, mapping enregistré dans %s" % ISCSI_NEW_MAP_FILE
|
||||||
|
|
||||||
print u"Le mapping actuel est:"
|
print u"Le mapping actuel est:"
|
||||||
print affich_tools.tableau(titre = ["lun", "nom"], data = map, alignement = ["g", "c"])
|
print affich_tools.tableau(titre = ["lun", "nom"], data = map, alignement = ["g", "c"])
|
||||||
|
|
40
gestion/iscsi/udev-get-iscsi-name_new.py
Executable file
40
gestion/iscsi/udev-get-iscsi-name_new.py
Executable file
|
@ -0,0 +1,40 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
# udev-get-iscsi-name_new.py
|
||||||
|
# ----------------------
|
||||||
|
# Copyright : (c) 2012, Olivier Iffrig <iffrig@crans.org>
|
||||||
|
# Copyright : (c) 2008, Jeremie Dimino <jeremie@dimino.org>
|
||||||
|
# Licence : BSD3
|
||||||
|
|
||||||
|
u'''Script appelé par udev (/etc/udev/rules.d/10_crans_iscsi.rules)
|
||||||
|
pour les liens symboliques pour les périphériques iscsi'''
|
||||||
|
|
||||||
|
import sys, os
|
||||||
|
|
||||||
|
sys.path.append("/usr/scripts/gestion")
|
||||||
|
from config import ISCSI_NEW_MAP_FILE
|
||||||
|
|
||||||
|
if len(sys.argv) < 2:
|
||||||
|
print >>sys.stderr, u"usage: %s <nom de périphérique>" % sys.argv[0]
|
||||||
|
sys.exit(2)
|
||||||
|
|
||||||
|
# Rechreche le nom complet du périphérique dans /sys
|
||||||
|
dev = os.readlink("/sys/block/%s/device" % sys.argv[1])
|
||||||
|
|
||||||
|
# L'identifiant est de la forme ".../0:0:0:19", le dernier nombre
|
||||||
|
# étant le lun
|
||||||
|
try:
|
||||||
|
lun = int(dev.rsplit(":", 1)[1])
|
||||||
|
except:
|
||||||
|
print >>sys.stderr, u"périphérique invalide"
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
if not os.access(ISCSI_NEW_MAP_FILE, os.R_OK):
|
||||||
|
print >>sys.stderr, u"Impossible de lire le fichier de mapping(%s)" % ISCSI_NEW_MAP_FILE
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
map = {}
|
||||||
|
execfile(ISCSI_NEW_MAP_FILE)
|
||||||
|
|
||||||
|
print map.get(lun, "lun%d" % lun)
|
24
gestion/iscsi/udev-update-symlinks_new.sh
Executable file
24
gestion/iscsi/udev-update-symlinks_new.sh
Executable file
|
@ -0,0 +1,24 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# udev-update-symlinks_new.sh
|
||||||
|
# -----------------------
|
||||||
|
# Copyright : (c) 2012, Olivier Iffrig <iffrig@crans.org>
|
||||||
|
# Copyright : (c) 2008, Jeremie Dimino <jeremie@dimino.org>
|
||||||
|
# Licence : BSD3
|
||||||
|
|
||||||
|
|
||||||
|
# Ce script met à jour les liens symboliques dans /dev
|
||||||
|
|
||||||
|
cd /dev
|
||||||
|
|
||||||
|
for dev in sd*; do
|
||||||
|
symlink=iscsi_$(python /usr/scripts/gestion/iscsi/udev-get-iscsi-name_new.py $dev)
|
||||||
|
if [ ! -e $symlink ]; then
|
||||||
|
echo "création du lien /dev/$symlink -> /dev/$dev"
|
||||||
|
ln -s $dev $symlink
|
||||||
|
elif [ -h $symlink -a $(readlink $symlink) != $dev ]; then
|
||||||
|
echo "mise à jour du lien /dev/$symlink -> /dev/$dev"
|
||||||
|
rm -f $symlink
|
||||||
|
ln -s $dev $symlink
|
||||||
|
fi
|
||||||
|
done
|
Loading…
Add table
Add a link
Reference in a new issue