Ісілон: Використання Powershell з Platform API - Створення об'єктів і RAN

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

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

Не вимагається

Cause

Не вимагається

Resolution

Вступ до JSON

PAPI використовує JSON як формат обміну даними, і дуже важливо розуміти, як використовувати його для використання PAPI для створення, зміни або видалення ресурсів. Ви можете дізнатися більше про JSON на www.json.org але ключовий принцип полягає в тому, що це повністю незалежна мова програмування і побудована на двох структурах:
  • Набір пар ім'я/значення
  • Упорядкований список значень

Приклад виведення з отримання системного об'єкта виглядатиме так:

{
"object>"<:
{ "property>"<: <значення>,
...
}

Щоб дізнатися, який текст JSON нам потрібно ОПУБЛІКУВАТИ, щоб створити об'єкт, подивіться на документацію PAPI самостійно, надіславши такий запит:GET /platform/1/quota/quotas?describe

Ось відповідний код Powershell:
 

#Get Самостійна документація PAPI для квот
$resource = "/platform/1/quota/quotas?describe"
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMethod -uri $uri -headers $headers -method get
$ISIObject

 

У наведеному нижче прикладі описано, що вам потрібно POST, щоб створити нову квоту. Зверніть увагу на обов'язкові властивості, оскільки вони можуть відрізнятися від властивостей, необхідних для відповідної команди isi.

SLN319398_en_US__1i_isilon_1-powershell

Використовуючи властивості прикладу, нижче наведено приклад рядка JSON, який можна використовувати для створення жорсткої квоти каталогу:

$QuotaObject = @"
{"type":"directory","include_snapshots": false,"container": true, "path": /ifs/home/user1", "enforced": true, "пороги": {"hard":10000000},"thresholds_include_overhead": false}
" @ 

Коли рядок JSON завершено, все, що залишилося, це зібрати параметри Invoke-RestMethod і відправити. У наведеному нижче прикладі коду рядок JSON є тілом файлу POST, а тип вмісту — application/json:

$headers = @{"authorization"="Базовий $($EncodedPassword)"}
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMethod -uri $uri -headers $headers -body $QuotaObject -contentType "application/json; charset=utf-8" -метод POST
write-host " Ідентифікатор результуючої квоти: " ISIObject.id дол.

Збираємо все разом

На прикладі припустимо, що у вашому середовищі є багато домашніх каталогів для користувачів в одному батьківському каталозі (приклад: /ifs/home), і вам слід встановити квоти каталогів для кожного з цих домашніх каталогів. Використовуйте API Isilon RESTful Access to the Namespace (RAN), щоб отримати шляхи до кожного домашнього каталогу користувача. Наступний код отримає підкаталоги вказаного шляху, а потім встановить квоту каталогів для кожного підкаталогу:
 

# Отримати підкаталоги
вказаного шляху$resource = '/namespace/' + $path
$uri = $baseurl + $resource$ISIObject = Invoke-RestMethod -uri $uri -Headers $headers -Method Get
#Loop через кожен каталог і встановіть квоту
ForEach($folder in $ISIObject.children) {#Create quota$resource
="/platform/1/quota/quotas"Write-Host "Встановлення квоти $quotasize байтів на $quotapath"$QuotaObject = @"




{"type":"directory","include_snapshots": false,"container": true, "path": "$quotapath", "enforced": true, "пороги": {"hard":$quotasize},"thresholds_include_overhead": false}"@$headers = @
{"authorization"="Basic $($EncodedPassword)"}

$uri = $baseurl + $resource
$ISIObject 2 = Invoke-RestMethod -uri $uri -headers $headers -body $QuotaObject -contentType "application/json; charset=utf-8" -метод POST
write-host " Ідентифікатор результуючої квоти: " $ISIObject2.id
}

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

SLN319398_en_US__2i_isilon_2-силова оболонка
SLN319398_en_US__3i_isilon_3-powershell

Affected Products

Isilon, PowerScale OneFS, Isilon Platform API
Article Properties
Article Number: 000132770
Article Type: Solution
Last Modified: 12 Oct 2023
Version:  5
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.