Isilon: Uso de PowerShell con la API de plataforma: creación de objetos y RAN

Résumé: En este artículo, se explica cómo usar PowerShell con la API de la plataforma OneFS para crear objetos y 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

No se requiere

Cause

No se requiere

Résolution

Introducción a JSON

PAPI utiliza JSON como formato de intercambio de datos. Es fundamental comprender cómo aprovecharlo para usar PAPI para crear, modificar o eliminar recursos. Hay información adicional sobre JSON disponible en www.json.orgEste hipervínculo lo redirige a un sitio web fuera de Dell Technologies. . El principio clave es que es un lenguaje de programación completamente independiente y se basa en dos estructuras:

  • Una colección de pares de nombre y valor
  • Una lista ordenada de valores

Un ejemplo de resultado de la obtención de un objeto de API podría verse así:

{
"<object>": {
     "<property>": <value>,
     ...
}

 

Para saber qué salidas de texto JSON están disponibles, debemos emitir un comando POST para crear un objeto; ver la autodocumentación PAPI enviando la siguiente solicitud:

GET /platform/1/quota/quotas?describe 

Este es el código de 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

 

En el resultado de ejemplo que aparece a continuación, se describe lo que debe POST para crear una nueva cuota. Preste atención a las propiedades requeridas, ya que es posible que no sean las mismas propiedades requeridas para el isi comando.

Salida del comando  

Con las propiedades de ejemplo, la siguiente es una cadena JSON de ejemplo que se puede usar para crear una cuota máxima de directorio:

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

 

Con la cadena JSON completada, todo lo que queda es compilar el Invoke-RestMethod parámetros y envíelos. En el código de ejemplo siguiente, la cadena JSON es el cuerpo del POST y el tipo de contenido es 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
 

Poner todo junto

Con un ejemplo, supongamos que su entorno tiene muchos directorios principales para los usuarios en un solo directorio principal (por ejemplo: /ifs/home) y desea establecer cuotas de directorio para cada uno de estos directorios principales. Utilice la API de acceso RESTful de Isilon al espacio de nombres (RAN) para obtener las rutas al directorio principal de cada usuario. El siguiente código obtiene los subdirectorios de una ruta especificada y, a continuación, establece una cuota de directorio en cada subdirectorio:
 

# 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
}

 

Aquí está el resultado de ejecutar el script adjunto a esta publicación:

Salida de script  
Salida de 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.