Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/go.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
name: Golangci-lint
strategy:
matrix:
platform: [ ubuntu-18.04 ]
platform: [ ubuntu-latest ]
runs-on: ${{ matrix.platform }}
steps:
- name: Set up Go 1.18
Expand Down
12 changes: 6 additions & 6 deletions internal/lib/avi_api.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ func AviGetCollectionRaw(client *clients.AviClient, uri string, retryNum ...int)
}
}

result, err := client.AviSession.GetCollectionRaw(uri)
result, err := client.AviSession.GetCollectionRaw(utils.GetUriEncoded(uri))
if err != nil {
utils.AviLog.Warnf("msg: Unable to fetch collection data from uri %s %v", uri, err)
CheckForInvalidCredentials(uri, err)
Expand All @@ -60,7 +60,7 @@ func AviGet(client *clients.AviClient, uri string, response interface{}, retryNu
}
}

err := client.AviSession.Get(uri, &response)
err := client.AviSession.Get(utils.GetUriEncoded(uri), &response)
if err != nil {
utils.AviLog.Warnf("msg: Unable to fetch data from uri %s %v", uri, err)
if aviError, ok := err.(session.AviError); ok && aviError.HttpStatusCode == 403 {
Expand Down Expand Up @@ -96,7 +96,7 @@ func AviGetRaw(client *clients.AviClient, uri string, retryNum ...int) ([]byte,
}
}

rawData, err := client.AviSession.GetRaw(uri)
rawData, err := client.AviSession.GetRaw(utils.GetUriEncoded(uri))
if err != nil {
utils.AviLog.Warnf("msg: Unable to fetch data from uri %s %v", uri, err)
CheckForInvalidCredentials(uri, err)
Expand Down Expand Up @@ -124,7 +124,7 @@ func AviPut(client *clients.AviClient, uri string, payload interface{}, response
}
}

err := client.AviSession.Put(uri, payload, &response)
err := client.AviSession.Put(utils.GetUriEncoded(uri), payload, &response)
if err != nil {
utils.AviLog.Warnf("msg: Unable to execute Put on uri %s %v", uri, err)
if aviError, ok := err.(session.AviError); ok && aviError.HttpStatusCode == 403 {
Expand Down Expand Up @@ -160,7 +160,7 @@ func AviPost(client *clients.AviClient, uri string, payload interface{}, respons
}
}

err := client.AviSession.Post(uri, payload, &response)
err := client.AviSession.Post(utils.GetUriEncoded(uri), payload, &response)
if err != nil {
utils.AviLog.Warnf("msg: Unable to execute Post on uri %s %v", uri, err)
if aviError, ok := err.(session.AviError); ok && aviError.HttpStatusCode == 403 {
Expand Down Expand Up @@ -196,7 +196,7 @@ func AviDelete(client *clients.AviClient, uri string, retryNum ...int) error {
}
}

err := client.AviSession.Delete(uri)
err := client.AviSession.Delete(utils.GetUriEncoded(uri))
if err != nil {
utils.AviLog.Warnf("msg: Unable to execute Delete on uri %s %v", uri, err)
if aviError, ok := err.(session.AviError); ok && aviError.HttpStatusCode == 403 {
Expand Down
12 changes: 6 additions & 6 deletions internal/rest/rest_operation.go
Original file line number Diff line number Diff line change
Expand Up @@ -286,16 +286,16 @@ func (l *leader) AviRestOperate(c *clients.AviClient, rest_ops []*utils.RestOp,
}
switch op.Method {
case utils.RestPost:
op.Err = c.AviSession.Post(op.Path, op.Obj, &op.Response)
op.Err = c.AviSession.Post(utils.GetUriEncoded(op.Path), op.Obj, &op.Response)
case utils.RestPut:
op.Err = c.AviSession.Put(op.Path, op.Obj, &op.Response)
op.Err = c.AviSession.Put(utils.GetUriEncoded(op.Path), op.Obj, &op.Response)
case utils.RestGet:
op.Err = c.AviSession.Get(op.Path, &op.Response)
op.Err = c.AviSession.Get(utils.GetUriEncoded(op.Path), &op.Response)
case utils.RestPatch:
op.Err = c.AviSession.Patch(op.Path, op.Obj, op.PatchOp,
op.Err = c.AviSession.Patch(utils.GetUriEncoded(op.Path), op.Obj, op.PatchOp,
&op.Response)
case utils.RestDelete:
op.Err = c.AviSession.Delete(op.Path)
op.Err = c.AviSession.Delete(utils.GetUriEncoded(op.Path))
default:
utils.AviLog.Errorf("Unknown RestOp %v", op.Method)
op.Err = fmt.Errorf("Unknown RestOp %v", op.Method)
Expand Down Expand Up @@ -375,7 +375,7 @@ func (f *follower) AviRestOperate(c *clients.AviClient, rest_ops []*utils.RestOp
}

utils.AviLog.Debugf("key: %s, msg: Got a REST operation: %s, %s", key, op.ObjName, op.Path)
op.Err = c.AviSession.Get(op.Path, &op.Response)
op.Err = c.AviSession.Get(utils.GetUriEncoded(op.Path), &op.Response)
if op.Err != nil {
utils.AviLog.Warnf("key: %s, msg: RestOp method %v path %v tenant %v Obj %s returned err %s with response %s",
key, op.Method, op.Path, op.Tenant, utils.Stringify(op.Obj), utils.Stringify(op.Err), utils.Stringify(op.Response))
Expand Down
16 changes: 8 additions & 8 deletions pkg/utils/avi_rest_utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -117,16 +117,16 @@ func (p *AviRestClientPool) AviRestOperate(c *clients.AviClient, rest_ops []*Res
SetVersion(c.AviSession)
switch op.Method {
case RestPost:
op.Err = c.AviSession.Post(op.Path, op.Obj, &op.Response)
op.Err = c.AviSession.Post(GetUriEncoded(op.Path), op.Obj, &op.Response)
case RestPut:
op.Err = c.AviSession.Put(op.Path, op.Obj, &op.Response)
op.Err = c.AviSession.Put(GetUriEncoded(op.Path), op.Obj, &op.Response)
case RestGet:
op.Err = c.AviSession.Get(op.Path, &op.Response)
op.Err = c.AviSession.Get(GetUriEncoded(op.Path), &op.Response)
case RestPatch:
op.Err = c.AviSession.Patch(op.Path, op.Obj, op.PatchOp,
op.Err = c.AviSession.Patch(GetUriEncoded(op.Path), op.Obj, op.PatchOp,
&op.Response)
case RestDelete:
op.Err = c.AviSession.Delete(op.Path)
op.Err = c.AviSession.Delete(GetUriEncoded(op.Path))
default:
AviLog.Errorf("Unknown RestOp %v", op.Method)
op.Err = fmt.Errorf("Unknown RestOp %v", op.Method)
Expand Down Expand Up @@ -217,7 +217,7 @@ func GetAuthTokenWithRetry(c *clients.AviClient, retryCount int, nextPage ...str
var robj interface{}
var err error
for retry := 0; retry < retryCount; retry++ {
err = c.AviSession.Get(tokenPath, &robj)
err = c.AviSession.Get(GetUriEncoded(tokenPath), &robj)
if err == nil {
return robj, nil
}
Expand All @@ -233,7 +233,7 @@ func CreateAuthTokenWithRetry(c *clients.AviClient, retryCount int) (interface{}
data := make(map[string]string)
data["hours"] = strconv.Itoa(AuthTokenExpiry)
for retry := 0; retry < retryCount; retry++ {
err = c.AviSession.Post(tokenPath, data, &robj)
err = c.AviSession.Post(GetUriEncoded(tokenPath), data, &robj)
if err == nil {
return robj, nil
}
Expand All @@ -246,7 +246,7 @@ func DeleteAuthTokenWithRetry(c *clients.AviClient, tokenID string, retryCount i
tokenPath := "api/user-token"
var err error
for retry := 0; retry < retryCount; retry++ {
err = c.AviSession.Delete(tokenPath + "/" + tokenID)
err = c.AviSession.Delete(GetUriEncoded(tokenPath + "/" + tokenID))
if err == nil {
return nil
}
Expand Down
13 changes: 13 additions & 0 deletions pkg/utils/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -616,3 +616,16 @@ func SetVipNetworkList(vipNetworks []akov1alpha1.AviInfraSettingVipNetwork) {
func GetVipNetworkList() []akov1alpha1.AviInfraSettingVipNetwork {
return VipNetworkList
}

func GetUriEncoded(uri string) string {
newUri, err := url.Parse(uri)
if err != nil {
AviLog.Errorf("Error while parsing uri: %+v", err)
}
queryValues := newUri.Query()
if len(queryValues) == 0 {
return uri
}
newUri.RawQuery = queryValues.Encode()
return newUri.String()
}
22 changes: 15 additions & 7 deletions tests/scaletest/lib/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ package lib

import (
"encoding/json"
"net/url"
"os"
"reflect"
"strconv"
Expand Down Expand Up @@ -53,6 +54,13 @@ func (e *errorString) Error() string {
return e.s
}

func GetUriEncoded(uri string) string {
if uriSplit := strings.SplitN(uri, "?", 2); len(uriSplit) == 2 {
return uriSplit[0] + "?" + url.QueryEscape(uriSplit[1])
}
return uri
}

func SharedAVIClients(numClients uint32) ([]*clients.AviClient, error) {
ctrlUsername := os.Getenv("CTRL_USERNAME")
ctrlPassword := os.Getenv("CTRL_PASSWORD")
Expand Down Expand Up @@ -96,7 +104,7 @@ func FetchVirtualServices(t *testing.T, AviClient *clients.AviClient, Nextpage .
}

uri := "/api/virtualservice?page=" + strconv.Itoa(page_num)
result, err := AviClient.AviSession.GetCollectionRaw(uri)
result, err := AviClient.AviSession.GetCollectionRaw(GetUriEncoded(uri))
if err != nil {
t.Errorf("Get uri %v returned err for VS %v", uri, err)
}
Expand Down Expand Up @@ -129,7 +137,7 @@ func FetchPoolGroup(t *testing.T, AviClient *clients.AviClient, Nextpage ...int)
}

uri := "/api/poolgroup?page=" + strconv.Itoa(page_num)
result, err := AviClient.AviSession.GetCollectionRaw(uri)
result, err := AviClient.AviSession.GetCollectionRaw(GetUriEncoded(uri))
if err != nil {
t.Errorf("Get uri %v returned err for pg %v", uri, err)
}
Expand Down Expand Up @@ -162,7 +170,7 @@ func FetchPools(t *testing.T, AviClient *clients.AviClient, Nextpage ...int) []m
}
uri := "/api/pool?page=" + strconv.Itoa(page_num)

result, err := AviClient.AviSession.GetCollectionRaw(uri)
result, err := AviClient.AviSession.GetCollectionRaw(GetUriEncoded(uri))
if err != nil {
t.Errorf("Get uri %v returned err for pool %v", uri, err)
}
Expand Down Expand Up @@ -194,7 +202,7 @@ func FetchDNSARecordsFQDN(t *testing.T, AviClient *clients.AviClient, Nextpage .
page_num = 1
}
uri := "/api/virtualservice?page=" + strconv.Itoa(page_num)
result, err := AviClient.AviSession.GetCollectionRaw(uri)
result, err := AviClient.AviSession.GetCollectionRaw(GetUriEncoded(uri))
if err != nil {
t.Errorf("Get uri %v returned err for VS %v", uri, err)
}
Expand Down Expand Up @@ -223,7 +231,7 @@ func FetchVirtualServiceOperStatus(t *testing.T, AviClient *clients.AviClient) [
OperStatus := []VirtualServiceInventoryRuntime{}
uri := "/api/virtualservice-inventory?page=1"
page_num := 1
result, err := AviClient.AviSession.GetCollectionRaw(uri)
result, err := AviClient.AviSession.GetCollectionRaw(GetUriEncoded(uri))
if err != nil {
t.Errorf("Get uri %v returned err for VS %v", uri, err)
}
Expand All @@ -248,7 +256,7 @@ func FetchVirtualServiceOperStatus(t *testing.T, AviClient *clients.AviClient) [
for result.Next != "" {
page_num = page_num + 1
uri := "/api/virtualservice-inventory?page=" + strconv.Itoa(page_num)
result, err = AviClient.AviSession.GetCollectionRaw(uri)
result, err = AviClient.AviSession.GetCollectionRaw(GetUriEncoded(uri))
if err != nil {
t.Errorf("Get uri %v returned err for VS %v", uri, err)
}
Expand Down Expand Up @@ -480,7 +488,7 @@ func CheckForUnwantedAPICallsToController(t *testing.T, AviClient *clients.AviCl
"&end=" + end +
"&page=" + strconv.Itoa(page_num)

result, err := AviClient.AviSession.GetCollectionRaw(uri)
result, err := AviClient.AviSession.GetCollectionRaw(GetUriEncoded(uri))
if err != nil {
t.Errorf("Get uri %v returned err for Event log %v", uri, err)
}
Expand Down
3 changes: 0 additions & 3 deletions vendor/github.com/vmware/alb-sdk/go/models/virtual_service.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.