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

Summary: Denne artikel beskriver, hvordan du bruger Powershell med OneFS Platform API til at oprette objekter og 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

Ikke påkrævet

Cause

Ikke påkrævet

Resolution

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  

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.