@@ -372,30 +372,33 @@ func CreateNLB(connectionName string, rsType string, reqInfo cres.NLBInfo, IDTra
372372 reqInfo .VpcIID = getDriverIID (cres.IID {NameId : vpcIIDInfo .NameId , SystemId : vpcIIDInfo .SystemId })
373373 //+++++++++++++++++++++++++++++++++++++++++++
374374
375+ // VMGroup.VMs is optional, skip if not provided
375376 vmList := reqInfo .VMGroup .VMs
376- for idx , vmIID := range * vmList {
377- var vmIIDInfo VMIIDInfo
378- if os .Getenv ("PERMISSION_BASED_CONTROL_MODE" ) != "" {
379- var iidInfoList []* VMIIDInfo
380- err = getAuthIIDInfoList (connectionName , & iidInfoList )
381- if err != nil {
382- cblog .Error (err )
383- return nil , err
384- }
385- castedIIDInfo , err := getAuthIIDInfo (& iidInfoList , vmIID .NameId )
386- if err != nil {
387- cblog .Error (err )
388- return nil , err
389- }
390- vmIIDInfo = * castedIIDInfo .(* VMIIDInfo )
391- } else {
392- err = infostore .GetByConditions (& vmIIDInfo , CONNECTION_NAME_COLUMN , connectionName , NAME_ID_COLUMN , vmIID .NameId )
393- if err != nil {
394- cblog .Error (err )
395- return nil , err
377+ if vmList != nil && len (* vmList ) > 0 {
378+ for idx , vmIID := range * vmList {
379+ var vmIIDInfo VMIIDInfo
380+ if os .Getenv ("PERMISSION_BASED_CONTROL_MODE" ) != "" {
381+ var iidInfoList []* VMIIDInfo
382+ err = getAuthIIDInfoList (connectionName , & iidInfoList )
383+ if err != nil {
384+ cblog .Error (err )
385+ return nil , err
386+ }
387+ castedIIDInfo , err := getAuthIIDInfo (& iidInfoList , vmIID .NameId )
388+ if err != nil {
389+ cblog .Error (err )
390+ return nil , err
391+ }
392+ vmIIDInfo = * castedIIDInfo .(* VMIIDInfo )
393+ } else {
394+ err = infostore .GetByConditions (& vmIIDInfo , CONNECTION_NAME_COLUMN , connectionName , NAME_ID_COLUMN , vmIID .NameId )
395+ if err != nil {
396+ cblog .Error (err )
397+ return nil , err
398+ }
396399 }
400+ (* vmList )[idx ] = getDriverIID (cres.IID {NameId : vmIIDInfo .NameId , SystemId : vmIIDInfo .SystemId })
397401 }
398- (* vmList )[idx ] = getDriverIID (cres.IID {NameId : vmIIDInfo .NameId , SystemId : vmIIDInfo .SystemId })
399402 }
400403 //+++++++++++++++++++++++++++++++++++++++++++
401404
@@ -1692,6 +1695,12 @@ func GetVMGroupHealthInfo(connectionName string, nlbName string) (*cres.HealthIn
16921695
16931696func setVMUserIIDwithSystemId (connectionName string , nlbName string , healthInfo * cres.HealthInfo ) error {
16941697 var errList []string
1698+
1699+ // If AllVMs is nil or empty, return early (no VMs to process)
1700+ if healthInfo .AllVMs == nil || len (* healthInfo .AllVMs ) == 0 {
1701+ return nil
1702+ }
1703+
16951704 vmIIDList := healthInfo .AllVMs
16961705 for idx , vm := range * vmIIDList {
16971706 foundFlag := false
0 commit comments