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

 

Приклад результату нижче описує, що потрібно ОПУБЛІКУВАТИ, щоб створити нову квоту. Звертайте увагу на необхідні властивості, оскільки вони можуть відрізнятися від відповідних властивостей 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) і ви хочете встановити квоти каталогів для кожного з цих домашніх каталогів. Використовуйте API Isilon RESTful Access to the namespace (RAN), щоб отримати шляхи до кожної домашньої папки користувача. Наступний код отримує підкаталоги заданого шляху і встановлює квоту каталогу для кожного підкаталогу:
 

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