Isilon: Använda PowerShell med Platform API – Skapa objekt och RAN

Zusammenfassung: I den här artikeln beskrivs hur du använder PowerShell med OneFS-plattformens API för att skapa objekt och RAN.

Dieser Artikel gilt für Dieser Artikel gilt nicht für Dieser Artikel ist nicht an ein bestimmtes Produkt gebunden. In diesem Artikel werden nicht alle Produktversionen aufgeführt.

Symptome

Krävs inte

Ursache

Krävs inte

Lösung

Introduktion till JSON

PAPI använder JSON som datautbytesformat och det är viktigt att förstå hur du använder PAPI för att skapa, ändra eller ta bort resurser. Du kan lära dig mer om JSON på www.json.org men den viktigaste principen är att det är fullständigt oberoende programmeringsspråk och bygger på två strukturer:
  • En samling namn-/värdepar
  • En beställd värdelista

Exempel på utdata om att få ett systemobjekt att se ut så här:

{
"<object>": {
"<property>": <värde>,
...
}

Om du vill veta vilken JSON-text som krävs för att posta för att skapa ett objekt kan du titta på PAPI-självdokumentationen genom att skicka följande förfrågan:
GET /platform/1/quota/quotas?describe

Här är relevant PowerShell-kod: 

#Get PAPI-självdokumentation för kvoter
$resource = "/platform/1/quota/quotas?describe"
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
$ISIObject

 

I exemplet nedan beskrivs vad du behöver göra vid självtest för att skapa en ny kvot. Var uppmärksam på de egenskaper som krävs eftersom de kanske inte är samma egenskaper som krävs för motsvarande isi-kommando.

SLN319398_en_US__1i_isilon_1 PowerShell

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 kvot för katalogen:

$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 parametrarna Invoke-RestMethod 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 USD

Sätta ihop allt

Anta 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-åtkomst till namnrymds-API:t (RAN) för att hämta sökvägarna till varje användares hemkatalog. Följande kod hämtar underkataloger för en angiven sökväg och ställer sedan in en katalogkvot på varje underkatalog:
 

# Hämta underkataloger för den angivna
sökvägen$resource = '/namespace/' + $path
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
#Loop via varje katalog och ställ in kvoten
ForEach ($folder i $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
$ISIObject 2 = 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 utdata från körning av skriptet som är kopplat till det här självtestet:

SLN319398_en_US__2i_isilon_2 PowerShell
SLN319398_en_US__3i_isilon_3 PowerShell

Betroffene Produkte

Isilon, PowerScale OneFS, Isilon Platform API
Artikeleigenschaften
Artikelnummer: 000132770
Artikeltyp: Solution
Zuletzt geändert: 30 Jän. 2026
Version:  6
Antworten auf Ihre Fragen erhalten Sie von anderen Dell NutzerInnen
Support Services
Prüfen Sie, ob Ihr Gerät durch Support Services abgedeckt ist.