Isilon: Powershell gebruiken met platform-API - Objecten en RAN maken

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

Dieser Artikel gilt für Dieser Artikel gilt nicht für Dieser Artikel ist nicht an ein bestimmtes Produkt gebunden. In diesem Artikel werden nicht alle Produktversionen aufgeführt.

Symptome

Niet vereist

Ursache

Niet vereist

Lösung

Inleiding tot JSON

De PAPI gebruikt JSON als het formaat voor gegevensuitwisseling. Het is van cruciaal belang om te begrijpen hoe u het kunt gebruiken om PAPI te gebruiken om bronnen te maken, te wijzigen of te verwijderen. Aanvullende informatie over JSON is beschikbaar op www.json.orgDeze hyperlink leidt u naar een website buiten Dell Technologies. . Het belangrijkste principe is dat het een volledig onafhankelijke programmeertaal is en is gebouwd op twee structuren:

  • Een verzameling naam- en waardeparen
  • Een geordende lijst met waarden

Voorbeelduitvoer van het ophalen van een API-object zou er als volgt uit kunnen zien:

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

 

Om te weten welke JSON-tekstuitvoer beschikbaar is, moeten we een POST-opdracht geven om een object te maken; kijk naar de PAPI-zelfdocumentatie door het volgende verzoek te sturen:

GET /platform/1/quota/quotas?describe 

Hier is de relevante Powershell-code:

#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

 

In de onderstaande voorbeelduitvoer wordt uiteengezet wat u moet POSTEN om een nieuw quotum te maken. Besteed aandacht aan de vereiste eigenschappen, aangezien dit mogelijk niet dezelfde eigenschappen zijn die nodig zijn voor de overeenkomstige isi Opdracht.

Opdrachtuitvoer  

Met behulp van de voorbeeldeigenschappen is het volgende een voorbeeld van een JSON-tekenreeks die kan worden gebruikt om een hard quotum voor directory's te maken:

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

 

Als de JSON-string is voltooid, hoeft u alleen nog maar de Invoke-RestMethod parameters en indienen. In de onderstaande voorbeeldcode is de JSON-tekenreeks de hoofdtekst van de POST en is het inhoudstype 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
 

Alles op een rijtje

Laten we er aan de hand van een voorbeeld van uitgaan dat uw omgeving veel home directory's heeft voor gebruikers in één bovenliggende directory (bijvoorbeeld: /ifs/home) en u wilt mapquota instellen voor elk van deze home directory's. Gebruik de Isilon RESTful Access to the namespace (RAN) API om de paden naar de homedirectory van elke gebruiker op te halen. De volgende code haalt de submappen van een opgegeven pad op en stelt vervolgens een mapquota in op elke submap:
 

# 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
}

 

Hier is de uitvoer van het uitvoeren van het script dat bij dit bericht is gevoegd:

Script-uitvoer  
Script-uitvoer  

Betroffene Produkte

Isilon, PowerScale OneFS, Isilon Platform API
Artikeleigenschaften
Artikelnummer: 000132770
Artikeltyp: Solution
Zuletzt geändert: 02 Apr. 2026
Version:  7
Antworten auf Ihre Fragen erhalten Sie von anderen Dell NutzerInnen
Support Services
Prüfen Sie, ob Ihr Gerät durch Support Services abgedeckt ist.