Isilon. Использование Powershell с платформенный 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 но ключевой принцип заключается в том, что он является полностью независимым языком программирования и построен на двух структурах:
  • Набор пар «имя/значение»
  • Упорядоченный список значений

Пример вывода при просмотре системного объекта будет выглядеть следующим образом:

{
"<объект>": {
"<свойство>": <значение>,
...
}

Чтобы узнать, какой текст JSON необходимо выполнить POST для создания объекта, просмотрите самостоятельная документация PAPI, отправив следующий запрос:
GET /platform/1/quota/quotas?describe 

Здесь приведен соответствующий код Powershell:

#Get с самостоятельной документацией ПО PAPI
для квот$resource = "/platform/1/quota/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, «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" - Метод POST
Write-Host " Итоговая идентификатор квоты: « $ISIObject.id

Объединение всех компонентов

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

# Получите подкаталоги пути
$resource = «/namespace/» + $path
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
#Loop through каждый
каталог и задайте квоту ForEach ($folder в $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», «принудительно»: 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 PowerShell
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.