Porkchop es un simple servidor de información del sistema basado en HTTP escrito en Python. & Nbsp; Usted escribe plugins para él y responde con los datos basados en su solicitud.
He aquí un ejemplo:
scott @ beatbox: ~% http curl: // localhost: 5000 / cpuinfo
/ Cpuinfo / processor2 / fpu sí
/ Cpuinfo / processor2 / f00f_bug ninguna
/ Cpuinfo / processor2 / cache_alignment 64
/ Cpuinfo / processor2 / Vendor_id AuthenticAMD
/ cpuinfo / processor2 / banderas fpu
/ Cpuinfo / processor2 / bogomips 6384
/ Cpuinfo / processor2 / hlt_bug ninguna
/ Cpuinfo / processor2 / apicid 2
/ Cpuinfo / processor2 / fpu_exception sí
/ Cpuinfo / processor2 / pisar 3
/ Cpuinfo / processor2 / wp sí
/ Cpuinfo / processor2 / hermanos 4
/ Cpuinfo / processor2 / modelo 4
/ Cpuinfo / processor2 / coma_bug ninguna
/ Cpuinfo / processor2 / fdiv_bug ninguna
/ Cpuinfo / Procesador3 / fpu sí
/ Cpuinfo / Procesador3 / f00f_bug ninguna
/ Cpuinfo / Procesador3 / cache_alignment 64
/ Cpuinfo / Procesador3 / Vendor_id AuthenticAMD
/ cpuinfo / Procesador3 / banderas fpu
/ Cpuinfo / Procesador3 / bogomips 6384
/ Cpuinfo / Procesador3 / hlt_bug ninguna
/ Cpuinfo / Procesador3 / apicid 3
/ Cpuinfo / Procesador3 / fpu_exception sí
/ Cpuinfo / Procesador3 / pisar 3
/ Cpuinfo / Procesador3 / wp sí
/ Cpuinfo / Procesador3 / hermanos 4
/ Cpuinfo / Procesador3 / modelo 4
/ Cpuinfo / Procesador3 / coma_bug ninguna
/ Cpuinfo / Procesador3 / fdiv_bug ninguna
[Snip]
/ Hora 1311387215
scott @ beatbox: ~%
También puede responder con JSON vía extensión de archivo .json o poner la cabecera Accept: application / json.
scott @ beatbox: ~% http curl: // localhost: 5000 / cpuinfo.json
{"Cpuinfo": {"processor2": {"fpu": "sí", "f00f_bug": "no", "cache_alignment": "64", "Vendor_id": "AuthenticAMD", "banderas": "fpu" , "bogomips": "6384", "hlt_bug": "no", "apicid": "2", "fpu_exception": "sí", "paso a paso": "3", "wp": "sí", " hermanos ":" 4 "," modelo ":" 4 "," coma_bug ":" no "," fdiv_bug ":" no "}," Procesador3 ": {" fpu ":" sí "," f00f_bug ":" no "," cache_alignment ":" 64 "," Vendor_id ":" AuthenticAMD "," banderas ":" fpu "," mipsFicticias ":" 6384 "," hlt_bug ":" no "," apicid ":" 3 " "fpu_exception": "sí", "paso a paso": "3", "wp": "Sí", "hermanos": "4", "modelo": "4", "coma_bug": "no", " fdiv_bug ":" no "}," processor0 ": {" fpu ":" sí "," f00f_bug ":" no "," cache_alignment ":" 64 "," Vendor_id ":" AuthenticAMD "," banderas ":" fpu "," bogomips ":" 6382 "," hlt_bug ":" no "," apicid ":" 0 "," fpu_exception ":" sí "," paso a paso ":" 3 "," wp ":" sí " , "hermanos": "4", "modelo": "4", "coma_bug": "no", "fdiv_bug": "no"}, "processor1": {"fpu": "sí", "f00f_bug" : "no", "cache_alignment": "64", "Vendor_id": "AuthenticAMD", "banderas": "fpu", "mipsFicticias": "6384", "hlt_bug": "no", "apicid": " 1 "," fpu_exception ":" sí "," paso a paso ":" 3 "," wp ":" Sí "," hermanos ":" 4 "," modelo ":" 4 "," coma_bug ":" no " "fdiv_bug": "no"}}, "tiempo": "1311389934"}
scott @ beatbox: ~%
Instalación
PIP instalar Porkchop
o
python setup.py install
Escribiendo Plugins
Es bastante fácil de escribir un nuevo plugin. Son sólo módulos de Python con algunos atributos comunes:
- Un plugin debe subclase porkchop.plugin.PorkchopPlugin.
- La clase del plugin debe tener el sufijo Plugin. Su nombre real del archivo en el directorio de plugins también debe coincidir con el prefijo. Por ejemplo, FooPlugin estaría en el foo.py archivo
- La clase del plugin debe contener un método llamado get_data que devuelve un diccionario de la información que se mostrará.
Por defecto, el método get_data de un plugin llamado solo si los datos son más de 60 segundos de edad. Esto se puede cambiar en una base por-plugin estableciendo self.refresh en ___init___ método de la clase.
. Estos plugins se pueden colocar en cualquier directorio que usted elija, y se cargaron pasando la opción -d para PORKCHOP
Requisitos :
- Python
Comentarios que no se encuentran