Automatize o NetApp Backup and Recovery com APIs REST
Use a NetApp Backup and Recovery API REST para automatizar as tarefas de backup e restauração disponíveis na interface de usuário web.
NetApp Backup and Recovery define dez categorias de endpoints:
-
backup- gerencia as operações de backup para recursos em nuvem e locais e recupera detalhes dos dados de backup -
catalog- gerencia pesquisas de catálogo indexado para arquivos com base em uma consulta (Pesquisar e Restaurar) -
cloud- recupera informações sobre vários recursos do provedor de nuvem do NetApp Console -
job- gerencia as entradas de detalhes de tarefas no banco de dados do NetApp Console -
license- recupera o status da licença do sistema do NetApp Console -
ransomware scan- inicia uma varredura de ransomware em um arquivo de backup específico -
restore- permite que você execute operações de restauração em nível de volume, arquivo e pasta -
sfr- recupera arquivos de um arquivo de backup para operações de restauração em nível de arquivo único (Navegar e Restaurar) -
storagegrid- recupera detalhes sobre um servidor StorageGRID e permite que você descubra um servidor StorageGRID -
system- gerencia políticas de backup e configura o armazenamento de objetos de destino associado a um sistema
Referência de API
A documentação para cada API de NetApp Backup and Recovery está disponível em "Automação do NetApp Console para NetApp Backup and Recovery" .
Começando
Para começar a usar as APIs do NetApp Backup and Recovery, obtenha um token de usuário, o ID da sua conta do NetApp Console e o ID do agente do Console.
Ao fazer chamadas à API, inclua o token do usuário no Authorization cabeçalho e o ID do agente do Console no x-agent-id cabeçalho. Inclua o ID da conta do NetApp Console nas solicitações à API.
|
|
Se você usa uma conta de serviço, use o token de acesso do serviço em vez de um token de usuário. O valor para client_id (Mu0V1ywgYteI6w1MbD15fKfVIUrNXGWC) é fixo e não pode ser alterado. Nesse caso, siga as instruções aqui: "Crie um token de acesso ao serviço".
|
-
Obtenha um token de usuário no site do NetApp Console.
Gere o token de atualização a partir do seguinte link: https://services.cloud.netapp.com/refresh-token/. O token de atualização é uma sequência alfanumérica que você usa para gerar um token de usuário.
curl --location --request POST 'https://netapp-cloud-account.auth0.com/oauth/token?=' \ --header 'Content-Type: application/json' \ -d '{ "grant_type": "refresh_token", "refresh_token": "JxaVHn9cGkX92aPVCkhat3zxxxxxwsC9qMl_pLHkZtsVA", "client_id": "Mu0V1ywgYteI6w1MbD15fKfVIUrNXGWC" }'O token de usuário do site do NetApp Console expira. A resposta da API inclui um campo expires_inque indica quando o token expira. Para atualizar o token, chame esta API novamente. -
Obtenha o ID da sua conta do NetApp Console .
GET 'https://api.bluexp.netapp.com/tenancy/account' -H 'authority: api.bluexp.netapp.com' Header: -H 'accept: application/json' -H 'accept-language: en-GB,en;q=0.9' -H 'authorization: Bearer eyJhbGciOiJSUzI1NiIsInREsta API retorna uma resposta como a seguinte. Recupere o ID da conta de [0].[accountPublicId].
{ "accountPublicId": "account-i6vJXvZW", "accountName": "rashidn", "isSaas": true, "isGov": false, "isPrivatePreviewEnabled": false, "is3rdPartyServicesEnabled": false, "accountSerial": "96064469711530003565", "userRole": "Role-1" } -
Obtenha o valor do `x-agent-id`cabeçalho, que contém o ID do agente do Console.
GET 'https://api.services.cloud.netapp.com/occm/list-occms/account-OOnAR4ZS?excludeStandalone=true&source=saas' \ Header: -H 'authority: api.services.cloud.netapp.com' \ -H 'accept: application/json' \ -H 'accept-language: en-GB,en;q=0.9' \ -H 'authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5…………Recupere o ID do agente da resposta analisando occm.[0].[agent].[agentId].
Exemplo usando as APIs
O exemplo a seguir mostra uma chamada de API que ativa o NetApp Backup and Recovery em um sistema com uma nova política. A política possui rótulos diários, horários e semanais e arquiva após 180 dias na região East US 2 do Microsoft Azure. Essa solicitação habilita o backup no sistema, mas não faz backup de nenhum volume.
Você verá que usamos o ID da conta do NetApp Console account-DpTFcxN3 , ID do agente do console iZwFFeVCZjWnzGlw8RgD0QQNANZvpP7Iclients , e token de usuário Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5rSXlPVFUzUWpZek1E…y6nyhBjwkeMwHc4ValobjUmju2x0xUH48g neste comando.
curl --location --request POST 'https://api.bluexp.netapp.com/account/account-DpTFcxN3/providers/cloudmanager_cbs/api/v3/backup/working-environment/VsaWorkingEnvironment-99hPYEgk' \
--header 'x-agent-id: iZwFFeVCZjWnzGlw8RgD0QQNANZvpP7Iclients' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5rSXlPVFUzUWpZek1E…y6nyhBjwkeMwHc4ValobjUmju2x0xUH48g' \
--data-raw '{
"provider":"AZURE",
"backup-policy": {
"archive-after-days": 180,
"rule": [
{
"label": "hourly",
"retention": "2"
},
{
"label": "daily",
"retention": "30"
},
{
"label": "weekly",
"retention": "52"
}
]
},
"ip-space": "Default",
"region": "eastus2",
"azure": {
"resource-group": "rn-test-backup-rg",
"subscription": "3beb4dd0-25d4-464f-9bb0-303d7cf5c0c2"
}
}
{
"job-id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a"
}
curl --location --request GET 'https://api.bluexp.netapp.com/account/account-DpTFcxN3/providers/cloudmanager_cbs/api/v1/job/1b34b6f6-8f43-40fb-9a52-485b0dfe893a' \
--header 'x-agent-id: iZwFFeVCZjWnzGlw8RgD0QQNANZvpP7Iclients' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5rSXlPVFUzUWpZek1E…hE9ss2NubK6wZRHUdSaORI7JvcOorUhJ8srqdiUiW6MvuGIFAQIh668of2M3dLbhVDBe8BBMtsa939UGnJx7Qz6Eg'
{
"job": [
{
"id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a",
"type": "backup-working-environment",
"status": "PENDING",
"error": "",
"time": 1651852160000
}
]
}
{
"job": [
{
"id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a",
"type": "backup-working-environment",
"status": "COMPLETED",
"error": "",
"time": 1651852160000
}
]
}