Skip to content

Commit

Permalink
fix: Update CnsQueryAsync API request parameters to handle nil for Qu…
Browse files Browse the repository at this point in the history
…erySelection

Closes: #2575
  • Loading branch information
chethanv28 committed Sep 7, 2021
1 parent e49ad93 commit 61afce3
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 28 deletions.
4 changes: 2 additions & 2 deletions cns/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -190,11 +190,11 @@ func (c *Client) QueryAllVolume(ctx context.Context, queryFilter cnstypes.CnsQue
}

// QueryVolumeAsync calls the CNS QueryAsync API and return a task, from which we can extract CnsQueryResult
func (c *Client) QueryVolumeAsync(ctx context.Context, queryFilter cnstypes.CnsQueryFilter, querySelection cnstypes.CnsQuerySelection) (*object.Task, error) {
func (c *Client) QueryVolumeAsync(ctx context.Context, queryFilter cnstypes.CnsQueryFilter, querySelection *cnstypes.CnsQuerySelection) (*object.Task, error) {
req := cnstypes.CnsQueryAsync{
This: CnsVolumeManagerInstance,
Filter: queryFilter,
Selection: &querySelection,
Selection: querySelection,
}
res, err := methods.CnsQueryAsync(ctx, c, &req)
if err != nil {
Expand Down
47 changes: 22 additions & 25 deletions cns/client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -856,6 +856,28 @@ func TestClient(t *testing.T) {
}
t.Logf("Volume detached sucessfully")

// Test QueryVolumeAsync API only for vSphere version 7.0.3 onwards
if isvSphereVersion70U3orAbove(ctx, c.ServiceContent.About) {
queryVolumeAsyncTask, err := cnsClient.QueryVolumeAsync(ctx, queryFilter, nil)
if err != nil {
t.Errorf("Failed to query volumes with QueryVolumeAsync. Error: %+v \n", err)
}
queryVolumeAsyncTaskInfo, err := GetTaskInfo(ctx, queryVolumeAsyncTask)
if err != nil {
t.Errorf("Failed to query volumes with QueryVolumeAsync. Error: %+v \n", err)
}
queryVolumeAsyncTaskResults, err := GetTaskResultArray(ctx, queryVolumeAsyncTaskInfo)
if err != nil {
t.Errorf("Failed to query volumes with QueryVolumeAsync. Error: %+v \n", err)
}
for _, queryVolumeAsyncTaskResult := range queryVolumeAsyncTaskResults {
queryVolumeAsyncOperationRes := queryVolumeAsyncTaskResult.GetCnsVolumeOperationResult()
if queryVolumeAsyncOperationRes.Fault != nil {
t.Fatalf("Failed to query volumes with QueryVolumeAsync. fault=%+v", queryVolumeAsyncOperationRes.Fault)
}
t.Logf("Successfully queried Volume using queryAsync API. queryVolumeAsyncTaskResult: %+v", pretty.Sprint(queryVolumeAsyncTaskResult))
}
}
// Test DeleteVolume API
t.Logf("Deleting volume: %+v", volumeIDList)
deleteTask, err := cnsClient.DeleteVolume(ctx, volumeIDList, true)
Expand Down Expand Up @@ -1197,31 +1219,6 @@ func TestClient(t *testing.T) {
}
t.Logf("volume:%q deleted sucessfully", volumeID)
}
// Test QueryVolumeAsync API only for vSphere version 7.0.3++
if isvSphereVersion70U3orAbove(ctx, c.ServiceContent.About) {
queryVolumeAsyncTask, err := cnsClient.QueryVolumeAsync(ctx, queryFilter, querySelection)
if err != nil {
t.Errorf("Failed to query volumes with QueryVolumeAsync. Error: %+v \n", err)
t.Fatal(err)
}
queryVolumeAsyncTaskInfo, err := GetTaskInfo(ctx, queryVolumeAsyncTask)
if err != nil {
t.Errorf("Failed to query volumes with QueryVolumeAsync. Error: %+v \n", err)
t.Fatal(err)
}
queryVolumeAsyncTaskResults, err := GetTaskResultArray(ctx, queryVolumeAsyncTaskInfo)
if err != nil {
t.Errorf("Failed to query volumes with QueryVolumeAsync. Error: %+v \n", err)
t.Fatal(err)
}
for _, queryVolumeAsyncTaskResult := range queryVolumeAsyncTaskResults {
queryVolumeAsyncOperationRes := queryVolumeAsyncTaskResult.GetCnsVolumeOperationResult()
if queryVolumeAsyncOperationRes.Fault != nil {
t.Fatalf("Failed to query volumes with QueryVolumeAsync. fault=%+v", queryVolumeAsyncOperationRes.Fault)
}
t.Logf("Successfully queried Volume using queryAsync API. queryVolumeAsyncTaskResult: %+v", pretty.Sprint(queryVolumeAsyncTaskResult))
}
}
}

// isvSphereVersion70U3orAbove checks if specified version is 7.0 Update 3 or higher
Expand Down
2 changes: 1 addition & 1 deletion cns/simulator/simulator_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -290,7 +290,7 @@ func TestSimulator(t *testing.T) {
// QueryAsync
queryFilter = cnstypes.CnsQueryFilter{}
querySelection := cnstypes.CnsQuerySelection{}
queryVolumeAsyncTask, err := cnsClient.QueryVolumeAsync(ctx, queryFilter, querySelection)
queryVolumeAsyncTask, err := cnsClient.QueryVolumeAsync(ctx, queryFilter, &querySelection)
if err != nil {
t.Fatal(err)
}
Expand Down

0 comments on commit 61afce3

Please sign in to comment.