Isilon: Uso di PowerShell con l'API Platform - Creazione di oggetti e RAN

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

Acest articol se aplică pentru Acest articol nu se aplică pentru Acest articol nu este legat de un produs specific. Acest articol nu acoperă toate versiunile de produs existente.

Symptoms

Non richiesto

Cause

Non richiesto

Resolution

Introduzione a JSON

Il PAPI utilizza JSON come formato di interscambio dati. È fondamentale capire come sfruttarlo per utilizzare PAPI per creare, modificare o eliminare risorse. Ulteriori informazioni su JSON sono disponibili all'indirizzo www.json.orgQuesto link ipertestuale indirizza a un sito web esterno a Dell Technologies. . Il principio chiave è che si tratta di un linguaggio di programmazione completo e indipendente ed è costruito su due strutture:

  • Una raccolta di coppie nome e valore
  • Un elenco ordinato di valori

L'output di esempio per ottenere un oggetto API potrebbe essere simile al seguente:

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

 

Per sapere quali output di testo JSON sono disponibili, è necessario eseguire un comando POST per creare un oggetto; consultare l'autodocumentazione PAPI inviando la seguente richiesta:

GET /platform/1/quota/quotas?describe 

Di seguito è riportato il codice PowerShell pertinente:

#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

 

L'output di esempio riportato di seguito descrive gli elementi di POST necessari per creare una nuova quota. Prestare attenzione alle proprietà richieste poiché potrebbero non essere le stesse proprietà richieste per il corrispondente isi .

: output del comando  

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, non resta che creare il file Invoke-RestMethod parametri e inviare. 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; charset=utf-8" -Method POST
Write-Host "   Resulting Quota ID: "  $ISIObject.id
 

Mettere tutto insieme

Usando un esempio, supponiamo che l'ambiente disponga di molte home directory per gli utenti in un'unica directory padre (esempio: /ifs/home) e si desidera impostare le quote di directory per ciascuna di queste directory principali. Utilizzare Isilon RESTful Access to the namespace (RAN) API per ottenere i percorsi della home directory di ciascun utente. Il codice seguente ottiene le sottodirectory di un percorso specificato e quindi imposta una quota di directory in ogni sottodirectory:
 

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

 

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

Output dello script  
Output dello script  

Produse afectate

Isilon, PowerScale OneFS, Isilon Platform API
Proprietăți articol
Article Number: 000132770
Article Type: Solution
Ultima modificare: 02 apr. 2026
Version:  7
Găsiți răspunsuri la întrebările dvs. de la alți utilizatori Dell
Servicii de asistență
Verificați dacă dispozitivul dvs. este acoperit de serviciile de asistență.