@@ -226,24 +226,60 @@ func TestCNSClientRequestAndRelease(t *testing.T) {
226226 if reflect .DeepEqual (desired , resultIPnet ) != true {
227227 t .Fatalf ("Desired result not matching actual result, expected: %+v, actual: %+v" , desired , resultIPnet )
228228 }
229+ //checking for allocated IP address and pod context printing before ReleaseIPAddress is called
230+ ipaddresses , err := cnsClient .GetIPAddressesMatchingStates (cns .Allocated )
231+ if err != nil {
232+ t .Fatalf ("Get allocated IP addresses failed %+v" , err )
233+ }
234+
235+ if len (ipaddresses ) != 1 {
236+ t .Fatalf ("Number of available IP addresses expected to be 1, actual %+v" , ipaddresses )
237+ }
238+
239+ if ipaddresses [0 ].IPAddress != desiredIpAddress && ipaddresses [0 ].State != cns .Allocated {
240+ t .Fatalf ("Available IP address does not match expected, address state: %+v" , ipaddresses )
241+ }
242+
243+ t .Log (ipaddresses )
229244
230245 // release requested IP address, expect success
231246 err = cnsClient .ReleaseIPAddress (orchestratorContext )
232247 if err != nil {
233248 t .Fatalf ("Expected to not fail when releasing IP reservation found with context: %+v" , err )
234249 }
250+ }
235251
236- ipaddresses , err := cnsClient .GetIPAddressesMatchingStates (cns .Available )
252+ func TestCNSClientPodContextApi (t * testing.T ) {
253+ podName := "testpodname"
254+ podNamespace := "testpodnamespace"
255+ desiredIpAddress := "10.0.0.5"
256+
257+ secondaryIps := make ([]string , 0 )
258+ secondaryIps = append (secondaryIps , desiredIpAddress )
259+ cnsClient , _ := InitCnsClient ("" )
260+
261+ addTestStateToRestServer (t , secondaryIps )
262+
263+ podInfo := cns.KubernetesPodInfo {PodName : podName , PodNamespace : podNamespace }
264+ orchestratorContext , err := json .Marshal (podInfo )
237265 if err != nil {
238- t .Fatalf ( "Get allocated IP addresses failed %+v" , err )
266+ t .Fatal ( err )
239267 }
240268
241- if len (ipaddresses ) != 1 {
242- t .Fatalf ("Number of available IP addresses expected to be 1, actual %+v" , ipaddresses )
269+ // request IP address
270+ _ , err = cnsClient .RequestIPAddress (orchestratorContext )
271+ if err != nil {
272+ t .Fatalf ("get IP from CNS failed with %+v" , err )
243273 }
244274
245- if ipaddresses [0 ].IPAddress != desiredIpAddress && ipaddresses [0 ].State != cns .Available {
246- t .Fatalf ("Available IP address does not match expected, address state: %+v" , ipaddresses )
275+ //test for pod ip by orch context map
276+ podcontext , err := cnsClient .GetPodOrchestratorContext ()
277+ if err != nil {
278+ t .Errorf ("Get pod ip by orchestrator context failed: %+v" , err )
247279 }
248- fmt .Println (ipaddresses )
280+ if len (podcontext ) < 1 {
281+ t .Errorf ("Expected atleast 1 entry in map for podcontext: %+v" , podcontext )
282+ }
283+
284+ t .Log (podcontext )
249285}
0 commit comments