@@ -461,30 +461,43 @@ public void createPortForwardingRule(String ruleName, String tier1GatewayName, S
461461 }
462462 }
463463
464- public void createNsxLbServerPool (List <NsxLoadBalancerMember > memberList , String tier1GatewayName , String lbServerPoolName , String algorithm ) {
464+ List <LBPoolMember > getLbPoolMembers (List <NsxLoadBalancerMember > memberList , String tier1GatewayName ) {
465+ List <LBPoolMember > members = new ArrayList <>();
465466 for (NsxLoadBalancerMember member : memberList ) {
466467 try {
467468 String serverPoolMemberName = getServerPoolMemberName (tier1GatewayName , member .getVmId ());
468- LbPools lbPools = (LbPools ) nsxService .apply (LbPools .class );
469469 LBPoolMember lbPoolMember = new LBPoolMember .Builder ()
470470 .setDisplayName (serverPoolMemberName )
471471 .setIpAddress (member .getVmIp ())
472472 .setPort (String .valueOf (member .getPort ()))
473473 .build ();
474- LBPool lbPool = new LBPool .Builder ()
475- .setId (lbServerPoolName )
476- .setDisplayName (lbServerPoolName )
477- .setAlgorithm (getLoadBalancerAlgorithm (algorithm ))
478- .setMembers (List .of (lbPoolMember ))
479- .build ();
480- lbPools .patch (lbServerPoolName , lbPool );
474+ members .add (lbPoolMember );
481475 } catch (Error error ) {
482476 ApiError ae = error .getData ()._convertTo (ApiError .class );
483- String msg = String .format ("Failed to create NSX LB server pool, due to: %s" , ae .getErrorMessage ());
477+ String msg = String .format ("Failed to create NSX LB pool members , due to: %s" , ae .getErrorMessage ());
484478 LOGGER .error (msg );
485479 throw new CloudRuntimeException (msg );
486480 }
487481 }
482+ return members ;
483+ }
484+ public void createNsxLbServerPool (List <NsxLoadBalancerMember > memberList , String tier1GatewayName , String lbServerPoolName , String algorithm ) {
485+ try {
486+ List <LBPoolMember > members = getLbPoolMembers (memberList , tier1GatewayName );
487+ LbPools lbPools = (LbPools ) nsxService .apply (LbPools .class );
488+ LBPool lbPool = new LBPool .Builder ()
489+ .setId (lbServerPoolName )
490+ .setDisplayName (lbServerPoolName )
491+ .setAlgorithm (getLoadBalancerAlgorithm (algorithm ))
492+ .setMembers (members )
493+ .build ();
494+ lbPools .patch (lbServerPoolName , lbPool );
495+ } catch (Error error ) {
496+ ApiError ae = error .getData ()._convertTo (ApiError .class );
497+ String msg = String .format ("Failed to create NSX LB server pool, due to: %s" , ae .getErrorMessage ());
498+ LOGGER .error (msg );
499+ throw new CloudRuntimeException (msg );
500+ }
488501 }
489502
490503 public void createNsxLoadBalancer (String tier1GatewayName , long lbId ) {
0 commit comments