Isilon. Использование PowerShell с API платформы — создание объектов и RAN

Resumo: В этой статье объясняется, как использовать PowerShell с API платформы OneFS для создания объектов и 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

Не требуется

Causa

Не требуется

Resolução

Введение в JSON

PAPI использует JSON в качестве формата обмена данными. Очень важно понять, как использовать PAPI для создания, изменения или удаления ресурсов. Дополнительные сведения о JSON см. на странице www.json.orgЭта гиперссылка позволяет перейти на сайт за пределами Dell Technologies. . Ключевой принцип заключается в том, что он является полностью независимым языком программирования и построен на двух структурах:

  • Коллекция пар «имя-значение»
  • Упорядоченный список значений

Пример выходных данных получения объекта API может выглядеть следующим образом:

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

 

Чтобы узнать, какие текстовые выходные данные JSON доступны, мы должны выполнить команду POST для создания объекта; ознакомиться с самодокументацией PAPI, отправив следующий запрос:

GET /platform/1/quota/quotas?describe 

Вот соответствующий код PowerShell:

#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

 

В примере выходных данных ниже описывается, что необходимо выполнить POST для создания новой квоты. Обратите внимание на требуемые свойства, так как они могут не совпадать со свойствами, необходимыми для соответствующего isi .

выходные данные команды  

Ниже приведен пример строки JSON, которую можно использовать для создания жесткой квоты каталога:

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

 

Теперь, когда строка JSON завершена, все, что остается, это создать файл Invoke-RestMethod и отправить. В приведенном ниже примере кода строка JSON является телом POST, а тип контента — 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
 

Собираем все вместе

Предположим, что в вашей среде много домашних каталогов для пользователей в одном родительском каталоге (пример: /ifs/home) и вы хотите задать квоты каталогов для каждого из этих домашних каталогов. Используйте Isilon RESTful Access to the Namespace (RAN) API для получения путей к каждому исходному каталогу пользователя. Следующий код извлекает подкаталоги указанного пути, а затем задает квоту каталогов для каждого подкаталога:
 

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

 

Вот результат выполнения скрипта, прикрепленного к этому посту:

Выходные данные сценария  
Выходные данные сценария  

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.