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

Summary: W tym artykule wyjaśniono, jak używać programu PowerShell z interfejsem API platformy OneFS do tworzenia obiektów i 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

Niewymagany

Cause

Niewymagany

Resolution

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

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.