Isilon: PowerShell gebruiken met Platform API - Objecten maken en RAN

摘要: In dit artikel wordt uitgelegd hoe u PowerShell gebruikt met de OneFS Platform API om objecten en RAN te maken.

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

症状

Niet vereist

原因

Niet vereist

解决方案

Inleiding tot JSON

De PAPI gebruikt JSON als indeling voor data-uitwisseling en het is van cruciaal belang om te begrijpen hoe deze kan worden gebruikt om PAPI te gebruiken om bronnen te maken, te wijzigen of te verwijderen. U kunt meer informatie over JSON vinden op www.json.org , maar het belangrijkste principe is dat het volledige onafhankelijke programmeertaal is en is gebouwd op twee structuren:
  • Een verzameling naam-/waardeparen
  • Een bestelde lijst met waarden

Voorbeeld van uitvoer van het ophalen van een systeemobject ziet er als dit uit:

{
"<object>": {
"<eigenschap>": <waarde>,
...
}

Om te weten welke JSON-tekst we nodig hebben om een object te maken, bekijkt u de PAPI-zelfdocumentatie door de volgende aanvraag te verzenden:
GET /platform/1/quota/quotas?describe

Hier is de relevante PowerShell-code: 

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

 

In het onderstaande voorbeeld wordt beschreven wat u moet POST om een nieuwe quota te maken. Let op de vereiste eigenschappen, omdat deze mogelijk niet dezelfde eigenschappen zijn die nodig zijn voor de bijbehorende isi-opdracht.

SLN319398_en_US__1i_isilon_1-powershell

Met behulp van de voorbeeldeigenschappen is het volgende een voorbeeld JSON-tekenreeks die kan worden gebruikt om een harde directoryquota te maken:

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

Nu de JSON-tekenreeks is voltooid, hoeft u alleen nog de Invoke-RestMethod-parameters te bouwen en te verzenden. In de onderstaande voorbeeldcode is de JSON-tekenreeks de body van de POST en dat het inhoudstype applicatie/json is:

$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 " Resulterend quotum-ID: " $ISIObject.id

Alles in elkaar zetten

Als u een voorbeeld gebruikt, gaan we ervan uit dat uw omgeving veel homedirectory's heeft voor gebruikers onder een enkele bovenliggende directory (bijvoorbeeld: /ifs/home) en u wilt directoryquota instellen voor elk van deze home-directory's. Gebruik de Isilon RESTful Access to the Namespace (RAN) API om de paden naar elke homedirectory van de gebruiker te verkrijgen. De volgende code krijgt de submappen van een opgegeven pad en stelt vervolgens een mapquotum in op elke subdirectory:
 

# Submappen ophalen van het opgegeven
pad$resource = '/namespace/' + $path
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
#Loop via elk directory en stel de quota
ForEach ($folder in $ISIObject.children) {

#Create quota
$resource ="/platform/1/quota/quota"
Write-Host "Setting a $quotasize byte quota on $quotapath"
$QuotaObject = @"
{"type":"directory","include_snapshots": false,"container": true, "path": "$quotapath", "afgedwongen": waar, "drempelwaarden": {"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 " Resulterend quotum-ID: " $ISIObject2.id
}

Hier is de uitvoer van het uitvoeren van het script dat aan dit bericht is gekoppeld:

SLN319398_en_US__2i_isilon_2-PowerShell
SLN319398_en_US__3i_isilon_3-powershell

受影响的产品

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