Skip to end of metadata
Go to start of metadata

busadmin do OpenBus 2.1 é agora um console Lua interativo. As opções de linha de comando do antigo busadmin viraram funções Lua nesta nova versão. Contudo ainda é possível passar comandos a serem executados através da linha de comando usando a opção -e que permite informar na linha de comando um código Lua a ser executado pelo busadmin.

Adicionalmente o novo busadmin aceita novos parâmetros de linha de comando e que também podem ser definidos num arquivo de configuração tal como o busservices. Esses novos parâmetros são descritos na tela quando se utiliza o parâmetro --help do busadmin. O arquivo Lua contendo os valores padrão desses parâmetros de configuração do busadmin pode ser informado das seguintes formas:

  1. Arquivo busadmin.cfg no diretório corrente.
  2. Arquivo cujo caminho é armazenado na variável OPENBUS_ADMINCFG.
  3. Arquivo cujo caminho é informado pelo parâmetro de linha de comando --configs.

Sumário

Autenticação

O busadmin não faz autenticação ao ser executado. Para que o busadmin se autentique no barramento é necessário informar o parâmetro de configuração --busref ou utilizar a operação login, como nos exemplos dessa seção.

Nas seções seguintes, deve-se assumir que [...] indica parâmetros adicionais que fazem a autenticação do busadmin tal como é apresentado nesta seção.

Note que os comandos ilustrados nessa seção não fazem nada além de se autenticar. Portanto, no OpenBus 2.0 esses comandos irão informar a mensagem de erro "[ERRO] Comando inválido" e terminar. No OpenBus 2.1 o busadmin se autenticará e encerrará sua execução em seguida.

Realiza o login por senha, aguardando a entrada da senha por linha de comando.

OpenBus 2.0

      $ busadmin --host=remotehost --port=21000 --login=admin --password

OpenBus 2.1 (além de pedir a senha, também pede o domínio)

      $ busadmin -busref remotehost:21000 -entity admin
      $ busadmin -e 'login("remotehost:21000", "admin")'

Realiza o login por senha.

OpenBus 2.0

      $ busadmin --host=remotehost --port=21000 --login=admin --password=admin

OpenBus 2.1 (além de informar a senha, informa também o domínio test)

      $ busadmin -busref remotehost:21000 -entity admin -password admin -domain test
      $ busadmin -e 'login("remotehost:21000", "admin", "admin", "test")'

Realiza o login com chave privada.

OpenBus 2.0

      $ busadmin --host=remotehost --port=21000 --login=admin --privatekey=busadmin.key

OpenBus 2.1

      $ busadmin -busref remotehost:21000 -entity admin -privatekey busadmin.key
      $ busadmin -e 'login("remotehost:21000", "admin", "busadmin.key")'

Controle de Logins

Remover um login.

OpenBus 2.0

      $ busadmin [...] --del-login=100cdf94-e215-11e4-a80a-0f2ac14f70e3

OpenBus 2.1

      $ busadmin [...] -e 'kick("100cdf94-e215-11e4-a80a-0f2ac14f70e3")'

Mostrar todos os logins.

OpenBus 2.0

      $ busadmin [...] --list-login

OpenBus 2.1

      $ busadmin [...] -e 'print(logins())'

Mostrar todos os logins de uma entidade.

OpenBus 2.0

      $ busadmin [...] --list-login --entity=admin

OpenBus 2.1

      $ busadmin [...] -e 'print(logins("admin"))'

Controle de Ofertas

Remover oferta (interativamente).

OpenBus 2.0

      $ busadmin [...] --del-offer

OpenBus 2.1

      $ busadmin [...] -e 'list=offers()
for i,o in ipairs(list) do print(i,o) end
i=assert(tonumber(io.read()))
deloffer(list[i])'

Remover oferta de uma entidade (interativamente).

OpenBus 2.0

      $ busadmin [...] --del-offer --entity=someone

OpenBus 2.1

      $ busadmin [...] -e 'list=offers({entity="someone"})
for i,o in ipairs(list) do print(i,o) end
i=assert(tonumber(io.read()))
deloffer(list[i])'

Mostrar todas as interfaces ofertadas.

OpenBus 2.0

      $ busadmin [...] --list-offer

OpenBus 2.1 (lista apenas as ofertas sem exibir as interfaces ofertadas)

      $ busadmin [...] -e 'print(offers())'

OpenBus 2.1 (lista ofertas e suas interfaces)

      $ busadmin [...] -e 'for _,o in ipairs(offers()) do
print(o)
print(o.interfaces)
end'

Mostrar todas as interfaces ofertadas por uma entidade.

OpenBus 2.0

      $ busadmin [...] --list-offer --entity=someone

OpenBus 2.1 (lista apenas as ofertas sem exibir as interfaces ofertadas)

      $ busadmin [...] -e 'print(offers({entity="someone"}))'

OpenBus 2.1 (lista ofertas e suas interfaces)

      $ busadmin [...] -e 'for _,o in ipairs(offers({entity="someone"})) do
print(o)
print(o.interfaces)
end'

Mostrar as propriedades da oferta (interativamente).

OpenBus 2.0

      $ busadmin [...] --list-props

OpenBus 2.1

      $ busadmin [...] -e 'list=offers()
for i,o in ipairs(list) do print(i,o) end
i=assert(tonumber(io.read()))
print(list[i].properties)'

Mostrar as propriedades da oferta por uma entidade (interativamente).

OpenBus 2.0

      $ busadmin [...] --list-props --entity=someone

OpenBus 2.1

      $ busadmin [...] -e 'list=offers({entity="someone"})
for i,o in ipairs(list) do print(i,o) end
i=assert(tonumber(io.read()))
print(list[i].properties)'

Controle de Certificados

Adicionar certificado de uma entidade.

OpenBus 2.0

      $ busadmin [...] --add-certificate=someone --certificate=certs/someone.crt

OpenBus 2.1

      $ busadmin [...] -e 'setcert("someone", "certs/someone.crt")'

Remover certificado de uma entidade.

OpenBus 2.0

      $ busadmin [...] --del-certificate=someone

OpenBus 2.1

      $ busadmin [...] -e 'delcert("someone")'

Mostrar entidades com certificado cadastrado.

OpenBus 2.0

      $ busadmin [...] --list-certificate

OpenBus 2.1

      $ busadmin [...] -e 'print(certents())'

Controle de Interfaces

Adicionar interface.

OpenBus 2.0

      $ busadmin [...] --add-interface=IDL:tecgraf/openbus/demo/Hello:1.0

OpenBus 2.1

      $ busadmin [...] -e 'addiface("IDL:tecgraf/openbus/demo/Hello:1.0")'

Remover interface.

OpenBus 2.0

      $ busadmin [...] --del-interface=IDL:tecgraf/openbus/demo/Hello:1.0

OpenBus 2.1

      $ busadmin [...] -e 'deliface("IDL:tecgraf/openbus/demo/Hello:1.0")'

Mostrar todas as interfaces.

OpenBus 2.0

      $ busadmin [...] --list-interface

OpenBus 2.1

      $ busadmin [...] -e 'print(ifaces())'

Controle de Categorias

Adicionar nova categoria.

OpenBus 2.0

      $ busadmin [...] --add-category=mycat01 --name="My First Category"

OpenBus 2.1

      $ busadmin [...] -e 'assert(getcategory("mycat01") == nil)
setcategory("mycat01", "My First Category")'

Alterar nome de categoria existente.

OpenBus 2.0

      $ busadmin [...] --set-category=mycat01 --name="My First Category"

OpenBus 2.1

      $ busadmin [...] -e 'setcategory(getcategory("mycat01"), "My First Category")'

Remover categoria.

OpenBus 2.0

      $ busadmin [...] --del-category=mycat01

OpenBus 2.1

      $ busadmin [...] -e 'delcategory("mycat01")'

Mostrar todas as categorias.

OpenBus 2.0

      $ busadmin [...] --list-category

OpenBus 2.1

      $ busadmin [...] -e 'print(categories())'

Mostrar uma categoria.

OpenBus 2.0

      $ busadmin [...] --list-category=mycat01

OpenBus 2.1

      $ busadmin [...] -e 'print(getcategory("mycat01"))'

Controle de Entidades

Adicionar entidade.

OpenBus 2.0

      $ busadmin [...] --add-entity=someone --category=mycat01 --name="Some Entity"

OpenBus 2.1

      $ busadmin [...] -e 'getcategory("mycat01"):addentity("someone", "Some Entity")'

Alterar nome de entidade registrada.

OpenBus 2.0

      $ busadmin [...] --set-entity=someone --name="Some Entity"

OpenBus 2.1

      $ busadmin [...] -e 'setentity("someone", "Some Entity")'

Remover entidade.

OpenBus 2.0

      $ busadmin [...] --del-entity=someone

OpenBus 2.1

      $ busadmin [...] -e 'delentity("someone")'

Mostrar todas as entidades.

OpenBus 2.0

      $ busadmin [...] --list-entity

OpenBus 2.1

      $ busadmin [...] -e 'print(entities())'

Mostrar uma entidade.

OpenBus 2.0

      $ busadmin [...] --list-entity=someone

OpenBus 2.1

      $ busadmin [...] -e 'print(getentity("someone"))'

Mostrar as entidades de uma categoria.

OpenBus 2.0

      $ busadmin [...] --list-entity --category=mycat01

OpenBus 2.1

      $ busadmin [...] -e 'print(getcategory("mycat01"):entities())'

Controle de Autorizações

Conceder autorização.

OpenBus 2.0

      $ busadmin [...] --set-authorization=someone --grant=IDL:tecgraf/openbus/demo/Hello:1.0

OpenBus 2.1

      $ busadmin [...] -e 'getentity("someone"):grant("IDL:tecgraf/openbus/demo/Hello:1.0")'

Revogar autorização.

OpenBus 2.0

      $ busadmin [...] --set-authorization=someone --revoke=IDL:tecgraf/openbus/demo/Hello:1.0

OpenBus 2.1

      $ busadmin [...] -e 'getentity("someone"):revoke("IDL:tecgraf/openbus/demo/Hello:1.0")'

Mostrar todas as autorizações.

OpenBus 2.0

      $ busadmin [...] --list-authorization

OpenBus 2.1

      $ busadmin [...] -e 'for _,e in ipairs(entities("*")) do print(e.id, e:ifaces()) end'

Mostrar autorizações de uma entidade.

OpenBus 2.0

      $ busadmin [...] --list-authorization=someone

OpenBus 2.1

      $ busadmin [...] -e 'print(getentity("someone"):ifaces())'

Mostrar todas as autorizações contendo as interfaces.

OpenBus 2.0

      $ busadmin [...] --list-authorization --interface="IDL:SomeInterface:1.0 IDL:OtherInterface:1.0"

OpenBus 2.1

      $ busadmin [...] -e 'list=entities({"IDL:SomeInterface:1.0","IDL:OtherInterface:1.0"})
for _,e in ipairs(list) do print(e.id, e:ifaces()) end'

Descritores de Governança (scripts do busadmin 2.0)

Os exemplos a seguir demonstram como utilizar os antigos scripts descritores no busadmin 2.1. Junto com o pacote do busadmin são distribuídas também demos que demonstram como realizar o mesmo trabalho (e outras funcionalidades) de forma mais rebuscada.

Carrega para o barramento definições no descritor.

OpenBus 2.0

      $ busadmin [...] --script=openbus/configs/governance.lua

OpenBus 2.1

      $ busadmin [...] -e 'd=newdesc()
d:import("openbus/configs/governance.lua")
d:upload()'

Desfaz no barramento as definições no descritor.

OpenBus 2.0

      $ busadmin [...] --undo-script=openbus/configs/governance.lua

OpenBus 2.1

      $ busadmin [...] -e 'd=newdesc()
d:import("openbus/configs/governance.lua")
d:revert()'

 

  • No labels