Isilon : Utilisation de PowerShell avec l’API de plate-forme : création d’objets et RAN

Summary: Cet article explique comment utiliser PowerShell avec l’API de plate-forme OneFS pour créer des objets et RAN.

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

Non requise

Cause

Non requise

Resolution

Présentation de JSON

Le PAPI utilise JSON comme format d’échange de données. Il est essentiel de comprendre comment en tirer parti pour utiliser PAPI afin de créer, modifier ou supprimer des ressources. Des informations supplémentaires sur JSON sont disponibles sur www.json.orgCe lien hypertexte renvoie à un site Web extérieur à Dell Technologies. . Le principe clé est qu’il s’agit d’un langage de programmation entièrement indépendant et qu’il repose sur deux structures :

  • Ensemble de paires nom-valeur
  • Liste ordonnée de valeurs

Voici un exemple de résultat résultant de l’obtention d’un objet API :

{
"<object>": {
     "<property>": <value>,
     ...
}

 

Pour savoir quelles sorties de texte JSON sont disponibles, nous devons émettre une commande POST pour créer un objet ; consultez l’auto-documentation PAPI en envoyant la demande suivante :

GET /platform/1/quota/quotas?describe 

Voici le code Powershell pertinent :

#Get PAPI self documentation for quotas
$resource = "/platform/1/quota/quotas?describe"
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
$ISIObject

 

L’exemple de sortie ci-dessous décrit ce que vous devez POST pour créer un nouveau quota. Faites attention aux propriétés requises, car il peut ne pas s’agir des mêmes propriétés requises pour les propriétés correspondantes. isi .

résultat de la commande  

À l’aide des exemples de propriétés, vous trouverez ci-dessous un exemple de chaîne JSON qui peut être utilisée pour créer un quota strict de répertoire :

$QuotaObject = @"
{"type":"directory","include_snapshots": false,"container": true, "path": /ifs/home/user1", "enforced": true, "thresholds": {"hard":10000000},"thresholds_include_overhead": false}
"@

 

Une fois la chaîne JSON terminée, il ne reste plus qu’à construire le fichier Invoke-RestMethod paramètres et soumettre. Dans l’exemple de code ci-dessous, la chaîne JSON est le corps du POST et que le type de contenu est application/json:

$headers = @{"Authorization"="Basic $($EncodedPassword)"}
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Body $QuotaObject -ContentType "application/json; charset=utf-8" -Method POST
Write-Host "   Resulting Quota ID: "  $ISIObject.id
 

Tout mettre ensemble

À l’aide d’un exemple, supposons que votre environnement dispose de nombreux répertoires personnels pour les utilisateurs sous un seul répertoire parent (exemple : /ifs/home) et vous souhaitez définir des quotas de répertoire pour chacun de ces répertoires de base. Utilisez l’API d’accès RESTful Isilon à l’espace de nommage (RAN) pour obtenir les chemins d’accès au répertoire de base de chaque utilisateur. Le code suivant obtient les sous-répertoires d’un chemin spécifié, puis définit un quota de répertoire sur chaque sous-répertoire :
 

# Get subdirectories of path specified
$resource = '/namespace/' + $path
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
#Loop through each directory and set the quota
ForEach($folder in $ISIObject.children) {
#Create quota
$resource ="/platform/1/quota/quotas"
Write-Host "Setting a $quotasize byte quota on $quotapath"
$QuotaObject = @"
{"type":"directory","include_snapshots": false,"container": true, "path": "$quotapath", "enforced": true, "thresholds": {"hard":$quotasize},"thresholds_include_overhead": false}
"@
$headers = @{"Authorization"="Basic $($EncodedPassword)"}
$uri = $baseurl + $resource
$ISIObject2 = Invoke-RestMethod -Uri $uri -Headers $headers -Body $QuotaObject -ContentType "application/json; charset=utf-8" -Method POST
Write-Host "   Resulting Quota ID: "  $ISIObject2.id
}

 

Voici le résultat de l’exécution du script joint à cet article :

Sortie de script  
Sortie de script  

Affected Products

Isilon, PowerScale OneFS, Isilon Platform API
Article Properties
Article Number: 000132770
Article Type: Solution
Last Modified: 02 Apr 2026
Version:  7
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.