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

요약: Bu makalede, nesne ve RAN oluşturmak için OneFS Platform API ile Powershell'in nasıl kullanılacağı açıklanmaktadır.

이 문서는 다음에 적용됩니다. 이 문서는 다음에 적용되지 않습니다. 이 문서는 특정 제품과 관련이 없습니다. 모든 제품 버전이 이 문서에 나와 있는 것은 아닙니다.

증상

Gerekli değil

원인

Gerekli değil

해결

JSON'a Giriş

PAPI, veri değişim biçimi olarak JSON'u kullanır. Kaynakları oluşturmak, değiştirmek veya silmek için PAPI'yi kullanmak üzere BT'den nasıl yararlanılacağını anlamak kritik önem taşır. JSON hakkında daha fazla bilgiyi www.json.orgBu köprü bağlantı sizi Dell Technologies dışındaki bir web sitesine yönlendirir. adresinde bulabilirsiniz. Temel ilke, tamamen bağımsız bir programlama dili olması ve iki yapı üzerine inşa edilmiş olmasıdır:

  • Ad ve değer çiftleri koleksiyonu
  • Sıralı bir değer listesi

API nesnesi almanın örnek çıktısı şöyle görünebilir:

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

 

Hangi JSON metin çıktılarının kullanılabilir olduğunu bilmek için, bir nesne oluşturmak üzere bir POST komutu vermeliyiz; aşağıdaki isteği göndererek PAPI öz belgelerine bakın:

GET /platform/1/quota/quotas?describe 

İlgili Powershell kodu aşağıda verilmiştir:

#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

 

Aşağıdaki örnek çıktı, yeni bir kota oluşturmak için yapmanız gerekenleri özetlemektedir. Gerekli özelliklere dikkat edin, çünkü bunlar karşılık gelen için gereken özelliklerle aynı olmayabilir. isi yaparsınız.

komut çıkışı  

Örnek özellikleri kullanarak, aşağıda bir dizin sabit kotası oluşturmak için kullanılabilecek ö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, geriye kalan tek şey Invoke-RestMethod parametreler ve gönder. Aşağıdaki örnek kodda, JSON dizesi POST'un gövdesidir ve içerik türü 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
 

Hepsini Bir Araya Getirin

Bir örnek kullanarak, ortamınızın tek bir ana dizin altında kullanıcılar için birçok ana dizine sahip olduğunu varsayalım (örnek: /ifs/home) eklediyseniz ve bu ana dizinlerin her biri için dizin kotaları ayarlamak istiyorsunuz. Her kullanıcı ana dizininin yollarını almak için Isilon RESTful Access to the namespace (RAN) API'sini kullanın. Aşağıdaki kod, belirli bir yolun alt dizinlerini alır ve ardından her alt dizin için bir dizin kotası ayarlar:
 

# 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
}

 

İşte bu gönderiye ekli komut dosyasını çalıştırmanın çıktısı:

Komut dosyası çıktısı  
Komut dosyası çıktısı  

해당 제품

Isilon, PowerScale OneFS, Isilon Platform API
문서 속성
문서 번호: 000132770
문서 유형: Solution
마지막 수정 시간: 02 4월 2026
버전:  7
다른 Dell 사용자에게 질문에 대한 답변 찾기
지원 서비스
디바이스에 지원 서비스가 적용되는지 확인하십시오.