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

 

Приклад результату нижче описує, що потрібно ОПУБЛІКУВАТИ, щоб створити нову квоту. Звертайте увагу на необхідні властивості, оскільки вони можуть відрізнятися від відповідних властивостей 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
}

 

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

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

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ță.