@@ -1475,39 +1475,52 @@ public void orchestrateStart(final String vmUuid, final Map<VirtualMachineProfil
14751475 }
14761476
14771477 public void setVmNetworkDetails (VMInstanceVO vm , VirtualMachineTO vmTO ) {
1478+ Map <Long , String > networkToNetworkNameMap = new HashMap <>();
14781479 if (VirtualMachine .Type .User .equals (vm .getType ())) {
14791480 List <UserVmJoinVO > userVmJoinVOs = userVmJoinDao .searchByIds (vm .getId ());
1480- Map <Long , String > networkToNetworkNameMap = new HashMap <>();
14811481 if (userVmJoinVOs != null && !userVmJoinVOs .isEmpty ()) {
14821482 for (UserVmJoinVO userVmJoinVO : userVmJoinVOs ) {
1483- NetworkVO networkVO = _networkDao .findById (userVmJoinVO .getNetworkId ());
1484- Account acc = accountDao .findById (networkVO .getAccountId ());
1485- Domain domain = domainDao .findById (networkVO .getDomainId ());
1486- DataCenter zone = _dcDao .findById (vm .getDataCenterId ());
1487- if (Objects .isNull (zone )) {
1488- throw new CloudRuntimeException (String .format ("Failed to find zone with ID: %s" , vm .getDataCenterId ()));
1489- }
1490- if (Objects .isNull (acc )) {
1491- throw new CloudRuntimeException (String .format ("Failed to find account with ID: %s" , networkVO .getAccountId ()));
1492- }
1493- if (Objects .isNull (domain )) {
1494- throw new CloudRuntimeException (String .format ("Failed to find domain with ID: %s" , networkVO .getDomainId ()));
1495- }
1496- String networkName = String .format ("D%s-A%s-Z%s" , domain .getId (), acc .getId (), zone .getId ());
1497- if (Objects .isNull (networkVO .getVpcId ())) {
1498- networkName += "-S" +networkVO .getId ();
1499- } else {
1500- VpcVO vpc = vpcDao .findById (networkVO .getVpcId ());
1501- if (Objects .isNull (vpc )) {
1502- throw new CloudRuntimeException (String .format ("Failed to find VPC with ID: %s" , networkVO .getVpcId ()));
1503- }
1504- networkName = String .format ("%s-V%s-S%s" , networkName , vpc .getId (), networkVO .getId ());
1505- }
1506- networkToNetworkNameMap .put (networkVO .getId (), networkName );
1483+ addToNetworkNameMap (userVmJoinVO .getNetworkId (), vm .getDataCenterId (), networkToNetworkNameMap );
15071484 }
15081485 vmTO .setNetworkIdToNetworkNameMap (networkToNetworkNameMap );
15091486 }
1487+ } else if (VirtualMachine .Type .DomainRouter .equals (vm .getType ())) {
1488+ List <DomainRouterJoinVO > routerJoinVO = domainRouterJoinDao .getRouterByIdAndTrafficType (vm .getId (), Networks .TrafficType .Guest );
1489+ for (DomainRouterJoinVO router : routerJoinVO ) {
1490+ NetworkVO guestNetwork = _networkDao .findById (router .getNetworkId ());
1491+ if (guestNetwork .getVpcId () == null && guestNetwork .getBroadcastDomainType () == Networks .BroadcastDomainType .NSX ) {
1492+ addToNetworkNameMap (router .getNetworkId (), vm .getDataCenterId (), networkToNetworkNameMap );
1493+ }
1494+ }
1495+ vmTO .setNetworkIdToNetworkNameMap (networkToNetworkNameMap );
1496+ }
1497+ }
1498+
1499+ private void addToNetworkNameMap (long networkId , long dataCenterId , Map <Long , String > networkToNetworkNameMap ) {
1500+ NetworkVO networkVO = _networkDao .findById (networkId );
1501+ Account acc = accountDao .findById (networkVO .getAccountId ());
1502+ Domain domain = domainDao .findById (networkVO .getDomainId ());
1503+ DataCenter zone = _dcDao .findById (dataCenterId );
1504+ if (Objects .isNull (zone )) {
1505+ throw new CloudRuntimeException (String .format ("Failed to find zone with ID: %s" , dataCenterId ));
1506+ }
1507+ if (Objects .isNull (acc )) {
1508+ throw new CloudRuntimeException (String .format ("Failed to find account with ID: %s" , networkVO .getAccountId ()));
1509+ }
1510+ if (Objects .isNull (domain )) {
1511+ throw new CloudRuntimeException (String .format ("Failed to find domain with ID: %s" , networkVO .getDomainId ()));
1512+ }
1513+ String networkName = String .format ("D%s-A%s-Z%s" , domain .getId (), acc .getId (), zone .getId ());
1514+ if (Objects .isNull (networkVO .getVpcId ())) {
1515+ networkName += "-S" +networkVO .getId ();
1516+ } else {
1517+ VpcVO vpc = vpcDao .findById (networkVO .getVpcId ());
1518+ if (Objects .isNull (vpc )) {
1519+ throw new CloudRuntimeException (String .format ("Failed to find VPC with ID: %s" , networkVO .getVpcId ()));
1520+ }
1521+ networkName = String .format ("%s-V%s-S%s" , networkName , vpc .getId (), networkVO .getId ());
15101522 }
1523+ networkToNetworkNameMap .put (networkVO .getId (), networkName );
15111524 }
15121525
15131526 private void logBootModeParameters (Map <VirtualMachineProfile .Param , Object > params ) {
0 commit comments