5555import com .cloud .utils .exception .CloudRuntimeException ;
5656import org .apache .cloudstack .api .command .user .bgp .ListASNumbersCmd ;
5757import org .apache .cloudstack .context .CallContext ;
58+ import org .apache .cloudstack .network .BgpPeer ;
5859import org .apache .cloudstack .network .BgpPeerVO ;
5960import org .apache .cloudstack .network .RoutedIpv4Manager ;
6061import org .apache .cloudstack .network .dao .BgpPeerDao ;
@@ -395,19 +396,7 @@ public boolean applyBgpPeers(Network network, boolean continueOnError) throws Re
395396 if (gatewayProviderStr != null ) {
396397 NetworkElement provider = networkModel .getElementImplementingProvider (gatewayProviderStr );
397398 if (provider != null && provider instanceof BgpServiceProvider ) {
398- List <BgpPeerVO > bgpPeers ;
399- if (network .getVpcId () != null ) {
400- bgpPeers = bgpPeerDao .listNonRevokeByVpcId (network .getVpcId ());
401- } else {
402- bgpPeers = bgpPeerDao .listNonRevokeByNetworkId (network .getId ());
403- }
404- if (CollectionUtils .isEmpty (bgpPeers )) {
405- Account owner = accountDao .findByIdIncludingRemoved (network .getAccountId ());
406- List <Long > bgpPeerIds = routedIpv4Manager .getBgpPeerIdsForAccount (owner , network .getDataCenterId ());
407- bgpPeers = bgpPeerIds .stream ()
408- .map (bgpPeerId -> bgpPeerDao .findById (bgpPeerId ))
409- .collect (Collectors .toList ());
410- }
399+ List <? extends BgpPeer > bgpPeers = getBgpPeersForNetwork (network );
411400 LOGGER .debug (String .format ("Applying BPG Peers for network [%s]: [%s]" , network , bgpPeers ));
412401 return ((BgpServiceProvider ) provider ).applyBgpPeers (null , network , bgpPeers );
413402 }
@@ -424,19 +413,43 @@ public boolean applyBgpPeers(Vpc vpc, boolean continueOnError) throws ResourceUn
424413 if (gatewayProviderStr != null ) {
425414 NetworkElement provider = networkModel .getElementImplementingProvider (gatewayProviderStr );
426415 if (provider != null && provider instanceof BgpServiceProvider ) {
427- List <BgpPeerVO > bgpPeers = bgpPeerDao .listNonRevokeByVpcId (vpc .getId ());
428- if (CollectionUtils .isEmpty (bgpPeers )) {
429- Account owner = accountDao .findByIdIncludingRemoved (vpc .getAccountId ());
430- List <Long > bgpPeerIds = routedIpv4Manager .getBgpPeerIdsForAccount (owner , vpc .getZoneId ());
431- bgpPeers = bgpPeerIds .stream ()
432- .map (bgpPeerId -> bgpPeerDao .findById (bgpPeerId ))
433- .collect (Collectors .toList ());
434- }
416+ List <? extends BgpPeer > bgpPeers = getBgpPeersForVpc (vpc );
435417 LOGGER .debug (String .format ("Applying BPG Peers for VPC [%s]: [%s]" , vpc , bgpPeers ));
436418 return ((BgpServiceProvider ) provider ).applyBgpPeers (vpc , null , bgpPeers );
437419
438420 }
439421 }
440422 return true ;
441423 }
424+
425+ @ Override
426+ public List <? extends BgpPeer > getBgpPeersForNetwork (Network network ) {
427+ List <BgpPeerVO > bgpPeers ;
428+ if (network .getVpcId () != null ) {
429+ bgpPeers = bgpPeerDao .listNonRevokeByVpcId (network .getVpcId ());
430+ } else {
431+ bgpPeers = bgpPeerDao .listNonRevokeByNetworkId (network .getId ());
432+ }
433+ if (CollectionUtils .isEmpty (bgpPeers )) {
434+ Account owner = accountDao .findByIdIncludingRemoved (network .getAccountId ());
435+ List <Long > bgpPeerIds = routedIpv4Manager .getBgpPeerIdsForAccount (owner , network .getDataCenterId ());
436+ bgpPeers = bgpPeerIds .stream ()
437+ .map (bgpPeerId -> bgpPeerDao .findById (bgpPeerId ))
438+ .collect (Collectors .toList ());
439+ }
440+ return bgpPeers ;
441+ }
442+
443+ @ Override
444+ public List <? extends BgpPeer > getBgpPeersForVpc (Vpc vpc ) {
445+ List <BgpPeerVO > bgpPeers = bgpPeerDao .listNonRevokeByVpcId (vpc .getId ());
446+ if (CollectionUtils .isEmpty (bgpPeers )) {
447+ Account owner = accountDao .findByIdIncludingRemoved (vpc .getAccountId ());
448+ List <Long > bgpPeerIds = routedIpv4Manager .getBgpPeerIdsForAccount (owner , vpc .getZoneId ());
449+ bgpPeers = bgpPeerIds .stream ()
450+ .map (bgpPeerId -> bgpPeerDao .findById (bgpPeerId ))
451+ .collect (Collectors .toList ());
452+ }
453+ return bgpPeers ;
454+ }
442455}
0 commit comments