Isilon: Verwenden von PowerShell mit Plattform-API – Erstellen von Objekten und RAN

摘要: In diesem Artikel wird erläutert, wie Sie PowerShell mit der OneFS-Plattform-API verwenden, um Objekte und RAN zu erstellen.

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

症状

Nicht erforderlich

原因

Nicht erforderlich

解决方案

Einführung in JSON

Papi verwendet JSON als Datenaustauschformat und es ist wichtig zu verstehen, wie man es nutzt, um PAPI zum Erstellen, Ändern oder Löschen von Ressourcen zu verwenden. Sie können mehr über JSON bei www.json.org erfahren, aber das Wichtigste ist, dass es sich um eine vollständige unabhängige Programmiersprache handelt, die auf zwei Strukturen aufbaut:
  • Eine Sammlung von Namens-/Wertpaaren
  • Eine sortierte Liste von Werten

Beispielausgabe vom Abrufen eines Systemobjekts würde wie folgt aussehen:

{
"<Objekt>": {
"<Eigenschaft>": <Wert>,
...
}

Um zu erfahren, welchen JSON-Text wir für den POST benötigen, um ein Objekt zu erstellen, sehen Sie sich die PAPI-Selbstdokumentation an, indem Sie die folgende Anforderung senden:
GET /platform/1/quota/quotas?describe

Hier ist der relevante PowerShell-Code: 

#Get PAPI-Selbstdokumentation für Quotas
$resource = "/platform/1/quota/quotas?describe"
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
$ISIObject

 

In der folgenden Beispielausgabe wird beschrieben, was Sie für den POST benötigen, um eine neue Quota zu erstellen. Achten Sie auf die erforderlichen Eigenschaften, da sie möglicherweise nicht dieselben Eigenschaften sind, die für den entsprechenden isi-Befehl erforderlich sind.

SLN319398_en_US__1i_isilon_1-PowerShell

Mithilfe der Beispieleigenschaften ist die folgende Beispiel-JSON-Zeichenfolge, die verwendet werden kann, um eine Verzeichnis-Hard-Quota zu erstellen:

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

Wenn die JSON-Zeichenfolge abgeschlossen ist, bleibt nur noch das Erstellen der Invoke-RestMethod-Parameter und das Senden. Im folgenden Beispielcode ist die JSON-Zeichenfolge der Text des POST und der Inhaltstyp 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 " Resultierende Quota-ID: " ISIObject.id USD

Alles zusammensetzen

Angenommen, Ihre Umgebung verfügt über viele Stammverzeichnisse für Benutzer in einem einzigen übergeordneten Verzeichnis (Beispiel: /ifs/home) und Sie möchten Verzeichnis-Quotas für jedes dieser Stammverzeichnisse festlegen. Verwenden Sie die ISILON RESTful Access to the Namespace (RAN)-API, um die Pfade zu jedem Benutzerstammverzeichnis abzurufen. Der folgende Code ruft die Unterverzeichnisse eines angegebenen Pfads ab und legt dann eine Verzeichnis-Quota für jedes Unterverzeichnis fest:
 

# Get subdirectories of path specified
$resource = '/namespace/' + $path
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
#Loop über jedes Verzeichnis und legen Sie die Quota
ForEach($folder in $ISIObject.children) {

#Create quota
$resource ="/platform/1/quota/quotas"
Write-Host "Setting a $quotasize byte quota on $quotapath"
$QuotaObject = @"
fest.{"type":"directory","include_snapshots": false,"container": true, "path": "$quotapath", "erzwungen": 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; charset=utf-8" -Method POST
Write-Host " Resultierende Quota-ID: " $ ISIObject2.id
}

Hier ist die Ausgabe der Ausführung des an diesen Beitrag angehängten Skripts:

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
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。