ONTAP Discussions

How can I get disk-limit immediately after quota-resize?

h-maeda

SDK : netapp-manageability-sdk-5.4P1    powershell

 

 

SAMPLE -----

 

[NetApp.Manage.NaElement] $in =  New-Object NetApp.Manage.NaElement("quota-resize");
$in.AddNewChild("volume",$volume);
[NetApp.Manage.NaElement] $out = $s.InvokeElem($in);

[NetApp.Manage.NaElement] $in =  New-Object NetApp.Manage.NaElement("quota-report-iter");
$in.AddNewChild("path",$path2q);
[NetApp.Manage.NaElement] $out = $s.InvokeElem($in);

[System.Collections.IList] $quotaList =  $out.GetChildByName("attributes-list").GetChildren();
[System.Collections.IEnumerator] $quotaIter = $quotaList.GetEnumerator();
while($quotaIter.MoveNext()){
   [NetApp.Manage.NaElement] $quotaInfo = $quotaIter.Current;
   $quotasize_ = $quotaInfo.GetChildContent("disk-limit");     ★
}

-------

 

 

★ this line dosent work.

 

if "sleep 1" above of line[$out.GetChildByName("attributes-list").GetChildren();]

it works.

 

Is there a way to avoid errors other than "sleep" ?

 

 

Best regards.

 

 

1 ACCEPTED SOLUTION

h-maeda

Hello,

 

I decided to use inifinite loop.

like this.

 

---------------------

while(1){

 

[NetApp.Manage.NaElement] $in =  New-Object NetApp.Manage.NaElement("quota-report-iter");
$in.AddNewChild("path",$path2q);
[NetApp.Manage.NaElement] $out = $s.InvokeElem($in);

[System.Collections.IList] $quotaList =  $out.GetChildByName("attributes-list").GetChildren();
[System.Collections.IEnumerator] $quotaIter = $quotaList.GetEnumerator();
while($quotaIter.MoveNext()){
   [NetApp.Manage.NaElement] $quotaInfo = $quotaIter.Current;
   $quotasize_ = $quotaInfo.GetChildContent("disk-limit");

   if($quotasize_ -ne "-"){

     $FLG = "ON"

   }

 

if($FLG = "ON"){

    break

}


}

--------------

 

 

i think getreportDB separates quotaDB.and quotaDB push to reportDB regulary(ex every 1 second).

if push api exists,i want to use this.

 

 

Best regards

View solution in original post

1 REPLY 1

h-maeda

Hello,

 

I decided to use inifinite loop.

like this.

 

---------------------

while(1){

 

[NetApp.Manage.NaElement] $in =  New-Object NetApp.Manage.NaElement("quota-report-iter");
$in.AddNewChild("path",$path2q);
[NetApp.Manage.NaElement] $out = $s.InvokeElem($in);

[System.Collections.IList] $quotaList =  $out.GetChildByName("attributes-list").GetChildren();
[System.Collections.IEnumerator] $quotaIter = $quotaList.GetEnumerator();
while($quotaIter.MoveNext()){
   [NetApp.Manage.NaElement] $quotaInfo = $quotaIter.Current;
   $quotasize_ = $quotaInfo.GetChildContent("disk-limit");

   if($quotasize_ -ne "-"){

     $FLG = "ON"

   }

 

if($FLG = "ON"){

    break

}


}

--------------

 

 

i think getreportDB separates quotaDB.and quotaDB push to reportDB regulary(ex every 1 second).

if push api exists,i want to use this.

 

 

Best regards

View solution in original post

Announcements
NetApp on Discord Image

We're on Discord, are you?

Live Chat, Watch Parties, and More!

Explore Banner

Meet Explore, NetApp’s digital sales platform

Engage digitally throughout the sales process, from product discovery to configuration, and handle all your post-purchase needs.

NetApp Insights to Action
I2A Banner
Public