diff --git a/gestion/udev-get-iscsi-name.py b/gestion/udev-get-iscsi-name.py new file mode 100755 index 00000000..b6522761 --- /dev/null +++ b/gestion/udev-get-iscsi-name.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# udev-get-iscsi-name.py +# ---------------------- +# 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 +from config import ISCSI_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) + +ISCSI_MAP_FILE = "/usr/scripts/var/iscsi_names.py" + +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 + sys.exit(1) + +map = {} +execfile(ISCSI_MAP_FILE) + +print map.get(lun, "lun%d" % lun)