Isilon: PowerShellin käyttäminen ympäristön ohjelmointirajapinnassa - kohteiden ja RAN-kohteiden luominen

Summary: Tässä artikkelissa selitetään, miten voit luoda objekteja ja RAN-liittymää PowerShellin ja OneFS-ympäristön ohjelmointirajapinnan kanssa.

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

Ei tarvita

Cause

Ei tarvita

Resolution

JSON-esittely

OPIS käyttää JSON:ia tiedonsiirtomuotona, ja on tärkeää ymmärtää, miten sitä voidaan hyödyntää resurssien luonti-, muokkaus- ja poistoresurssien luonti-, muokkaus- ja poistotoiminnoissa. Voit tutustua JSON:iin www.json.org , mutta keskeistä on, että se on täysin itsenäinen ohjelmointikieli ja perustuu kahteen rakenteeseen:
  • Kokoelma nimi-/arvopareja
  • Tilattu arvoluettelo

Esimerkki tuloksesta järjestelmäobjektin hankkimisesta näyttää tältä:

{
"<kohde>": {
"<ominaisuus>": <arvo>,
...
}

Jos haluat tietää, mitä JSON-tekstiä tarvitaan POST-testiin objektin luontia varten, tutustu KOOSTin omatoimiseen dokumentaatioon lähettämällä seuraava pyyntö:
GET /platform/1/quota/quotas?describe

Seuraava on asiaankuuluva PowerShell-koodi: 

#Get QUOTA-oppaat kiintiöille
$resource = "/platform/1/quota/quotas?describe"
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
$ISIObject

 

Seuraavassa esimerkissä kerrotaan, mitä post-testiä tarvitaan uuden kiintiön luomista varten. Kiinnitä huomiota tarvittaviin ominaisuuksiin, koska ne eivät välttämättä ole samoja ominaisuuksia kuin vastaava isi-komento edellyttää.

SLN319398_en_US__1i_isilon_1 PowerShell

Esimerkkiominaisuuksista seuraava on JSON-esimerkkimerkkijono, jonka avulla voidaan luoda hakemiston kiinteä kiintiö:

$QuotaObject = @"
{"type":"directory","include_snapshots": false,"container": true, "path": /ifs/home/user1", "enforced": tosi, "thresholds": {"hard":10000000},"thresholds_include_overhead": false}
" @ 

Kun JSON-merkkijono on valmis, jäljellä on vain Invoke-RestMethod-parametrien kokoaminen ja lähettäminen. Seuraavassa esimerkkikoodissa JSON-merkkijono on POST-testin runko ja sisältötyyppi on sovellus/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 $

Kaiken yhdistäminen

Oletetaan esimerkissä, että ympäristössä on useita kotihakemistoja käyttäjille yhden päähakemiston alla (esimerkiksi: /ifs/home) ja haluat määrittää hakemistokiintiöt kullekin kotihakemistolle. Käytä Isilon RESTful Access to the Namespace (RAN) API -ohjelmointirajapintaa, jotta saat polut kunkin käyttäjän kotihakemistoon. Seuraava koodi hae määritetyn polun alihakemistot ja määrittää hakemistokiintiön jokaisessa alihakemistossa:
 

# Get subdirectories of path specified
$resource = '/namespace/' + $path
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
#Loop kunkin hakemiston kautta ja määritä Kiintiö
ForEach ($folder in $ISIObject.children) {

#Create quota
$resource ="/platform/1/quota/quotas"
Write-Host "Setting a $quotasize tavukiintiö 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
$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
} $

Tässä on tähän julkaisuun liitetyn komentosarjan suorittamisen tulokset:

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.