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.

Acest articol se aplică pentru Acest articol nu se aplică pentru Acest articol nu este legat de un produs specific. Acest articol nu acoperă toate versiunile de produs existente.

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  

Produse afectate

Isilon, PowerScale OneFS, Isilon Platform API
Proprietăți articol
Article Number: 000132770
Article Type: Solution
Ultima modificare: 02 apr. 2026
Version:  7
Găsiți răspunsuri la întrebările dvs. de la alți utilizatori Dell
Servicii de asistență
Verificați dacă dispozitivul dvs. este acoperit de serviciile de asistență.