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

Zusammenfassung: В этой статье объясняется, как использовать PowerShell с API платформы OneFS для создания объектов и RAN.

Dieser Artikel gilt für Dieser Artikel gilt nicht für Dieser Artikel ist nicht an ein bestimmtes Produkt gebunden. In diesem Artikel werden nicht alle Produktversionen aufgeführt.

Symptome

Не требуется

Ursache

Не требуется

Lösung

Введение в 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
}

 

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

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

Betroffene Produkte

Isilon, PowerScale OneFS, Isilon Platform API
Artikeleigenschaften
Artikelnummer: 000132770
Artikeltyp: Solution
Zuletzt geändert: 02 Apr. 2026
Version:  7
Antworten auf Ihre Fragen erhalten Sie von anderen Dell NutzerInnen
Support Services
Prüfen Sie, ob Ihr Gerät durch Support Services abgedeckt ist.