@@ -65,18 +65,10 @@ func (suite *resourceManagerAPITestSuite) TearDownTest() {
6565 suite .cluster .Destroy ()
6666}
6767
68- func (suite * resourceManagerAPITestSuite ) getEndpoint (re * require.Assertions , elems ... string ) string {
69- endpoint , err := url .JoinPath (
70- suite .cluster .GetLeaderServer ().GetAddr (),
71- append ([]string {apis .APIPathPrefix }, elems ... )... ,
72- )
73- re .NoError (err )
74- return endpoint
75- }
76-
7768// sendRequest is a helper function to send HTTP requests and handle common response processing
78- func ( suite * resourceManagerAPITestSuite ) sendRequest (
69+ func sendRequest (
7970 re * require.Assertions ,
71+ leaderAddr string ,
8072 method , path string ,
8173 queryParams url.Values ,
8274 body any ,
@@ -87,7 +79,8 @@ func (suite *resourceManagerAPITestSuite) sendRequest(
8779 re .NoError (err )
8880 bodyReader = bytes .NewBuffer (data )
8981 }
90- path = suite .getEndpoint (re , path )
82+ path , err := url .JoinPath (leaderAddr , apis .APIPathPrefix , path )
83+ re .NoError (err )
9184 if len (queryParams ) > 0 {
9285 path += "?" + queryParams .Encode ()
9386 }
@@ -108,7 +101,7 @@ func (suite *resourceManagerAPITestSuite) mustSendRequest(
108101 method , path string ,
109102 body any ,
110103) []byte {
111- bodyBytes , statusCode := suite . sendRequest (re , method , path , nil , body )
104+ bodyBytes , statusCode := sendRequest (re , suite . cluster . GetLeaderServer (). GetAddr () , method , path , nil , body )
112105 re .Equal (http .StatusOK , statusCode , string (bodyBytes ))
113106 return bodyBytes
114107}
@@ -270,7 +263,7 @@ func (suite *resourceManagerAPITestSuite) mustUpdateResourceGroup(re *require.As
270263func (suite * resourceManagerAPITestSuite ) mustGetResourceGroup (re * require.Assertions , name string , keyspaceName string ) * server.ResourceGroup {
271264 queryParams := url.Values {}
272265 queryParams .Set ("keyspace_name" , keyspaceName )
273- bodyBytes , statusCode := suite . sendRequest (re , http .MethodGet , "/config/group/" + name , queryParams , nil )
266+ bodyBytes , statusCode := sendRequest (re , suite . server . GetAddr () , http .MethodGet , "/config/group/" + name , queryParams , nil )
274267 if statusCode != http .StatusOK {
275268 re .Equal (http .StatusNotFound , statusCode )
276269 return nil
@@ -283,7 +276,7 @@ func (suite *resourceManagerAPITestSuite) mustGetResourceGroup(re *require.Asser
283276func (suite * resourceManagerAPITestSuite ) mustGetResourceGroupList (re * require.Assertions , keyspaceName string ) []* server.ResourceGroup {
284277 queryParams := url.Values {}
285278 queryParams .Set ("keyspace_name" , keyspaceName )
286- bodyBytes , statusCode := suite . sendRequest (re , http .MethodGet , "/config/groups" , queryParams , nil )
279+ bodyBytes , statusCode := sendRequest (re , suite . server . GetAddr () , http .MethodGet , "/config/groups" , queryParams , nil )
287280 if statusCode != http .StatusOK {
288281 re .Equal (http .StatusNotFound , statusCode )
289282 return nil
@@ -296,7 +289,7 @@ func (suite *resourceManagerAPITestSuite) mustGetResourceGroupList(re *require.A
296289func (suite * resourceManagerAPITestSuite ) mustDeleteResourceGroup (re * require.Assertions , name string , keyspaceName string ) {
297290 queryParams := url.Values {}
298291 queryParams .Set ("keyspace_name" , keyspaceName )
299- bodyBytes , statusCode := suite . sendRequest (re , http .MethodDelete , "/config/group/" + name , queryParams , nil )
292+ bodyBytes , statusCode := sendRequest (re , suite . server . GetAddr () , http .MethodDelete , "/config/group/" + name , queryParams , nil )
300293 if statusCode != http .StatusOK {
301294 re .Equal (http .StatusNotFound , statusCode )
302295 return
@@ -344,9 +337,10 @@ func (suite *resourceManagerAPITestSuite) TestKeyspaceServiceLimitAPI() {
344337 },
345338 )
346339 re .NoError (err )
340+ leaderAddr := suite .cluster .GetLeaderServer ().GetAddr ()
347341 for _ , keyspaceName := range []string {"" , "test_keyspace" } {
348342 // Get the keyspace service limit.
349- limit , statusCode := suite . tryToGetKeyspaceServiceLimit (re , keyspaceName )
343+ limit , statusCode := tryToGetKeyspaceServiceLimit (re , leaderAddr , keyspaceName )
350344 if len (keyspaceName ) == 0 {
351345 // The null keyspace is always available.
352346 re .Equal (http .StatusOK , statusCode )
@@ -357,29 +351,29 @@ func (suite *resourceManagerAPITestSuite) TestKeyspaceServiceLimitAPI() {
357351 re .Equal (0.0 , limit )
358352 }
359353 // Try to set the keyspace service limit to a negative value.
360- resp , statusCode := suite . tryToSetKeyspaceServiceLimit (re , keyspaceName , - 1.0 )
354+ resp , statusCode := tryToSetKeyspaceServiceLimit (re , leaderAddr , keyspaceName , - 1.0 )
361355 re .Equal (http .StatusBadRequest , statusCode )
362356 re .Equal ("service_limit must be non-negative" , resp )
363357 // Set the keyspace service limit to a positive value.
364- resp , statusCode = suite . tryToSetKeyspaceServiceLimit (re , keyspaceName , 1.0 )
358+ resp , statusCode = tryToSetKeyspaceServiceLimit (re , leaderAddr , keyspaceName , 1.0 )
365359 re .Equal (http .StatusOK , statusCode )
366360 re .Equal ("Success!" , resp )
367- limit , statusCode = suite . tryToGetKeyspaceServiceLimit (re , keyspaceName )
361+ limit , statusCode = tryToGetKeyspaceServiceLimit (re , leaderAddr , keyspaceName )
368362 re .Equal (http .StatusOK , statusCode )
369363 re .Equal (1.0 , limit )
370364 }
371365 // Try to set a non-existing keyspace's service limit.
372- resp , statusCode := suite . tryToSetKeyspaceServiceLimit (re , "non_existing_keyspace" , 1.0 )
366+ resp , statusCode := tryToSetKeyspaceServiceLimit (re , leaderAddr , "non_existing_keyspace" , 1.0 )
373367 re .Equal (http .StatusBadRequest , statusCode )
374368 re .Equal ("keyspace not found with name: non_existing_keyspace" , resp )
375369 // Try to get a non-existing keyspace's service limit.
376- limit , statusCode := suite . tryToGetKeyspaceServiceLimit (re , "non_existing_keyspace" )
370+ limit , statusCode := tryToGetKeyspaceServiceLimit (re , leaderAddr , "non_existing_keyspace" )
377371 re .Equal (http .StatusBadRequest , statusCode )
378372 re .Equal (0.0 , limit )
379373}
380374
381- func ( suite * resourceManagerAPITestSuite ) tryToGetKeyspaceServiceLimit (re * require.Assertions , keyspaceName string ) (float64 , int ) {
382- bodyBytes , statusCode := suite . sendRequest (re , http .MethodGet , "/config/keyspace/service-limit/" + keyspaceName , nil , nil )
375+ func tryToGetKeyspaceServiceLimit (re * require.Assertions , leaderAddr , keyspaceName string ) (float64 , int ) {
376+ bodyBytes , statusCode := sendRequest (re , leaderAddr , http .MethodGet , "/config/keyspace/service-limit/" + keyspaceName , nil , nil )
383377 if statusCode != http .StatusOK {
384378 return 0.0 , statusCode
385379 }
@@ -390,9 +384,10 @@ func (suite *resourceManagerAPITestSuite) tryToGetKeyspaceServiceLimit(re *requi
390384 return limiter .ServiceLimit , statusCode
391385}
392386
393- func ( suite * resourceManagerAPITestSuite ) tryToSetKeyspaceServiceLimit (re * require.Assertions , keyspaceName string , limit float64 ) (string , int ) {
394- bodyBytes , statusCode := suite . sendRequest (
387+ func tryToSetKeyspaceServiceLimit (re * require.Assertions , leaderAddr , keyspaceName string , limit float64 ) (string , int ) {
388+ bodyBytes , statusCode := sendRequest (
395389 re ,
390+ leaderAddr ,
396391 http .MethodPost ,
397392 "/config/keyspace/service-limit/" + keyspaceName ,
398393 nil ,
0 commit comments