scripts/gestion/iscsi/udev-get-iscsi-name.py
Olivier Iffrig 31e08c85be [iscsi] Un truc un peu plus générique que le commit précédent...
Ignore-this: 1a03894b0e7eee239fe5a3b415594cc6

darcs-hash:20120807230017-108b1-719379098a34feeda0126b5b5317c56386077434.gz
2012-08-08 01:00:17 +02:00

48 lines
1.2 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# udev-get-iscsi-name.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_MAP_FILE_TEMPLATE
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])
# 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(map_file, os.R_OK):
print >>sys.stderr, u"Impossible de lire le fichier de mapping(%s)" % map_file
sys.exit(1)
map = {}
execfile(map_file)
print map.get(lun, "lun%d" % lun)