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.

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

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  

Affected Products

Isilon, PowerScale OneFS, Isilon Platform API
Article Properties
Article Number: 000132770
Article Type: Solution
Last Modified: 02 Apr 2026
Version:  7
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.