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

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

Cet article concerne Cet article ne concerne pas Cet article n’est associé à aucun produit spécifique. Toutes les versions du produit ne sont pas identifiées dans cet article.

Symptômes

Niewymagany

Cause

Niewymagany

Résolution

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

Produits concernés

Isilon, PowerScale OneFS, Isilon Platform API
Propriétés de l’article
Numéro d’article: 000132770
Type d’article: Solution
Dernière modification: 12 Oct 2023
Version:  5
Trouvez des réponses à vos questions auprès d’autres utilisateurs Dell
Services de support
Vérifiez si votre appareil est couvert par les services de support.