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

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

本文适用于 本文不适用于 本文并非针对某种特定的产品。 本文并非包含所有产品版本。

症状

Non richiesto

原因

Non richiesto

解决方案

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

受影响的产品

Isilon, PowerScale OneFS, Isilon Platform API
文章属性
文章编号: 000132770
文章类型: Solution
上次修改时间: 12 10月 2023
版本:  5
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。