From 71bbbb7718c716501139fa76b3bdd7502314ddf6 Mon Sep 17 00:00:00 2001 From: Kris Sterckx Date: Tue, 31 Jul 2018 09:30:35 +0200 Subject: [PATCH 1/4] vmware: Fixes #2759 config drive iso path for Vmware (#2769) Fix config drive iso path on Vmware. Use constant. --- .../vmware/resource/VmwareResource.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java index d2e8b91d7f0..ef21dd7960f 100644 --- a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java +++ b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java @@ -25,8 +25,6 @@ import java.net.URI; import java.net.URL; import java.nio.channels.SocketChannel; import java.rmi.RemoteException; - -import com.cloud.configuration.Resource.ResourceType; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -42,13 +40,15 @@ import java.util.Random; import java.util.Set; import java.util.TimeZone; import java.util.UUID; + import javax.naming.ConfigurationException; -import org.apache.commons.lang.math.NumberUtils; import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.math.NumberUtils; import org.apache.log4j.Logger; import org.apache.log4j.NDC; import org.joda.time.Duration; + import com.google.gson.Gson; import com.vmware.vim25.AboutInfo; import com.vmware.vim25.BoolPolicy; @@ -62,6 +62,7 @@ import com.vmware.vim25.DistributedVirtualPort; import com.vmware.vim25.DistributedVirtualSwitchPortConnection; import com.vmware.vim25.DistributedVirtualSwitchPortCriteria; import com.vmware.vim25.DynamicProperty; +import com.vmware.vim25.GuestInfo; import com.vmware.vim25.HostCapability; import com.vmware.vim25.HostHostBusAdapter; import com.vmware.vim25.HostInternetScsiHba; @@ -99,6 +100,7 @@ import com.vmware.vim25.VirtualMachinePowerState; import com.vmware.vim25.VirtualMachineRelocateSpec; import com.vmware.vim25.VirtualMachineRelocateSpecDiskLocator; import com.vmware.vim25.VirtualMachineRuntimeInfo; +import com.vmware.vim25.VirtualMachineToolsStatus; import com.vmware.vim25.VirtualMachineVideoCard; import com.vmware.vim25.VirtualUSBController; import com.vmware.vim25.VmwareDistributedVirtualSwitchVlanIdSpec; @@ -106,11 +108,13 @@ import com.vmware.vim25.VmwareDistributedVirtualSwitchVlanIdSpec; import org.apache.cloudstack.api.ApiConstants; import org.apache.cloudstack.storage.command.CopyCommand; import org.apache.cloudstack.storage.command.StorageSubSystemCommand; +import org.apache.cloudstack.storage.configdrive.ConfigDrive; import org.apache.cloudstack.storage.resource.NfsSecondaryStorageResource; import org.apache.cloudstack.storage.to.PrimaryDataStoreTO; import org.apache.cloudstack.storage.to.TemplateObjectTO; import org.apache.cloudstack.storage.to.VolumeObjectTO; import org.apache.cloudstack.utils.volume.VirtualMachineDiskInfo; + import com.cloud.agent.IAgentControl; import com.cloud.agent.api.Answer; import com.cloud.agent.api.AttachIsoAnswer; @@ -142,6 +146,7 @@ import com.cloud.agent.api.GetStorageStatsAnswer; import com.cloud.agent.api.GetStorageStatsCommand; import com.cloud.agent.api.GetVmDiskStatsAnswer; import com.cloud.agent.api.GetVmDiskStatsCommand; +import com.cloud.agent.api.GetVmIpAddressCommand; import com.cloud.agent.api.GetVmNetworkStatsAnswer; import com.cloud.agent.api.GetVmNetworkStatsCommand; import com.cloud.agent.api.GetVmStatsAnswer; @@ -234,6 +239,7 @@ import com.cloud.agent.api.to.VolumeTO; import com.cloud.agent.resource.virtualnetwork.VRScripts; import com.cloud.agent.resource.virtualnetwork.VirtualRouterDeployer; import com.cloud.agent.resource.virtualnetwork.VirtualRoutingResource; +import com.cloud.configuration.Resource.ResourceType; import com.cloud.dc.DataCenter.NetworkType; import com.cloud.dc.Vlan; import com.cloud.exception.CloudException; @@ -252,8 +258,8 @@ import com.cloud.hypervisor.vmware.mo.DatastoreFile; import com.cloud.hypervisor.vmware.mo.DatastoreMO; import com.cloud.hypervisor.vmware.mo.DiskControllerType; import com.cloud.hypervisor.vmware.mo.FeatureKeyConstants; -import com.cloud.hypervisor.vmware.mo.HostMO; import com.cloud.hypervisor.vmware.mo.HostDatastoreSystemMO; +import com.cloud.hypervisor.vmware.mo.HostMO; import com.cloud.hypervisor.vmware.mo.HostStorageSystemMO; import com.cloud.hypervisor.vmware.mo.HypervisorHostHelper; import com.cloud.hypervisor.vmware.mo.NetworkDetails; @@ -302,9 +308,6 @@ import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachine.PowerState; import com.cloud.vm.VirtualMachineName; import com.cloud.vm.VmDetailConstants; -import com.vmware.vim25.GuestInfo; -import com.vmware.vim25.VirtualMachineToolsStatus; -import com.cloud.agent.api.GetVmIpAddressCommand; public class VmwareResource implements StoragePoolResource, ServerResource, VmwareHostService, VirtualRouterDeployer { private static final Logger s_logger = Logger.getLogger(VmwareResource.class); @@ -3352,7 +3355,7 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa String isoFileName = isoUrl.substring(isoFileNameStartPos); int templateRootPos = isoUrl.indexOf("template/tmpl"); - templateRootPos = (templateRootPos < 0 ? isoUrl.indexOf("ConfigDrive") : templateRootPos); + templateRootPos = (templateRootPos < 0 ? isoUrl.indexOf(ConfigDrive.CONFIGDRIVEDIR) : templateRootPos); if (templateRootPos < 0 ) { throw new Exception("Invalid ISO path info"); } From a32bd464b6b4bb39b0330def2904964bd9d64a7b Mon Sep 17 00:00:00 2001 From: ernjvr Date: Tue, 31 Jul 2018 09:33:50 +0200 Subject: [PATCH 2/4] ui: show reset SSH key for VM in running state (#2778) In the UI, on the Instances screen, the Quickview popup window and the Details window do not display the 'Reset SSH Key Pair' button for VMs in a running state. They only display when the VM is in a stopped state. This is inconsistent with the 'Reset Password' button behaviour, where it displays in both VM states: running and stopped. This fixes the issue so that the 'Reset SSH Key Pair' button also displays in both VM states. Expected Behaviour: In the UI, on the Instances screen, the Quickview popup window and the Details window must display the 'Reset SSH Key Pair' button in both VM states: running and stopped. When a user clicks on the 'Reset SSH Key Pair' button and a VM is in a running state, it will display a message "Vm xxx should be stopped to do SSH Key reset". Actual Behaviour: In the UI, on the Instances screen, the Quickview popup window and the Details window do not display the 'Reset SSH Key Pair' button for VMs in a running state. It only displays when the VM is in a stopped state. --- ui/scripts/instances.js | 1 + 1 file changed, 1 insertion(+) diff --git a/ui/scripts/instances.js b/ui/scripts/instances.js index 84d60033045..4e89cdb1d80 100644 --- a/ui/scripts/instances.js +++ b/ui/scripts/instances.js @@ -3243,6 +3243,7 @@ } allowedActions.push("viewConsole"); + allowedActions.push("resetSSHKeyForVirtualMachine"); } else if (jsonObj.state == 'Stopped') { allowedActions.push("edit"); if (isAdmin()) From 2be51ac18d051a246f73e7025be701f721055679 Mon Sep 17 00:00:00 2001 From: Khosrow Moossavi Date: Tue, 31 Jul 2018 03:34:37 -0400 Subject: [PATCH 3/4] appliance: Fix typo in ISO url (#2775) --- tools/appliance/builtin/template.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/appliance/builtin/template.json b/tools/appliance/builtin/template.json index 2175a70eb6e..a1d159b2e79 100644 --- a/tools/appliance/builtin/template.json +++ b/tools/appliance/builtin/template.json @@ -23,9 +23,9 @@ "disk_interface": "virtio", "net_device": "virtio-net", - "iso_url": "http://mirror.nbrc.ac.in/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1808.iso", + "iso_url": "http://mirror.nbrc.ac.in/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso", "iso_checksum": "13675c6f74880e7ff3481b91bdaf925ce81bda8f", - "iso_checksum_type": "md5", + "iso_checksum_type": "sha1", "vm_name": "builtin", "output_directory": "../dist", From 4f49bf6770c384d1bc017413afb6f63514108bf8 Mon Sep 17 00:00:00 2001 From: ernjvr Date: Wed, 1 Aug 2018 13:06:11 +0200 Subject: [PATCH 4/4] ui: hide hvm tickbox for vmware, otherwise display (#2781) On the 'Register Template From URL' screen, when a user selects the VMware option from the Hypervisor dropdown: It incorrectly displays the 'HVM' checkbox. This checkbox must be hidden in the VMware context. This checkbox must still be visible in any other hypervisor context. To Reproduce: Go to the 'Register Template From URL' screen by clicking the 'Templates' tab on the lefthand side. On the 'Templates' screen click the 'Add' button to display the 'Register Template From URL' screen. On the 'Register Template From URL' screen, select the VMware option from the Hypervisor dropdown: Actual Behaviour: It incorrectly displays the 'HVM' checkbox. Expected behaviour: This checkbox must be hidden in the VMware context. This checkbox must still be visible in any other hypervisor context. --- ui/scripts/templates.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ui/scripts/templates.js b/ui/scripts/templates.js index 6dba18b4f96..96660fac680 100755 --- a/ui/scripts/templates.js +++ b/ui/scripts/templates.js @@ -251,12 +251,14 @@ $form.find('.form-item[rel=xenserverToolsVersion61plus]').hide(); $form.find('.form-item[rel=rootDiskControllerTypeKVM]').hide(); $form.find('.form-item[rel=directdownload]').hide(); + $form.find('.form-item[rel=requireshvm]').hide(); } else if ($(this).val() == "XenServer") { $form.find('.form-item[rel=rootDiskControllerType]').hide(); $form.find('.form-item[rel=nicAdapterType]').hide(); $form.find('.form-item[rel=keyboardType]').hide(); $form.find('.form-item[rel=rootDiskControllerTypeKVM]').hide(); $form.find('.form-item[rel=directdownload]').hide(); + $form.find('.form-item[rel=requireshvm]').css('display', 'inline-block'); if (isAdmin()) { $form.find('.form-item[rel=xenserverToolsVersion61plus]').css('display', 'inline-block'); @@ -268,6 +270,7 @@ $form.find('.form-item[rel=xenserverToolsVersion61plus]').hide(); $form.find('.form-item[rel=rootDiskControllerTypeKVM]').css('display', 'inline-block'); $('#label_root_disk_controller').prop('selectedIndex', 2); + $form.find('.form-item[rel=requireshvm]').css('display', 'inline-block'); if (isAdmin()) { $form.find('.form-item[rel=directdownload]').css('display', 'inline-block'); } @@ -278,6 +281,7 @@ $form.find('.form-item[rel=xenserverToolsVersion61plus]').hide(); $form.find('.form-item[rel=rootDiskControllerTypeKVM]').hide(); $form.find('.form-item[rel=directdownload]').hide(); + $form.find('.form-item[rel=requireshvm]').css('display', 'inline-block'); } });