diff --git a/gestion/config.py b/gestion/config.py index 3503445f..62e0a2b9 100644 --- a/gestion/config.py +++ b/gestion/config.py @@ -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: diff --git a/gestion/iscsi/nols-get-volume-mapping.py b/gestion/iscsi/nols-get-volume-mapping.py index a818f028..e9a94c1a 100755 --- a/gestion/iscsi/nols-get-volume-mapping.py +++ b/gestion/iscsi/nols-get-volume-mapping.py @@ -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"]) diff --git a/gestion/iscsi/slon-get-volume-mapping.py b/gestion/iscsi/slon-get-volume-mapping.py index 9da18826..e78b1c7d 100644 --- a/gestion/iscsi/slon-get-volume-mapping.py +++ b/gestion/iscsi/slon-get-volume-mapping.py @@ -3,6 +3,7 @@ # slon-get-volume-mapping.py # -------------------------- +# Copyright : (c) 2012, Olivier Iffrig # Copyright : (c) 2008, Jeremie Dimino # 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"]) diff --git a/gestion/iscsi/udev-get-iscsi-name.py b/gestion/iscsi/udev-get-iscsi-name.py index 92cefc4a..bf2ce151 100644 --- a/gestion/iscsi/udev-get-iscsi-name.py +++ b/gestion/iscsi/udev-get-iscsi-name.py @@ -3,6 +3,7 @@ # udev-get-iscsi-name.py # ---------------------- +# Copyright : (c) 2012, Olivier Iffrig # Copyright : (c) 2008, Jeremie Dimino # 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 " % sys.argv[0] +if len(sys.argv) < 2 or len(sys.argv) > 3: + print >>sys.stderr, u"usage: %s []" % 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) diff --git a/gestion/iscsi/udev-get-iscsi-name_new.py b/gestion/iscsi/udev-get-iscsi-name_new.py deleted file mode 100755 index 711409d6..00000000 --- a/gestion/iscsi/udev-get-iscsi-name_new.py +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# udev-get-iscsi-name_new.py -# ---------------------- -# Copyright : (c) 2012, Olivier Iffrig -# Copyright : (c) 2008, Jeremie Dimino -# 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 " % 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) diff --git a/gestion/iscsi/udev-update-symlinks.sh b/gestion/iscsi/udev-update-symlinks.sh index d2cf1f0d..544ed971 100644 --- a/gestion/iscsi/udev-update-symlinks.sh +++ b/gestion/iscsi/udev-update-symlinks.sh @@ -2,16 +2,23 @@ # udev-update-symlinks.sh # ----------------------- +# Copyright : (c) 2012, Olivier Iffrig # Copyright : (c) 2008, Jeremie Dimino # 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 diff --git a/gestion/iscsi/udev-update-symlinks_new.sh b/gestion/iscsi/udev-update-symlinks_new.sh deleted file mode 100755 index 0cda89fc..00000000 --- a/gestion/iscsi/udev-update-symlinks_new.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -# udev-update-symlinks_new.sh -# ----------------------- -# Copyright : (c) 2012, Olivier Iffrig -# Copyright : (c) 2008, Jeremie Dimino -# 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 diff --git a/gestion/iscsi/update.sh b/gestion/iscsi/update.sh index c36b2e76..8d81df4d 100644 --- a/gestion/iscsi/update.sh +++ b/gestion/iscsi/update.sh @@ -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