diff --git a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java index d2e8b91d7f0..ef21dd7960f 100644 --- a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java +++ b/plugins/hypervisors/vmware/src/main/java/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"); } 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", diff --git a/ui/scripts/instances.js b/ui/scripts/instances.js index 0948db48d07..200794a9786 100644 --- a/ui/scripts/instances.js +++ b/ui/scripts/instances.js @@ -3236,6 +3236,7 @@ } allowedActions.push("viewConsole"); + allowedActions.push("resetSSHKeyForVirtualMachine"); } else if (jsonObj.state == 'Stopped') { allowedActions.push("edit"); if (isAdmin()) 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'); } });