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

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

Cet article concerne Cet article ne concerne pas Cet article n’est associé à aucun produit spécifique. Toutes les versions du produit ne sont pas identifiées dans cet article.

Symptômes

Non richiesto

Cause

Non richiesto

Résolution

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  

Produits concernés

Isilon, PowerScale OneFS, Isilon Platform API
Propriétés de l’article
Numéro d’article: 000132770
Type d’article: Solution
Dernière modification: 02 avr. 2026
Version:  7
Trouvez des réponses à vos questions auprès d’autres utilisateurs Dell
Services de support
Vérifiez si votre appareil est couvert par les services de support.