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

Summary: I den här artikeln beskrivs hur du använder Powershell med OneFS Platform API för att skapa objekt och 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

Krävs inte

Cause

Krävs inte

Resolution

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  

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ță.