Isilon: Bruke Powershell med plattform-API – opprette objekter og RAN

Summary: Denne artikkelen forklarer hvordan du bruker Powershell med OneFS Platform API til å opprette 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 nødvendig

Cause

Ikke nødvendig

Resolution

Introduksjon til JSON

PAPI bruker JSON som datautvekslingsformat. Det er viktig å forstå hvordan du kan utnytte det til å bruke PAPI til å opprette, endre eller slette ressurser. Ytterligere informasjon om JSON er tilgjengelig på www.json.orgDenne hyperkoblingen tar deg til et nettsted utenfor Dell Technologies. . Hovedprinsippet er at det er et komplett uavhengig programmeringsspråk og er bygget på to strukturer:

  • En samling av navn- og verdipar
  • En sortert liste med verdier

Eksempelutdata fra å hente et API-objekt kan se slik ut:

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

 

For å vite hvilke JSON-tekstutganger som er tilgjengelige, må vi utstede en POST-kommando for å lage et objekt; se på PAPI egendokumentasjon ved å sende følgende forespørsel:

GET /platform/1/quota/quotas?describe 

Her er den relevante Powershell-koden:

#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

 

Eksempelutdataene nedenfor viser hva du må postere for å opprette en ny kvote. Vær oppmerksom på de nødvendige egenskapene, siden de kanskje ikke er de samme egenskapene som kreves for tilsvarende isi Kommandoen.

Kommandoutgang  

Ved hjelp av eksempelegenskapene er følgende et eksempel på en JSON-streng som kan brukes til å opprette en kataloghard kvote:

$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 fullført, er alt som gjenstår å bygge Invoke-RestMethod parametere og sende inn. I eksempelkoden nedenfor er JSON-strengen brødteksten i POST, og at innholdstypen 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
 

Setter alt sammen

La oss ved hjelp av et eksempel anta at miljøet har mange hjemmeområder for brukere under én overordnet katalog (eksempel: /ifs/home) og du vil angi katalogkvoter for hver av disse hjemmeområdene. Bruk Isilon RESTful Access to the namespace (RAN) API for å hente banene til hver brukers hjemmekatalog. Følgende kode henter underkatalogene for en angitt bane og angir deretter en katalogkvote 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 resultatet fra å kjøre skriptet knyttet til dette innlegget:

Utdata for skript  
Utdata for skript  

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.