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

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

이 문서는 다음에 적용됩니다. 이 문서는 다음에 적용되지 않습니다. 이 문서는 특정 제품과 관련이 없습니다. 모든 제품 버전이 이 문서에 나와 있는 것은 아닙니다.

증상

Krävs inte

원인

Krävs inte

해결

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  

해당 제품

Isilon, PowerScale OneFS, Isilon Platform API
문서 속성
문서 번호: 000132770
문서 유형: Solution
마지막 수정 시간: 02 4월 2026
버전:  7
다른 Dell 사용자에게 질문에 대한 답변 찾기
지원 서비스
디바이스에 지원 서비스가 적용되는지 확인하십시오.