Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 10/12/2014, à 13:34

koneroth

besoin de conseils pour un debutant en python

Bonjour à tous,
Je dois parser des fichiers de conf juneOs pour un travail de groupe seulement le développement et moi ne sommes pas trop amis. Si quelqu'un pouvait me fournir les bases en parsing sous python je le remercie d'avance.

Cordialement,
Koneroth

Hors ligne

#2 Le 10/12/2014, à 14:29

Nairwolf

Re : besoin de conseils pour un debutant en python

Je ne sais pas ce qu'est juneOS, mais qu'est-ce que tu souhaites faire plus exactement ?
Pour le parsing, tu peux regarder le moteur PLY écrit en Python. Il est très bien fait wink

Hors ligne

#3 Le 10/12/2014, à 15:19

koneroth

Re : besoin de conseils pour un debutant en python

il s'agit de fichiers de fichiers de conf d'équipements fonctionnant sous le systeme d'xploitation juniper.

pour donner un exemple (tiré du site juniper je précise) :

user@switch# show class-of-service
Forwarding-classes {
    class app queue-num 5;
    class mail queue-num 1;
    class db queue-num 2;
    class erp queue-num 3;
    class video queue-num 4;
    class best-effort queue-num 0;
    class voice queue-num 6;
    class network-control queue-num 7;
}
    interfaces {
        ge-0/0/0 {
            shaping-rate 100m;
            }
        }
interfaces {
    ge-0/0/2 {
        scheduler-map sched-map-be;
        }
    }
schedulers {
    voice-sched-queue-shap {
        shaping-rate 30m;
    }
    voice-sched {
        buffer-size percent 10;
        priority strict-high;
        transmit-rate percent 10;
    }
    video-sched {
        buffer-size percent 15;
        priority low;
        transmit-rate percent 15;
    }
    app-sched {
        buffer-size percent 10;
        priority low;
        transmit-rate percent 10;
    }
    mail-sched {
        buffer-size percent 5;
        priority low;
        transmit-rate percent 5;
    }
    db-sched {
        buffer-size percent 10;
        priority low;
        transmit-rate percent 10;
    }
    erp-sched {
        buffer-size percent 10;
        priority low;
        transmit-rate percent 10;
    }
    nc-sched {
        buffer-size percent 5;
        priority strict-high;
        transmit-rate percent 5;
    }
    be-sched {
        buffer-size percent 35;
        priority low;
        transmit-rate percent 35;
    }
}
scheduler-maps {
    ethernet-cos-map {
        forwarding-class voice scheduler voice-sched;
        forwarding-class video scheduler video-sched;
        forwarding-class app scheduler app-sched;
        forwarding-class mail scheduler mail-sched;
        forwarding-class db scheduler db-sched;
        forwarding-class erp scheduler erp-sched;
        forwarding-class network-control scheduler nc-sched;
        forwarding-class best-effort scheduler be-sched;
    }
    sched-map-be {
        forwarding-class best-effort scheduler voice-sched-queue-shap;
    }
}
user@switch# show interfaces
ge-0/0/0 {
    unit 0 {
        family ethernet {
            filter {
                input voip_class;
            }
        }
    }
}
ge-0/0/1 {
    unit 0 {
        family ethernet {
            filter {
                input voip_class;
            }
        }
    }
}
ge-0/0/2 {
    unit 0 {
        family ethernet {
            filter {
                input video_class;
            }
        }
    }
}
ge-0/0/3 {
    unit 0 {
        family ethernet {
            filter {
                input app_class;
            }
        }
    }
}
ge-0/0/4 {
    unit 0 {
        family ethernet {
            filter {
                input app_class;
            }
        }
    }
}
ge-0/0/5 {
    unit 0 {
        family ethernet {
            filter {
                input app_class;
            }
        }
    }
}
ge-0/0/6 {
    unit 0 {
        family ethernet {
            filter {
                input app_class;
            }
        }
    }
}

Hors ligne

#4 Le 10/12/2014, à 15:25

Nairwolf

Re : besoin de conseils pour un debutant en python

Et qu'est-ce que tu souhaites obtenir du parsing en question ? Si c'est une information simple, tu n'auras peut-être pas besoin de la solution de la mort PLY.

Tu as regardé PLY quand même ? La doc est bien faite. Il te faudra t'appuyer sur les règles BNF de ce langage, ou alors, les créer.

Edit : Quand tu écris du code, il vaut mieux placer cela sous les balises  *code*

Dernière modification par Nairolf21 (Le 10/12/2014, à 15:31)

Hors ligne

#5 Le 10/12/2014, à 15:43

koneroth

Re : besoin de conseils pour un debutant en python

en somme l'idée serait de récup les passwd les names les routes et autres sur les équipements juneOS

Hors ligne

#6 Le 10/12/2014, à 18:29

Nairwolf

Re : besoin de conseils pour un debutant en python

Dans le code que tu as donné, où est-ce que tu vois où l'on récupère ce que tu souhaites ? (psw, name, route)

Hors ligne