Isilon: Använda Powershell med plattforms-API – skapa objekt och RAN

Résumé: I den här artikeln beskrivs hur du använder Powershell med OneFS Platform API för att skapa objekt och RAN.

Cet article concerne Cet article ne concerne pas Cet article n’est associé à aucun produit spécifique. Toutes les versions du produit ne sont pas identifiées dans cet article.

Symptômes

Krävs inte

Cause

Krävs inte

Résolution

Introduktion till JSON

PAPI använder JSON som format för datautbyte. Det är viktigt att förstå hur du använder den för att använda PAPI för att skapa, ändra eller ta bort resurser. Mer information om JSON finns på www.json.orgDen här hyperlänken tar dig till en webbplats utanför Dell Technologies. . Huvudprincipen är att det är ett helt oberoende programmeringsspråk och bygger på två strukturer:

  • En samling namn- och värdepar
  • En ordnad lista med värden

Exempel på utdata från att hämta ett API-objekt kan se ut så här:

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

 

För att veta vilka JSON-textutdata som är tillgängliga måste vi utfärda ett POST-kommando för att skapa ett objekt. titta på PAPI-självdokumentationen genom att skicka följande begäran:

GET /platform/1/quota/quotas?describe 

Här är relevant PowerShell-kod:

#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

 

Exempelutdata nedan beskriver vad du måste POSTA för att skapa en ny kvot. Var uppmärksam på de obligatoriska egenskaperna eftersom de kanske inte är samma egenskaper som krävs för motsvarande isi Kommandot.

Kommandoutdata  

Med hjälp av exempelegenskaperna är följande ett exempel på en JSON-sträng som kan användas för att skapa en hård katalogkvot:

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

 

När JSON-strängen är klar är allt som återstår att skapa Invoke-RestMethod parametrar och skicka. I exempelkoden nedan är JSON-strängen brödtexten i POST och att innehållstypen är 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
 

Att sätta ihop allt

Med hjälp av ett exempel antar vi att din miljö har många hemkataloger för användare under en enda överordnad katalog (exempel: /ifs/home) och du vill ange katalogkvoter för var och en av dessa hemkataloger. Använd Isilon RESTful Access to the namespace API (RAN) för att hämta sökvägarna till varje användares hemkatalog. Följande kod hämtar underkatalogerna för en angiven sökväg och anger sedan en katalogkvot för varje underkatalog:
 

# 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
}

 

Här är resultatet från att köra skriptet som bifogas det här inlägget:

Skriptutdata  
Skriptutdata  

Produits concernés

Isilon, PowerScale OneFS, Isilon Platform API
Propriétés de l’article
Numéro d’article: 000132770
Type d’article: Solution
Dernière modification: 02 avr. 2026
Version:  7
Trouvez des réponses à vos questions auprès d’autres utilisateurs Dell
Services de support
Vérifiez si votre appareil est couvert par les services de support.