Isilon. Использование Powershell с платформенный API- создание объектов и RAN

요약: В этой статье объясняется, как использовать Powershell с API-интерфейсом платформы OneFS для создания объектов и RAN.

이 문서는 다음에 적용됩니다. 이 문서는 다음에 적용되지 않습니다. 이 문서는 특정 제품과 관련이 없습니다. 모든 제품 버전이 이 문서에 나와 있는 것은 아닙니다.

증상

Не требуется

원인

Не требуется

해결

Основные сведения о 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

해당 제품

Isilon, PowerScale OneFS, Isilon Platform API
문서 속성
문서 번호: 000132770
문서 유형: Solution
마지막 수정 시간: 30 1월 2026
버전:  6
다른 Dell 사용자에게 질문에 대한 답변 찾기
지원 서비스
디바이스에 지원 서비스가 적용되는지 확인하십시오.