test_class.declarator: mockNw
test_class.modifier: @Mock
      protected
test_class.original_string: @Mock
      protected NetworkVO mockNw;
test_class.type: NetworkVO
test_class.var_name: mockNw
test_class.declarator: deployment
test_class.modifier: protected
test_class.original_string: protected RouterDeploymentDefinition deployment;
test_class.type: RouterDeploymentDefinition
test_class.var_name: deployment
test_class.file: server/src/test/java/org/cloud/network/router/deployment/RouterDeploymentDefinitionTest.java
test_class.identifier: RouterDeploymentDefinitionTest
test_class.superclass: extends RouterDeploymentDefinitionTestBase
test_case.body: @Test
      public void testFindDestinations() {
          // Prepare
          when(mockDataCenter.getNetworkType()).thenReturn(NetworkType.Basic);
          when(mockDestination.getPod()).thenReturn(null);
  
          // Stub local method listByDataCenterIdVMTypeAndStates
          mockPods.add(mockHostPodVO1);
          mockPods.add(mockHostPodVO2);
          mockPods.add(mockHostPodVO3);
          final RouterDeploymentDefinition deployment = spy(this.deployment);
          doReturn(mockPods).when(deployment).listByDataCenterIdVMTypeAndStates(
                  DATA_CENTER_ID, VirtualMachine.Type.User,
                  VirtualMachine.State.Starting, VirtualMachine.State.Running);
  
          // Leave this one empty to force adding add destination for this pod
          final List<DomainRouterVO> virtualRouters1 = new ArrayList<>();
          when(mockRouterDao.listByPodIdAndStates(POD_ID1,
                  VirtualMachine.State.Starting, VirtualMachine.State.Running)).thenReturn(virtualRouters1);
  
          // This list is not empty, so it will not add any for this pod, and continue with next pod
          final List<DomainRouterVO> virtualRouters2 = new ArrayList<>();
          final DomainRouterVO domainRouterVO1 = mock(DomainRouterVO.class);
          virtualRouters2.add(domainRouterVO1);
          when(mockRouterDao.listByPodIdAndStates(POD_ID2,
                  VirtualMachine.State.Starting, VirtualMachine.State.Running)).thenReturn(virtualRouters2);
  
          // Leave this last one empty to check we finally added more than one afterwards
          final List<DomainRouterVO> virtualRouters3 = new ArrayList<>();
          when(mockRouterDao.listByPodIdAndStates(POD_ID3,
                  VirtualMachine.State.Starting, VirtualMachine.State.Running)).thenReturn(virtualRouters3);
  
          // Execute
          final List<DeployDestination> destinations = deployment.findDestinations();
  
          // Assert that 2 were added (for the 1st and 3rd
          assertEquals("",
                  2, destinations.size());
          assertEquals("",
                  mockDataCenter, destinations.get(0).getDataCenter());
          assertEquals("",
                  mockHostPodVO1, destinations.get(0).getPod());
          assertEquals("",
                  mockDataCenter, destinations.get(1).getDataCenter());
          assertEquals("",
                  mockHostPodVO3, destinations.get(1).getPod());
      }
test_case.class_method_signature: RouterDeploymentDefinitionTest.testFindDestinations()
test_case.full_signature: @Test public void testFindDestinations()
test_case.identifier: testFindDestinations
test_case.invocations: thenReturn when getNetworkType thenReturn when getPod add add add spy listByDataCenterIdVMTypeAndStates when doReturn thenReturn when listByPodIdAndStates mock add thenReturn when listByPodIdAndStates thenReturn when listByPodIdAndStates findDestinations assertEquals size assertEquals getDataCenter get assertEquals getPod get assertEquals getDataCenter get assertEquals getPod get
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testFindDestinations()
focal_class.declarator: logger = LoggerFactory.getLogger(RouterDeploymentDefinition.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger logger = LoggerFactory.getLogger(RouterDeploymentDefinition.class);
focal_class.type: Logger
focal_class.var_name: logger
focal_class.declarator: LIMIT_NUMBER_OF_ROUTERS = 5
focal_class.modifier: protected static final
focal_class.original_string: protected static final int LIMIT_NUMBER_OF_ROUTERS = 5;
focal_class.type: int
focal_class.var_name: LIMIT_NUMBER_OF_ROUTERS
focal_class.declarator: MAX_NUMBER_OF_ROUTERS = 2
focal_class.modifier: protected static final
focal_class.original_string: protected static final int MAX_NUMBER_OF_ROUTERS = 2;
focal_class.type: int
focal_class.var_name: MAX_NUMBER_OF_ROUTERS
focal_class.declarator: networkDao
focal_class.modifier: protected
focal_class.original_string: protected NetworkDao networkDao;
focal_class.type: NetworkDao
focal_class.var_name: networkDao
focal_class.declarator: routerDao
focal_class.modifier: protected
focal_class.original_string: protected DomainRouterDao routerDao;
focal_class.type: DomainRouterDao
focal_class.var_name: routerDao
focal_class.declarator: physicalProviderDao
focal_class.modifier: protected
focal_class.original_string: protected PhysicalNetworkServiceProviderDao physicalProviderDao;
focal_class.type: PhysicalNetworkServiceProviderDao
focal_class.var_name: physicalProviderDao
focal_class.declarator: networkModel
focal_class.modifier: protected
focal_class.original_string: protected NetworkModel networkModel;
focal_class.type: NetworkModel
focal_class.var_name: networkModel
focal_class.declarator: vrProviderDao
focal_class.modifier: protected
focal_class.original_string: protected VirtualRouterProviderDao vrProviderDao;
focal_class.type: VirtualRouterProviderDao
focal_class.var_name: vrProviderDao
focal_class.declarator: networkOfferingDao
focal_class.modifier: protected
focal_class.original_string: protected NetworkOfferingDao networkOfferingDao;
focal_class.type: NetworkOfferingDao
focal_class.var_name: networkOfferingDao
focal_class.declarator: serviceOfferingDao
focal_class.modifier: protected
focal_class.original_string: protected ServiceOfferingDao serviceOfferingDao;
focal_class.type: ServiceOfferingDao
focal_class.var_name: serviceOfferingDao
focal_class.declarator: ipAddrMgr
focal_class.modifier: protected
focal_class.original_string: protected IpAddressManager ipAddrMgr;
focal_class.type: IpAddressManager
focal_class.var_name: ipAddrMgr
focal_class.declarator: vmDao
focal_class.modifier: protected
focal_class.original_string: protected VMInstanceDao vmDao;
focal_class.type: VMInstanceDao
focal_class.var_name: vmDao
focal_class.declarator: podDao
focal_class.modifier: protected
focal_class.original_string: protected HostPodDao podDao;
focal_class.type: HostPodDao
focal_class.var_name: podDao
focal_class.declarator: accountMgr
focal_class.modifier: protected
focal_class.original_string: protected AccountManager accountMgr;
focal_class.type: AccountManager
focal_class.var_name: accountMgr
focal_class.declarator: networkMgr
focal_class.modifier: protected
focal_class.original_string: protected NetworkOrchestrationService networkMgr;
focal_class.type: NetworkOrchestrationService
focal_class.var_name: networkMgr
focal_class.declarator: nicDao
focal_class.modifier: protected
focal_class.original_string: protected NicDao nicDao;
focal_class.type: NicDao
focal_class.var_name: nicDao
focal_class.declarator: ipv6Dao
focal_class.modifier: protected
focal_class.original_string: protected UserIpv6AddressDao ipv6Dao;
focal_class.type: UserIpv6AddressDao
focal_class.var_name: ipv6Dao
focal_class.declarator: ipAddressDao
focal_class.modifier: protected
focal_class.original_string: protected IPAddressDao ipAddressDao;
focal_class.type: IPAddressDao
focal_class.var_name: ipAddressDao
focal_class.declarator: vrProvider
focal_class.modifier: protected
focal_class.original_string: protected VirtualRouterProvider vrProvider;
focal_class.type: VirtualRouterProvider
focal_class.var_name: vrProvider
focal_class.declarator: nwHelper
focal_class.modifier: protected
focal_class.original_string: protected NetworkHelper nwHelper;
focal_class.type: NetworkHelper
focal_class.var_name: nwHelper
focal_class.declarator: guestNetwork
focal_class.modifier: protected
focal_class.original_string: protected Network guestNetwork;
focal_class.type: Network
focal_class.var_name: guestNetwork
focal_class.declarator: dest
focal_class.modifier: protected
focal_class.original_string: protected DeployDestination dest;
focal_class.type: DeployDestination
focal_class.var_name: dest
focal_class.declarator: owner
focal_class.modifier: protected
focal_class.original_string: protected Account owner;
focal_class.type: Account
focal_class.var_name: owner
focal_class.declarator: params
focal_class.modifier: protected
focal_class.original_string: protected Map<Param, Object> params;
focal_class.type: Map<Param, Object>
focal_class.var_name: params
focal_class.declarator: plan
focal_class.modifier: protected
focal_class.original_string: protected DeploymentPlan plan;
focal_class.type: DeploymentPlan
focal_class.var_name: plan
focal_class.declarator: routers = new ArrayList<>()
focal_class.modifier: protected
focal_class.original_string: protected List<DomainRouterVO> routers = new ArrayList<>();
focal_class.type: List<DomainRouterVO>
focal_class.var_name: routers
focal_class.declarator: serviceOfferingId
focal_class.modifier: protected
focal_class.original_string: protected Long serviceOfferingId;
focal_class.type: Long
focal_class.var_name: serviceOfferingId
focal_class.declarator: tableLockId
focal_class.modifier: protected
focal_class.original_string: protected Long tableLockId;
focal_class.type: Long
focal_class.var_name: tableLockId
focal_class.declarator: isPublicNetwork
focal_class.modifier: protected
focal_class.original_string: protected boolean isPublicNetwork;
focal_class.type: boolean
focal_class.var_name: isPublicNetwork
focal_class.declarator: sourceNatIp
focal_class.modifier: protected
focal_class.original_string: protected PublicIp sourceNatIp;
focal_class.type: PublicIp
focal_class.var_name: sourceNatIp
focal_class.file: server/src/main/java/org/cloud/network/router/deployment/RouterDeploymentDefinition.java
focal_class.identifier: RouterDeploymentDefinition
focal_class.class_method_signature: RouterDeploymentDefinition.RouterDeploymentDefinition(final Network guestNetwork, final DeployDestination dest,
                                           final Account owner, final Map<Param, Object> params)
focal_class.full_signature: protected  RouterDeploymentDefinition(final Network guestNetwork, final DeployDestination dest,
                                           final Account owner, final Map<Param, Object> params)
focal_class.identifier: RouterDeploymentDefinition
focal_class.modifiers: protected
focal_class.parameters: (final Network guestNetwork, final DeployDestination dest,
                                           final Account owner, final Map<Param, Object> params)
focal_class.signature:  RouterDeploymentDefinition(final Network guestNetwork, final DeployDestination dest,
                                           final Account owner, final Map<Param, Object> params)
focal_class.class_method_signature: RouterDeploymentDefinition.getServiceOfferingId()
focal_class.full_signature: public Long getServiceOfferingId()
focal_class.identifier: getServiceOfferingId
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Long
focal_class.signature: Long getServiceOfferingId()
focal_class.class_method_signature: RouterDeploymentDefinition.getVpc()
focal_class.full_signature: public Vpc getVpc()
focal_class.identifier: getVpc
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Vpc
focal_class.signature: Vpc getVpc()
focal_class.class_method_signature: RouterDeploymentDefinition.getGuestNetwork()
focal_class.full_signature: public Network getGuestNetwork()
focal_class.identifier: getGuestNetwork
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Network
focal_class.signature: Network getGuestNetwork()
focal_class.class_method_signature: RouterDeploymentDefinition.getDest()
focal_class.full_signature: public DeployDestination getDest()
focal_class.identifier: getDest
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: DeployDestination
focal_class.signature: DeployDestination getDest()
focal_class.class_method_signature: RouterDeploymentDefinition.getOwner()
focal_class.full_signature: public Account getOwner()
focal_class.identifier: getOwner
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Account
focal_class.signature: Account getOwner()
focal_class.class_method_signature: RouterDeploymentDefinition.getParams()
focal_class.full_signature: public Map<Param, Object> getParams()
focal_class.identifier: getParams
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Map<Param, Object>
focal_class.signature: Map<Param, Object> getParams()
focal_class.class_method_signature: RouterDeploymentDefinition.isRedundant()
focal_class.full_signature: public boolean isRedundant()
focal_class.identifier: isRedundant
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isRedundant()
focal_class.class_method_signature: RouterDeploymentDefinition.getPlan()
focal_class.full_signature: public DeploymentPlan getPlan()
focal_class.identifier: getPlan
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: DeploymentPlan
focal_class.signature: DeploymentPlan getPlan()
focal_class.class_method_signature: RouterDeploymentDefinition.isVpcRouter()
focal_class.full_signature: public boolean isVpcRouter()
focal_class.identifier: isVpcRouter
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isVpcRouter()
focal_class.class_method_signature: RouterDeploymentDefinition.getPod()
focal_class.full_signature: public Pod getPod()
focal_class.identifier: getPod
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Pod
focal_class.signature: Pod getPod()
focal_class.class_method_signature: RouterDeploymentDefinition.getPodId()
focal_class.full_signature: public Long getPodId()
focal_class.identifier: getPodId
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Long
focal_class.signature: Long getPodId()
focal_class.class_method_signature: RouterDeploymentDefinition.getRouters()
focal_class.full_signature: public List<DomainRouterVO> getRouters()
focal_class.identifier: getRouters
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: List<DomainRouterVO>
focal_class.signature: List<DomainRouterVO> getRouters()
focal_class.class_method_signature: RouterDeploymentDefinition.getVirtualProvider()
focal_class.full_signature: public VirtualRouterProvider getVirtualProvider()
focal_class.identifier: getVirtualProvider
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: VirtualRouterProvider
focal_class.signature: VirtualRouterProvider getVirtualProvider()
focal_class.class_method_signature: RouterDeploymentDefinition.isBasic()
focal_class.full_signature: public boolean isBasic()
focal_class.identifier: isBasic
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isBasic()
focal_class.class_method_signature: RouterDeploymentDefinition.isPublicNetwork()
focal_class.full_signature: public boolean isPublicNetwork()
focal_class.identifier: isPublicNetwork
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isPublicNetwork()
focal_class.class_method_signature: RouterDeploymentDefinition.getSourceNatIP()
focal_class.full_signature: public PublicIp getSourceNatIP()
focal_class.identifier: getSourceNatIP
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: PublicIp
focal_class.signature: PublicIp getSourceNatIP()
focal_class.class_method_signature: RouterDeploymentDefinition.needsPublicNic()
focal_class.full_signature: public boolean needsPublicNic()
focal_class.identifier: needsPublicNic
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean needsPublicNic()
focal_class.class_method_signature: RouterDeploymentDefinition.hasSourceNatService()
focal_class.full_signature: public boolean hasSourceNatService()
focal_class.identifier: hasSourceNatService
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean hasSourceNatService()
focal_class.class_method_signature: RouterDeploymentDefinition.generateDeploymentPlan()
focal_class.full_signature: protected void generateDeploymentPlan()
focal_class.identifier: generateDeploymentPlan
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void generateDeploymentPlan()
focal_class.class_method_signature: RouterDeploymentDefinition.deployVirtualRouter()
focal_class.full_signature: public List<DomainRouterVO> deployVirtualRouter()
focal_class.identifier: deployVirtualRouter
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: List<DomainRouterVO>
focal_class.signature: List<DomainRouterVO> deployVirtualRouter()
focal_class.class_method_signature: RouterDeploymentDefinition.isRouterDeployed()
focal_class.full_signature: private boolean isRouterDeployed()
focal_class.identifier: isRouterDeployed
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isRouterDeployed()
focal_class.class_method_signature: RouterDeploymentDefinition.findOrDeployVirtualRouter()
focal_class.full_signature: @DB protected void findOrDeployVirtualRouter()
focal_class.identifier: findOrDeployVirtualRouter
focal_class.modifiers: @DB protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void findOrDeployVirtualRouter()
focal_class.class_method_signature: RouterDeploymentDefinition.lock()
focal_class.full_signature: protected void lock()
focal_class.identifier: lock
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void lock()
focal_class.class_method_signature: RouterDeploymentDefinition.unlock()
focal_class.full_signature: protected void unlock()
focal_class.identifier: unlock
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void unlock()
focal_class.class_method_signature: RouterDeploymentDefinition.checkPreconditions()
focal_class.full_signature: protected void checkPreconditions()
focal_class.identifier: checkPreconditions
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void checkPreconditions()
focal_class.class_method_signature: RouterDeploymentDefinition.findDestinations()
focal_class.full_signature: protected List<DeployDestination> findDestinations()
focal_class.identifier: findDestinations
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: List<DeployDestination>
focal_class.signature: List<DeployDestination> findDestinations()
focal_class.class_method_signature: RouterDeploymentDefinition.getNumberOfRoutersToDeploy()
focal_class.full_signature: protected int getNumberOfRoutersToDeploy()
focal_class.identifier: getNumberOfRoutersToDeploy
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getNumberOfRoutersToDeploy()
focal_class.class_method_signature: RouterDeploymentDefinition.setupAccountOwner()
focal_class.full_signature: protected void setupAccountOwner()
focal_class.identifier: setupAccountOwner
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void setupAccountOwner()
focal_class.class_method_signature: RouterDeploymentDefinition.prepareDeployment()
focal_class.full_signature: protected boolean prepareDeployment()
focal_class.identifier: prepareDeployment
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean prepareDeployment()
focal_class.class_method_signature: RouterDeploymentDefinition.executeDeployment()
focal_class.full_signature: protected void executeDeployment()
focal_class.identifier: executeDeployment
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void executeDeployment()
focal_class.class_method_signature: RouterDeploymentDefinition.findSourceNatIP()
focal_class.full_signature: protected void findSourceNatIP()
focal_class.identifier: findSourceNatIP
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void findSourceNatIP()
focal_class.class_method_signature: RouterDeploymentDefinition.findDefaultServiceOfferingId()
focal_class.full_signature: protected void findDefaultServiceOfferingId()
focal_class.identifier: findDefaultServiceOfferingId
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void findDefaultServiceOfferingId()
focal_class.class_method_signature: RouterDeploymentDefinition.findServiceOfferingId()
focal_class.full_signature: protected void findServiceOfferingId()
focal_class.identifier: findServiceOfferingId
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void findServiceOfferingId()
focal_class.class_method_signature: RouterDeploymentDefinition.findVirtualProvider()
focal_class.full_signature: protected void findVirtualProvider()
focal_class.identifier: findVirtualProvider
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void findVirtualProvider()
focal_class.class_method_signature: RouterDeploymentDefinition.deployAllVirtualRouters()
focal_class.full_signature: protected void deployAllVirtualRouters()
focal_class.identifier: deployAllVirtualRouters
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void deployAllVirtualRouters()
focal_class.class_method_signature: RouterDeploymentDefinition.listByDataCenterIdVMTypeAndStates(final long id, final VirtualMachine.Type type, final VirtualMachine.State... states)
focal_class.full_signature: protected List<HostPodVO> listByDataCenterIdVMTypeAndStates(final long id, final VirtualMachine.Type type, final VirtualMachine.State... states)
focal_class.identifier: listByDataCenterIdVMTypeAndStates
focal_class.modifiers: protected
focal_class.parameters: (final long id, final VirtualMachine.Type type, final VirtualMachine.State... states)
focal_class.return: List<HostPodVO>
focal_class.signature: List<HostPodVO> listByDataCenterIdVMTypeAndStates(final long id, final VirtualMachine.Type type, final VirtualMachine.State... states)
focal_class.class_method_signature: RouterDeploymentDefinition.planDeploymentRouters()
focal_class.full_signature: protected void planDeploymentRouters()
focal_class.identifier: planDeploymentRouters
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void planDeploymentRouters()
focal_class.class_method_signature: RouterDeploymentDefinition.routersNeedReset()
focal_class.full_signature: protected boolean routersNeedReset()
focal_class.identifier: routersNeedReset
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean routersNeedReset()
focal_method.body: protected List<DeployDestination> findDestinations() {
          // dest has pod=null, for Basic Zone findOrDeployVRs for all Pods
          final List<DeployDestination> destinations = new ArrayList<DeployDestination>();
  
          // for basic zone, if 'dest' has pod set to null then this is network
          // restart scenario otherwise it is a vm deployment scenario
          if (isBasic() && dest.getPod() == null) {
              // Find all pods in the data center with running or starting user vms
              final long dcId = dest.getDataCenter().getId();
              final List<HostPodVO> pods = listByDataCenterIdVMTypeAndStates(dcId, VirtualMachine.Type.User, VirtualMachine.State.Starting, VirtualMachine.State.Running);
  
              // Loop through all the pods skip those with running or starting VRs
              for (final HostPodVO pod : pods) {
                  // Get list of VRs in starting or running state
                  final long podId = pod.getId();
                  final List<DomainRouterVO> virtualRouters = routerDao.listByPodIdAndStates(podId, VirtualMachine.State.Starting, VirtualMachine.State.Running);
  
                  if (virtualRouters.size() > 1) {
                      // FIXME Find or create a better and more specific exception for this
                      throw new CloudRuntimeException("Pod can have utmost one VR in Basic Zone, please check!");
                  }
  
                  // Add virtualRouters to the routers, this avoids the situation when
                  // all routers are skipped and VirtualRouterElement throws exception
                  routers.addAll(virtualRouters);
  
                  // If List size is one, we already have a starting or running VR, skip deployment
                  if (virtualRouters.size() == 1) {
                      logger.debug("Skipping VR deployment: Found a running or starting VR in Pod " + pod.getName() + " id=" + podId);
                      continue;
                  }
                  // Add new DeployDestination for this pod
                  destinations.add(new DeployDestination(dest.getDataCenter(), pod, null, null));
              }
          } else {
              // Else, just add the supplied dest
              destinations.add(dest);
          }
          return destinations;
      }
focal_method.class_method_signature: RouterDeploymentDefinition.findDestinations()
focal_method.full_signature: protected List<DeployDestination> findDestinations()
focal_method.identifier: findDestinations
focal_method.invocations: isBasic getPod getId getDataCenter listByDataCenterIdVMTypeAndStates getId listByPodIdAndStates size addAll size debug getName add getDataCenter add
focal_method.modifiers: protected
focal_method.parameters: ()
focal_method.return: List<DeployDestination>
focal_method.signature: List<DeployDestination> findDestinations()