Ісілон: Використання Powershell з Platform 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 але ключовий принцип полягає в тому, що це повністю незалежна мова програмування і побудована на двох структурах:
  • Набір пар ім'я/значення
  • Упорядкований список значень

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

{
"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

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: 12 Oct 2023
Version:  5
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.