Automatice con las API REST de NetApp Backup and Recovery
Las capacidades de NetApp Backup and Recovery que están disponibles a través de la interfaz de usuario web también están disponibles a través de la API REST de respaldo y recuperación.
Hay diez categorías de puntos finales definidos dentro de NetApp Backup and Recovery:
-
backup- administra las operaciones de respaldo de los recursos locales y en la nube, y recupera detalles de los datos de respaldo -
catalog- gestiona la búsqueda de archivos en el catálogo indexado en función de una consulta (Búsqueda y restauración) -
cloud- recupera información sobre varios recursos de proveedores de nube desde la NetApp Console -
job- administra las entradas de detalles del trabajo en la base de datos de la NetApp Console -
license- recupera la validez de la licencia de los sistemas desde la NetApp Console -
ransomware scan- inicia un análisis de ransomware en un archivo de respaldo específico -
restore- le permite realizar operaciones de restauración a nivel de volumen, archivo y carpeta -
sfr- recupera archivos de un archivo de respaldo para operaciones de restauración a nivel de archivo único (Explorar y restaurar) -
storagegrid- recupera detalles sobre un servidor StorageGRID y le permite descubrir un servidor StorageGRID -
system- administra las políticas de respaldo y configura el almacén de objetos de destino asociado con un sistema
Referencia de API
La documentación para cada API de NetApp Backup and Recovery está disponible en "Automatización de la NetApp Console para NetApp Backup and Recovery" .
Empezando
Para comenzar a utilizar las API de NetApp Backup and Recovery , deberá obtener un token de usuario, su ID de cuenta de NetApp Console y el ID del agente de consola.
Al realizar llamadas API, agregará el token de usuario en el encabezado de Autorización y el ID del agente de la consola en el encabezado x-agent-id. Debe utilizar el ID de cuenta de la NetApp Console en las API.
|
|
Si está utilizando una cuenta de servicio, debe utilizar el token de acceso al servicio en lugar de un token de usuario. El valor de "client_id" ("Mu0V1ywgYteI6w1MbD15fKfVIUrNXGWC") es un valor fijo y no se puede cambiar. En este caso, siga las instrucciones aquí: "Crear un token de acceso al servicio" . |
-
Obtenga un token de usuario desde el sitio web de la NetApp Console de NetApp .
Asegúrese de generar el token de actualización desde el siguiente enlace: https://services.cloud.netapp.com/refresh-token/. El token de actualización es una cadena alfanumérica que utilizará para generar un token de usuario.
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" }'El token de usuario del sitio web de la NetApp Console tiene una fecha de vencimiento. La respuesta de la API incluye un campo "expires_in" que indica cuándo vence el token. Para actualizar el token, deberá llamar a esta API nuevamente. -
Obtenga su ID de cuenta de 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 devolverá una respuesta como la siguiente. Puede recuperar el ID de la cuenta analizando la salida de [0].[ accountPublicId].
{ "accountPublicId": "account-i6vJXvZW", "accountName": "rashidn", "isSaas": true, "isGov": false, "isPrivatePreviewEnabled": false, "is3rdPartyServicesEnabled": false, "accountSerial": "96064469711530003565", "userRole": "Role-1" } -
Obtenga el x-agent-id que contiene el ID del agente de la consola.
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…………Puede recuperar el ID del agente de la respuesta analizando la salida de occm.[0].[agent].[agentId].
Ejemplo de uso de las API
El siguiente ejemplo muestra una llamada API para activar NetApp Backup and Recovery en un sistema con una nueva política que tiene etiquetas diarias, horarias y semanales configuradas, y un archivo después de días configurado en 180 días, en la región East-US-2 en la nube de Azure. Tenga en cuenta que esto solo habilita la copia de seguridad en el sistema, pero no se realiza ninguna copia de seguridad de los volúmenes.
Verá que usamos el ID de cuenta de la NetApp Console account-DpTFcxN3 , ID del agente de la consola iZwFFeVCZjWnzGlw8RgD0QQNANZvpP7Iclients , y token de usuario Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5rSXlPVFUzUWpZek1E…y6nyhBjwkeMwHc4ValobjUmju2x0xUH48g en este 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
}
]
}