Se você possui conhecimentos na ferramenta Zabbix e gostaria de contribuir na construção da biblioteca no projeto bashsrc, leia a documentação a seguir.
A biblioteca zabbix.sh será constituída por uma coleção de funções que irão integrar os métodos da API oficial e objetos que implementam tais métodos na passagem dos argumentos. Esse modelo de interface requer a conversão de cada método em um estrutura de dados nomeados e com seus respectivos tipos.
A razão desse mini-manual é descrever como um tipo é declarado utilizando os recursos do bashsrc e como devemos proceder na declaração da estrutura de cada método.
O ecossistema do bashsrc suporta os seguintes tipos básicos:
| Tipo | Descrição |
|---|---|
| bool | Valor booleano. (true ou false) |
| str | Uma cadeia de caracteres. |
| char | Um caractere. |
| int | Inteiro com sinal. |
| uint | Inteiro sem sinal. |
| float | Ponto flutuante. |
| var | Indentificador de uma variável válida. |
| array | Identificador de um array indexado válido. |
| map | Identificador de um array associativo válido. |
| function | Identificador de uma função válida. |
Nota: Veja os tipos suportados pelo Zabbix: clique aqui
Para definir um objeto é necessário a palavra-chave var, veja a sintaxe:
var nome_st struct_t
Por convenção utilize o sufixo
_stno identificador do objeto para sinalizar que é uma estrutura.
Após a declaração o objeto irá implementar o método __add__ com o qual iremos adicionar os membros
e seus respectivos tipos, veja a sintaxe:
nome_st.__add__ membro1 tipo1 \
membro2 tipo2
...Para garantir a exclusividade de nomenclaturas utilize o prefixo zabbix_ seguindo do nome
do método ao qual pertence.
Cada método possui um série de argumentos e tipos suportados.
Considere o método de autenticação user.login da API Oficial que suporta os seguintes parâmetros:
| Parâmetro | Tipo | Descrição |
|---|---|---|
| password | string | Senha do usuaŕio. |
| user | string | Nome do usuário. |
| userData | flag | Informações sobre autenticação do usuario. |
Veja métodos suportados: clique aqui
# Criando estrutura
var zabbix_user_login_st struct_t
# Definindo membros da estrutura
zabbix_user_login_st.__add__ password str \
user str \
userdata strNota: substitua o caractere
.presente no identificador do método por_.
Os identificadores e membros devem estar em minúsculo.
Observação: O procedimento acima não requer o bashsrc configurado, apenas que o arquivo modelo respeite os padrões de sintaxe e formatação.
(ATENÇÃO): Certifique-se do tipo suportado por cada parâmetro do método durante a declaração do membro na estrutura, pois o tipo é verificado durante a atribuição do valor podendo gerar erros de tipagem a nível de execução.
De todo o processo de implementação a parte que demanda mais tempo é o mapeamento dos métodos/argumentos da API e a definição dos objetos das estruturas cuja tarefa requer um número maior de colaboradores. Caso queira ser esse colaborador, deixe seu comentário com o nome do método que deseja converter e envie o arquivo modelo para shellscriptx@gmail.com.