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

Résumé: I den här artikeln beskrivs hur du använder PowerShell med OneFS-plattformens 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 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

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: 12 Oct 2023
Version:  5
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.