Projet

Général

Profil

active_bonding.py

Olivier JANVOIS, 29/02/2012 12:06

Télécharger (2,02 ko)

 
1
#!/usr/bin/python
2
# -*- coding: utf-8 -*-
3

    
4
import sys
5
from creole.parsedico import parse_dico
6

    
7
def supprime_entree(chemin_fichier, expr):
8
    try:
9
        fichier = open(chemin_fichier, 'r')
10
    except:
11
        print """Impossible d'ouvrir le fichier %s""" % chemin_fichier
12
        sys.exit()
13
    try:
14
        nouveau_fichier = []
15
        trouve_expr = False
16
        for ligne in fichier:
17
            trouve_ligne = False
18
            for e in expr:
19
                if ligne.find(e) <> -1:
20
                    trouve_expr = True
21
                    trouve_ligne = True
22
            if not trouve_ligne:
23
                nouveau_fichier.append(ligne)
24
        fichier.close()
25
        if trouve_expr:
26
            nouveau_fichier = ''.join(nouveau_fichier)
27
            fichier = open(chemin_fichier, 'w')
28
            fichier.write(nouveau_fichier)
29
            fichier.close()
30
    except:
31
        print """Erreur lors de la génération du nouveau fichier %s""" % chemin_fichier
32
        fichier.close()
33

    
34
def ajoute_entree(chemin_fichier, expr, bonding_mode):
35
    try:
36
        fichier = open(chemin_fichier, 'r')
37
    except:
38
        print """Impossible d'ouvrir le fichier %s""" % chemin_fichier
39
        sys.exit()
40
    try:
41
        trouve = False
42
        for ligne in fichier:
43
            for e in expr:
44
                if ligne.find(e) <> -1:
45
                    trouve = True
46
        fichier.close()
47
        if not trouve:
48
            fichier = open(chemin_fichier, 'a')
49
            fichier.write("""
50
alias bond0 bonding
51
options bonding mode=%s miimon=100 downdelay=200 updelay=200
52
""" % bonding_mode)
53
            fichier.close()
54
    except:
55
        print """Erreur lors de la génération du nouveau fichier %s""" % chemin_fichier
56

    
57
chemin_fichier = """/etc/modprobe.d/arch/i386"""
58
expr = ["""alias bond0 bonding""","""options bonding mode="""]
59

    
60
if parse_dico()['orl_bonding_actif'] == 'non':
61
    print """Bonding inactif"""
62
    supprime_entree(chemin_fichier, expr)
63
else:
64
    print """Bonding actif"""
65
    ajoute_entree(chemin_fichier, expr, parse_dico()['orl_bonding_mode'])