Isilon: Brug af Powershell med Platform API – oprettelse af objekter og RAN

요약: Denne artikel beskriver, hvordan du bruger Powershell med OneFS Platform API til at oprette objekter og RAN.

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

증상

Ikke påkrævet

원인

Ikke påkrævet

해결

Introduktion til JSON

PAPI bruger JSON som dataudvekslingsformat. Det er vigtigt at forstå, hvordan man udnytter det til at bruge PAPI til at oprette, ændre eller slette ressourcer. Yderligere oplysninger om JSON findes på www.json.orgDette hyperlink fører dig til et websted uden for Dell Technologies. . Hovedprincippet er, at det er et komplet uafhængigt programmeringssprog og er bygget på to strukturer:

  • En samling af navne- og værdipar
  • En ordnet liste over værdier

Eksempel på output fra hentning af et API-objekt kunne se sådan ud:

{
"<object>": {
     "<property>": <value>,
     ...
}

 

For at vide, hvilke JSON-tekstoutput der er tilgængelige, skal vi udstede en POST-kommando for at oprette et objekt; se på PAPI-selvdokumentationen ved at sende følgende anmodning:

GET /platform/1/quota/quotas?describe 

Her er den relevante PowerShell-kode:

#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

 

Eksempeloutputtet nedenfor beskriver, hvad du skal POST for at oprette en ny kvote. Vær opmærksom på de krævede egenskaber, da de muligvis ikke er de samme egenskaber, der kræves til de tilsvarende isi Kommando.

Kommandooutput  

Ved hjælp af eksempelegenskaberne er følgende et eksempel på en JSON-streng, der kan bruges til at oprette en hård kvote for mappen:

$QuotaObject = @"
{"type":"directory","include_snapshots": false,"container": true, "path": /ifs/home/user1", "enforced": true, "thresholds": {"hard":10000000},"thresholds_include_overhead": false}
"@

 

Når JSON-strengen er fuldført, er der kun tilbage at opbygge Invoke-RestMethod parametre og indsend. I eksempelkoden nedenfor er JSON-strengen brødteksten i POST, og at indholdstypen er 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
 

Sætter det hele sammen

Lad os som eksempel antage, at dit miljø har mange startmapper til brugere under en enkelt overordnet mappe (eksempel: /ifs/home), og du vil angive bibliotekskvoter for hver af disse hjemmemapper. Brug Isilon RESTful Access to the namespace (RAN) API til at hente stierne til hver brugers startmappe. Følgende kode henter undermapperne til en bestemt sti og angiver derefter en mappekvote for hver undermappe:
 

# 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
}

 

Her er outputtet fra at køre scriptet, der er knyttet til dette indlæg:

Scriptoutput  
Scriptoutput  

해당 제품

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