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

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

Este artigo aplica-se a Este artigo não se aplica a Este artigo não está vinculado a nenhum produto específico. Nem todas as versões do produto estão identificadas neste artigo.

Sintomas

Nicht erforderlich

Causa

Nicht erforderlich

Resolução

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

Produtos afetados

Isilon, PowerScale OneFS, Isilon Platform API
Propriedades do artigo
Número do artigo: 000132770
Tipo de artigo: Solution
Último modificado: 12 out. 2023
Versão:  5
Encontre as respostas de outros usuários da Dell para suas perguntas.
Serviços de suporte
Verifique se o dispositivo está coberto pelos serviços de suporte.