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.

Acest articol se aplică pentru Acest articol nu se aplică pentru Acest articol nu este legat de un produs specific. Acest articol nu acoperă toate versiunile de produs existente.

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  

Produse afectate

Isilon, PowerScale OneFS, Isilon Platform API
Proprietăți articol
Article Number: 000132770
Article Type: Solution
Ultima modificare: 02 apr. 2026
Version:  7
Găsiți răspunsuri la întrebările dvs. de la alți utilizatori Dell
Servicii de asistență
Verificați dacă dispozitivul dvs. este acoperit de serviciile de asistență.