Isilon: Utilizzo di PowerShell con l'API della piattaforma - Creazione di object e RAN

Zusammenfassung: Questo articolo spiega come utilizzare PowerShell con l'API della piattaforma OneFS per creare object e RAN.

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

Non richiesto

Ursache

Non richiesto

Lösung

Introduzione a JSON

PAPI utilizza JSON come formato di scambio dei dati ed è fondamentale capire come utilizzarlo per utilizzare PAPI per creare, modificare o eliminare risorse. È possibile ottenere ulteriori informazioni su JSON in www.json.org , ma il principio chiave è che si tratta di un linguaggio di programmazione indipendente completo ed è costruito su due strutture:
  • Una raccolta di coppie nome/valore
  • Elenco ordinato di valori

L'output di esempio derivante dall'ottenimento di un oggetto di sistema sarà simile al seguente:

{
"<object>": {
"<proprietà>": <valore>,
...
}

Per sapere quale testo JSON è necessario eseguire il POST per creare un oggetto, esaminare la documentazione self-service PAPI inviando la seguente richiesta:
GET /platform/1/quota/quotas?describe 

Di seguito è riportato il codice PowerShell pertinente:

#Get documentazione self-service PAPI per le quote
$resource = "/platform/1/quota/quotas?describe"
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
$ISIObject

 

L'output di esempio riportato di seguito descrive ciò che è necessario eseguire il POST per creare una nuova quota. Prestare attenzione alle proprietà richieste poiché potrebbero non essere le stesse proprietà richieste per il comando isi corrispondente.

SLN319398_en_US__1i_isilon_1 PowerShell

Utilizzando le proprietà di esempio, di seguito è riportata una stringa JSON di esempio che può essere utilizzata per creare una quota rigida della directory:

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

Una volta completata la stringa JSON, resta solo la creazione dei parametri Invoke-RestMethod e l'invio. Nel codice di esempio riportato di seguito, la stringa JSON è il corpo del POST e il tipo di contenuto è application/json:

$headers = @{"Authorization"="Basic $($EncodedPassword)"}
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Body $QuotaObject -ContentType "application/json; carset=utf-8" -Method POST
Write-Host " RESULTING Quota ID: " $ ISIObject.id

Mettere insieme tutto

Utilizzando un esempio, supponiamo che l'ambiente disponga di molte home directory per gli utenti in una singola directory padre (ad esempio: /ifs/home) e si desidera impostare quote di directory per ciascuna di queste home directory. Utilizzare l'API RESTful Isilon RESTful all'API namespace (RAN) per ottenere i percorsi per ogni directory home dell'utente. Il codice seguente otterrà le sottodirectory di un percorso specificato e quindi imposterà una quota di directory su ciascuna sottodirectory:
 

# Ottieni sottodirectory del percorso specificato
$resource = '/namespace/' + $path
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
#Loop tramite ogni directory e impostare la 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
$ISIObject 2 = Invoke-RestMethod -Uri $uri -Headers $headers -Body $QuotaObject -ContentType "application/json; carset=utf-8" -Method POST
Write-Host " RESULTING Quota ID: " $ ISIObject2.id
}

Ecco l'output dell'esecuzione dello script collegato a questo post:

SLN319398_en_US__2i_isilon_2 PowerShell
SLN319398_en_US__3i_isilon_3 PowerShell

Betroffene Produkte

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