[iscsi] Un truc un peu plus générique que le commit précédent...
Ignore-this: 1a03894b0e7eee239fe5a3b415594cc6 darcs-hash:20120807230017-108b1-719379098a34feeda0126b5b5317c56386077434.gz
This commit is contained in:
parent
af9c060e1c
commit
31e08c85be
8 changed files with 36 additions and 79 deletions
|
@ -108,7 +108,7 @@ cfengine_main = bcfg2_main
|
|||
|
||||
## Fichier de mapping lun/nom de volume iscsi
|
||||
ISCSI_MAP_FILE = "/usr/scripts/var/iscsi_names.py"
|
||||
ISCSI_NEW_MAP_FILE = "/usr/scripts/var/iscsi_names_new.py"
|
||||
ISCSI_MAP_FILE_TEMPLATE = "/usr/scripts/var/iscsi_names_%s.py"
|
||||
|
||||
## Impression
|
||||
class impression:
|
||||
|
|
|
@ -13,9 +13,11 @@ stockage'''
|
|||
import nolslib, re, sys
|
||||
|
||||
sys.path.append("/usr/scripts/gestion")
|
||||
from config import ISCSI_NEW_MAP_FILE
|
||||
from config import ISCSI_MAP_FILE_TEMPLATE
|
||||
import affich_tools
|
||||
|
||||
map_file = ISCSI_MAP_FILE_TEMPLATE % "nols"
|
||||
|
||||
print u"Connexion à la baie de stockage..."
|
||||
|
||||
nols = nolslib.Nols()
|
||||
|
@ -31,7 +33,7 @@ nols.logout()
|
|||
|
||||
print u"Enregistrement des informations..."
|
||||
|
||||
f = open(ISCSI_NEW_MAP_FILE, "w")
|
||||
f = open(map_file, "w")
|
||||
f.write((u"""\
|
||||
# -*- coding: utf-8 -*-
|
||||
# Fichier de mapping lun -> nom de volume
|
||||
|
@ -48,7 +50,7 @@ f.write("}\n")
|
|||
|
||||
f.close()
|
||||
|
||||
print u"Terminé, mapping enregistré dans %s" % ISCSI_NEW_MAP_FILE
|
||||
print u"Terminé, mapping enregistré dans %s" % map_file
|
||||
|
||||
print u"Le mapping actuel est:"
|
||||
print affich_tools.tableau(titre = ["lun", "nom"], data = map, alignement = ["g", "c"])
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
# slon-get-volume-mapping.py
|
||||
# --------------------------
|
||||
# Copyright : (c) 2012, Olivier Iffrig <iffrig@crans.org>
|
||||
# Copyright : (c) 2008, Jeremie Dimino <dimino@crans.org>
|
||||
# Licence : BSD3
|
||||
|
||||
|
@ -12,9 +13,11 @@ stockage'''
|
|||
import slonlib, re, sys
|
||||
|
||||
sys.path.append("/usr/scripts/gestion")
|
||||
from config import ISCSI_MAP_FILE
|
||||
from config import ISCSI_MAP_FILE_TEMPLATE
|
||||
import affich_tools
|
||||
|
||||
map_file = ISCSI_MAP_FILE_TEMPLATE % "slon"
|
||||
|
||||
print u"Connection à la baie de stockage..."
|
||||
|
||||
slon = slonlib.Slon()
|
||||
|
@ -30,7 +33,7 @@ slon.logout()
|
|||
|
||||
print u"Enregistrement des informations..."
|
||||
|
||||
f = open(ISCSI_MAP_FILE, "w")
|
||||
f = open(map_file, "w")
|
||||
f.write((u"""\
|
||||
# -*- coding: utf-8 -*-
|
||||
# Fichier de mapping lun -> nom de volume
|
||||
|
@ -47,7 +50,7 @@ f.write("}\n")
|
|||
|
||||
f.close()
|
||||
|
||||
print u"Terminé, mapping enregistré dans %s" % ISCSI_MAP_FILE
|
||||
print u"Terminé, mapping enregistré dans %s" % map_file
|
||||
|
||||
print u"Le mapping actuel est:"
|
||||
print affich_tools.tableau(titre = ["lun", "nom"], data = map, alignement = ["g", "c"])
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
# udev-get-iscsi-name.py
|
||||
# ----------------------
|
||||
# Copyright : (c) 2012, Olivier Iffrig <iffrig@crans.org>
|
||||
# Copyright : (c) 2008, Jeremie Dimino <jeremie@dimino.org>
|
||||
# Licence : BSD3
|
||||
|
||||
|
@ -12,12 +13,20 @@ pour les liens symboliques pour les périphériques iscsi'''
|
|||
import sys, os
|
||||
|
||||
sys.path.append("/usr/scripts/gestion")
|
||||
from config import ISCSI_MAP_FILE
|
||||
from config import ISCSI_MAP_FILE_TEMPLATE
|
||||
|
||||
if len(sys.argv) < 2:
|
||||
print >>sys.stderr, u"usage: %s <nom de périphérique>" % sys.argv[0]
|
||||
if len(sys.argv) < 2 or len(sys.argv) > 3:
|
||||
print >>sys.stderr, u"usage: %s <nom de périphérique> [<nom de la baie>]" % sys.argv[0]
|
||||
sys.exit(2)
|
||||
|
||||
baie = None
|
||||
if len(sys.argv) == 2:
|
||||
baie = "slon"
|
||||
else:
|
||||
baie = sys.argv[2]
|
||||
|
||||
map_file = ISCSI_MAP_FILE_TEMPLATE % baie
|
||||
|
||||
# Rechreche le nom complet du périphérique dans /sys
|
||||
dev = os.readlink("/sys/block/%s/device" % sys.argv[1])
|
||||
|
||||
|
@ -29,11 +38,11 @@ except:
|
|||
print >>sys.stderr, u"périphérique invalide"
|
||||
sys.exit(1)
|
||||
|
||||
if not os.access(ISCSI_MAP_FILE, os.R_OK):
|
||||
print >>sys.stderr, u"Impossible de lire le fichier de mapping(%s)" % ISCSI_MAP_FILE
|
||||
if not os.access(map_file, os.R_OK):
|
||||
print >>sys.stderr, u"Impossible de lire le fichier de mapping(%s)" % map_file
|
||||
sys.exit(1)
|
||||
|
||||
map = {}
|
||||
execfile(ISCSI_MAP_FILE)
|
||||
execfile(map_file)
|
||||
|
||||
print map.get(lun, "lun%d" % lun)
|
||||
|
|
|
@ -1,40 +0,0 @@
|
|||
#!/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)
|
|
@ -2,16 +2,23 @@
|
|||
|
||||
# udev-update-symlinks.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
|
||||
|
||||
if [[ $1 = "" ]]; then
|
||||
BAIE="slon"
|
||||
else
|
||||
BAIE="$1"
|
||||
fi
|
||||
|
||||
cd /dev
|
||||
|
||||
for dev in sd*; do
|
||||
symlink=iscsi_$(python /usr/scripts/gestion/iscsi/udev-get-iscsi-name.py $dev)
|
||||
symlink=iscsi_$(python /usr/scripts/gestion/iscsi/udev-get-iscsi-name.py $dev $BAIE)
|
||||
if [ ! -e $symlink ]; then
|
||||
echo "création du lien /dev/$symlink -> /dev/$dev"
|
||||
ln -s $dev $symlink
|
||||
|
|
|
@ -1,24 +0,0 @@
|
|||
#!/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
|
|
@ -43,4 +43,4 @@ exec_cmd "Rescan des volumes iscsi" \
|
|||
iscsiadm -m session --rescan
|
||||
|
||||
exec_cmd "Mises à jours des liens symboliques dans /dev" \
|
||||
bash /usr/scripts/gestion/iscsi/udev-update-symlinks.sh
|
||||
bash /usr/scripts/gestion/iscsi/udev-update-symlinks.sh $BAIE
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue