Isilon: Používání Powershell s rozhraním API platformy – Vytváření objektů a RAN

Summary: Tento článek vysvětluje, jak používat PowerShell s rozhraním API platformy OneFS k vytváření objektů a sítí 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

Není vyžadováno

Cause

Není vyžadováno

Resolution

Úvod do JSON

PAPI používá JSON jako formát pro výměnu dat. Je důležité pochopit, jak jej využít k použití PAPI k vytváření, úpravě nebo odstraňování zdrojů. Další informace o JSON jsou k dispozici na adrese www.json.orgTento hypertextový odkaz vás zavede na webové stránky mimo společnost Dell Technologies. . Klíčovým principem je, že se jedná o zcela nezávislý programovací jazyk a je postaven na dvou strukturách:

  • Kolekce párů názvů a hodnot
  • Uspořádaný seznam hodnot

Příklad výstupu z získání objektu rozhraní API by mohl vypadat takto:

{
"<object>": {
     "<property>": <value>,
     ...
}

 

Abychom věděli, jaké textové výstupy JSON jsou k dispozici, musíme vydat příkaz POST k vytvoření objektu; nahlédněte do vlastní dokumentace PAPI zasláním následující žádosti:

GET /platform/1/quota/quotas?describe 

Tady je příslušný kód PowerShellu:

#Get PAPI self documentation for quotas
$resource = "/platform/1/quota/quotas?describe"
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
$ISIObject

 

Následující příklad výstupu popisuje, co je nutné provést testem POST, aby bylo možné vytvořit novou kvótu. Věnujte pozornost požadovaným vlastnostem, protože se nemusí jednat o stejné vlastnosti požadované pro odpovídající isi .

Výstup příkazu  

Následuje příklad řetězce JSON, který se dá použít k vytvoření pevné 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á jen sestavit Invoke-RestMethod parametry a odeslat. V následujícím ukázkovém kódu je řetězec JSON textem POST a že typ obsahu je application/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
 

Dát to všechno dohromady

Předpokládejme například, že vaše prostředí má mnoho domovských adresářů pro uživatele v jednom nadřazeném adresáři (příklad: /ifs/home) a pro každý z těchto domovských adresářů chcete nastavit kvóty adresářů. Pomocí rozhraní Isilon RESTful Access to the namespace API (RAN) získáte cesty k domovskému adresáři jednotlivých uživatelů. Následující kód získá podadresáře zadané cesty a pak pro každý podadresář nastaví kvótu adresáře:
 

# Get subdirectories of path specified
$resource = '/namespace/' + $path
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
#Loop through each directory and set the quota
ForEach($folder in $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
$ISIObject2 = Invoke-RestMethod -Uri $uri -Headers $headers -Body $QuotaObject -ContentType "application/json; charset=utf-8" -Method POST
Write-Host "   Resulting Quota ID: "  $ISIObject2.id
}

 

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

Výstup skriptu  
Výstup skriptu  

Affected Products

Isilon, PowerScale OneFS, Isilon Platform API
Article Properties
Article Number: 000132770
Article Type: Solution
Last Modified: 02 Apr 2026
Version:  7
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.