Isilon: Brug af Powershell med Platform API – oprettelse af objekter og RAN

Résumé: Denne artikel beskriver, hvordan du bruger Powershell med OneFS Platform API til at oprette objekter og 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

Ikke påkrævet

Cause

Ikke påkrævet

Résolution

Introduktion til JSON

PAPI bruger JSON som dataudvekslingsformat. Det er vigtigt at forstå, hvordan man udnytter det til at bruge PAPI til at oprette, ændre eller slette ressourcer. Yderligere oplysninger om JSON findes på www.json.orgDette hyperlink fører dig til et websted uden for Dell Technologies. . Hovedprincippet er, at det er et komplet uafhængigt programmeringssprog og er bygget på to strukturer:

  • En samling af navne- og værdipar
  • En ordnet liste over værdier

Eksempel på output fra hentning af et API-objekt kunne se sådan ud:

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

 

For at vide, hvilke JSON-tekstoutput der er tilgængelige, skal vi udstede en POST-kommando for at oprette et objekt; se på PAPI-selvdokumentationen ved at sende følgende anmodning:

GET /platform/1/quota/quotas?describe 

Her er den relevante PowerShell-kode:

#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

 

Eksempeloutputtet nedenfor beskriver, hvad du skal POST for at oprette en ny kvote. Vær opmærksom på de krævede egenskaber, da de muligvis ikke er de samme egenskaber, der kræves til de tilsvarende isi Kommando.

Kommandooutput  

Ved hjælp af eksempelegenskaberne er følgende et eksempel på en JSON-streng, der kan bruges til at oprette en hård kvote for mappen:

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

 

Når JSON-strengen er fuldført, er der kun tilbage at opbygge Invoke-RestMethod parametre og indsend. I eksempelkoden nedenfor er JSON-strengen brødteksten i POST, og at indholdstypen er 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
 

Sætter det hele sammen

Lad os som eksempel antage, at dit miljø har mange startmapper til brugere under en enkelt overordnet mappe (eksempel: /ifs/home), og du vil angive bibliotekskvoter for hver af disse hjemmemapper. Brug Isilon RESTful Access to the namespace (RAN) API til at hente stierne til hver brugers startmappe. Følgende kode henter undermapperne til en bestemt sti og angiver derefter en mappekvote for hver undermappe:
 

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

 

Her er outputtet fra at køre scriptet, der er knyttet til dette indlæg:

Scriptoutput  
Scriptoutput  

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: 02 avr. 2026
Version:  7
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.