Porkchop é um servidor simples informação sistema baseado em HTTP escrito em Python & nbsp;. Você escreve plugins para ele e ele responde com os dados com base em seu pedido.
Aqui está um exemplo:
scott @ beatbox: ~% http curl: // localhost: 5000 / cpuinfo
/ Cpuinfo / processor2 / fpu sim
/ Cpuinfo / processor2 / f00f_bug não
/ Cpuinfo / processor2 / cache_alignment 64
/ Cpuinfo / processor2 / vendor_id AuthenticAMD
/ cpuinfo / processor2 / bandeiras fpu
/ Cpuinfo / processor2 / BogoMips 6384
/ Cpuinfo / processor2 / hlt_bug não
/ Cpuinfo / processor2 / apicid 2
/ Cpuinfo / processor2 / fpu_exception sim
/ Cpuinfo / processor2 / pisar 3
/ Cpuinfo / processor2 / wp sim
/ Cpuinfo / processor2 / irmãos 4
/ Cpuinfo / processor2 / modelo 4
/ Cpuinfo / processor2 / coma_bug não
/ Cpuinfo / processor2 / fdiv_bug não
/ Cpuinfo / processor3 / fpu sim
/ Cpuinfo / processor3 / f00f_bug não
/ Cpuinfo / processor3 / cache_alignment 64
/ Cpuinfo / processor3 / vendor_id AuthenticAMD
/ cpuinfo / processor3 / bandeiras fpu
/ Cpuinfo / processor3 / BogoMips 6384
/ Cpuinfo / processor3 / hlt_bug não
/ Cpuinfo / processor3 / apicid 3
/ Cpuinfo / processor3 / fpu_exception sim
/ Cpuinfo / processor3 / pisar 3
/ Cpuinfo / processor3 / wp sim
/ Cpuinfo / processor3 / irmãos 4
/ Cpuinfo / processor3 / modelo 4
/ Cpuinfo / processor3 / coma_bug não
/ Cpuinfo / processor3 / fdiv_bug não
[Snip]
/ Tempo 1311387215
scott @ beatbox: ~%
Ele também pode responder com JSON via extensão de arquivo .json ou definir o Aceitar: application / json cabeçalho.
scott @ beatbox: ~% http curl: // localhost: 5000 / cpuinfo.json
{"Cpuinfo": {"processor2": {"fpu": "sim", "f00f_bug": "não", "cache_alignment": "64", "vendor_id": "AuthenticAMD", "bandeiras": "fpu" , "BogoMips": "6384", "hlt_bug": "não", "apicid": "2", "fpu_exception": "sim", "pisando": "3", "WP": "sim", " irmãos ":" 4 "," modelo ":" 4 "," coma_bug ":" não "," fdiv_bug ":" não "}," processor3 ": {" fpu ":" sim "," f00f_bug ":" não "," cache_alignment ":" 64 "," vendor_id ":" AuthenticAMD "," bandeiras ":" fpu "," BogoMips ":" 6384 "," hlt_bug ":" não "," apicid ":" 3 " "fpu_exception": "sim", "pisando": "3", "wp": "sim", "irmãos": "4", "modelo": "4", "coma_bug": "não", " fdiv_bug ":" não "}," processor0 ": {" fpu ":" sim "," f00f_bug ":" não "," cache_alignment ":" 64 "," vendor_id ":" AuthenticAMD "," bandeiras ":" fpu "," BogoMips ":" 6382 "," hlt_bug ":" não "," apicid ":" 0 "," fpu_exception ":" sim "," pisando ":" 3 "," WP ":" sim " , "irmãos": "4", "modelo": "4", "coma_bug": "não", "fdiv_bug": "não"}, "processor1": {"fpu": "sim", "f00f_bug" : "não", "cache_alignment": "64", "vendor_id": "AuthenticAMD", "bandeiras": "fpu", "BogoMips": "6384", "hlt_bug": "não", "apicid": " 1 "," fpu_exception ":" sim "," pisando ":" 3 "," wp ":" sim "," irmãos ":" 4 "," modelo ":" 4 "," coma_bug ":" não " "fdiv_bug": "não"}}, "time": "1311389934"}
scott @ beatbox: ~%
Instalação
pip instalar porkchop
ou
python setup.py instalar
Escrevendo Plugins
É muito fácil escrever um novo plugin. Eles são apenas módulos Python com alguns atributos comuns:
- Um plugin deve subclasse porkchop.plugin.PorkchopPlugin.
- A classe do plugin deve ser seguido de Plugin. Seu nome real do arquivo na pasta de plugins também deverá corresponder ao prefixo. Por exemplo, seria FooPlugin no ficheiro foo.py
- A classe do plugin deve conter um método chamado get_data que retorna um dicionário das informações a serem exibidas.
Por padrão, o método get_data um plugin só será chamado se os dados são mais de 60 segundos de idade. Isto pode ser alterado em uma base per-plugin, definindo self.refresh no método ___init___ da classe.
. Estes plugins podem ser colocados em qualquer diretório que você escolher, e carregado, passando a opção -d para PORKCHOP
Requisitos :
- Python
Comentários não encontrado