[ 
https://issues.apache.org/jira/browse/CLOUDSTACK-10292?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16476085#comment-16476085
 ] 

ASF GitHub Bot commented on CLOUDSTACK-10292:
---------------------------------------------

rhtyd closed pull request #2455: CLOUDSTACK-10292:Hostname in metadata when 
using external DNS is inco…
URL: https://github.com/apache/cloudstack/pull/2455
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/api/src/main/java/com/cloud/network/NetworkModel.java 
b/api/src/main/java/com/cloud/network/NetworkModel.java
index 5e9839449c8..c6d75aec7e4 100644
--- a/api/src/main/java/com/cloud/network/NetworkModel.java
+++ b/api/src/main/java/com/cloud/network/NetworkModel.java
@@ -310,7 +310,7 @@
     boolean getNetworkEgressDefaultPolicy(Long networkId);
 
     List<String[]> generateVmData(String userData, String serviceOffering, 
String zoneName,
-                                  String vmName, long vmId, String publicKey, 
String password, Boolean isWindows);
+                                  String vmName, String vmHostName, long vmId, 
String publicKey, String password, Boolean isWindows);
 
     String getValidNetworkCidr(Network guestNetwork);
 
diff --git 
a/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java
 
b/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java
index 375b0910624..2e451067e52 100755
--- 
a/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java
+++ 
b/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java
@@ -2526,7 +2526,7 @@ private void orchestrateMigrateWithStorage(final String 
vmUuid, final long srcHo
                     final String zoneName = 
_dcDao.findById(vm.getDataCenterId()).getName();
                     boolean isWindows = 
_guestOSCategoryDao.findById(_guestOSDao.findById(vm.getGuestOSId()).getCategoryId()).getName().equalsIgnoreCase("Windows");
 
-                    vmData = 
_networkModel.generateVmData(userVm.getUserData(), serviceOffering, zoneName, 
vm.getInstanceName(), vm.getId(),
+                    vmData = 
_networkModel.generateVmData(userVm.getUserData(), serviceOffering, zoneName, 
vm.getInstanceName(), vm.getHostName(), vm.getId(),
                             (String) 
profile.getParameter(VirtualMachineProfile.Param.VmSshPubKey), (String) 
profile.getParameter(VirtualMachineProfile.Param.VmPassword), isWindows);
                     String vmName = vm.getInstanceName();
                     String configDriveIsoRootFolder = "/tmp";
diff --git a/server/src/main/java/com/cloud/network/NetworkModelImpl.java 
b/server/src/main/java/com/cloud/network/NetworkModelImpl.java
index a008bdfcd1b..e5ee8ddef8c 100644
--- a/server/src/main/java/com/cloud/network/NetworkModelImpl.java
+++ b/server/src/main/java/com/cloud/network/NetworkModelImpl.java
@@ -2345,7 +2345,7 @@ public boolean getNetworkEgressDefaultPolicy(Long 
networkId) {
 
     @Override
     public List<String[]> generateVmData(String userData, String 
serviceOffering, String zoneName,
-                                         String vmName, long vmId, String 
publicKey, String password, Boolean isWindows) {
+                                         String vmName, String hostName, long 
vmId, String publicKey, String password, Boolean isWindows) {
         final List<String[]> vmData = new ArrayList<String[]>();
 
         if (userData != null) {
@@ -2353,7 +2353,7 @@ public boolean getNetworkEgressDefaultPolicy(Long 
networkId) {
         }
         vmData.add(new String[]{METATDATA_DIR, SERVICE_OFFERING_FILE, 
StringUtils.unicodeEscape(serviceOffering)});
         vmData.add(new String[]{METATDATA_DIR, AVAILABILITY_ZONE_FILE, 
StringUtils.unicodeEscape(zoneName)});
-        vmData.add(new String[]{METATDATA_DIR, LOCAL_HOSTNAME_FILE, 
StringUtils.unicodeEscape(vmName)});
+        vmData.add(new String[]{METATDATA_DIR, LOCAL_HOSTNAME_FILE, 
StringUtils.unicodeEscape(hostName)});
         vmData.add(new String[]{METATDATA_DIR, INSTANCE_ID_FILE, vmName});
         vmData.add(new String[]{METATDATA_DIR, VM_ID_FILE, 
String.valueOf(vmId)});
         vmData.add(new String[]{METATDATA_DIR, PUBLIC_KEYS_FILE, publicKey});
diff --git 
a/server/src/main/java/com/cloud/network/element/ConfigDriveNetworkElement.java 
b/server/src/main/java/com/cloud/network/element/ConfigDriveNetworkElement.java
index 8c0f5009874..d45569dbc06 100644
--- 
a/server/src/main/java/com/cloud/network/element/ConfigDriveNetworkElement.java
+++ 
b/server/src/main/java/com/cloud/network/element/ConfigDriveNetworkElement.java
@@ -374,7 +374,7 @@ private boolean updateConfigDrive(VirtualMachineProfile 
profile, String publicKe
             final String zoneName = 
_dcDao.findById(vm.getDataCenterId()).getName();
             boolean isWindows = 
_guestOSCategoryDao.findById(_guestOSDao.findById(vm.getGuestOSId()).getCategoryId()).getName().equalsIgnoreCase("Windows");
 
-            List<String[]> vmData = 
_networkModel.generateVmData(vm.getUserData(), serviceOffering, zoneName, 
vm.getInstanceName(), vm.getId(),
+            List<String[]> vmData = 
_networkModel.generateVmData(vm.getUserData(), serviceOffering, zoneName, 
vm.getInstanceName(), vm.getHostName(), vm.getId(),
                     publicKey, (String) 
profile.getParameter(VirtualMachineProfile.Param.VmPassword), isWindows);
             profile.setVmData(vmData);
             
profile.setConfigDriveLabel(VirtualMachineManager.VmConfigDriveLabel.value());
diff --git a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java 
b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java
index dab741c3c27..c622377511c 100644
--- a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java
+++ b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java
@@ -4126,7 +4126,7 @@ public boolean 
finalizeVirtualMachineProfile(VirtualMachineProfile profile, Depl
                 final String zoneName = 
_dcDao.findById(vm.getDataCenterId()).getName();
                 boolean isWindows = 
_guestOSCategoryDao.findById(_guestOSDao.findById(vm.getGuestOSId()).getCategoryId()).getName().equalsIgnoreCase("Windows");
 
-                List<String[]> vmData = 
_networkModel.generateVmData(vm.getUserData(), serviceOffering, zoneName, 
vm.getInstanceName(), vm.getId(),
+                List<String[]> vmData = 
_networkModel.generateVmData(vm.getUserData(), serviceOffering, zoneName, 
vm.getInstanceName(), vm.getHostName(), vm.getId(),
                         (String) 
profile.getParameter(VirtualMachineProfile.Param.VmSshPubKey), (String) 
profile.getParameter(VirtualMachineProfile.Param.VmPassword), isWindows);
                 String vmName = vm.getInstanceName();
                 String configDriveIsoRootFolder = "/tmp";
diff --git a/server/src/test/java/com/cloud/network/MockNetworkModelImpl.java 
b/server/src/test/java/com/cloud/network/MockNetworkModelImpl.java
index 3c3fd7097cd..8a8e8cbaa18 100644
--- a/server/src/test/java/com/cloud/network/MockNetworkModelImpl.java
+++ b/server/src/test/java/com/cloud/network/MockNetworkModelImpl.java
@@ -898,7 +898,7 @@ public boolean getNetworkEgressDefaultPolicy(Long 
networkId) {
     }
 
     @Override
-    public List<String[]> generateVmData(String userData, String 
serviceOffering, String zoneName, String vmName, long vmId, String publicKey, 
String password, Boolean isWindows) {
+    public List<String[]> generateVmData(String userData, String 
serviceOffering, String zoneName, String vmName, String vmHostName, long vmId, 
String publicKey, String password, Boolean isWindows) {
         return null;
     }
 
diff --git 
a/server/src/test/java/com/cloud/network/element/ConfigDriveNetworkElementTest.java
 
b/server/src/test/java/com/cloud/network/element/ConfigDriveNetworkElementTest.java
index 11da24f95df..0d24684c9cf 100644
--- 
a/server/src/test/java/com/cloud/network/element/ConfigDriveNetworkElementTest.java
+++ 
b/server/src/test/java/com/cloud/network/element/ConfigDriveNetworkElementTest.java
@@ -97,6 +97,7 @@
     private final long DATACENTERID = NETWORK_ID;
     private final String ZONENAME = "zone1";
     private final String VMINSTANCENAME = "vm_name";
+    private final String VMHOSTNAME = "vm_host_name";
     private final String VMOFFERING = "custom_instance";
     private final long VMID = 30L;
     private final String VMUSERDATA = "userdata";
@@ -160,6 +161,7 @@ public void setUp() throws NoSuchFieldException, 
IllegalAccessException {
         when(virtualMachine.getId()).thenReturn(VMID);
         when(virtualMachine.getServiceOfferingId()).thenReturn(SOID);
         when(virtualMachine.getDataCenterId()).thenReturn(DATACENTERID);
+        when(virtualMachine.getHostName()).thenReturn(VMHOSTNAME);
         when(virtualMachine.getInstanceName()).thenReturn(VMINSTANCENAME);
         
when(virtualMachine.getUserData()).thenReturn(Base64.encode(VMUSERDATA.getBytes()));
         when(deployDestination.getHost()).thenReturn(hostVO);
@@ -260,7 +262,7 @@ public void testAddPasswordAndUserdata() throws 
InsufficientCapacityException, R
                 new String[]{"userdata", "user_data", VMUSERDATA},
                 new String[]{"metadata", "service-offering", VMOFFERING},
                 new String[]{"metadata", "availability-zone", ZONENAME},
-                new String[]{"metadata", "local-hostname", VMINSTANCENAME},
+                new String[]{"metadata", "local-hostname", VMHOSTNAME},
                 new String[]{"metadata", "vm-id", String.valueOf(VMID)},
                 new String[]{"metadata", "instance-id", 
String.valueOf(VMINSTANCENAME)},
                 new String[]{"metadata", "public-keys", PUBLIC_KEY},
diff --git a/server/src/test/java/com/cloud/vpc/MockNetworkModelImpl.java 
b/server/src/test/java/com/cloud/vpc/MockNetworkModelImpl.java
index 50d9b0f6425..c433201eb3e 100644
--- a/server/src/test/java/com/cloud/vpc/MockNetworkModelImpl.java
+++ b/server/src/test/java/com/cloud/vpc/MockNetworkModelImpl.java
@@ -913,7 +913,7 @@ public boolean getNetworkEgressDefaultPolicy(Long 
networkId) {
     }
 
     @Override
-    public List<String[]> generateVmData(String userData, String 
serviceOffering, String zoneName, String vmName, long vmId, String publicKey, 
String password, Boolean isWindows) {
+    public List<String[]> generateVmData(String userData, String 
serviceOffering, String zoneName, String vmName, String vmHostName, long vmId, 
String publicKey, String password, Boolean isWindows) {
         return null;
     }
 


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Hostname in metadata when using external DNS is incorrect
> ---------------------------------------------------------
>
>                 Key: CLOUDSTACK-10292
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-10292
>             Project: CloudStack
>          Issue Type: Bug
>      Security Level: Public(Anyone can view this level - this is the 
> default.) 
>            Reporter: mrunalini
>            Priority: Major
>
> In the current implementation, both the local-hostname and instance-id in the 
> metadata are pointing to same thing when VM is deployed in a network with 
> Network Offering that has no services. 
> The metadata for the VM is presented in configdrive.iso for a VM having 
> network with network offering that has no services. However the metadata 
> doesn't have any info around the name of the VM user has passed when 
> deploying the VM, instead the local_hostname.txt in the metadata refers to VM 
> internal name "i-12-254-VM" doesn't it needs to be the name of the VM user 
> has passed when creating the VM?
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to