Isilon: Uso de PowerShell con 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 y es fundamental comprender cómo aprovecharlo para usar PAPI a fin de crear, modificar o eliminar recursos. Puede obtener más información sobre JSON en www.json.org , pero el principio clave es que es un lenguaje de programación independiente completo y se basa en dos estructuras:
  • Una recopilación de pares de nombre/valor
  • Una lista ordenada de valores

El resultado de ejemplo de la obtención de un objeto del sistema se vería así:

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

Para saber qué texto JSON debemos publicar para crear un objeto, consulte la documentación automática de PAPI enviando la siguiente solicitud:
GET /platform/1/quota/quotas?describe

Este es el código de PowerShell pertinente: 

#Get documentación automática de PAPI para cuotas
$resource = "/platform/1/quota/quotas?describe"
$uri = $baseurl + $resource
$ISIObject = Invoke-Rest Ctrl -Uri $uri -Headers $headers -Method Get
$ISIObject

 

En la salida de ejemplo que aparece a continuación se describe lo que necesita para 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 comando isi correspondiente.

SLN319398_en_US__1i_isilon_1 powershell

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", "aplicado": true, "thresholds": {"hard":100000000},"thresholds_include_overhead": false}
" @ 

Una vez completada la cadena JSON, todo lo que queda es crear los parámetros Invoke-Rest Rack y enviar. En el siguiente código de ejemplo, la cadena JSON es el cuerpo de la POST y el tipo de contenido es application/json:

$headers = @{"Authorization"="Basic $($EncodedPassword)"}
$uri = $baseurl + $resource
$ISIObject = Invoke-Rest Pool -Uri $uri -Headers $headers -Body $QuotaObject -ContentType "application/json; charset=utf-8": Método POST
Write-Host " ID de cuota resultante: " $ISIObject.id

Juntando todo

Con un ejemplo, supongamos que su entorno tiene muchos directorios principales para los usuarios en un directorio principal único (por ejemplo: /ifs/home) y desea establecer cuotas de directorio para cada uno de estos directorios principales. Utilice isilon RESTful Access to the Namespace (RAN) API para obtener las rutas a cada directorio principal del usuario. El siguiente código obtendrá los subdirectorios de una ruta especificada y, a continuación, establecerá una cuota de directorio en cada subdirectorio:
 

# Obtener subdirectorios de la ruta especificada
$resource = '/namespace/' + $path
$uri = $baseurl + $resource
$ISIObject = Invoke-Rest Rack -Uri $uri -Headers $headers -Method Get
#Loop a través de cada directorio y configure la cuota
ForEach($folder en $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", "aplicado": verdadero, "umbrales": {"hard":$quotasize},"thresholds_include_overhead": false}
"@
$headers = @{"Authorization"="Basic $($EncodedPassword)"}
$uri = $baseurl + $resource
$ISIObject 2 = Invoke-Rest Action -Uri $uri -Headers $headers -Body $QuotaObject -ContentType "application/json; charset=utf-8": Método POST
Write-Host " ID de cuota resultante: " $ISIObject2.id
}

Esta es la salida de la ejecución del script adjunto a esta publicación:

SLN319398_en_US__2i_isilon_2 powershell
SLN319398_en_US__3i_isilon_3 powershell

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: 12 Oct 2023
Version:  5
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.