utils: add UuidUtils.nameUUIDFromBytes (#11136)

* utils: add UuidUtils.nameUUIDFromBytes

* Fix PR 13922
This commit is contained in:
Wei Zhou 2025-09-01 08:10:31 +02:00 committed by GitHub
parent ba42d25162
commit ca0c3530ad
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
37 changed files with 100 additions and 71 deletions

View File

@ -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");

View File

@ -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) {

View File

@ -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() {

View File

@ -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();
}

View File

@ -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());

View File

@ -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();

View File

@ -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());

View File

@ -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);

View File

@ -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);

View File

@ -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) {

View File

@ -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;
}

View File

@ -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();
}
/**

View File

@ -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

View File

@ -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");

View File

@ -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;

View File

@ -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 */

View File

@ -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)) {

View File

@ -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());

View File

@ -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);

View File

@ -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);

View File

@ -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.");
}

View File

@ -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("-", "");

View File

@ -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.");
}

View File

@ -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("-", "");

View File

@ -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)) {

View File

@ -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

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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,

View File

@ -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) {

View File

@ -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 (?,?,?,?,?,?,?,?,?,?,?,?,?,?)";

View File

@ -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);
}

View File

@ -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(" ", "_");
}

View File

@ -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;
}

View File

@ -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);
}
}

View File

@ -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 {