Como obter informações de conexão de um arquivo de conexão .ags?

8

Estou trabalhando em um script Python para gerenciar os serviços do ArcGIS Server (publicar novos serviços, atualizar serviços existentes, excluir serviços antigos etc.) em lote em vários ambientes (por exemplo, desenvolvimento, teste e produção) e instâncias (mais de 2 por ambiente).

Para publicar serviços, você pode usar os arquivos de conexão ArcPy e AGS, mas para fazer qualquer coisa além disso (por exemplo, listar serviços existentes, iniciar / parar / excluir serviços), é necessário usar a API REST do AGS Admin , que usa autenticação baseada em token, e para obter um token, você precisa enviar o nome e a senha do usuário.

Ter que especificar a URL do servidor, nome de usuário e senha a cada vez seria tedioso para o usuário, especialmente se ele estiver trabalhando com mais de uma instância do AGS por vez, como meu script. Eu preferiria se eles pudessem usar seus arquivos de conexão AGS preexistentes, o que eles precisam para publicar independentemente.

Existe alguma maneira de obter as informações de conexão (por exemplo, URL do servidor, nome de usuário, senha) de um .agsarquivo de conexão AGS ( ) programaticamente - idealmente com Python? arcpy.Describeconsidera esses arquivos idiotas e não pode fazer nada com eles.

Se não houver maneira de fazer isso, suponho que precisarei de uma etapa de configuração adicional para gerar e armazenar os tokens localmente por um longo período, pois seria muito complicado solicitar ao usuário credenciais para cada instância do AGS sempre eles usam o script.

blah238
fonte

Respostas:

5

Em suma, não. Não há como extrair essas informações de um arquivo .ags sem um grande esforço e alguma engenharia reversa séria. A Esri projetou dessa maneira porque ter um arquivo que continha o nome de domínio totalmente qualificado de um servidor, bem como as credenciais completas de um usuário com privilégios para acessar esse servidor, representaria um grande risco à segurança.

Além disso, apenas porque um usuário tem permissões para publicar um serviço, isso não significa que ele pode iniciar e interromper serviços no servidor GIS; portanto, é lógico que, apenas por terem um arquivo de conexão do servidor (arquivo .ags), eles devem poder acessar os pontos de extremidade REST do administrador e iniciar / parar serviços é um pouco defeituoso, a menos que eu esteja interpretando mal sua postagem.

MrBubbles
fonte
1
Obrigado - praticamente o que eu assumi ser o caso. Apenas uma dor é tudo. É claro que os arquivos .ags precisariam ser protegidos, assim como os arquivos .sde. Mas pelo menos você pode realmente usar arquivos .sde para a finalidade pretendida. Os arquivos AGS parecem ser muito menos úteis, pelo menos para fins de script. E estou ciente da diferença entre as conexões do editor e do administrador, usamos principalmente o último.
Blah238