Subscribe

Using update commands with queried objects

[ Edited ]

It appears as if I have to do a lot of extra steps in order to use update commands with the powershell sdk.  For example, this is the detailed example for update-ncvol:

 

C:\PS>$q = Get-NcVol -Template
Initialize-NcObjectProperty $q VolumeIdAttributes
$q.VolumeIdAttributes.Name = "vol1|vol2"
$q.VolumeIdAttributes.OwningVserverName = "vserver1"
$a = Get-NcVol -Template
Initialize-NcObjectProperty $a VolumeIdAttributes
$a.VolumeIdAttributes.Comment = "Database volumes"
Update-NcVol -Query $q -Attributes $a

 

 

and it works when I try it out.  I am trying to gather and then update a set of volumes from a cluster by doing this:

 

$volumes = Get-NcVol

foreach ($vol in $volumes){
    $replaceWith = Get-NcVol -Template
    Initialize-NcObjectProperty $replaceWith VolumeIdAttributes 
    $replaceWith.VolumeIdAttributes.Comment = "test comment"

    Update-NcVol -Query $vol -Attributes $replaceWith
}

 

 

But it doesn't work.  Apparently I have no choice but to move information from the volumes I retrieved from the cluster to empty volumes in order to make it work?

 

 

 For instance, this works:

 

$volumes = Get-NcVol

foreach ($vol in $volumes){
   $query = Get-NcVol -Template
    Initialize-NcObjectProperty $query VolumeIdAttributes
    $query.Name = $vol.Name
    $query.Vserver = $vol.Vserver
 
    $replaceWith = Get-NcVol -Template
    Initialize-NcObjectProperty $replaceWith VolumeIdAttributes 
    $replaceWith.VolumeIdAttributes.Comment = "test comment"
 
    Update-NcVol -Query $query -Attributes $replaceWith
}

 

 

Is it necessary to do all these extra steps?  Wouldn't it make more sense if I could just use the queried vol object for the update command?  Please let me know if there's a better way.

 

Thanks