This is an automated email from the ASF dual-hosted git repository.

weizhou pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/main by this push:
     new ca0c3530ad0 utils: add UuidUtils.nameUUIDFromBytes (#11136)
ca0c3530ad0 is described below

commit ca0c3530ad0c47fe7a21b4ed1f0590463c318c16
Author: Wei Zhou <[email protected]>
AuthorDate: Mon Sep 1 08:10:31 2025 +0200

    utils: add UuidUtils.nameUUIDFromBytes (#11136)
    
    * utils: add UuidUtils.nameUUIDFromBytes
    
    * Fix PR 13922
---
 .../java/com/cloud/agent/resource/DummyResource.java    |  4 ++--
 .../com/cloud/agent/api/DeleteStoragePoolCommand.java   |  4 ++--
 .../com/cloud/agent/api/ModifyStoragePoolCommand.java   |  6 +++---
 .../src/main/java/com/cloud/storage/VMTemplateVO.java   |  3 ++-
 .../apache/cloudstack/storage/test/SnapshotTest.java    |  3 ++-
 .../cloudstack/storage/test/VolumeServiceTest.java      |  5 +++--
 .../cloudstack/storage/test/VolumeTestVmware.java       |  3 ++-
 .../cloudstack/mom/rabbitmq/RabbitMQEventBus.java       |  3 ++-
 .../cloud/baremetal/manager/BareMetalDiscoverer.java    |  3 ++-
 .../external/discoverer/ExternalServerDiscoverer.java   |  3 ++-
 .../hyperv/discoverer/HypervServerDiscoverer.java       |  8 ++++----
 .../kvm/resource/LibvirtComputingResource.java          |  2 +-
 .../hypervisor/kvm/storage/KVMStoragePoolManager.java   |  4 ++--
 .../java/com/cloud/ovm/hypervisor/OvmDiscoverer.java    |  3 ++-
 .../java/com/cloud/ovm/hypervisor/OvmResourceBase.java  |  4 ++--
 .../com/cloud/hypervisor/ovm3/objects/OvmObject.java    |  3 ++-
 .../cloud/hypervisor/ovm3/resources/Ovm3Discoverer.java |  3 ++-
 .../ovm3/resources/Ovm3HypervisorResource.java          |  4 ++--
 .../java/com/cloud/hypervisor/ovm3/objects/XenTest.java |  5 ++---
 .../com/cloud/agent/manager/MockStorageManagerImpl.java |  3 ++-
 .../cloud/hypervisor/vmware/VmwareServerDiscoverer.java |  4 ++--
 .../vmware/manager/VmwareStorageManagerImpl.java        |  3 ++-
 .../hypervisor/vmware/resource/VmwareResource.java      |  5 +++--
 .../cloud/storage/resource/VmwareStorageProcessor.java  |  7 ++++---
 .../xenserver/resource/CitrixResourceBase.java          |  9 +++++----
 .../xenserver/resource/XenServerStorageProcessor.java   |  3 ++-
 .../resource/Xenserver625StorageProcessor.java          | 17 +++++++++--------
 .../resource/Xenserver625StorageProcessorTest.java      |  8 ++++----
 .../CloudStackPrimaryDataStoreLifeCycleImpl.java        |  3 ++-
 .../cloud/configuration/ConfigurationManagerImpl.java   |  4 ++--
 .../kvm/discoverer/LibvirtServerDiscoverer.java         |  6 +++---
 server/src/main/java/com/cloud/test/DatabaseConfig.java |  3 ++-
 .../main/java/com/cloud/user/AccountManagerImpl.java    |  3 ++-
 .../storage/resource/NfsSecondaryStorageResource.java   |  7 ++++---
 .../storage/template/DownloadManagerImpl.java           |  3 ++-
 utils/src/main/java/com/cloud/utils/UuidUtils.java      |  7 +++++++
 .../hypervisor/vmware/mo/HypervisorHostHelper.java      |  3 ++-
 37 files changed, 100 insertions(+), 71 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 fe519ca9497..4002e53b585 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.ArrayList;
 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.resource.ServerResource;
 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 @@ public class DummyResource implements ServerResource {
         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 969dd2eb801..84ca39f1546 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 @@ package com.cloud.agent.api;
 
 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 class DeleteStoragePoolCommand extends Command {
     }
 
     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 06940266b53..a72000d7399 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 @@ package com.cloud.agent.api;
 
 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 class ModifyStoragePoolCommand extends Command {
     }
 
     public ModifyStoragePoolCommand(boolean add, StoragePool pool, Map<String, 
String> 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 3486bac010e..88d3b7ba2d8 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 javax.persistence.Transient;
 
 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;
@@ -344,7 +345,7 @@ public class VMTemplateVO implements VirtualMachineTemplate 
{
         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 0185c0d1934..f07866c8353 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.VolumeVO;
 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 @@ public class SnapshotTest extends CloudStackTestNGBase {
 
     public DataStore createPrimaryDataStore() {
         try {
-            String uuid = 
UUID.nameUUIDFromBytes(this.getPrimaryStorageUrl().getBytes()).toString();
+            String uuid = 
UuidUtils.nameUUIDFromBytes(this.getPrimaryStorageUrl().getBytes()).toString();
             List<StoragePoolVO> 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 5ed0cc3f1fa..c478e2e7c63 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.Volume;
 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 class VolumeServiceTest extends CloudStackTestNGBase 
{
         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 class VolumeServiceTest extends CloudStackTestNGBase 
{
             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 98af170356f..c0f43da122b 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.Volume;
 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 @@ public class VolumeTestVmware extends CloudStackTestNGBase {
 
     public DataStore createPrimaryDataStore() {
         try {
-            String uuid = 
UUID.nameUUIDFromBytes(this.getPrimaryStorageUrl().getBytes()).toString();
+            String uuid = 
UuidUtils.nameUUIDFromBytes(this.getPrimaryStorageUrl().getBytes()).toString();
             List<StoragePoolVO> 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 e8067e75b40..224e49f91a3 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 java.util.concurrent.TimeoutException;
 
 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 class RabbitMQEventBus extends ManagerBase 
implements EventBus {
         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<String, Channel, EventSubscriber> 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 f918f66941e..f12d701d2e2 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.DiscovererBase;
 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 class BareMetalDiscoverer extends DiscovererBase 
implements Discoverer, R
             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/external/src/main/java/org/apache/cloudstack/hypervisor/external/discoverer/ExternalServerDiscoverer.java
 
b/plugins/hypervisors/external/src/main/java/org/apache/cloudstack/hypervisor/external/discoverer/ExternalServerDiscoverer.java
index 643a29fe3ee..fd7b15dc5e5 100644
--- 
a/plugins/hypervisors/external/src/main/java/org/apache/cloudstack/hypervisor/external/discoverer/ExternalServerDiscoverer.java
+++ 
b/plugins/hypervisors/external/src/main/java/org/apache/cloudstack/hypervisor/external/discoverer/ExternalServerDiscoverer.java
@@ -54,6 +54,7 @@ import com.cloud.resource.DiscovererBase;
 import com.cloud.resource.ResourceStateAdapter;
 import com.cloud.resource.ServerResource;
 import com.cloud.resource.UnableDeleteHostException;
+import com.cloud.utils.UuidUtils;
 
 public class ExternalServerDiscoverer extends DiscovererBase implements 
Discoverer, Listener, ResourceStateAdapter {
 
@@ -133,7 +134,7 @@ public class ExternalServerDiscoverer extends 
DiscovererBase implements Discover
     }
 
     protected String getResourceGuidFromName(String name) {
-        return "External:" + UUID.nameUUIDFromBytes(name.getBytes());
+        return "External:" + UuidUtils.nameUUIDFromBytes(name.getBytes());
     }
 
     protected void addExtensionDataToResourceParams(ExtensionVO extension, 
Map<String, Object> params) {
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 a5947238bf6..a5fe1442e56 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.HashMap;
 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.ResourceStateAdapter;
 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 class HypervServerDiscoverer extends DiscovererBase 
implements Discoverer
             // 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 class HypervServerDiscoverer extends DiscovererBase 
implements Discoverer
     /**
      * 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 class HypervServerDiscoverer extends DiscovererBase 
implements Discoverer
      * @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 9fd33c7284c..096ec26e878 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
@@ -6096,7 +6096,7 @@ public class LibvirtComputingResource extends 
ServerResourceBase implements Serv
     }
 
     public static String generateSecretUUIDFromString(String seed) {
-        return UUID.nameUUIDFromBytes(seed.getBytes()).toString();
+        return UuidUtils.nameUUIDFromBytes(seed.getBytes()).toString();
     }
 
     /**
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 bf9cc30d55d..0bb72fd14ca 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.HashMap;
 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.StorageLayer;
 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;
 
@@ -331,7 +331,7 @@ public class KVMStoragePoolManager {
         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;
 
         // storage registers itself through here
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 82cb61d7a1f..7dfd98301d7 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.ResourceManager;
 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 @@ public class OvmDiscoverer extends DiscovererBase 
implements Discoverer, Resourc
             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 9d958a9894a..951741cbb59 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.ArrayList;
 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.storage.template.TemplateProp;
 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 @@ public class OvmResourceBase implements ServerResource, 
HypervisorResource {
         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 3b7354c34c5..d98f3bb6d3f 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.XPathExpression;
 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 class OvmObject {
 
     /* 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 2305dbb6c26..52cc419ad2e 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.ResourceManager;
 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 class Ovm3Discoverer extends DiscovererBase 
implements Discoverer,
 
             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 ba4304d349c..d01738ea086 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 @@ package com.cloud.hypervisor.ovm3.resources;
 
 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.resource.hypervisor.HypervisorResource;
 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 class Ovm3HypervisorResource extends 
ServerResourceBase implements Hyperv
             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 c76f2feccdc..34f67df2d25 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 class XenTest {
         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 4ade80a8fb2..5d0fe3b50c3 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;
 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 class MockStorageManagerImpl extends ManagerBase 
implements MockStorageMa
                 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 1be381dcd54..a5d1127e331 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.net.URLDecoder;
 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.template.TemplateManager;
 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 class VmwareServerDiscoverer extends DiscovererBase 
implements Discoverer
 
             // 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 6203d5b9a94..7147ae18581 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.storage.template.OVAProcessor;
 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 class VmwareStorageManagerImpl implements 
VmwareStorageManager {
         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 aecfb58d708..289dae42e91 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.NumbersUtil;
 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 @@ public class VmwareResource extends ServerResourceBase 
implements StoragePoolRes
                     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 class VmwareResource extends ServerResourceBase 
implements StoragePoolRes
     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 e4b3282defb..e4fd5d24f43 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.template.TemplateManager;
 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 @@ public class VmwareStorageProcessor implements 
StorageProcessor {
     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 class VmwareStorageProcessor implements 
StorageProcessor {
     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 5f86c9574d5..4658b0eb4e5 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.Pair;
 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 @@ public abstract class CitrixResourceBase extends 
ServerResourceBase implements S
             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<SR> srs = SR.getByNameLabel(conn, name);
                 for (final SR sr : srs) {
@@ -5763,7 +5764,7 @@ public abstract class CitrixResourceBase extends 
ServerResourceBase implements S
         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 abstract class CitrixResourceBase extends 
ServerResourceBase implements S
 
     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 @@ public abstract class CitrixResourceBase extends 
ServerResourceBase implements S
     // 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 1d405316ad7..a214131c47d 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.DataStoreRole;
 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 class XenServerStorageProcessor implements 
StorageProcessor {
             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 773b443a57e..c7b288ef8c7 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.agent.api.to.SwiftTO;
 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 class Xenserver625StorageProcessor extends 
XenServerStorageProcessor {
 
     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 @@ public class Xenserver625StorageProcessor extends 
XenServerStorageProcessor {
 
     /**
      * 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 @@ public class Xenserver625StorageProcessor extends 
XenServerStorageProcessor {
         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<String, String> smConfig = new HashMap<String, String>();
             sr = SR.introduce(conn, srUuid, srPath, srPath, "file", "file", 
false, smConfig);
@@ -243,7 +244,7 @@ public class Xenserver625StorageProcessor extends 
XenServerStorageProcessor {
     }
 
     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 class Xenserver625StorageProcessor extends 
XenServerStorageProcessor {
             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 class Xenserver625StorageProcessor extends 
XenServerStorageProcessor {
             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 @@ public class Xenserver625StorageProcessor extends 
XenServerStorageProcessor {
             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 5f2ae88faa7..ba7b88ea229 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 static org.mockito.Mockito.times;
 
 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.MockedStatic;
 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 @@ public class Xenserver625StorageProcessorTest {
         String uuid = "hostUuid";
         Mockito.when(citrixResourceBase._host.getUuid()).thenReturn(uuid);
 
-        String srUuid = UUID.nameUUIDFromBytes(pathMock.getBytes()).toString();
+        String srUuid = 
UuidUtils.nameUUIDFromBytes(pathMock.getBytes()).toString();
 
         Host hostMock = Mockito.mock(Host.class);
 
@@ -337,7 +337,7 @@ public class Xenserver625StorageProcessorTest {
 
         SR srMock = Mockito.mock(SR.class);
         
Mockito.doReturn(srMock).when(xenserver625StorageProcessor).retrieveAlreadyConfiguredSrWithoutException(connectionMock,
 pathMock);
-        String srUuid = UUID.nameUUIDFromBytes(pathMock.getBytes()).toString();
+        String srUuid = 
UuidUtils.nameUUIDFromBytes(pathMock.getBytes()).toString();
 
         Host hostMock = Mockito.mock(Host.class);
 
@@ -368,7 +368,7 @@ public class Xenserver625StorageProcessorTest {
         Mockito.when(citrixResourceBase._host.getUuid()).thenReturn(uuid);
 
         SR srMock = Mockito.mock(SR.class);
-        String srUuid = UUID.nameUUIDFromBytes(pathMock.getBytes()).toString();
+        String srUuid = 
UuidUtils.nameUUIDFromBytes(pathMock.getBytes()).toString();
 
         Host hostMock = Mockito.mock(Host.class);
 
diff --git 
a/plugins/storage/volume/default/src/main/java/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackPrimaryDataStoreLifeCycleImpl.java
 
b/plugins/storage/volume/default/src/main/java/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackPrimaryDataStoreLifeCycleImpl.java
index fbcc51e2e8c..b3cf825ea59 100644
--- 
a/plugins/storage/volume/default/src/main/java/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackPrimaryDataStoreLifeCycleImpl.java
+++ 
b/plugins/storage/volume/default/src/main/java/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackPrimaryDataStoreLifeCycleImpl.java
@@ -69,6 +69,7 @@ import com.cloud.storage.dao.VolumeDao;
 import com.cloud.user.dao.UserDao;
 import com.cloud.utils.NumbersUtil;
 import com.cloud.utils.Pair;
+import com.cloud.utils.UuidUtils;
 import com.cloud.utils.db.DB;
 import com.cloud.utils.exception.CloudRuntimeException;
 import com.cloud.vm.VirtualMachineManager;
@@ -309,7 +310,7 @@ public class CloudStackPrimaryDataStoreLifeCycleImpl 
extends BasePrimaryDataStor
         } 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<StoragePoolVO> 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 64b2a66f452..300a96b27b5 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.Map.Entry;
 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;
 
@@ -293,6 +292,7 @@ import com.cloud.utils.NumbersUtil;
 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;
@@ -3106,7 +3106,7 @@ public class ConfigurationManagerImpl extends ManagerBase 
implements Configurati
         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 a83db42f598..7e019bb39f6 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.HashMap;
 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.ServerResource;
 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 @@ public abstract class LibvirtServerDiscoverer extends 
DiscovererBase implements
 
         // 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 @@ public abstract class LibvirtServerDiscoverer extends 
DiscovererBase implements
             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<HostVO> 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 c48e3331a80..0f04cc71c1a 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.Storage.ProvisioningType;
 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 class DatabaseConfig {
         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 d93993af9ab..a73a00d9152 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.ConstantTimeComparator;
 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;
@@ -1365,7 +1366,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
                 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 609cda693f8..500e6bf47df 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.NumbersUtil;
 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 class NfsSecondaryStorageResource extends 
ServerResourceBase implements S
     }
 
     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 @@ public class NfsSecondaryStorageResource extends 
ServerResourceBase implements S
         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 class NfsSecondaryStorageResource extends 
ServerResourceBase implements S
             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 64bac9e43e2..599dcfa0c48 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.TemplateProp;
 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 @@ public class DownloadManagerImpl extends ManagerBase 
implements DownloadManager
         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 42604e5c8a0..6f62bd4a952 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 @@ package com.cloud.utils;
 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 class UuidUtils {
     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 1dc6ab64f0a..6c941f8012a 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.ActionDelegate;
 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 class HypervisorHostHelper {
     }
 
     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 {

Reply via email to