@@ -457,30 +457,43 @@ public void createPortForwardingRule(String ruleName, String tier1GatewayName, S
457457 }
458458 }
459459
460- public void createNsxLbServerPool (List <NsxLoadBalancerMember > memberList , String tier1GatewayName , String lbServerPoolName , String algorithm ) {
460+ List <LBPoolMember > getLbPoolMembers (List <NsxLoadBalancerMember > memberList , String tier1GatewayName ) {
461+ List <LBPoolMember > members = new ArrayList <>();
461462 for (NsxLoadBalancerMember member : memberList ) {
462463 try {
463464 String serverPoolMemberName = getServerPoolMemberName (tier1GatewayName , member .getVmId ());
464- LbPools lbPools = (LbPools ) nsxService .apply (LbPools .class );
465465 LBPoolMember lbPoolMember = new LBPoolMember .Builder ()
466466 .setDisplayName (serverPoolMemberName )
467467 .setIpAddress (member .getVmIp ())
468468 .setPort (String .valueOf (member .getPort ()))
469469 .build ();
470- LBPool lbPool = new LBPool .Builder ()
471- .setId (lbServerPoolName )
472- .setDisplayName (lbServerPoolName )
473- .setAlgorithm (getLoadBalancerAlgorithm (algorithm ))
474- .setMembers (List .of (lbPoolMember ))
475- .build ();
476- lbPools .patch (lbServerPoolName , lbPool );
470+ members .add (lbPoolMember );
477471 } catch (Error error ) {
478472 ApiError ae = error .getData ()._convertTo (ApiError .class );
479- String msg = String .format ("Failed to create NSX LB server pool, due to: %s" , ae .getErrorMessage ());
473+ String msg = String .format ("Failed to create NSX LB pool members , due to: %s" , ae .getErrorMessage ());
480474 LOGGER .error (msg );
481475 throw new CloudRuntimeException (msg );
482476 }
483477 }
478+ return members ;
479+ }
480+ public void createNsxLbServerPool (List <NsxLoadBalancerMember > memberList , String tier1GatewayName , String lbServerPoolName , String algorithm ) {
481+ try {
482+ List <LBPoolMember > members = getLbPoolMembers (memberList , tier1GatewayName );
483+ LbPools lbPools = (LbPools ) nsxService .apply (LbPools .class );
484+ LBPool lbPool = new LBPool .Builder ()
485+ .setId (lbServerPoolName )
486+ .setDisplayName (lbServerPoolName )
487+ .setAlgorithm (getLoadBalancerAlgorithm (algorithm ))
488+ .setMembers (members )
489+ .build ();
490+ lbPools .patch (lbServerPoolName , lbPool );
491+ } catch (Error error ) {
492+ ApiError ae = error .getData ()._convertTo (ApiError .class );
493+ String msg = String .format ("Failed to create NSX LB server pool, due to: %s" , ae .getErrorMessage ());
494+ LOGGER .error (msg );
495+ throw new CloudRuntimeException (msg );
496+ }
484497 }
485498
486499 public void createNsxLoadBalancer (String tier1GatewayName , long lbId ) {
0 commit comments