Isilon : Utilisation de PowerShell avec l’API de plate-forme - Création d’objets et RAN

摘要: Cet article explique comment utiliser PowerShell avec l’API oneFS Platform pour créer des objets et ran.

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

症状

Non requise

原因

Non requise

解决方案

Présentation de JSON

Le PAPI utilise JSON comme format d’échange de données et il est essentiel de comprendre comment l’exploiter pour utiliser PAPI pour créer, modifier ou supprimer des ressources. Vous pouvez en savoir plus sur JSON au www.json.org , mais le principe principal est qu’il s’agit d’un langage de programmation indépendant complet et repose sur deux structures :
  • Ensemble de paires nom/valeur
  • Une liste ordonnée de valeurs

L’exemple de sortie de l’obtention d’un objet système ressemble à ce qui suit :

{
"<objet> » : {
« <propriété> » : <valeur>,
...
}

Pour savoir quel texte JSON nous devons publier pour créer un objet, consultez la documentation personnelle PAPI en envoyant la demande suivante :
GET /platform/1/quota/quotas ?describe

Voici le code PowerShell pertinent : 

#Get documentation personnelle PAPI pour les quotas
$resource = « /platform/1/quota/quotas ?describe"
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
$ISIObject

 

L’exemple de sortie ci-dessous décrit ce dont vous avez besoin pour effectuer l’autotest de démarrage (POST) pour créer un nouveau quota. Soyez attentif aux propriétés requises, car il se peut qu’elles ne soient pas les mêmes propriétés requises pour la commande isi correspondante.

SLN319398_en_US__1i_isilon_1-PowerShell

À l’aide des exemples de propriétés, voici un exemple de chaîne JSON qui peut être utilisé pour créer un quota strict de répertoire :

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

Une fois la chaîne JSON terminée, il ne reste plus qu’à créer les paramètres Invoke-RestMethod et à les soumettre. Dans l’exemple de code ci-dessous, la chaîne JSON est le corps du POST et le type de contenu est 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

Mise en place d’un ensemble

À l’aide d’un exemple, supposons que votre environnement dispose de nombreux répertoires de base pour les utilisateurs sous un répertoire parent unique (par exemple : /ifs/home) et vous souhaitez définir des quotas de répertoire pour chacun de ces répertoires de base. Utilisez l’API Isilon RESTful Access to the Namespace (RAN) pour obtenir les chemins d’accès à chaque répertoire de base utilisateur. Le code suivant obtient les sous-répertoires d’un chemin spécifié, puis définit un quota de répertoire sur chaque sous-répertoire :
 

# Obtenir les sous-répertoires du chemin spécifié
$resource = '/namespace/' + $path
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
#Loop via chaque répertoire et définissez le quota
ForEach ($folder dans $ISIObject.children) {

#Create quota
$resource ="/platform/1/quota/quotas"
Write-Host « Définition d’un quota d’octets $quotasize sur $quotapath"
$QuotaObject = @ »
{"type » :"directory »,"include_snapshots » : false,"container » : true, « path » : « $quotapath », « appliqué » : vrai, « seuils » : {"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 " Resulting Quota ID : « $ISIObject2.id
}

Voici la sortie de l’exécution du script joint à ce 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
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。