Skip to main content
NetApp Backup and Recovery
La version française est une traduction automatique. La version anglaise prévaut sur la française en cas de divergence.

Automatisez la sauvegarde et la restauration NetApp avec les API REST

Contributeurs netapp-mwallis

Utilisez l’API REST NetApp Backup and Recovery pour automatiser les tâches de sauvegarde et de restauration disponibles dans l’interface utilisateur Web.

NetApp Backup and Recovery définit dix catégories de points de terminaison :

  • backup - Gère les opérations de sauvegarde pour les ressources cloud et sur site et récupère les détails des données de sauvegarde

  • catalog - Gère les recherches de fichiers dans le catalogue indexé en fonction d'une requête (Search & Restore)

  • cloud- récupère des informations sur diverses ressources de fournisseurs de cloud à partir de la NetApp Console

  • job - Gère les entrées de détails des tâches dans la base de données NetApp Console

  • license - récupère l'état de la licence système depuis la NetApp Console

  • ransomware scan- lance une analyse de ransomware sur un fichier de sauvegarde spécifique

  • restore- vous permet d'effectuer des opérations de restauration au niveau du volume, du fichier et du dossier

  • sfr- récupère les fichiers à partir d'un fichier de sauvegarde pour les opérations de restauration au niveau d'un seul fichier (Parcourir et restaurer)

  • storagegrid - récupère les détails d'un serveur StorageGRID et vous permet de découvrir un serveur StorageGRID

  • system - gère les politiques de sauvegarde et configure le magasin d'objets de destination associé à un système

Référence API

La documentation de chaque API de NetApp Backup and Recovery est disponible à partir de "Automatisation de la NetApp Console pour la NetApp Backup and Recovery" .

Commencer

Pour commencer à utiliser les API NetApp Backup and Recovery, obtenez un jeton utilisateur, l’ID de votre compte NetApp Console et l’ID de l’agent Console.

Lorsque vous effectuez des appels API, incluez le jeton utilisateur dans l' `Authorization`en-tête et l'ID de l'agent Console dans l' `x-agent-id`en-tête. Incluez l'ID du compte NetApp Console dans les requêtes API.

Remarque Si vous utilisez un compte de service, utilisez le jeton d'accès au service au lieu d'un jeton utilisateur. La valeur pour client_id (Mu0V1ywgYteI6w1MbD15fKfVIUrNXGWC) est fixe et ne peut pas être modifiée. Dans ce cas, suivez les instructions ici : "Créer un jeton d'accès au service".
Étapes
  1. Obtenez un jeton d'utilisateur depuis le site web NetApp Console.

    Générez le jeton d'actualisation à partir du lien suivant : https://services.cloud.netapp.com/refresh-token/. Le jeton d'actualisation est une chaîne alphanumérique que vous utilisez pour générer un jeton utilisateur.

    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"
    }'
    Remarque Le jeton d'utilisateur du site web NetApp Console expire. La réponse de l'API inclut un champ expires_in qui indique la date d'expiration du jeton. Pour actualiser le jeton, appelez à nouveau cette API.
  2. Obtenez votre ID de compte 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 eyJhbGciOiJSUzI1NiIsInR

    Cette API renvoie une réponse comme la suivante. Récupérez l'ID du compte à partir de [0].[accountPublicId].

    {
      "accountPublicId": "account-i6vJXvZW",
      "accountName": "rashidn",
      "isSaas": true,
      "isGov": false,
      "isPrivatePreviewEnabled": false,
      "is3rdPartyServicesEnabled": false,
      "accountSerial": "96064469711530003565",
      "userRole": "Role-1"
    }
  3. Obtenez la `x-agent-id`valeur de l'en-tête, qui contient l'ID de l'agent de la 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…………

    Récupérez l'identifiant de l'agent à partir de la réponse en analysant occm.[0].[agent].[agentId].

Exemple utilisant les API

L'exemple suivant illustre un appel d'API qui active NetApp Backup and Recovery sur un système doté d'une nouvelle stratégie. La stratégie comporte des étiquettes quotidiennes, horaires et hebdomadaires, et archive après 180 jours dans la région Azure East US 2. Cette requête active la sauvegarde sur le système, mais elle ne sauvegarde aucun volume.

Demande d'API

Vous verrez que nous utilisons l'ID de compte de la NetApp Console account-DpTFcxN3 , ID de l'agent de la console iZwFFeVCZjWnzGlw8RgD0QQNANZvpP7Iclients , et le jeton utilisateur Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5rSXlPVFUzUWpZek1E…y6nyhBjwkeMwHc4ValobjUmju2x0xUH48g dans cette commande.

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"
    }
  }
La réponse comprend un identifiant de tâche que vous pouvez surveiller :
{
 "job-id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a"
}
Surveillez l'état du travail :
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'
Réponse:
{
  "job": [
    {
      "id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a",
      "type": "backup-working-environment",
      "status": "PENDING",
      "error": "",
      "time": 1651852160000
    }
  ]
}
Surveillez jusqu'à ce que <code>le statut</code> soit <code>COMPLETED</code> :
{
  "job": [
    {
      "id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a",
      "type": "backup-working-environment",
      "status": "COMPLETED",
      "error": "",
      "time": 1651852160000
    }
  ]
}