La version française est une traduction automatique. La version anglaise prévaut sur la française en cas de divergence.

Emplois

Utilisez les API des travaux pour consulter les détails des travaux. Pour plus d’informations sur l’utilisation des travaux, reportez-vous à la section API des objets de travail et processus asynchrones.

Récupérer les travaux

Utilisez la méthode indiquée dans le tableau suivant pour extraire tous les travaux ou un sous-ensemble des travaux. En spécifiant un `tenant_ID', seuls les travaux appartenant à ce tenant seront réaffichés.

Méthode HTTP Chemin Description Paramètres

`GET'

/v2.1/jobs

Récupérer les travaux.

tenant_ID: (Facultatif) Retourne les magasins de blocs appartenant au locataire spécifié. «offset» et «limite»– voir "Pagination commune"

Attributs de corps de demande requis: `aucun'

Exemple corps de la demande :

none

Exemple de corps de réponse :

{
  "status": {
    "user_message": "Okay. Returned 1 record.",
    "verbose_message": "",
    "code": 200
  },
  "result": {
    "returned_records": 1,
    "total_records": 2625,
    "sort_by": "created",
    "order_by": "desc",
    "offset": 0,
    "limit": 1,
    "records": [
      {
        "id": "5ed72c8c6342e90001439d54",
        "action": "create",
        "job_summary": "Create request is successfully submitted",
        "created": "2020-06-03T04:52:28.478Z",
        "updated": "2020-06-03T04:52:32.636Z",
        "object_id": "5ed72c8c6342e90001439d55",
        "object_type": "sg_buckets",
        "object_name": "test1234",
        "status": "successful",
        "status_detail": "Creation of s3 bucket 'test1234' completed successfully.",
        "last_error": "",
        "user_id": "5e85225af038943eb4b74684",
        "job_tasks": [
          {
            "id": "5ed72c8c6342e90001439d57",
            "job_id": "5ed72c8c6342e90001439d54",
            "action": "create",
            "driver": "storagegrid_ansible",
            "object_id": "5ed72c8c6342e90001439d55",
            "object_type": "sg_buckets",
            "resource_type": "sg_bucket",
            "status": "successful",
            "status_detail": "Worker completed task successfully.",
            "last_error": "",
            "user_id": "5e85225af038943eb4b74684",
            "request_payload": {
              "grid_account_id": "05336917559886003354",
              "grid_admin_base_url": "https://sggmi-dev.dev.ausngs.netapp.au/api/v3",
              "org_password": "netapp01",
              "org_username": "root",
              "s3_bucket_name": "test1234"
            }
          }
        ]
      }
    ]
  }
}

Récupérer un travail par ID de travail

Utilisez la méthode indiquée dans le tableau suivant pour récupérer un travail par ID.

Méthode HTTP Chemin Description Paramètres

`GET'

`/v2.1/jobs/{id}'

Récupérer un travail par ID.

ID (chaîne): L’identifiant unique du travail.

Attributs de corps de demande requis : `identificateur de travail'

Exemple corps de la demande :

none

Exemple de corps de réponse :

{
  "status": {
    "user_message": "Okay. Returned 1 record.",
    "verbose_message": "",
    "code": 200
  },
  "result": {
    "total_records": 1,
    "records": [
      {
        "id": "5e66f18e09a74c0001b89640",
        "action": "create",
        "job_summary": "Create S3 bucket for Sub Tenant",
        "created": "2020-03-10T01:46:54.097Z",
        "updated": "2020-03-10T01:46:57.664Z",
        "object_id": "5e66f18e09a74c0001b89641",
        "object_type": "sg_buckets",
        "status": "successful",
        "status_detail": "Creation of s3 bucket 'mys3bucket' completed successfully.",
        "last_error": "",
        "user_id": "5bbee380a2df7a04d43acaee",
        "job_tasks": [
          {
            "id": "5e66f18e09a74c0001b89642",
            "job_id": "5e66f18e09a74c0001b89640",
            "action": "create",
            "driver": "storagegrid_ansible",
            "object_id": "5e66f18e09a74c0001b89641",
            "object_type": "sg_buckets",
            "resource_type": "sg_bucket",
            "status": "successful",
            "status_detail": "Worker completed task successfully.",
            "last_error": "",
            "user_id": "5bbee380a2df7a04d43acaee",
            "request_payload": {
              "grid_account_id": "47490102387197219062",
              "grid_admin_base_url": "https://sggmi-dev.dev.ausngs.netapp.au/api/v3",
              "org_password": "netapp01",
              "org_username": "root",
              "s3_bucket_name": "mys3bucket"
            }
          }
        ]
      }
    ]
  }
}

API d’objets de travail et processus asynchrones

Certains appels API, en particulier ceux utilisés pour ajouter ou modifier des ressources, peuvent prendre plus de temps que d’autres appels. Le moteur de service NetApp traite ces demandes longues de manière asynchrone.

Après avoir effectué un appel API qui s’exécute de manière asynchrone, le code de réponse HTTP 202 indique que la demande a été validée et acceptée avec succès, mais pas encore terminée. La requête est traitée comme une tâche d’arrière-plan qui continue à s’exécuter après la réponse HTTP initiale au client. La réponse inclut l’objet de travail qui fixe la requête, y compris son identificateur unique.

Interrogation de l’objet de travail associé à une requête d’API

L’objet travail renvoyé dans la réponse HTTP contient plusieurs propriétés. Vous pouvez interroger la propriété d’état pour déterminer si la demande a bien été effectuée. Un objet de travail peut se trouver dans l’un des États suivants :

  • NORMALE

  • AVERTISSEMENT

  • PARTIEL_ÉCHECS

  • ERREUR

Il existe deux techniques que vous pouvez utiliser lors de l’interrogation d’un objet de travail pour détecter un état de terminal pour la tâche, succès ou échec :

  • Demande d’interrogation standard : l’état actuel du travail est renvoyé immédiatement.

  • Demande d’interrogation longue : lorsque l’état du travail passe à NORMAL, ERREUR ou PARTIEL_ÉCHECS.

Étapes d’une demande asynchrone

Vous pouvez utiliser la procédure de haut niveau suivante pour effectuer un appel d’API asynchrone :

  1. Lancez l’appel d’API asynchrone.

  2. Recevoir une réponse HTTP 202 indiquant que la demande a été acceptée avec succès.

  3. Extrayez l’identifiant de l’objet de travail du corps de réponse.

  4. Dans une boucle, attendez que l’objet de travail atteigne l’état de terminal NORMAL, ERREUR ou PARTIEL_ÉCHECS.

  5. Vérifiez l’état du terminal du travail et récupérez le résultat du travail.