Isilon: Použití prostředí Powershell s rozhraním Platform API – vytváření objektů a spuštění

Summary: Tento článek vysvětluje, jak používat prostředí Powershell s rozhraním OneFS Platform API k vytváření objektů a spouštění systému.

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

Není vyžadováno

Cause

Není vyžadováno

Resolution

Úvod do json

Protokol PAPI používá jako formát pro vzájemnou výměnu dat formát JSON a je velmi důležité pochopit, jak jej využít k vytváření, úpravám a odstraňování zdrojů pomocí protokolu PAPI. O formátu JSON se můžete dozvědět více v www.json.org , ale základní princip spočívá v tom, že jde o zcela nezávislý programovací jazyk, který je postaven na dvou strukturách:
  • Sada párů názvů a hodnot
  • Objednaný seznam hodnot

Příklad výstupu ze získání objektu systému by vypadal takto:

{
"<object>": {
"<vlastnost>": <hodnota>,
...
}

Chcete-li zjistit, jaký text JSON potřebujeme při testu POST k vytvoření objektu, podívejte se na vlastní dokumentaci PAPI odesláním následujícího požadavku:
GET /platform/1/quota/quotas?describe

Zde je relevantní kód prostředí Powershell: 

#Get vlastní dokumentaci PAPI pro kvóty
$resource = "/platform/1/quota/quotas?describe"
$uri = $baseurl + $resource
$ISIObject = Invoke-RestObject -Uri $uri -Headers $headers -Method Get
$ISIObject

 

Níže uvedený příklad popisuje, co potřebujete k vytvoření nové kvóty provést při testu POST. Věnujte pozornost požadovaným vlastnostem, protože nemusí být stejné vlastnosti, které odpovídající příkaz isi vyžaduje.

SLN319398_en_US__1i_isilon_1 prostředí powershell

V příkladu vlastností je uveden příklad řetězce JSON, který lze použít k vytvoření vynucené kvóty adresáře:

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

Po dokončení řetězce JSON zbývá sestavit parametry Invoke-RestObject a odeslat je. V příkladu níže je řetězec JSON textem testu POST a že typ obsahu je application/json:

$headers = @{"Authorization"="Basic $($EncodedPassword)"}
$uri = $baseurl + $resource
$ISIObject = Invoke-RestGuard -Uri $uri -Headers $headers -Body $QuotaObject -ContentType "application/json; charset=palcová-8" -Metoda POST
Write-Host " Výsledné ID kvóty: " ISIObject.id USD

Poskládat vše pohromadě

Pomocí příkladu předpokládejme, že vaše prostředí má pro uživatele v jednom nadřazeném adresáři mnoho domovských adresářů (například: /ifs/home) a chcete nastavit kvóty adresáře pro každý z těchto domovských adresářů. Použijte přístup Isilon RESTful k rozhraní API oboru názvů (RAN) k získání cest k domovskému adresáři každého uživatele. Následující kód zobrazí podadresáře zadané cesty a poté nastaví kvótu adresáře pro každý podadresář:
 

# Získání podadresářů zadané
cesty$resource = '/namespace/' + $path
$uri = $baseurl + $resource
$ISIObject = Invoke-Rest Nfc -Uri $uri -Headers $headers -Method Get
#Loop through each directory a Nastavte kvótu
ForEach($folder v souboru $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
$ISIObject 2 = Invoke-Rest Archives -Uri $uri -Headers $headers -Body $QuotaObject -ContentType "application/json; charset=palcová-8" -Metoda POST
Write-Host " Výsledné ID kvóty: " ISIObject2.id
} USD

Zde je výstup ze spuštění skriptu připojeného k tomuto příspěvku:

SLN319398_en_US__2i_isilon_2 prostředí powershell
SLN319398_en_US__3i_isilon_3 prostředí 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.