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

摘要: 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.

本文适用于 本文不适用于 本文并非针对某种特定的产品。 本文并非包含所有产品版本。

症状

Není vyžadováno

原因

Není vyžadováno

解决方案

Ú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

受影响的产品

Isilon, PowerScale OneFS, Isilon Platform API
文章属性
文章编号: 000132770
文章类型: Solution
上次修改时间: 12 10月 2023
版本:  5
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。