diff --git a/gestion/iscsi/slonlib.py b/gestion/iscsi/slonlib.py index 6312656a..810a9e28 100755 --- a/gestion/iscsi/slonlib.py +++ b/gestion/iscsi/slonlib.py @@ -92,6 +92,14 @@ class Slon: return resp + def show(self, what): + u'''Raccourci pour: print slon.cmd("show ")''' + print self.cmd("show " + what) + + def help(self, what): + u'''Raccourci pour: print slon.cmd("help ")''' + print self.cmd("help " + what) + def volume_map(self): u'''Retourne le mapping lun<->nom de volume''' map = {} @@ -99,3 +107,26 @@ class Slon: map[int(m.group(2))] = m.group(1) return map + def create_volume(self, name, size, unit="GB", vdisk="slon1"): + u'''Créé un nouveau volume. Retourne le lun sur lequel il est + mappé. La taille est en Giga-octet. L'unité doit être "KB", + "MB" ou "GB". Par défault c'est "GB".''' + + # Création du volume + self.cmd("create volume vdisk %s size %d%s %s" % (vdisk, size, unit, name)) + + # On récupère le mapping pour chercher un lun de libre + map = self.volume_map() + + lun = 0 + while lun in map: lun = lun + 1 + + # Mapping du volume + self.cmd("map volume %s lun %d" % (name, lun)) + + return lun + + def delete_volume(self, name): + u'''Supprime un volume''' + + self.cmd("delete volume %s")