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.

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

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ță.