Skip to main content
NetApp Backup and Recovery
Tous les fournisseurs de cloud
  • Amazon Web Services
  • Google Cloud
  • Microsoft Azure
  • Tous les fournisseurs de cloud
La version française est une traduction automatique. La version anglaise prévaut sur la française en cas de divergence.

Automatisez avec les API REST de NetApp Backup and Recovery

Contributeurs netapp-mwallis

Les fonctionnalités de NetApp Backup and Recovery disponibles via l'interface utilisateur Web sont également disponibles via l'API REST de sauvegarde et de récupération.

Il existe dix catégories de points de terminaison définis dans NetApp Backup and Recovery:

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

  • catalog- gère la recherche de catalogue indexée de fichiers en fonction d'une requête (Recherche et restauration)

  • 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 de la NetApp Console

  • license- récupère la validité de la licence des systèmes à partir de 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 de NetApp Backup and Recovery , vous devez obtenir un jeton utilisateur, votre ID de compte de NetApp Console et l'ID de l'agent de console.

Lors des appels d'API, vous ajouterez le jeton utilisateur dans l'en-tête d'autorisation et l'ID de l'agent de la console dans l'en-tête x-agent-id. Vous devez utiliser l’ID de compte de la NetApp Console dans les API.

Remarque Si vous utilisez un compte de service, vous devez utiliser le jeton d’accès au service au lieu d’un jeton utilisateur. La valeur de « client_id » (« Mu0V1ywgYteI6w1MbD15fKfVIUrNXGWC ») est une valeur 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 utilisateur à partir du site Web NetApp NetApp Console .

    Assurez-vous de générer 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 utiliserez 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 utilisateur du site Web de la NetApp Console a une date d’expiration. La réponse de l'API inclut un champ « expires_in » qui indique quand le jeton expire. Pour actualiser le jeton, vous devrez appeler à 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 renverra une réponse comme celle-ci. Vous pouvez récupérer l'ID de compte en analysant la sortie de [0].[ accountPublicId].

    {
      "accountPublicId": "account-i6vJXvZW",
      "accountName": "rashidn",
      "isSaas": true,
      "isGov": false,
      "isPrivatePreviewEnabled": false,
      "is3rdPartyServicesEnabled": false,
      "accountSerial": "96064469711530003565",
      "userRole": "Role-1"
    }
  3. Obtenez le x-agent-id 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…………

    Vous pouvez récupérer l'ID de l'agent à partir de la réponse en analysant la sortie de occm.[0].[agent].[agentId].

Exemple utilisant les API

L'exemple suivant montre un appel d'API pour activer NetApp Backup and Recovery sur un système avec une nouvelle stratégie qui a des étiquettes quotidiennes, horaires et hebdomadaires définies, l'archivage après les jours étant défini sur 180 jours, dans la région East-US-2 dans le cloud Azure. Notez que cela active uniquement la sauvegarde sur le système, mais aucun volume n'est sauvegardé.

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 est un identifiant de tâche que vous pouvez ensuite surveiller :
{
 "job-id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a"
}
Surveiller la réponse :
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
    }
  ]
}
Surveiller jusqu'à ce que le « statut » soit « TERMINÉ » :
{
  "job": [
    {
      "id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a",
      "type": "backup-working-environment",
      "status": "COMPLETED",
      "error": "",
      "time": 1651852160000
    }
  ]
}