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

Résumé: Denne artikkelen forklarer hvordan du bruker Powershell med OneFS Platform API til å opprette objekter og RAN.

Cet article concerne Cet article ne concerne pas Cet article n’est associé à aucun produit spécifique. Toutes les versions du produit ne sont pas identifiées dans cet article.

Symptômes

Ikke nødvendig

Cause

Ikke nødvendig

Résolution

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  

Produits concernés

Isilon, PowerScale OneFS, Isilon Platform API
Propriétés de l’article
Numéro d’article: 000132770
Type d’article: Solution
Dernière modification: 02 avr. 2026
Version:  7
Trouvez des réponses à vos questions auprès d’autres utilisateurs Dell
Services de support
Vérifiez si votre appareil est couvert par les services de support.