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

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

Bu makale şunlar için geçerlidir: Bu makale şunlar için geçerli değildir: Bu makale, belirli bir ürüne bağlı değildir. Bu makalede tüm ürün sürümleri tanımlanmamıştır.

Symptoms

Niet vereist

Cause

Niet vereist

Resolution

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

Etkilenen Ürünler

Isilon, PowerScale OneFS, Isilon Platform API
Makale Özellikleri
Article Number: 000132770
Article Type: Solution
Son Değiştirme: 12 Eki 2023
Version:  5
Sorularınıza diğer Dell kullanıcılarından yanıtlar bulun
Destek Hizmetleri
Aygıtınızın Destek Hizmetleri kapsamında olup olmadığını kontrol edin.