Isilon: Brug af PowerShell med Platform API - Oprettelse af objekter og RAN

Summary: Denne artikel forklarer, hvordan du bruger PowerShell med OneFS Platform API til at oprette 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 påkrævet

Cause

Ikke påkrævet

Resolution

Introduktion til JSON

PAPI bruger JSON som dataoverførselsformat, og det er meget vigtigt at forstå, hvordan man anvender PAPI til at oprette, ændre eller slette ressourcer. Du kan få mere at vide om JSON på www.json.org , men det vigtigste udgangspunkt er, at det er et selvstændigt programmeringssprog, der bygger på to strukturer:
  • En samling navne-/værdipar
  • En bestilt liste over værdier

Eksempel på output fra hentning af et systemobjekt ser sådan ud:

{
"<objekt>": {
"<egenskab>": <værdi>,
...
}

For at vide, hvilken JSON-tekst vi har brug for til POST for at oprette et objekt, kan du se i PAPI-selvdokumentationen ved at sende følgende anmodning:
GET /platform/1/quota/quotas?beskriv

Her er den relevante PowerShell-kode: 

#Get PAPI-selvdokumentation for kvoter
$resource = "/platform/1/kvote/kvoter?beskriv"
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMeturi -Uri $uri -Headers $headers -Method Get
$ISIObject

 

Nedenstående eksempel på output beskriver, hvad du skal bruge til POST for at oprette en ny kvote. Vær opmærksom på de nødvendige egenskaber, da de muligvis ikke er de samme egenskaber, som er påkrævet for den tilsvarende isi-kommando.

SLN319398_en_US__1i_isilon_1 PowerShell

Med egenskaberne i eksemplet er følgende et eksempel på en JSON-streng, der kan bruges til at oprette en mappehardkvote:

$QuotaObject = @"
{"type":"directory","include_snapshots": falsk,"container": sand, "sti": /ifs/home/user1", "håndhæves": sand, "tærskler": {"hard": 10000000},"thresholds_include_overhead": false}
" @ 

Når JSON-strengen er fuldført, er alt, hvad der er tilbage, at bygge Invoke-RestMetometer-parametrene og indsende. I nedenstående eksempelkode er JSON-strengen indholdet i POST, og at indholdstypen er application/json:

$headers = @{"Authorization"="Basic $($EncodedPassword)"}
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMet byte -Uri $uri -Headers $headers -Body $QuotaObject -ContentType "application/json; charset=utf-8" -Metode POST
Write-Host " Resulterende kvote-id: " $ISIObject.id

Sætte det hele sammen

Lad os f.eks. antage, at dit miljø har mange hjemmebiblioteker for brugere under en enkelt overordnet mappe (f.eks.: /ifs/home), og du vil angive mappekvoter for hver af disse hjemmebiblioteker. Brug Isilon RESTful-adgang til navneområdets API (RAN) for at hente stierne til hver enkelt brugers hjemmemappe. Følgende kode henter undermapperne for en bestemt sti og indstiller derefter en mappekvote i hver undermappe:
 

# Hent undermapper for den angivne
sti$resource = "/namespace/" + $path
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMeturi -Uri $uri -Headers $headers -Method Get
#Loop through hver mappe og indstille kvoten
ForEach($folder i $ISIObject.children) {

#Create kvote
$resource ="/platform/1/kvote/kvoter"
Write-Host "Indstilling af en $quotasize bytekvote på $quotapath"
$QuotaObject = @"
{"type":"directory","include_snapshots": falsk,"container": sand, "sti": "$quotapath", "håndhæves": sand, "grænser": {"hard":$quotasize},"thresholds_include_overhead": false}
"@
$headers = @{"Authorization"="Basic $($EncodedPassword)"}
$uri = $baseurl + $resource
$ISIObject 2 = Invoke-RestMetometer -Uri $uri -Headers $headers -Body $QuotaObject -ContentType "application/json; charset=utf-8" -Metode POST
Write-Host " Resulterende kvote-id: "$ISIObject2.id
}

Her er outputtet fra at køre det script, der er vedhæftet til dette indlæg:

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.