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 sieci 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 formatu JSON

PAPI używa formatu JSON jako formatu wymiany danych. Bardzo ważne jest, aby zrozumieć, jak wykorzystać go do używania PAPI do tworzenia, modyfikowania lub usuwania zasobów. Dodatkowe informacje na temat formatu JSON są dostępne w www.json.orgKliknięcie tego hiperłącza powoduje wyświetlenie strony spoza witryny Dell Technologies. . Kluczową zasadą jest to, że jest to całkowicie niezależny język programowania i jest zbudowany na dwóch strukturach:

  • Kolekcja par nazw i wartości
  • Uporządkowana lista wartości

Przykładowe dane wyjściowe z pobierania obiektu interfejsu API mogą wyglądać następująco:

{
"<object>": {
     "<property>": <value>,
     ...
}

 

Aby dowiedzieć się, jakie dane wyjściowe tekstu JSON są dostępne, musimy wydać polecenie POST, aby utworzyć obiekt; zapoznaj się z dokumentacją własnoręczną PAPI, wysyłając następujące żądanie:

GET /platform/1/quota/quotas?describe 

Oto odpowiedni kod PowerShell:

#Get PAPI self documentation for quotas
$resource = "/platform/1/quota/quotas?describe"
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
$ISIObject

 

W poniższych przykładowych danych przedstawiono, co należy POST, aby utworzyć nowy przydział. Zwróć uwagę na wymagane właściwości, ponieważ mogą to nie być te same właściwości, które są wymagane dla odpowiedniego isi .

dane wyjściowe polecenia  

Korzystając z przykładowych właściwości, poniżej przedstawiono przykładowy ciąg JSON, którego można użyć do utworzenia przydziału twardego 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 pozostaje tylko zbudować plik Invoke-RestMethod parametrów i prześlij. W poniższym przykładowym kodzie ciąg JSON jest treścią żądania POST, a typ zawartości to application/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 "   Resulting Quota ID: "  $ISIObject.id
 

Składanie wszystkiego w całość

Korzystając z przykładu, załóżmy, że środowisko ma wiele katalogów macierzystych dla użytkowników w jednym katalogu nadrzędnym (przykład: /ifs/home) i chcesz ustawić przydziały katalogów dla każdego z tych katalogów głównych. Użyj interfejsu API Isilon RESTful Access to the namespace (RAN), aby uzyskać ścieżki do każdego katalogu macierzystego użytkownika. Poniższy kod pobiera podkatalogi o określonej ścieżce, a następnie ustawia przydział katalogu dla każdego podkatalogu:
 

# Get subdirectories of path specified
$resource = '/namespace/' + $path
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
#Loop through each directory and set the quota
ForEach($folder in $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", "enforced": true, "thresholds": {"hard":$quotasize},"thresholds_include_overhead": false}
"@
$headers = @{"Authorization"="Basic $($EncodedPassword)"}
$uri = $baseurl + $resource
$ISIObject2 = Invoke-RestMethod -Uri $uri -Headers $headers -Body $QuotaObject -ContentType "application/json; charset=utf-8" -Method POST
Write-Host "   Resulting Quota ID: "  $ISIObject2.id
}

 

Oto dane wyjściowe z uruchomienia skryptu dołączonego do tego posta:

Wyjście skryptu  
Wyjście skryptu  

Affected Products

Isilon, PowerScale OneFS, Isilon Platform API
Article Properties
Article Number: 000132770
Article Type: Solution
Last Modified: 02 Apr 2026
Version:  7
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.