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

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

Acest articol se aplică pentru Acest articol nu se aplică pentru Acest articol nu este legat de un produs specific. Acest articol nu acoperă toate versiunile de produs existente.

Symptoms

Не требуется

Cause

Не требуется

Resolution

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

 

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

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

Produse afectate

Isilon, PowerScale OneFS, Isilon Platform API
Proprietăți articol
Article Number: 000132770
Article Type: Solution
Ultima modificare: 02 apr. 2026
Version:  7
Găsiți răspunsuri la întrebările dvs. de la alți utilizatori Dell
Servicii de asistență
Verificați dacă dispozitivul dvs. este acoperit de serviciile de asistență.