Porkchop ist eine einfache HTTP-basierte System-Informationen-Server in Python geschrieben, & nbsp;. Sie schreiben Plugins für es und es mit den Daten auf der Grundlage Ihrer Anfrage reagiert.
Hier ist ein Beispiel:
scott @ Beatbox: ~% curl http: // localhost: 5000 / cpuinfo
/ Cpuinfo / processor2 / fpu ja
/ Cpuinfo / processor2 / f00f_bug keine
/ Cpuinfo / processor2 / cache_alignment 64
/ Cpuinfo / processor2 / vendor_id AuthenticAMD
/ Cpuinfo / processor2 / Fahnen fpu
/ Cpuinfo / processor2 / bogomips 6384
/ Cpuinfo / processor2 / hlt_bug keine
/ Cpuinfo / processor2 / apicid 2
/ Cpuinfo / processor2 / fpu_exception ja
/ Cpuinfo / processor2 / Schritt 3
/ Cpuinfo / processor2 / wp ja
/ Cpuinfo / processor2 / Geschwister 4
/ Cpuinfo / processor2 / Modell 4
/ Cpuinfo / processor2 / coma_bug keine
/ Cpuinfo / processor2 / fdiv_bug keine
/ Cpuinfo / processor3 / fpu ja
/ Cpuinfo / processor3 / f00f_bug keine
/ Cpuinfo / processor3 / cache_alignment 64
/ Cpuinfo / processor3 / vendor_id AuthenticAMD
/ Cpuinfo / processor3 / Fahnen fpu
/ Cpuinfo / processor3 / bogomips 6384
/ Cpuinfo / processor3 / hlt_bug keine
/ Cpuinfo / processor3 / apicid 3
/ Cpuinfo / processor3 / fpu_exception ja
/ Cpuinfo / processor3 / Schritt 3
/ Cpuinfo / processor3 / wp ja
/ Cpuinfo / processor3 / Geschwister 4
/ Cpuinfo / processor3 / Modell 4
/ Cpuinfo / processor3 / coma_bug keine
/ Cpuinfo / processor3 / fdiv_bug keine
[Snip]
/ Zeit 1311387215
scott @ Beatbox: ~%
Application / json-Header: Es kann auch mit JSON über .json Dateierweiterung oder die Einstellung der Übernehmen reagieren.
scott @ Beatbox: ~% curl http: // localhost: 5000 / cpuinfo.json
{"Cpuinfo": {"processor2": {"FPU": "Ja", "f00f_bug": "nein", "cache_alignment": "64", "vendor_id": "AuthenticAMD", "Flags": "FPU" "bogomips": "6384", "hlt_bug": "nein", "apicid": "2", "fpu_exception": "Ja", "Schritt": "3", "wp": "Ja", " Geschwister ":" 4 "," Modell ":" 4 "," coma_bug ":" nein "," fdiv_bug ":" nicht "}," processor3 ": {" FPU ":" Ja "," f00f_bug ":" no "," cache_alignment ":" 64 "," vendor_id ":" AuthenticAMD "," Flags ":" fpu "," bogomips ":" 6384 "," hlt_bug ":" nein "," apicid ":" 3 " "fpu_exception": "Ja", "Schritt": "3", "wp": "Ja", "Geschwister": "4", "Modell": "4", "coma_bug": "nein", " fdiv_bug ":" nicht "}," processor0 ": {" FPU ":" Ja "," f00f_bug ":" nein "," cache_alignment ":" 64 "," vendor_id ":" AuthenticAMD "," Flags ":" fpu "," bogomips ":" 6382 "," hlt_bug ":" nein "," apicid ":" 0 "," fpu_exception ":" Ja "," Schritt ":" 3 "," wp ":" Ja " "Geschwister": "4", "Modell": "4", "coma_bug": "nein", "fdiv_bug": "nicht"}, "Prozessor1": {"FPU": "Ja", "f00f_bug" : "nein", "cache_alignment": "64", "vendor_id": "AuthenticAMD", "Flags": "FPU", "bogomips": "6384", "hlt_bug": "nein", "apicid": " 1 "," fpu_exception ":" Ja "," Schritt ":" 3 "," wp ":" Ja "," Geschwister ":" 4 "," Modell ":" 4 "," coma_bug ":" Nein " "fdiv_bug": "nein"}}, "Zeit": "1311389934"}
scott @ Beatbox: ~%
Installation
pip porkchop installieren
oder
python setup.py install
Plugins schreiben
Es ist ziemlich einfach, ein neues Plugin zu schreiben. Sie sind nur Python-Modulen mit einigen gemeinsamen Attribute:
- Ein Plugin muss porkchop.plugin.PorkchopPlugin Unterklasse.
- Des Plugins Klasse muss mit Plugin angefügt werden. Seine eigentliche Dateinamen in das Plugin-Verzeichnis sollte auch passen Sie das Präfix. Zum Beispiel würde FooPlugin in der Datei sein foo.py
- Des Plugins Klasse muss eine Methode namens get_data, die ein Wörterbuch der anzuzeigenden Informationen zurückgibt.
Standardmäßig wird get_data Verfahren ein Plugin nur aufgerufen werden, wenn die Daten mehr als 60 Sekunden. Dies kann auf einer Pro-Plug-Basis, indem Sie self.refresh in ___init___ Methode der Klasse geändert werden.
. Diese Plugins können in jedem Verzeichnis Ihrer Wahl, indem Sie die Option -d zu porkchop platziert werden und geladen werden
Anforderungen :
- Python
Kommentare nicht gefunden