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

Oversigt: У цій статті пояснюється, як використовувати Powershell з API платформи OneFS для створення об'єктів і RAN.

Denne artikel gælder for Denne artikel gælder ikke for Denne artikel er ikke knyttet til et bestemt produkt. Det er ikke alle produktversioner, der er identificeret i denne artikel.

Symptomer

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

Årsag

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

Løsning

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

 

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

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

Berørte produkter

Isilon, PowerScale OneFS, Isilon Platform API
Artikelegenskaber
Artikelnummer: 000132770
Artikeltype: Solution
Senest ændret: 02 apr. 2026
Version:  7
Find svar på dine spørgsmål fra andre Dell-brugere
Supportservices
Kontrollér, om din enhed er dækket af supportservices.