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

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

本文适用于 本文不适用于 本文并非针对某种特定的产品。 本文并非包含所有产品版本。

症状

Gerekli değil

原因

Gerekli değil

解决方案

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

受影响的产品

Isilon, PowerScale OneFS, Isilon Platform API
文章属性
文章编号: 000132770
文章类型: Solution
上次修改时间: 12 10月 2023
版本:  5
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。