Isilon: Korzystanie z programu PowerShell z interfejsem API platformy — tworzenie obiektów i uruchamianie

Resumo: W tym artykule wyjaśniono, jak używać programu PowerShell z interfejsem API platformy OneFS do tworzenia obiektów i ran.

Este artigo aplica-se a Este artigo não se aplica a Este artigo não está vinculado a nenhum produto específico. Nem todas as versões do produto estão identificadas neste artigo.

Sintomas

Niewymagany

Causa

Niewymagany

Resolução

Wprowadzenie do JSON

Papi używa JSON jako formatu wymiany danych i ważne jest, aby zrozumieć, jak wykorzystać go do tworzenia, modyfikowania lub usuwania zasobów za pomocą PAPI. Więcej informacji na temat oprogramowania JSON można znaleźć w witrynie www.json.org , ale kluczową zasadą jest to, że jest on kompletnym niezależnym językiem programistycznym i opiera się na dwóch strukturach:
  • Zbiór par nazw/wartości
  • Zamówiona lista wartości

Przykładowe dane wyjściowe z uzyskania obiektu systemowego wyglądają następująco:

{
"<obiekt>": {
"<właściwość>": <wartość>,
...
}

Aby dowiedzieć się, jaki tekst JSON należy wykonać w celu utworzenia obiektu, należy zapoznać się z dokumentacją PAPI, wysyłając następujące żądanie:
GET /platform/1/quota/quotas?opisz

poniżej odpowiedni kod Programu PowerShell: 

#Get samodzielną dokumentację PAPI dla przydziałów
$resource = "/platform/1/quota/quotas?describe"
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
$ISIObject

 

Poniższe przykładowe dane wyjściowe określają, co jest potrzebne do testu POST, aby utworzyć nowy limit. Zwróć uwagę na wymagane właściwości, ponieważ mogą one nie być te same właściwości wymagane dla odpowiedniego polecenia isi.

SLN319398_en_US__1i_isilon_1 powershell

Korzystając z przykładowych właściwości, poniżej przedstawiono przykładowy ciąg JSON, który może być użyty do utworzenia ścisłego limitu katalogu:

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

Po zakończeniu ciągu JSON pozostanie tylko zbudowanie parametrów Invoke-RestMethod i przesłanie. W poniższym przykładzie ciąg JSON jest treścią testu POST, a typem zawartości jest aplikacja/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 " Wynikowy identyfikator limitu: " ISIObject.id USD

Łączenie wszystkich elementów

Korzystając z przykładu, załóżmy, że środowisko ma wiele katalogów domowych dla użytkowników w ramach jednego katalogu nadrzędnego (przykład: /ifs/home) i chcesz ustawić limity katalogów dla każdego z tych katalogów domowych. Użyj interfejsu API Isilon RESTful Access to the Namespace (RAN), aby uzyskać ścieżki do każdego katalogu głównego użytkownika. Poniższy kod otrzyma podkatalogi określonej ścieżki, a następnie ustawi limit katalogów w każdym podkatalogu:
 

# Uzyskaj podkatalogi ścieżki określonej
$resource = "/namespace/" + $path
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
#Loop through każdy katalog i ustawić limit
ForEach($folder w $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", "egzekwowane": prawda, "progi": {"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" -Method POST
Write-Host " Wynikowy identyfikator limitu: " ISIObject2.id
USD}

Poniżej przedstawiono dane wyjściowe z uruchomienia skryptu dołączonego do tego posta:

SLN319398_en_US__2i_isilon_2 powershell
SLN319398_en_US__3i_isilon_3 powershell

Produtos afetados

Isilon, PowerScale OneFS, Isilon Platform API
Propriedades do artigo
Número do artigo: 000132770
Tipo de artigo: Solution
Último modificado: 12 out. 2023
Versão:  5
Encontre as respostas de outros usuários da Dell para suas perguntas.
Serviços de suporte
Verifique se o dispositivo está coberto pelos serviços de suporte.