Isilon: Використання Powershell з API платформи — створення об'єктів і RAN

Résumé: У цій статті пояснюється, як використовувати Powershell з API платформи OneFS для створення об'єктів і 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

Не обов'язково

Cause

Не обов'язково

Résolution

Вступ до 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
}

 

Ось результат запуску скрипту, доданого до цього допису:

Вихід скрипту  
Вихід скрипту  

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: 02 avr. 2026
Version:  7
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.