Isilon: Platform API ile Powershell'i Kullanma - Nesne Oluşturma ve RAN

Summary: Bu makalede nesneler ve RAN oluşturmak için Powershell'in OneFS Platform API ile nasıl kullanımı açıklanmaktadır.

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

Gerekli değil

Cause

Gerekli değil

Resolution

JSON'a Giriş

PAPI, JSON'u veri değişim biçimi olarak kullanır ve kaynakları oluşturmak, değiştirmek veya silmek için PAPI'yi kullanmak için nasıl yararlanılacağı anlamak kritik önem taşır. JSON hakkında daha fazla bilgi www.json.org ancak temel ilke, tamamen bağımsız programlama dilidir ve iki yapı üzerine inşa edilir:
  • Ad/değer çiftleri koleksiyonu
  • Sipariş edilen değerler listesi

Sistem nesnesi almadan örnek çıktı şu şekilde görünür:

{
"<nesne>": {
"<özellik>": <değer>,
...
}

Bir nesne oluşturmak için HANGI JSON metinini POST'a ihtiyacımız olduğunu bilmek için şu isteği göndererek PAPI self belgelerine bakın:
GET /platform/1/quota/quotas?describe

Burada ilgili Powershell kodu açıklanmalıdır: 

#Get için PAPI
kendi kendine belgeler$resource = "/platform/1/quota/quotas?describe"
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
$ISIObject

 

Aşağıdaki örnek çıktıda, yeni bir kota oluşturmak için POST yapmanız gerekenler özetlenmiştir. İlgili isi komutu için gereken özelliklerle aynı özelliklere sahip olmamasından gerekli özelliklere dikkat edin.

SLN319398_en_US__1i_isilon_1-powershell

Örnek özellikleri kullanarak aşağıda, bir dizin sabit kotası oluşturmak için kullanılan örnek bir JSON dizesi verilmiştir:

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

JSON dizesi tamamlandığında kalan tek şey Invoke-RestMethod parametrelerini oluşturmak ve göndermektir. Aşağıdaki örnek kodda, JSON dizesi POST'un gövdesidir ve içerik türü uygulama/json'dır:

$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: (charset=utf-8" -Yöntem POST
Yazma Ana Bilgisayarı " Sonuç Kota Kimliği: " $ISIObject.id

Her Şey Bir Arada

Bir örnek kullanarak ortamınıza tek bir ana dizin altında kullanıcılar için birçok ana dizin olduğunu varsayalım (örnek: /ifs/home) ve bu ana dizinlerin her biri için dizin kotaları ayarlamak istiyorsunuz. Her bir kullanıcı ana dizinine yol almak için Ad Alanı (RAN) API'sine Isilon RESTful Erişimi kullanın. Aşağıdaki kod, belirtilen bir yol alt dizinlerini alır ve ardından her alt dizinde bir dizin kotası oluşturur:
 

# Belirtilen yol alt
dizinlerini alın$resource = '/namespace/' + $path
$uri = $baseurl + $resource
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get#Loop through each (# Belirtilen yol alt dizinlerini alın$headers -Yöntem Al
#Loop dizin ve set the quota
ForEach($folder in $ISIObject.children) {

#Create quota
$resource ="/platform/1/quota/quota/quotas"
Write-Host "Setting a $quotasize byte quota on $quotapath"
$QuotaObject = @" (İngilizce)
{"type":"directory","include_snapshots": false,"container": true, "path": "$quotapath", "zorunlu": doğru, "eşikler": {"hard":$quotasize},"thresholds_include_overhead": false}
"@
$headers = @{"Authorization"="Temel $($EncodedPassword)"}
$uri = $baseurl + $resource
$ISIObject 2 = Invoke-RestMethod -Uri $uri -Headers $headers -Body $QuotaObject -ContentType "application/json; charset=utf-8" -Method POST Write-Host " Resulting Quota ID: (charset=utf-8" -Yöntem POST
Yazma Ana Bilgisayarı " Sonuç Kota Kimliği: " $ISIObject2.id
}

Bu gönderiye eklenen komut dosyasını çalıştırmanın çıktısı:

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.