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

Resumo: En este artículo, se explica cómo usar PowerShell con la API de la plataforma OneFS para crear objetos y RAN.

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

No se requiere

Causa

No se requiere

Resolução

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  

Produtos afetados

Isilon, PowerScale OneFS, Isilon Platform API
Propriedades do artigo
Número do artigo: 000132770
Tipo de artigo: Solution
Último modificado: 02 abr. 2026
Versão:  7
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.