ONTAP Discussions

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

h-maeda
1,901 Views

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
1,751 Views

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
1,752 Views

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

Public