From 5546835555b7005b03016451c78c44c5083bc30a Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Thu, 3 Jul 2025 14:44:26 +0200 Subject: [PATCH] utils: add UuidUtils.nameUUIDFromBytes --- .../com/cloud/agent/resource/DummyResource.java | 4 ++-- .../agent/api/DeleteStoragePoolCommand.java | 4 ++-- .../agent/api/ModifyStoragePoolCommand.java | 6 +++--- .../java/com/cloud/storage/VMTemplateVO.java | 3 ++- .../cloudstack/storage/test/SnapshotTest.java | 3 ++- .../storage/test/VolumeServiceTest.java | 5 +++-- .../storage/test/VolumeTestVmware.java | 3 ++- .../mom/rabbitmq/RabbitMQEventBus.java | 3 ++- .../baremetal/manager/BareMetalDiscoverer.java | 3 ++- .../discoverer/HypervServerDiscoverer.java | 8 ++++---- .../kvm/resource/LibvirtComputingResource.java | 2 +- .../kvm/storage/KVMStoragePoolManager.java | 4 ++-- .../com/cloud/ovm/hypervisor/OvmDiscoverer.java | 3 ++- .../cloud/ovm/hypervisor/OvmResourceBase.java | 4 ++-- .../hypervisor/ovm3/objects/OvmObject.java | 3 ++- .../ovm3/resources/Ovm3Discoverer.java | 3 ++- .../ovm3/resources/Ovm3HypervisorResource.java | 4 ++-- .../cloud/hypervisor/ovm3/objects/XenTest.java | 5 ++--- .../agent/manager/MockStorageManagerImpl.java | 3 ++- .../vmware/VmwareServerDiscoverer.java | 4 ++-- .../manager/VmwareStorageManagerImpl.java | 3 ++- .../vmware/resource/VmwareResource.java | 5 +++-- .../resource/VmwareStorageProcessor.java | 7 ++++--- .../xenserver/resource/CitrixResourceBase.java | 9 +++++---- .../resource/XenServerStorageProcessor.java | 3 ++- .../resource/Xenserver625StorageProcessor.java | 17 +++++++++-------- .../Xenserver625StorageProcessorTest.java | 8 ++++---- ...CloudStackPrimaryDataStoreLifeCycleImpl.java | 3 ++- .../configuration/ConfigurationManagerImpl.java | 4 ++-- .../kvm/discoverer/LibvirtServerDiscoverer.java | 6 +++--- .../java/com/cloud/test/DatabaseConfig.java | 3 ++- .../java/com/cloud/user/AccountManagerImpl.java | 3 ++- .../resource/NfsSecondaryStorageResource.java | 7 ++++--- .../storage/template/DownloadManagerImpl.java | 3 ++- .../main/java/com/cloud/utils/UuidUtils.java | 7 +++++++ .../vmware/mo/HypervisorHostHelper.java | 3 ++- 36 files changed, 98 insertions(+), 70 deletions(-) diff --git a/agent/src/main/java/com/cloud/agent/resource/DummyResource.java b/agent/src/main/java/com/cloud/agent/resource/DummyResource.java index fe519ca9497f..4002e53b5858 100644 --- a/agent/src/main/java/com/cloud/agent/resource/DummyResource.java +++ b/agent/src/main/java/com/cloud/agent/resource/DummyResource.java @@ -20,7 +20,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.UUID; import com.cloud.agent.IAgentControl; import com.cloud.agent.api.Answer; @@ -40,6 +39,7 @@ import com.cloud.storage.Storage; import com.cloud.storage.Storage.StoragePoolType; import com.cloud.utils.StringUtils; +import com.cloud.utils.UuidUtils; public class DummyResource implements ServerResource { String _name; @@ -133,7 +133,7 @@ protected StoragePoolInfo initializeLocalStorage() { String hostIp = getConfiguredProperty("private.ip.address", "127.0.0.1"); String localStoragePath = getConfiguredProperty("local.storage.path", "/mnt"); String lh = hostIp + localStoragePath; - String uuid = UUID.nameUUIDFromBytes(lh.getBytes(StringUtils.getPreferredCharset())).toString(); + String uuid = UuidUtils.nameUUIDFromBytes(lh.getBytes(StringUtils.getPreferredCharset())).toString(); String capacity = getConfiguredProperty("local.storage.capacity", "1000000000"); String available = getConfiguredProperty("local.storage.avail", "10000000"); diff --git a/core/src/main/java/com/cloud/agent/api/DeleteStoragePoolCommand.java b/core/src/main/java/com/cloud/agent/api/DeleteStoragePoolCommand.java index 969dd2eb801c..84ca39f15464 100644 --- a/core/src/main/java/com/cloud/agent/api/DeleteStoragePoolCommand.java +++ b/core/src/main/java/com/cloud/agent/api/DeleteStoragePoolCommand.java @@ -21,10 +21,10 @@ import java.io.File; import java.util.Map; -import java.util.UUID; import com.cloud.agent.api.to.StorageFilerTO; import com.cloud.storage.StoragePool; +import com.cloud.utils.UuidUtils; public class DeleteStoragePoolCommand extends Command { public static final String DATASTORE_NAME = "datastoreName"; @@ -49,7 +49,7 @@ public DeleteStoragePoolCommand(StoragePool pool, String localPath) { } public DeleteStoragePoolCommand(StoragePool pool) { - this(pool, LOCAL_PATH_PREFIX + File.separator + UUID.nameUUIDFromBytes((pool.getHostAddress() + pool.getPath()).getBytes())); + this(pool, LOCAL_PATH_PREFIX + File.separator + UuidUtils.nameUUIDFromBytes((pool.getHostAddress() + pool.getPath()).getBytes())); } public void setPool(StoragePool pool) { diff --git a/core/src/main/java/com/cloud/agent/api/ModifyStoragePoolCommand.java b/core/src/main/java/com/cloud/agent/api/ModifyStoragePoolCommand.java index 06940266b538..a72000d73995 100644 --- a/core/src/main/java/com/cloud/agent/api/ModifyStoragePoolCommand.java +++ b/core/src/main/java/com/cloud/agent/api/ModifyStoragePoolCommand.java @@ -21,10 +21,10 @@ import java.io.File; import java.util.Map; -import java.util.UUID; import com.cloud.agent.api.to.StorageFilerTO; import com.cloud.storage.StoragePool; +import com.cloud.utils.UuidUtils; public class ModifyStoragePoolCommand extends Command { public static final String LOCAL_PATH_PREFIX = "/mnt/"; @@ -47,11 +47,11 @@ public ModifyStoragePoolCommand(boolean add, StoragePool pool, String localPath, } public ModifyStoragePoolCommand(boolean add, StoragePool pool, Map details) { - this(add, pool, LOCAL_PATH_PREFIX + File.separator + UUID.nameUUIDFromBytes((pool.getHostAddress() + pool.getPath()).getBytes()), details); + this(add, pool, LOCAL_PATH_PREFIX + File.separator + UuidUtils.nameUUIDFromBytes((pool.getHostAddress() + pool.getPath()).getBytes()), details); } public ModifyStoragePoolCommand(boolean add, StoragePool pool) { - this(add, pool, LOCAL_PATH_PREFIX + File.separator + UUID.nameUUIDFromBytes((pool.getHostAddress() + pool.getPath()).getBytes())); + this(add, pool, LOCAL_PATH_PREFIX + File.separator + UuidUtils.nameUUIDFromBytes((pool.getHostAddress() + pool.getPath()).getBytes())); } public boolean getAdd() { diff --git a/engine/schema/src/main/java/com/cloud/storage/VMTemplateVO.java b/engine/schema/src/main/java/com/cloud/storage/VMTemplateVO.java index 93f6a4640195..701741510963 100644 --- a/engine/schema/src/main/java/com/cloud/storage/VMTemplateVO.java +++ b/engine/schema/src/main/java/com/cloud/storage/VMTemplateVO.java @@ -34,6 +34,7 @@ import com.cloud.cpu.CPU; import com.cloud.user.UserData; +import com.cloud.utils.UuidUtils; import org.apache.cloudstack.util.CPUArchConverter; import org.apache.cloudstack.util.HypervisorTypeConverter; import org.apache.cloudstack.utils.reflectiontostringbuilderutils.ReflectionToStringBuilderUtils; @@ -340,7 +341,7 @@ private static String generateUniqueName(long id, long userId, String displayNam name.append("-"); name.append(userId); name.append("-"); - name.append(UUID.nameUUIDFromBytes((displayName + System.currentTimeMillis()).getBytes()).toString()); + name.append(UuidUtils.nameUUIDFromBytes((displayName + System.currentTimeMillis()).getBytes()).toString()); return name.toString(); } diff --git a/engine/storage/integration-test/src/test/java/org/apache/cloudstack/storage/test/SnapshotTest.java b/engine/storage/integration-test/src/test/java/org/apache/cloudstack/storage/test/SnapshotTest.java index 0185c0d19342..f07866c8353c 100644 --- a/engine/storage/integration-test/src/test/java/org/apache/cloudstack/storage/test/SnapshotTest.java +++ b/engine/storage/integration-test/src/test/java/org/apache/cloudstack/storage/test/SnapshotTest.java @@ -100,6 +100,7 @@ import com.cloud.storage.dao.SnapshotDao; import com.cloud.storage.dao.VMTemplateDao; import com.cloud.storage.dao.VolumeDao; +import com.cloud.utils.UuidUtils; import com.cloud.utils.component.ComponentContext; import junit.framework.Assert; @@ -287,7 +288,7 @@ protected void injectMockito() { public DataStore createPrimaryDataStore() { try { - String uuid = UUID.nameUUIDFromBytes(this.getPrimaryStorageUrl().getBytes()).toString(); + String uuid = UuidUtils.nameUUIDFromBytes(this.getPrimaryStorageUrl().getBytes()).toString(); List pools = primaryDataStoreDao.findPoolByName(this.primaryName); if (pools.size() > 0) { return this.dataStoreMgr.getPrimaryDataStore(pools.get(0).getId()); diff --git a/engine/storage/integration-test/src/test/java/org/apache/cloudstack/storage/test/VolumeServiceTest.java b/engine/storage/integration-test/src/test/java/org/apache/cloudstack/storage/test/VolumeServiceTest.java index 5ed0cc3f1fa4..c478e2e7c637 100644 --- a/engine/storage/integration-test/src/test/java/org/apache/cloudstack/storage/test/VolumeServiceTest.java +++ b/engine/storage/integration-test/src/test/java/org/apache/cloudstack/storage/test/VolumeServiceTest.java @@ -82,6 +82,7 @@ import com.cloud.storage.VolumeVO; import com.cloud.storage.dao.VMTemplateDao; import com.cloud.storage.dao.VolumeDao; +import com.cloud.utils.UuidUtils; import com.cloud.utils.component.ComponentContext; @ContextConfiguration(locations = {"classpath:/storageContext.xml"}) @@ -281,7 +282,7 @@ public void testCreatePrimaryStorage() { params.put("name", this.primaryName); params.put("port", "1"); params.put("roles", DataStoreRole.Primary.toString()); - params.put("uuid", UUID.nameUUIDFromBytes(this.getPrimaryStorageUrl().getBytes()).toString()); + params.put("uuid", UuidUtils.nameUUIDFromBytes(this.getPrimaryStorageUrl().getBytes()).toString()); params.put("providerName", String.valueOf(provider.getName())); DataStoreLifeCycle lifeCycle = provider.getDataStoreLifeCycle(); @@ -324,7 +325,7 @@ public DataStore createPrimaryDataStore() { params.put("name", this.primaryName); params.put("port", "1"); params.put("roles", DataStoreRole.Primary.toString()); - params.put("uuid", UUID.nameUUIDFromBytes(this.getPrimaryStorageUrl().getBytes()).toString()); + params.put("uuid", UuidUtils.nameUUIDFromBytes(this.getPrimaryStorageUrl().getBytes()).toString()); params.put("providerName", String.valueOf(provider.getName())); DataStoreLifeCycle lifeCycle = provider.getDataStoreLifeCycle(); diff --git a/engine/storage/integration-test/src/test/java/org/apache/cloudstack/storage/test/VolumeTestVmware.java b/engine/storage/integration-test/src/test/java/org/apache/cloudstack/storage/test/VolumeTestVmware.java index 98af170356fb..c0f43da122b3 100644 --- a/engine/storage/integration-test/src/test/java/org/apache/cloudstack/storage/test/VolumeTestVmware.java +++ b/engine/storage/integration-test/src/test/java/org/apache/cloudstack/storage/test/VolumeTestVmware.java @@ -86,6 +86,7 @@ import com.cloud.storage.VolumeVO; import com.cloud.storage.dao.VMTemplateDao; import com.cloud.storage.dao.VolumeDao; +import com.cloud.utils.UuidUtils; import com.cloud.utils.component.ComponentContext; @ContextConfiguration(locations = {"classpath:/storageContext.xml"}) @@ -264,7 +265,7 @@ protected void injectMockito() { public DataStore createPrimaryDataStore() { try { - String uuid = UUID.nameUUIDFromBytes(this.getPrimaryStorageUrl().getBytes()).toString(); + String uuid = UuidUtils.nameUUIDFromBytes(this.getPrimaryStorageUrl().getBytes()).toString(); List pools = primaryDataStoreDao.findPoolByName(this.primaryName); if (pools.size() > 0) { return this.dataStoreMgr.getPrimaryDataStore(pools.get(0).getId()); diff --git a/plugins/event-bus/rabbitmq/src/main/java/org/apache/cloudstack/mom/rabbitmq/RabbitMQEventBus.java b/plugins/event-bus/rabbitmq/src/main/java/org/apache/cloudstack/mom/rabbitmq/RabbitMQEventBus.java index e8067e75b406..224e49f91a32 100644 --- a/plugins/event-bus/rabbitmq/src/main/java/org/apache/cloudstack/mom/rabbitmq/RabbitMQEventBus.java +++ b/plugins/event-bus/rabbitmq/src/main/java/org/apache/cloudstack/mom/rabbitmq/RabbitMQEventBus.java @@ -32,6 +32,7 @@ import javax.naming.ConfigurationException; +import com.cloud.utils.UuidUtils; import com.cloud.utils.exception.CloudRuntimeException; import com.rabbitmq.client.BlockedListener; @@ -254,7 +255,7 @@ public void unsubscribe(UUID subscriberId, EventSubscriber subscriber) throws Ev logger.debug("unsubscribing '{}'", subscriberId); try { String classname = subscriber.getClass().getName(); - String queueName = UUID.nameUUIDFromBytes(classname.getBytes()).toString(); + String queueName = UuidUtils.nameUUIDFromBytes(classname.getBytes()).toString(); Ternary queueDetails = s_subscribers.get(queueName); Channel channel = queueDetails.second(); channel.basicCancel(queueName); diff --git a/plugins/hypervisors/baremetal/src/main/java/com/cloud/baremetal/manager/BareMetalDiscoverer.java b/plugins/hypervisors/baremetal/src/main/java/com/cloud/baremetal/manager/BareMetalDiscoverer.java index f918f66941e9..f12d701d2e29 100644 --- a/plugins/hypervisors/baremetal/src/main/java/com/cloud/baremetal/manager/BareMetalDiscoverer.java +++ b/plugins/hypervisors/baremetal/src/main/java/com/cloud/baremetal/manager/BareMetalDiscoverer.java @@ -51,6 +51,7 @@ import com.cloud.resource.ResourceStateAdapter; import com.cloud.resource.ServerResource; import com.cloud.resource.UnableDeleteHostException; +import com.cloud.utils.UuidUtils; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.script.Script; import com.cloud.utils.script.Script2; @@ -121,7 +122,7 @@ public Map> find(long dcId, Long p String hostname = url.getHost(); InetAddress ia = InetAddress.getByName(hostname); String ipmiIp = ia.getHostAddress(); - String guid = UUID.nameUUIDFromBytes(ipmiIp.getBytes()).toString(); + String guid = UuidUtils.nameUUIDFromBytes(ipmiIp.getBytes()).toString(); String injectScript = "scripts/util/ipmi.py"; String scriptPath = Script.findScript("", injectScript); diff --git a/plugins/hypervisors/hyperv/src/main/java/com/cloud/hypervisor/hyperv/discoverer/HypervServerDiscoverer.java b/plugins/hypervisors/hyperv/src/main/java/com/cloud/hypervisor/hyperv/discoverer/HypervServerDiscoverer.java index a5947238bf6d..a5fe1442e56e 100644 --- a/plugins/hypervisors/hyperv/src/main/java/com/cloud/hypervisor/hyperv/discoverer/HypervServerDiscoverer.java +++ b/plugins/hypervisors/hyperv/src/main/java/com/cloud/hypervisor/hyperv/discoverer/HypervServerDiscoverer.java @@ -24,7 +24,6 @@ import java.util.List; import java.util.Map; import java.util.Random; -import java.util.UUID; import javax.inject.Inject; import javax.naming.ConfigurationException; @@ -64,6 +63,7 @@ import com.cloud.resource.ServerResource; import com.cloud.resource.UnableDeleteHostException; import com.cloud.storage.StorageLayer; +import com.cloud.utils.UuidUtils; /** * Methods to discover and managem a Hyper-V agent. Prepares a @@ -264,7 +264,7 @@ public final Map> find(final long // pool in the database // This GUID may change. if (cluster.getGuid() == null) { - cluster.setGuid(UUID.nameUUIDFromBytes(String.valueOf(clusterId).getBytes(Charset.forName("UTF-8"))).toString()); + cluster.setGuid(UuidUtils.nameUUIDFromBytes(String.valueOf(clusterId).getBytes(Charset.forName("UTF-8"))).toString()); _clusterDao.update(clusterId, cluster); } @@ -322,7 +322,7 @@ public final Map> find(final long /** * Encapsulate GUID calculation in public method to allow access to test * programs. Works by converting a string to a GUID using - * UUID.nameUUIDFromBytes + * UuidUtils.nameUUIDFromBytes * * @param uuidSeed * string to use to generate GUID @@ -330,7 +330,7 @@ public final Map> find(final long * @return GUID in form of a string. */ public static String calcServerResourceGuid(final String uuidSeed) { - String guid = UUID.nameUUIDFromBytes(uuidSeed.getBytes(Charset.forName("UTF-8"))).toString(); + String guid = UuidUtils.nameUUIDFromBytes(uuidSeed.getBytes(Charset.forName("UTF-8"))).toString(); return guid; } diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java index a632fd5adfd2..3f9f4bef84a9 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java @@ -5820,7 +5820,7 @@ public void cleanOldSecretsByDiskDef(Connect conn, List disks) throws L } public static String generateSecretUUIDFromString(String seed) { - return UUID.nameUUIDFromBytes(seed.getBytes()).toString(); + return UuidUtils.nameUUIDFromBytes(seed.getBytes()).toString(); } public void setInterfaceDefQueueSettings(Map details, Integer cpus, InterfaceDef interfaceDef) { diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java index 9b6240424370..e68473e472f4 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java @@ -25,7 +25,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; import org.apache.cloudstack.storage.to.PrimaryDataStoreTO; @@ -47,6 +46,7 @@ import com.cloud.storage.Volume; import com.cloud.utils.Pair; import com.cloud.utils.Ternary; +import com.cloud.utils.UuidUtils; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.vm.VirtualMachine; @@ -328,7 +328,7 @@ public KVMStoragePool getStoragePoolByURI(String uri) { sourcePath = storageUri.getPath(); sourcePath = sourcePath.replace("//", "/"); sourceHost = storageUri.getHost(); - uuid = UUID.nameUUIDFromBytes(new String(sourceHost + sourcePath).getBytes()).toString(); + uuid = UuidUtils.nameUUIDFromBytes(new String(sourceHost + sourcePath).getBytes()).toString(); protocol = scheme.equals("filesystem") ? StoragePoolType.Filesystem: StoragePoolType.NetworkFilesystem; } diff --git a/plugins/hypervisors/ovm/src/main/java/com/cloud/ovm/hypervisor/OvmDiscoverer.java b/plugins/hypervisors/ovm/src/main/java/com/cloud/ovm/hypervisor/OvmDiscoverer.java index 82cb61d7a1fd..7dfd98301d72 100644 --- a/plugins/hypervisors/ovm/src/main/java/com/cloud/ovm/hypervisor/OvmDiscoverer.java +++ b/plugins/hypervisors/ovm/src/main/java/com/cloud/ovm/hypervisor/OvmDiscoverer.java @@ -46,6 +46,7 @@ import com.cloud.resource.ResourceStateAdapter; import com.cloud.resource.ServerResource; import com.cloud.resource.UnableDeleteHostException; +import com.cloud.utils.UuidUtils; import com.cloud.utils.db.QueryBuilder; import com.cloud.utils.db.SearchCriteria; import com.cloud.utils.exception.CloudRuntimeException; @@ -131,7 +132,7 @@ private boolean checkIfExisted(String guid) { String hostname = url.getHost(); InetAddress ia = InetAddress.getByName(hostname); String hostIp = ia.getHostAddress(); - String guid = UUID.nameUUIDFromBytes(hostIp.getBytes()).toString(); + String guid = UuidUtils.nameUUIDFromBytes(hostIp.getBytes()).toString(); if (checkIfExisted(guid)) { throw new CloudRuntimeException("The host " + hostIp + " has been added before"); diff --git a/plugins/hypervisors/ovm/src/main/java/com/cloud/ovm/hypervisor/OvmResourceBase.java b/plugins/hypervisors/ovm/src/main/java/com/cloud/ovm/hypervisor/OvmResourceBase.java index 9d958a9894a4..951741cbb595 100644 --- a/plugins/hypervisors/ovm/src/main/java/com/cloud/ovm/hypervisor/OvmResourceBase.java +++ b/plugins/hypervisors/ovm/src/main/java/com/cloud/ovm/hypervisor/OvmResourceBase.java @@ -24,7 +24,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; import javax.naming.ConfigurationException; @@ -127,6 +126,7 @@ import com.cloud.template.VirtualMachineTemplate.BootloaderType; import com.cloud.utils.Pair; import com.cloud.utils.Ternary; +import com.cloud.utils.UuidUtils; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.script.Script; import com.cloud.utils.ssh.SSHCmdHelper; @@ -507,7 +507,7 @@ protected void applySpecToVm(OvmVm.Details vm, VirtualMachineTO spec) { vm.name = spec.getName(); vm.memory = spec.getMinRam(); vm.cpuNum = spec.getCpus(); - vm.uuid = UUID.nameUUIDFromBytes(spec.getName().getBytes()).toString(); + vm.uuid = UuidUtils.nameUUIDFromBytes(spec.getName().getBytes()).toString(); if (spec.getBootloader() == BootloaderType.CD) { vm.bootDev = OvmVm.CD; vm.type = OvmVm.HVM; diff --git a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/OvmObject.java b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/OvmObject.java index 3b7354c34c50..d98f3bb6d3f9 100644 --- a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/OvmObject.java +++ b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/OvmObject.java @@ -35,6 +35,7 @@ import javax.xml.xpath.XPathExpressionException; import javax.xml.xpath.XPathFactory; +import com.cloud.utils.UuidUtils; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; import org.apache.xmlrpc.XmlRpcException; @@ -71,7 +72,7 @@ public String newUuid() { /* generate a uuid */ public String newUuid(String str) { - return UUID.nameUUIDFromBytes(str.getBytes(Charset.defaultCharset())).toString(); + return UuidUtils.nameUUIDFromBytes(str.getBytes(Charset.defaultCharset())).toString(); } /* capture most of the calls here */ diff --git a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/Ovm3Discoverer.java b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/Ovm3Discoverer.java index 2305dbb6c26e..52cc419ad2e4 100755 --- a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/Ovm3Discoverer.java +++ b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/Ovm3Discoverer.java @@ -58,6 +58,7 @@ import com.cloud.resource.ResourceStateAdapter; import com.cloud.resource.ServerResource; import com.cloud.resource.UnableDeleteHostException; +import com.cloud.utils.UuidUtils; import com.cloud.utils.db.QueryBuilder; import com.cloud.utils.db.SearchCriteria; import com.cloud.utils.exception.CloudRuntimeException; @@ -186,7 +187,7 @@ public Map> find(long dcId, InetAddress ia = InetAddress.getByName(hostname); String hostIp = ia.getHostAddress(); - String guid = UUID.nameUUIDFromBytes(hostIp.getBytes("UTF8")) + String guid = UuidUtils.nameUUIDFromBytes(hostIp.getBytes("UTF8")) .toString(); if (checkIfExisted(guid)) { diff --git a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/Ovm3HypervisorResource.java b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/Ovm3HypervisorResource.java index ba4304d349cc..d01738ea0863 100644 --- a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/Ovm3HypervisorResource.java +++ b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/Ovm3HypervisorResource.java @@ -19,7 +19,6 @@ import java.nio.charset.Charset; import java.util.Map; -import java.util.UUID; import javax.inject.Inject; import javax.naming.ConfigurationException; @@ -95,6 +94,7 @@ import com.cloud.storage.resource.StorageSubsystemCommandHandler; import com.cloud.storage.resource.StorageSubsystemCommandHandlerBase; import com.cloud.template.VirtualMachineTemplate.BootloaderType; +import com.cloud.utils.UuidUtils; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachine.State; @@ -369,7 +369,7 @@ public synchronized StartAnswer execute(StartCommand cmd) { vm.setVmCpus(vmSpec.getCpus()); /* in mb not in bytes */ vm.setVmMemory(vmSpec.getMinRam() / 1024 / 1024); - vm.setVmUuid(UUID.nameUUIDFromBytes(vmSpec.getName().getBytes(Charset.defaultCharset())).toString()); + vm.setVmUuid(UuidUtils.nameUUIDFromBytes(vmSpec.getName().getBytes(Charset.defaultCharset())).toString()); vm.setVmName(vmName); String domType = guesttypes.getOvm3GuestType(vmSpec.getOs()); diff --git a/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/objects/XenTest.java b/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/objects/XenTest.java index c76f2feccdc7..34f67df2d25a 100644 --- a/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/objects/XenTest.java +++ b/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/objects/XenTest.java @@ -17,8 +17,7 @@ package com.cloud.hypervisor.ovm3.objects; -import java.util.UUID; - +import com.cloud.utils.UuidUtils; import org.junit.Test; public class XenTest { @@ -697,7 +696,7 @@ public void testCreateVm() throws Ovm3ResourceException { domU.setVmCpus(1); domU.setVmMemory(512); domU.setVmDomainType("default"); - domU.setVmUuid(UUID.nameUUIDFromBytes(VMNAME.getBytes()).toString()); + domU.setVmUuid(UuidUtils.nameUUIDFromBytes(VMNAME.getBytes()).toString()); domU.setVmName(VMNAME); domU.addRootDisk(VMROOTDISK); domU.setPrimaryPoolUuid(REPOID); diff --git a/plugins/hypervisors/simulator/src/main/java/com/cloud/agent/manager/MockStorageManagerImpl.java b/plugins/hypervisors/simulator/src/main/java/com/cloud/agent/manager/MockStorageManagerImpl.java index 4ade80a8fb2a..5d0fe3b50c3c 100644 --- a/plugins/hypervisors/simulator/src/main/java/com/cloud/agent/manager/MockStorageManagerImpl.java +++ b/plugins/hypervisors/simulator/src/main/java/com/cloud/agent/manager/MockStorageManagerImpl.java @@ -103,6 +103,7 @@ import com.cloud.storage.VMTemplateStorageResourceAssoc.Status; import com.cloud.storage.dao.VMTemplateDao; import com.cloud.storage.template.TemplateProp; +import com.cloud.utils.UuidUtils; import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.TransactionLegacy; import com.cloud.utils.exception.CloudRuntimeException; @@ -886,7 +887,7 @@ public void preinstallTemplates(String url, long zoneId) { String nfsHost = uri.getHost(); String nfsPath = uri.getPath(); String path = nfsHost + ":" + nfsPath; - String dir = "/mnt/" + UUID.nameUUIDFromBytes(path.getBytes()).toString() + File.separator; + String dir = "/mnt/" + UuidUtils.nameUUIDFromBytes(path.getBytes()).toString() + File.separator; storage.setUrl(url); storage.setCapacity(DEFAULT_HOST_STORAGE_SIZE); diff --git a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/VmwareServerDiscoverer.java b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/VmwareServerDiscoverer.java index 1be381dcd54c..a5d1127e3315 100644 --- a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/VmwareServerDiscoverer.java +++ b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/VmwareServerDiscoverer.java @@ -22,7 +22,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.UUID; import javax.inject.Inject; import javax.naming.ConfigurationException; @@ -75,6 +74,7 @@ import com.cloud.user.Account; import com.cloud.utils.Pair; import com.cloud.utils.UriUtils; +import com.cloud.utils.UuidUtils; import com.vmware.vim25.ManagedObjectReference; public class VmwareServerDiscoverer extends DiscovererBase implements Discoverer, ResourceStateAdapter { @@ -397,7 +397,7 @@ public VmwareServerDiscoverer() { // place a place holder guid derived from cluster ID try{ - cluster.setGuid(UUID.nameUUIDFromBytes(String.valueOf(clusterId).getBytes("UTF-8")).toString()); + cluster.setGuid(UuidUtils.nameUUIDFromBytes(String.valueOf(clusterId).getBytes("UTF-8")).toString()); }catch(UnsupportedEncodingException e){ throw new DiscoveredWithErrorException("Unable to create UUID based on string " + String.valueOf(clusterId) + ". Bad clusterId or UTF-8 encoding error."); } diff --git a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/manager/VmwareStorageManagerImpl.java b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/manager/VmwareStorageManagerImpl.java index 6203d5b9a94c..7147ae185815 100644 --- a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/manager/VmwareStorageManagerImpl.java +++ b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/manager/VmwareStorageManagerImpl.java @@ -81,6 +81,7 @@ import com.cloud.utils.NumbersUtil; import com.cloud.utils.Pair; import com.cloud.utils.Ternary; +import com.cloud.utils.UuidUtils; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.script.Script; import com.cloud.vm.VirtualMachine; @@ -277,7 +278,7 @@ public Answer execute(VmwareHostService hostService, PrimaryStorageDownloadComma try { VmwareHypervisorHost hyperHost = hostService.getHyperHost(context, cmd); - String templateUuidName = UUID.nameUUIDFromBytes((templateName + "@" + cmd.getPoolUuid() + "-" + hyperHost.getMor().getValue()).getBytes("UTF-8")).toString(); + String templateUuidName = UuidUtils.nameUUIDFromBytes((templateName + "@" + cmd.getPoolUuid() + "-" + hyperHost.getMor().getValue()).getBytes("UTF-8")).toString(); // truncate template name to 32 chars to ensure they work well with vSphere API's. templateUuidName = templateUuidName.replace("-", ""); 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 478ccf1d2afb..ec1c41d972ab 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 @@ -294,6 +294,7 @@ import com.cloud.utils.Pair; import com.cloud.utils.StringUtils; import com.cloud.utils.Ternary; +import com.cloud.utils.UuidUtils; import com.cloud.utils.db.DB; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.exception.ExceptionUtil; @@ -5309,7 +5310,7 @@ protected Answer execute(ModifyStoragePoolCommand cmd) { poolInfo.setHostPath(childPath); String uuid = childDsMo.getCustomFieldValue(CustomFieldConstants.CLOUD_UUID); if (uuid == null || !uuid.contains("-")) { - uuid = UUID.nameUUIDFromBytes(((pool.getHost() + childPath)).getBytes()).toString(); + uuid = UuidUtils.nameUUIDFromBytes(((pool.getHost() + childPath)).getBytes()).toString(); } poolInfo.setUuid(uuid); poolInfo.setLocalPath(cmd.LOCAL_PATH_PREFIX + File.separator + uuid); @@ -5544,7 +5545,7 @@ public synchronized ManagedObjectReference prepareSecondaryDatastoreOnSpecificHo private String getSecondaryDatastoreUUID(String storeUrl) { String uuid = null; try { - uuid = UUID.nameUUIDFromBytes(storeUrl.getBytes("UTF-8")).toString(); + uuid = UuidUtils.nameUUIDFromBytes(storeUrl.getBytes("UTF-8")).toString(); } catch (UnsupportedEncodingException e) { logger.warn("Failed to create UUID from string " + storeUrl + ". Bad storeUrl or UTF-8 encoding error."); } diff --git a/plugins/hypervisors/vmware/src/main/java/com/cloud/storage/resource/VmwareStorageProcessor.java b/plugins/hypervisors/vmware/src/main/java/com/cloud/storage/resource/VmwareStorageProcessor.java index e4b3282defb6..e4fd5d24f433 100644 --- a/plugins/hypervisors/vmware/src/main/java/com/cloud/storage/resource/VmwareStorageProcessor.java +++ b/plugins/hypervisors/vmware/src/main/java/com/cloud/storage/resource/VmwareStorageProcessor.java @@ -101,6 +101,7 @@ import com.cloud.utils.LogUtils; import com.cloud.utils.Pair; import com.cloud.utils.Ternary; +import com.cloud.utils.UuidUtils; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.script.Script; import com.cloud.vm.VirtualMachine.PowerState; @@ -2286,7 +2287,7 @@ private boolean expandVirtualDisk(VirtualMachineMO vmMo, String datastoreVolumeP private String getSecondaryDatastoreUUID(String storeUrl) { String uuid = null; try{ - uuid=UUID.nameUUIDFromBytes(storeUrl.getBytes("UTF-8")).toString(); + uuid=UuidUtils.nameUUIDFromBytes(storeUrl.getBytes("UTF-8")).toString(); }catch(UnsupportedEncodingException e){ logger.warn("Failed to create UUID from string " + storeUrl + ". Bad storeUrl or UTF-8 encoding error." ); } @@ -3740,10 +3741,10 @@ public Answer forgetObject(ForgetObjectCmd cmd) { private String deriveTemplateUuidOnHost(VmwareHypervisorHost hyperHost, String storeIdentifier, String templateName) { String templateUuid; try { - templateUuid = UUID.nameUUIDFromBytes((templateName + "@" + storeIdentifier + "-" + hyperHost.getMor().getValue()).getBytes("UTF-8")).toString(); + templateUuid = UuidUtils.nameUUIDFromBytes((templateName + "@" + storeIdentifier + "-" + hyperHost.getMor().getValue()).getBytes("UTF-8")).toString(); } catch(UnsupportedEncodingException e){ logger.warn("unexpected encoding error, using default Charset: " + e.getLocalizedMessage()); - templateUuid = UUID.nameUUIDFromBytes((templateName + "@" + storeIdentifier + "-" + hyperHost.getMor().getValue()).getBytes(Charset.defaultCharset())) + templateUuid = UuidUtils.nameUUIDFromBytes((templateName + "@" + storeIdentifier + "-" + hyperHost.getMor().getValue()).getBytes(Charset.defaultCharset())) .toString(); } templateUuid = templateUuid.replaceAll("-", ""); diff --git a/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java b/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java index 5f86c9574d57..4658b0eb4e5f 100644 --- a/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java +++ b/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java @@ -142,6 +142,7 @@ import com.cloud.utils.PropertiesUtil; import com.cloud.utils.StringUtils; import com.cloud.utils.Ternary; +import com.cloud.utils.UuidUtils; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.net.NetUtils; import com.cloud.utils.script.Script; @@ -1047,7 +1048,7 @@ protected SR createNfsSRbyURI(final Connection conn, final URI uri, final boolea path = path.replace("//", "/"); deviceConfig.put("server", uri.getHost()); deviceConfig.put("serverpath", path); - final String name = UUID.nameUUIDFromBytes((uri.getHost() + path).getBytes()).toString(); + final String name = UuidUtils.nameUUIDFromBytes((uri.getHost() + path).getBytes()).toString(); if (!shared) { final Set srs = SR.getByNameLabel(conn, name); for (final SR sr : srs) { @@ -5763,7 +5764,7 @@ public Answer copyDiagnosticsFileToSecondaryStorage(Connection conn, CopyToSecon try { URI uri = new URI(secondaryStorageUrl); secondaryStorageMountPath = uri.getHost() + ":" + uri.getPath(); - localDir = BASE_MOUNT_POINT_ON_REMOTE + UUID.nameUUIDFromBytes(secondaryStorageMountPath.getBytes()); + localDir = BASE_MOUNT_POINT_ON_REMOTE + UuidUtils.nameUUIDFromBytes(secondaryStorageMountPath.getBytes()); String mountPoint = mountNfs(conn, secondaryStorageMountPath, localDir, nfsVersion); if (StringUtils.isBlank(mountPoint)) { return new CopyToSecondaryStorageAnswer(cmd, false, "Could not mount secondary storage " + secondaryStorageMountPath + " on host " + localDir); @@ -5793,7 +5794,7 @@ public Answer copyDiagnosticsFileToSecondaryStorage(Connection conn, CopyToSecon private String mountNfs(Connection conn, String remoteDir, String localDir, String nfsVersion) { if (localDir == null) { - localDir = BASE_MOUNT_POINT_ON_REMOTE + UUID.nameUUIDFromBytes(remoteDir.getBytes()); + localDir = BASE_MOUNT_POINT_ON_REMOTE + UuidUtils.nameUUIDFromBytes(remoteDir.getBytes()); } return callHostPlugin(conn, "cloud-plugin-storage", "mountNfsSecondaryStorage", "localDir", localDir, "remoteDir", remoteDir, "nfsVersion", nfsVersion); } @@ -5801,7 +5802,7 @@ private String mountNfs(Connection conn, String remoteDir, String localDir, Stri // Unmount secondary storage from host private void umountNfs(Connection conn, String remoteDir, String localDir) { if (localDir == null) { - localDir = BASE_MOUNT_POINT_ON_REMOTE + UUID.nameUUIDFromBytes(remoteDir.getBytes()); + localDir = BASE_MOUNT_POINT_ON_REMOTE + UuidUtils.nameUUIDFromBytes(remoteDir.getBytes()); } String result = callHostPlugin(conn, "cloud-plugin-storage", "umountNfsSecondaryStorage", "localDir", localDir, "remoteDir", remoteDir); if (StringUtils.isBlank(result)) { diff --git a/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/XenServerStorageProcessor.java b/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/XenServerStorageProcessor.java index 1d405316ad73..a214131c47d6 100644 --- a/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/XenServerStorageProcessor.java +++ b/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/XenServerStorageProcessor.java @@ -77,6 +77,7 @@ import com.cloud.storage.Storage; import com.cloud.storage.Storage.ImageFormat; import com.cloud.storage.resource.StorageProcessor; +import com.cloud.utils.UuidUtils; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.storage.S3.ClientOptions; import com.google.common.annotations.VisibleForTesting; @@ -1255,7 +1256,7 @@ public Answer backupSnapshot(final CopyCommand cmd) { final String folder = destPath; String finalPath = null; - final String localMountPoint = BaseMountPointOnHost + File.separator + UUID.nameUUIDFromBytes(secondaryStorageUrl.getBytes()).toString(); + final String localMountPoint = BaseMountPointOnHost + File.separator + UuidUtils.nameUUIDFromBytes(secondaryStorageUrl.getBytes()).toString(); if (fullbackup) { // the first snapshot is always a full snapshot diff --git a/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/Xenserver625StorageProcessor.java b/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/Xenserver625StorageProcessor.java index 773b443a57e8..c7b288ef8c7e 100644 --- a/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/Xenserver625StorageProcessor.java +++ b/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/Xenserver625StorageProcessor.java @@ -51,6 +51,7 @@ import com.cloud.exception.InternalErrorException; import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.storage.Storage; +import com.cloud.utils.UuidUtils; import com.cloud.utils.exception.CloudRuntimeException; import com.xensource.xenapi.Connection; import com.xensource.xenapi.Host; @@ -73,7 +74,7 @@ public Xenserver625StorageProcessor(final CitrixResourceBase resource) { private void mountNfs(Connection conn, String remoteDir, String localDir, String nfsVersion) { if (localDir == null) { - localDir = BASE_MOUNT_POINT_ON_REMOTE + UUID.nameUUIDFromBytes(remoteDir.getBytes()); + localDir = BASE_MOUNT_POINT_ON_REMOTE + UuidUtils.nameUUIDFromBytes(remoteDir.getBytes()); } String result = hypervisorResource.callHostPluginAsync(conn, "cloud-plugin-storage", "mountNfsSecondaryStorage", 100 * 1000, "localDir", localDir, "remoteDir", remoteDir, "nfsVersion", nfsVersion); if (StringUtils.isBlank(result)) { @@ -110,7 +111,7 @@ protected SR createFileSR(Connection conn, String path) { /** * Creates a new file SR for the given path. If any of XenServer's checked exception occurs, we use method {@link #removeSrAndPbdIfPossible(Connection, SR, PBD)} to clean the created PBD and SR entries. - * To avoid race conditions between management servers, we are using a deterministic srUuid for the file SR to be created (we are leaving XenServer with the burden of managing race conditions). The UUID is based on the SR file path, and is generated using {@link UUID#nameUUIDFromBytes(byte[])}. + * To avoid race conditions between management servers, we are using a deterministic srUuid for the file SR to be created (we are leaving XenServer with the burden of managing race conditions). The UUID is based on the SR file path, and is generated using {@link UuidUtils.nameUUIDFromBytes(byte[])}. * If there is an SR with the generated UUID, this means that some other management server has just created it. An exception will occur and this exception will be an {@link InternalError}. The exception will contain {@link InternalError#message} a message saying 'Db_exn.Uniqueness_constraint_violation'. * For cases where the previous described error happens, we catch the exception and use the method {@link #retrieveAlreadyConfiguredSrWithoutException(Connection, String)}. */ @@ -121,7 +122,7 @@ protected SR createNewFileSr(Connection conn, String srPath) { PBD pbd = null; try { Host host = Host.getByUuid(conn, hostUuid); - String srUuid = UUID.nameUUIDFromBytes(srPath.getBytes()).toString(); + String srUuid = UuidUtils.nameUUIDFromBytes(srPath.getBytes()).toString(); Map smConfig = new HashMap(); sr = SR.introduce(conn, srUuid, srPath, srPath, "file", "file", false, smConfig); @@ -243,7 +244,7 @@ protected void unplugPbd(Connection conn, PBD pbd) { } protected SR createFileSr(Connection conn, String remotePath, String dir, String nfsVersion) { - String localDir = BASE_MOUNT_POINT_ON_REMOTE + UUID.nameUUIDFromBytes(remotePath.getBytes()); + String localDir = BASE_MOUNT_POINT_ON_REMOTE + UuidUtils.nameUUIDFromBytes(remotePath.getBytes()); mountNfs(conn, remotePath, localDir, nfsVersion); return createFileSR(conn, localDir + "/" + dir); } @@ -563,12 +564,12 @@ public Answer backupSnapshot(final CopyCommand cmd) { final String folder = destPath; String finalPath = null; - final String localMountPoint = BaseMountPointOnHost + File.separator + UUID.nameUUIDFromBytes(secondaryStorageUrl.getBytes()).toString(); + final String localMountPoint = BaseMountPointOnHost + File.separator + UuidUtils.nameUUIDFromBytes(secondaryStorageUrl.getBytes()).toString(); if (fullbackup) { SR snapshotSr = null; Task task = null; try { - final String localDir = BASE_MOUNT_POINT_ON_REMOTE + UUID.nameUUIDFromBytes(secondaryStorageMountPath.getBytes()); + final String localDir = BASE_MOUNT_POINT_ON_REMOTE + UuidUtils.nameUUIDFromBytes(secondaryStorageMountPath.getBytes()); mountNfs(conn, secondaryStorageMountPath, localDir, nfsVersion); final boolean result = makeDirectory(conn, localDir + "/" + folder); if (!result) { @@ -1097,7 +1098,7 @@ public Answer createTemplateFromSnapshot(final CopyCommand cmd) { srcSr = createFileSr(conn, srcUri.getHost() + ":" + srcUri.getPath(), srcDir, srcNfsVersion); final String destNfsPath = destUri.getHost() + ":" + destUri.getPath(); - final String localDir = BASE_MOUNT_POINT_ON_REMOTE + UUID.nameUUIDFromBytes(destNfsPath.getBytes()); + final String localDir = BASE_MOUNT_POINT_ON_REMOTE + UuidUtils.nameUUIDFromBytes(destNfsPath.getBytes()); String destNfsVersion = destStore.getNfsVersion(); mountNfs(conn, destUri.getHost() + ":" + destUri.getPath(), localDir, destNfsVersion); @@ -1240,7 +1241,7 @@ private Answer createTemplateFromSnapshot2(final CopyCommand cmd) { srcSr = hypervisorResource.getIscsiSR(conn, iScsiName, storageHost, iScsiName, chapInitiatorUsername, chapInitiatorSecret, false, srType, true); final String destNfsPath = destUri.getHost() + ":" + destUri.getPath(); - final String localDir = BASE_MOUNT_POINT_ON_REMOTE + UUID.nameUUIDFromBytes(destNfsPath.getBytes()); + final String localDir = BASE_MOUNT_POINT_ON_REMOTE + UuidUtils.nameUUIDFromBytes(destNfsPath.getBytes()); String nfsVersion = destStore.getNfsVersion(); mountNfs(conn, destNfsPath, localDir, nfsVersion); diff --git a/plugins/hypervisors/xenserver/src/test/java/com/cloud/hypervisor/xenserver/resource/Xenserver625StorageProcessorTest.java b/plugins/hypervisors/xenserver/src/test/java/com/cloud/hypervisor/xenserver/resource/Xenserver625StorageProcessorTest.java index 5f2ae88faa73..ba7b88ea2298 100644 --- a/plugins/hypervisors/xenserver/src/test/java/com/cloud/hypervisor/xenserver/resource/Xenserver625StorageProcessorTest.java +++ b/plugins/hypervisors/xenserver/src/test/java/com/cloud/hypervisor/xenserver/resource/Xenserver625StorageProcessorTest.java @@ -26,7 +26,6 @@ import java.util.HashSet; import java.util.Set; -import java.util.UUID; import org.apache.commons.lang3.StringUtils; import org.apache.xmlrpc.XmlRpcException; @@ -41,6 +40,7 @@ import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; +import com.cloud.utils.UuidUtils; import com.cloud.utils.exception.CloudRuntimeException; import com.xensource.xenapi.Connection; import com.xensource.xenapi.Host; @@ -310,7 +310,7 @@ private void prepareAndExecuteTestcreateNewFileSrTestThrowingException(Class dsInfos) { } else if ("PreSetup".equalsIgnoreCase(scheme) && !HypervisorType.VMware.equals(hypervisorType)) { uuid = hostPath.replace("/", ""); } else { - uuid = UUID.nameUUIDFromBytes((storageHost + hostPath).getBytes()).toString(); + uuid = UuidUtils.nameUUIDFromBytes((storageHost + hostPath).getBytes()).toString(); } List spHandles = primaryDataStoreDao.findIfDuplicatePoolsExistByUUID(uuid); diff --git a/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java index 0c7d42ff8c2c..035fe1d6140f 100644 --- a/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java +++ b/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java @@ -43,7 +43,6 @@ import java.util.Objects; import java.util.Optional; import java.util.Set; -import java.util.UUID; import java.util.Vector; import java.util.stream.Collectors; @@ -289,6 +288,7 @@ import com.cloud.utils.Pair; import com.cloud.utils.Ternary; import com.cloud.utils.UriUtils; +import com.cloud.utils.UuidUtils; import com.cloud.utils.component.ManagerBase; import com.cloud.utils.crypt.DBEncryptionUtil; import com.cloud.utils.db.DB; @@ -3077,7 +3077,7 @@ public DataCenterVO createZone(final long userId, final String zoneName, final S checkZoneParameters(zoneName, dns1, dns2, internalDns1, internalDns2, true, domainId, allocationStateStr, ip6Dns1, ip6Dns2); final byte[] bytes = (zoneName + System.currentTimeMillis()).getBytes(); - final String zoneToken = UUID.nameUUIDFromBytes(bytes).toString(); + final String zoneToken = UuidUtils.nameUUIDFromBytes(bytes).toString(); // Create the new zone in the database final DataCenterVO zoneFinal = new DataCenterVO(zoneName, null, dns1, dns2, internalDns1, internalDns2, guestCidr, domain, domainId, zoneType, zoneToken, networkDomain, diff --git a/server/src/main/java/com/cloud/hypervisor/kvm/discoverer/LibvirtServerDiscoverer.java b/server/src/main/java/com/cloud/hypervisor/kvm/discoverer/LibvirtServerDiscoverer.java index a83db42f598e..7e019bb39f62 100644 --- a/server/src/main/java/com/cloud/hypervisor/kvm/discoverer/LibvirtServerDiscoverer.java +++ b/server/src/main/java/com/cloud/hypervisor/kvm/discoverer/LibvirtServerDiscoverer.java @@ -26,7 +26,6 @@ import java.util.HashSet; import java.util.List; import java.util.Map; -import java.util.UUID; import javax.inject.Inject; import javax.naming.ConfigurationException; @@ -69,6 +68,7 @@ import com.cloud.resource.UnableDeleteHostException; import com.cloud.utils.PasswordGenerator; import com.cloud.utils.StringUtils; +import com.cloud.utils.UuidUtils; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.ssh.SSHCmdHelper; import com.trilead.ssh2.Connection; @@ -241,7 +241,7 @@ private void setupAgentSecurity(final Connection sshConnection, final String age // Set cluster GUID based on cluster ID if null if (cluster.getGuid() == null) { - cluster.setGuid(UUID.nameUUIDFromBytes(String.valueOf(clusterId).getBytes()).toString()); + cluster.setGuid(UuidUtils.nameUUIDFromBytes(String.valueOf(clusterId).getBytes()).toString()); _clusterDao.update(clusterId, cluster); } @@ -259,7 +259,7 @@ private void setupAgentSecurity(final Connection sshConnection, final String age String hostname = uri.getHost(); InetAddress ia = InetAddress.getByName(hostname); agentIp = ia.getHostAddress(); - String guid = UUID.nameUUIDFromBytes(agentIp.getBytes()).toString(); + String guid = UuidUtils.nameUUIDFromBytes(agentIp.getBytes()).toString(); List existingHosts = _resourceMgr.listAllHostsInOneZoneByType(Host.Type.Routing, dcId); if (existingHosts != null) { diff --git a/server/src/main/java/com/cloud/test/DatabaseConfig.java b/server/src/main/java/com/cloud/test/DatabaseConfig.java index c48e3331a805..0f04cc71c1ad 100644 --- a/server/src/main/java/com/cloud/test/DatabaseConfig.java +++ b/server/src/main/java/com/cloud/test/DatabaseConfig.java @@ -57,6 +57,7 @@ import com.cloud.storage.dao.DiskOfferingDaoImpl; import com.cloud.utils.DateUtil; import com.cloud.utils.PropertiesUtil; +import com.cloud.utils.UuidUtils; import com.cloud.utils.component.ComponentContext; import com.cloud.utils.db.DB; import com.cloud.utils.db.Transaction; @@ -609,7 +610,7 @@ public void saveStoragePool() { String hostAddress = _currentObjectParams.get("hostAddress"); String hostPath = _currentObjectParams.get("hostPath"); String storageType = _currentObjectParams.get("storageType"); - String uuid = UUID.nameUUIDFromBytes(new String(hostAddress + hostPath).getBytes()).toString(); + String uuid = UuidUtils.nameUUIDFromBytes(new String(hostAddress + hostPath).getBytes()).toString(); String insertSql1 = "INSERT INTO `storage_pool` (`id`, `name`, `uuid` , `pool_type` , `port`, `data_center_id` ,`available_bytes` , `capacity_bytes` ,`host_address`, `path`, `created`, `pod_id`,`status` , `cluster_id`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; diff --git a/server/src/main/java/com/cloud/user/AccountManagerImpl.java b/server/src/main/java/com/cloud/user/AccountManagerImpl.java index db79323ed1e5..2d9f9cd5e32c 100644 --- a/server/src/main/java/com/cloud/user/AccountManagerImpl.java +++ b/server/src/main/java/com/cloud/user/AccountManagerImpl.java @@ -176,6 +176,7 @@ import com.cloud.utils.NumbersUtil; import com.cloud.utils.Pair; import com.cloud.utils.Ternary; +import com.cloud.utils.UuidUtils; import com.cloud.utils.component.ComponentContext; import com.cloud.utils.component.Manager; import com.cloud.utils.component.ManagerBase; @@ -1364,7 +1365,7 @@ public Pair doInTransaction(TransactionStatus status) { if (accountType == Account.Type.RESOURCE_DOMAIN_ADMIN) { // set registration token byte[] bytes = (domainIdFinal + accountNameFinal + userName + System.currentTimeMillis()).getBytes(); - String registrationToken = UUID.nameUUIDFromBytes(bytes).toString(); + String registrationToken = UuidUtils.nameUUIDFromBytes(bytes).toString(); user.setRegistrationToken(registrationToken); } diff --git a/services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java b/services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java index 609cda693f8e..500e6bf47dfd 100644 --- a/services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java +++ b/services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java @@ -172,6 +172,7 @@ import com.cloud.utils.Pair; import com.cloud.utils.StringUtils; import com.cloud.utils.SwiftUtil; +import com.cloud.utils.UuidUtils; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.net.NetUtils; import com.cloud.utils.script.OutputInterpreter; @@ -671,7 +672,7 @@ public String getTemplateOnSecStorageFilePath(String secStorageMountPoint, Strin } public static String getSecondaryDatastoreUUID(String storeUrl) { - return UUID.nameUUIDFromBytes(storeUrl.getBytes()).toString(); + return UuidUtils.nameUUIDFromBytes(storeUrl.getBytes()).toString(); } private static String getTemplateRelativeDirInSecStorage(long accountId, long templateId) { @@ -3029,7 +3030,7 @@ protected String mountUri(URI uri, String nfsVersion) throws UnknownHostExceptio String nfsPath = uriHostIp + ":" + uri.getPath(); // Single means of calculating mount directory regardless of scheme - String dir = UUID.nameUUIDFromBytes(nfsPath.getBytes(com.cloud.utils.StringUtils.getPreferredCharset())).toString(); + String dir = UuidUtils.nameUUIDFromBytes(nfsPath.getBytes(com.cloud.utils.StringUtils.getPreferredCharset())).toString(); String localRootPath = _parent + "/" + dir; // remote device syntax varies by scheme. @@ -3481,7 +3482,7 @@ public String postUpload(String uuid, String filename, long processTimeout) { templateName = uploadEntity.getUuid().trim().replace(" ", "_"); } else { try { - templateName = UUID.nameUUIDFromBytes((uploadEntity.getFilename() + System.currentTimeMillis()).getBytes("UTF-8")).toString(); + templateName = UuidUtils.nameUUIDFromBytes((uploadEntity.getFilename() + System.currentTimeMillis()).getBytes("UTF-8")).toString(); } catch (UnsupportedEncodingException e) { templateName = uploadEntity.getUuid().trim().replace(" ", "_"); } diff --git a/services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/template/DownloadManagerImpl.java b/services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/template/DownloadManagerImpl.java index 64bac9e43e25..599dcfa0c486 100644 --- a/services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/template/DownloadManagerImpl.java +++ b/services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/template/DownloadManagerImpl.java @@ -86,6 +86,7 @@ import com.cloud.storage.template.VhdProcessor; import com.cloud.storage.template.VmdkProcessor; import com.cloud.utils.NumbersUtil; +import com.cloud.utils.UuidUtils; import com.cloud.utils.component.ManagerBase; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.net.Proxy; @@ -595,7 +596,7 @@ private String makeTemplatename(String jobId, String extension) { if (extension.equals("iso")) { templateName = jobs.get(jobId).getTmpltName().trim().replace(" ", "_"); } else { - templateName = UUID.nameUUIDFromBytes((jobs.get(jobId).getTmpltName() + System.currentTimeMillis()).getBytes(com.cloud.utils.StringUtils.getPreferredCharset())).toString(); + templateName = UuidUtils.nameUUIDFromBytes((jobs.get(jobId).getTmpltName() + System.currentTimeMillis()).getBytes(com.cloud.utils.StringUtils.getPreferredCharset())).toString(); } return templateName; } diff --git a/utils/src/main/java/com/cloud/utils/UuidUtils.java b/utils/src/main/java/com/cloud/utils/UuidUtils.java index 42604e5c8a0d..6f62bd4a9528 100644 --- a/utils/src/main/java/com/cloud/utils/UuidUtils.java +++ b/utils/src/main/java/com/cloud/utils/UuidUtils.java @@ -22,6 +22,8 @@ import com.cloud.utils.exception.CloudRuntimeException; import org.apache.xerces.impl.xpath.regex.RegularExpression; +import java.util.UUID; + public class UuidUtils { private static final RegularExpression uuidRegex = new RegularExpression("[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}"); @@ -64,4 +66,9 @@ public static String normalize(String noHyphen) { public static RegularExpression getUuidRegex() { return uuidRegex; } + + + public static UUID nameUUIDFromBytes(byte[] name) { + return UUID.nameUUIDFromBytes(name); + } } diff --git a/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java b/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java index 1dc6ab64f0a2..6c941f8012a6 100644 --- a/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java +++ b/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java @@ -65,6 +65,7 @@ import com.cloud.utils.LogUtils; import com.cloud.utils.NumbersUtil; import com.cloud.utils.Pair; +import com.cloud.utils.UuidUtils; import com.cloud.utils.cisco.n1kv.vsm.NetconfHelper; import com.cloud.utils.cisco.n1kv.vsm.PolicyMap; import com.cloud.utils.cisco.n1kv.vsm.PortProfile; @@ -249,7 +250,7 @@ public static ManagedObjectReference findDatastoreWithBackwardsCompatibility(Vmw } public static String getSecondaryDatastoreUUID(String storeUrl) { - return UUID.nameUUIDFromBytes(storeUrl.getBytes()).toString(); + return UuidUtils.nameUUIDFromBytes(storeUrl.getBytes()).toString(); } public static DatastoreMO getHyperHostDatastoreMO(VmwareHypervisorHost hyperHost, String datastoreName) throws Exception {