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.

Bu makale şunlar için geçerlidir: Bu makale şunlar için geçerli değildir: Bu makale, belirli bir ürüne bağlı değildir. Bu makalede tüm ürün sürümleri tanımlanmamıştır.

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

Etkilenen Ürünler

Isilon, PowerScale OneFS, Isilon Platform API
Makale Özellikleri
Article Number: 000132770
Article Type: Solution
Son Değiştirme: 12 Eki 2023
Version:  5
Sorularınıza diğer Dell kullanıcılarından yanıtlar bulun
Destek Hizmetleri
Aygıtınızın Destek Hizmetleri kapsamında olup olmadığını kontrol edin.