Porkchop jest prosty serwer HTTP na podstawie systemu informacji napisany w Pythonie. & Nbsp; możliwość pisania wtyczek do niego i reaguje z danych opartych na Państwa życzenie.
Oto przykład:
Scott @ beatbox: ~% curl http: // localhost: 5000 / cpuinfo
/ Cpuinfo / processor2 / FPU tak
/ Cpuinfo / processor2 / f00f_bug nie
/ Cpuinfo / processor2 / cache_alignment 64
/ Cpuinfo / processor2 / vendor_id AuthenticAMD
/ cpuinfo / processor2 / flagi FPU
/ Cpuinfo / processor2 / BogoMips 6384
/ Cpuinfo / processor2 / hlt_bug nie
/ Cpuinfo / processor2 / apicid 2
/ Cpuinfo / processor2 / fpu_exception tak
/ Cpuinfo / processor2 / wzmocnienie 3
/ Cpuinfo / processor2 / wp tak
/ Cpuinfo / processor2 / rodzeństwo 4
/ Cpuinfo / processor2 / Model 4
/ Cpuinfo / processor2 / coma_bug nie
/ Cpuinfo / processor2 / fdiv_bug nie
/ Cpuinfo / processor3 / FPU tak
/ Cpuinfo / processor3 / f00f_bug nie
/ Cpuinfo / processor3 / cache_alignment 64
/ Cpuinfo / processor3 / vendor_id AuthenticAMD
/ cpuinfo / processor3 / flagi FPU
/ Cpuinfo / processor3 / BogoMips 6384
/ Cpuinfo / processor3 / hlt_bug nie
/ Cpuinfo / processor3 / apicid 3
/ Cpuinfo / processor3 / fpu_exception tak
/ Cpuinfo / processor3 / wzmocnienie 3
/ Cpuinfo / processor3 / wp tak
/ Cpuinfo / processor3 / rodzeństwo 4
/ Cpuinfo / processor3 / Model 4
/ Cpuinfo / processor3 / coma_bug nie
/ Cpuinfo / processor3 / fdiv_bug nie
[Ciach]
/ Czas 1311387215
Scott @ beatbox: ~%
Może również reagować z JSON poprzez rozszerzenie pliku .json lub ustawienie Accept: application / json nagłówek.
Scott @ beatbox: ~% curl http: // localhost: 5000 / cpuinfo.json
{"Cpuinfo": {"processor2": {"FPU": "tak", "f00f_bug": "nie", "cache_alignment": "64", "vendor_id": "AuthenticAMD", "flagi": "FPU" , "BogoMips": "6384", "hlt_bug": "nie", "apicid": "2", "fpu_exception": "tak", "wzmocnienie": "3", "wp": "tak", " Rodzeństwo ":" 4 "," model ":" 4 "," coma_bug ":" nie "," fdiv_bug ":" nie "}" processor3 ": {" FPU ":" tak "," f00f_bug ":" nie "," cache_alignment ":" 64 "," vendor_id ":" AuthenticAMD "," flagi ":" FPU "," bogomips ":" 6384 "," hlt_bug ":" nie "," apicid ":" 3 " "fpu_exception": "tak", "wzmocnienie": "3", "wp": "tak", "Rodzeństwo": "4", "model": "4", "coma_bug": "nie", " fdiv_bug ":" nie "}" processor0 ": {" FPU ":" tak "," f00f_bug ":" nie "," cache_alignment ":" 64 "," vendor_id ":" AuthenticAMD "," flagi ":" FPU "," BogoMips ":" 6382 "," hlt_bug ":" nie "," apicid ":" 0 "," fpu_exception ":" tak "," wzmocnienie ":" 3 "," wp ":" tak " , "Rodzeństwo": "4", "model": "4", "coma_bug": "nie", "fdiv_bug": "nie"} "processor1": {"FPU": "tak", "f00f_bug" : "nie", "cache_alignment": "64", "vendor_id": "AuthenticAMD", "flagi": "FPU", "bogomips": "6384", "hlt_bug": "nie", "apicid": " 1 "," fpu_exception ":" tak "," wzmocnienie ":" 3 "," wp ":" tak "," Rodzeństwo ":" 4 "," model ":" 4 "," coma_bug ":" nie " "fdiv_bug": "nie"}}, "Czas": "1311389934"}
Scott @ beatbox: ~%
instalacji
pip install Porkchop
lub
python setup.py install
Pisanie wtyczek
Jest to dość łatwe do napisania nowego rozszerzenia. To tylko modułów Pythona z niektórych typowych atrybutów:
- Wtyczka musi podklasy porkchop.plugin.PorkchopPlugin.
- Klasa Wtyczka musi być przyrostkiem Plugin. Jego rzeczywista nazwa pliku w katalogu wtyczek powinny także pasować do prefiksu. Na przykład, FooPlugin będzie w foo.py pliku
- Klasa Plugin musi zawierać metodę nazywa się get_data zwracającą Słownik informacji do wyświetlenia.
Domyślnie metoda get_data plugin zostanie wywołana tylko wtedy, gdy dane jest więcej niż 60 sekund życia. Można to zmienić w ciągu jednej-plugin przez ustawienie self.refresh w metodzie ___init___ na klasy w.
. Te wtyczki mogą być umieszczone w dowolnym wybranym katalogu i ładowane przekazując opcję -d do Porkchop
Wymagania :
- Python
Komentarze nie znaleziono