Utilizando o Plugin do Aria Automation para fazer chamadas REST API

Utilizando o Plugin do Aria Automation para fazer chamadas REST API

Hoje vamos ver uma forma bem simples de obter informações do Automation a partir de workflows e actions do Orchestrator. Recentemente escrevi alguns artigos sobre como utilizar chamadas REST API no formato “tradicional”. Aquilo vale para qualquer sistema que possua API, enquanto aqui vou demonstrar como utilizar o plugin do Automation que já vem instalado e configurado por padrão no Orchestrator.

Uma observação rápida: para fins didáticos vamos esquecer dos prefixos de cada produção/solução e apenas chama-los de Automation para o VMware Aria Automation e Orchestrator para o VMware Aria Automation Orchestrator.  

Booooora! Toda vez que realizemos uma implementação do Automation, automagicamente temos o Orchestrator junto, ele é um dos vários containers que rodam dentro das appliances do Automation. Além disso, se você acessar o Orchestrator e ir até o inventário, veja que já existe um plugin chamado vRealize Automation and Cloud Services apontando para o endereço do seu Automation. E é exatamente o uso deste plugin que vou demonstrar aqui.

Diferente das chamdas REST API tradicionais que podem precisar de autenticação (tokens e etc), este plugin já está autenticado, então você pode simplesmente fazer as chamadas que deseja. Existem duas formas de utiliza-lo, a primeira é com o uso dos namespaces. Você encontrará uma variedade de opções e os detalhes de cada um podem ser encontrados na API Explorer navegando até o plugin do Automation. No exemplo abaixo eu listo todos os projetos existentes no Automation.

var host = VraHostManager.defaultHostData;
var allprojects = VraEntitiesFinder.getProjects(host);

for (i = 0; i < allprojects.length; i++) {
    System.log(allprojects[i].name);
}

A outra forma de utilizar este plugin é um pouco mais parecida com as chamadas REST API tradicionais, onde fazemos uso dos namespaces, mas além disso, precisamos informar a URL e o método (GET, POST, etc). O resultado final é identico ao anterior, apenas a forma de obtê-lo é que mudou. 

var host = VraHostManager.defaultHostData.createRestClient();
var request = host.createRequest("GET","/iaas/api/projects");
var response = host.execute(request);
var content = JSON.parse(response.contentAsString);

content = content.content;
for (i = 0; i < content.length; i++) {
    System.log(content[i].name);
}

Existem casos de uso para cada uma das formas que mencionei acima, mas particularmente eu prefiro a segunda, pois acredito ter mais opções disponíveis.

Ah, apenas a título de curiosidade, abaixo compartilho um exemplo de como obter a mesma informação usando REST API da forma tradicional. Observem a variável bearerToken que trás justamente o bearer token do vRA diretamente de outro workflow.

var host = RESTHostManager.getHost("2de4e37a-629a-4d5c-b190-03bc61f0be7c");
var request = host.createRequest("GET","/iaas/api/projects");
request.contentType = "application/json";
request.setHeader("Authorization", bearerToken);
var response = request.execute();
var content = JSON.parse(response.contentAsString);

content = content.content;
for (i = 0; i < content.length; i++) {
    System.log(content[i].name);
}

É isso, pessoal. Até a próxima!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *