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, og det er viktig å forstå hvordan du kan bruke PAPI til å opprette, endre eller slette ressurser. Du kan lære mer om JSON på www.json.org , men hovedprinsippet er at det er fullstendig uavhengig programmeringsspråk og er bygget på to strukturer:
  • En samling navn/verdipar
  • En bestilt liste over verdier

Eksempel på utdata fra å hente et systemobjekt vil se slik ut:

{
"<objekt>": {
"<egenskap>": <verdi>,
...
}

Hvis du vil vite hvilken JSON-tekst vi trenger for å OPPRETTE et objekt, kan du se på PAPI-selvdokumentasjonen ved å sende følgende forespørsel:
GET /platform/1/quota/quotas?describe

Here is the relevant PowerShell code: 

#Get PAPI-selvdokumentasjon
for kvoter$resource = "/platform/1/quota/quotas?describe"
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
$ISIObject

 

Eksempelutdataene nedenfor skisserer hva du trenger for å POSTe for å opprette en ny kvote. Vær oppmerksom på de nødvendige egenskapene, siden de kanskje ikke er de samme egenskapene som kreves for den tilsvarende isi-kommandoen.

SLN319398_en_US__1i_isilon_1–PowerShell

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

$QuotaObject = @"
{"type":"directory","include_snapshots": false,"container": true, "path": /ifs/home/user1», "håndhevet": sant, "terskler": {"hard":10000000},"thresholds_include_overhead": false}
" @ 

Når JSON-strengen er fullført, er alt som er igjen å bygge invoke-RestMethod-parameterne og sende. I eksempelkoden nedenfor er JSON-strengen kroppen til POST, og at innholdstypen er applikasjon/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

Sette alt sammen

Med et eksempel kan vi anta at miljøet ditt har mange hjemmekataloger for brukere under én enkelt overordnet katalog (for eksempel: /ifs/home) og du ønsker å angi katalogkvoter for hver av disse hjemmekatalogene. Bruk Isilon RESTful-tilgangen til API-en namespace (RAN) for å få banene til hver brukers hjemmekatalog. Følgende kode vil hente underkatalogene for en angitt bane og deretter angi en katalogkvote på hver underkatalog:
 

# Hent
underkataloger for angitt bane$resource = "/namespace/" + $path
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
#Loop through each katalog og angi kvoten
ForEach ($folder i $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", "håndhevet": sant, "terskler": {"hard":$quotasize},"thresholds_include_overhead": false}
"@
$headers = @{"Authorization"="Basic $($EncodedPassword)"}
$uri = $baseurl + $resource
$ISIObject 2 = 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 utdataene fra å kjøre skriptet som er koblet til dette innlegget:

SLN319398_en_US__2i_isilon_2–PowerShell
SLN319398_en_US__3i_isilon_3–PowerShell

Affected Products

Isilon, PowerScale OneFS, Isilon Platform API
Article Properties
Article Number: 000132770
Article Type: Solution
Last Modified: 12 Oct 2023
Version:  5
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.