Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
93 commits
Select commit Hold shift + click to select a range
5ce64bd
<fix>[host]: filter out disks of type loop and rom
taogan21 Jan 14, 2026
13b74e6
Merge branch 'ZSV-10987@@2' into 'zsv_4.10.28'
Jan 15, 2026
fa2b6c0
<fix>[account-import]: add progress for deleting ldap server
Jan 21, 2026
d740ed6
Merge branch 'c-1' into 'zsv_4.10.28'
Jan 22, 2026
1d840fd
<chore>[conf]: update i18n json for mevoco module
Jan 22, 2026
426f554
Merge branch 'zsv-6@@2' into 'zsv_4.10.28'
Jan 23, 2026
c48371f
<chore>[conf]: update i18n files
Jan 23, 2026
b1410ba
Merge branch 'c-1' into 'zsv_4.10.28'
Jan 23, 2026
cff74aa
<test>[storage]: remove CreateVmInstance.dataDiskOfferingUuids usage
Jan 26, 2026
f20937f
Merge branch 'c-3' into 'zsv_4.10.28'
Jan 26, 2026
6c48623
<fix>[utils]: correct CPU model and MAC retrieval in license check
Jan 26, 2026
6a62586
Merge branch 'zsv-2@@2' into 'zsv_4.10.28'
Jan 27, 2026
12a8d54
<test>[storage]: remove CreateVmInstance.dataDiskOfferingUuids usage
Jan 27, 2026
9d7e4f9
Merge branch 'c-3' into 'zsv_4.10.28'
Jan 27, 2026
0eecc2c
<test>[volume]: remove CreateVmInstance.dataDiskOfferingUuids usage
Jan 28, 2026
3f6294a
Merge branch 'c-2' into 'zsv_4.10.28'
Jan 29, 2026
71c0f8b
<test>[testlib]: support diskUsePrimaryStorage in disk block
Jan 28, 2026
fcc7f82
Merge branch 'ZSV-11263' into 'zsv_4.10.28'
Jan 29, 2026
8d6e830
<test>[storage]: remove CreateVmInstance.dataDiskOfferingUuids usage
Jan 29, 2026
512ba72
<fix>[localstorage]: fix error message in LocalStorageMainAllocatorFlow
Jan 29, 2026
ddf61e5
Merge branch 'c-1' into 'zsv_4.10.28'
Jan 30, 2026
de93f6a
<chore>[ceph]: support systemTag for diskAO.diskOfferingUuid
Jan 30, 2026
f9f2321
<fix>[message]: fix incorrect parameter of the format string in ApiMe…
Jan 30, 2026
5924b9d
Merge branch 'ZSV-11278@@2' into 'zsv_4.10.28'
Jan 30, 2026
1bed14c
<test>[storage]: remove CreateVmInstance.dataDiskOfferingUuids usage
Jan 30, 2026
cf9b400
Merge branch 'ZSV-11283' into 'zsv_5.0.0'
Feb 2, 2026
30bf2c7
Merge branch 'c-2' into 'zsv_5.0.0'
Feb 2, 2026
286395a
<fix>[i18n]: translate the error message when reconnecting hosts afte…
Feb 24, 2026
65cdaac
Merge branch 'ZSV-8182' into 'zsv_5.0.0'
Feb 24, 2026
98e2c1c
<fix>[conf]: add i18n "volume[uuid:%s] has been deleted"
Feb 26, 2026
8557822
Merge branch 'ZSV-5838@@2' into 'zsv_5.0.0'
Feb 26, 2026
c82be83
<fix>[conf]: translate the error message when reconnecting hosts afte…
Mar 3, 2026
1e7e0c9
Merge branch 'ZSV-8182' into 'zsv_5.0.0'
Mar 9, 2026
125d768
<feature>[identity]: introduce resource-viewer roles
Mar 10, 2026
421e9c8
Merge branch 'zsv-ldap-9@@2' into 'zsv_5.0.0'
Mar 11, 2026
b429014
<fix>[compute]: add opaque on check root disk settings failed
Jan 13, 2026
3dce354
<fix>[kvm]: add VM edk tags
Jan 13, 2026
bab2bb0
<fix>[conf]: add V5.0.0__schema.sql
Feb 5, 2026
c3b3e29
<feature>[header]: add TPM depandency
Feb 3, 2026
6ffa50e
<feature>[compute]: support create VM with TPM
Feb 4, 2026
88ec387
<feature>[compute]: add secure boot dependency
Feb 4, 2026
3c7a4a9
<feature>[kms]: support kms
Feb 6, 2026
e220fc5
<chore>[storage]: improve error message in VolumeSnapshotApiInterceptor
Feb 11, 2026
fba75d4
<fix>[kvm]: update KVMGlobalConfig default value to "None"
Feb 11, 2026
0cc0e42
<fix>[kvm]: continue to update KVMGlobalConfig default value to "None"
Feb 12, 2026
176a88c
<fix>[conf]: update default value of secure.boot global config to false
Feb 24, 2026
5406edf
<feature>[compute]: introduce NvRam type volume
Feb 13, 2026
6eb703b
<feature>[localstorage]: support create empty volume in raw types
Feb 13, 2026
e765ffa
<fix>[localstorage]: remame CreateEmptyVolumeCmd.format to volumeFormat
Feb 26, 2026
f05b910
<feature>[kms]: support kms trust API
Feb 26, 2026
22dd42b
<feature>[header]: introduce VmHostFileVO
Mar 3, 2026
7de9318
<fix>[conf]: update VmHostFileContentVO.content default value
Mar 5, 2026
ff954c5
<feature>[header]: merge TpmHostRefVO to VmHostFileVO
Mar 6, 2026
2dfc2dc
<fix>[kvm]: fix swtpm path error
Mar 10, 2026
32d4708
<fix>[sdk]: rekey API and root key synchronization
Mar 6, 2026
0e13680
<fix>[kvm]: update condition write VM host file
Mar 11, 2026
116a87c
Envelope wrapper dek to compute
Mar 6, 2026
a0ffd8d
Add verified to HostKeyIdentityVO
Mar 6, 2026
0462306
Rename sync-envelope-public-key
Mar 6, 2026
0150b21
Place holder public key
Mar 6, 2026
974ca9f
Place holder public key
Mar 6, 2026
896bdf0
Place holder public key
Mar 6, 2026
f42e62d
Remove rotate public key in initial pingHook
Mar 6, 2026
30412ac
Add variable to SecretHostDefineCmd
Mar 6, 2026
09d5362
Remove rotate public key when define secret
Mar 6, 2026
be7aaad
Envelope public key async call kvm agent
Mar 6, 2026
225ffe0
Limit dek length when define libvirt secret
Mar 6, 2026
a34f8c1
Hide dek in log
Mar 7, 2026
fc9e820
Remove test point in stopVm
Mar 7, 2026
83121e1
Improve HostSecretCase test
Mar 8, 2026
6e30df6
Compute fingerprint of public key
Mar 8, 2026
f3dea23
Verify fingerprint in secret define
Mar 8, 2026
8a30f81
Remove secret host get/create extension point
Mar 8, 2026
7014e1a
Fix primary key confict error
Mar 9, 2026
ce6267e
Use UTF-8 instead HPKE default charset
Mar 9, 2026
cbe58e9
Move some logic to premium
Mar 10, 2026
8438c7a
Remove redunrant extension config
Mar 10, 2026
8370b4d
Add envelope test
Mar 10, 2026
5da8d06
Introduce host key helper
Mar 10, 2026
b432c1b
Mova secret test to premium
Mar 10, 2026
55d935a
Remove unused envelopeDekBase64
Mar 11, 2026
e2242e1
Verify storedFingerprint is null
Mar 11, 2026
54bd2d9
Remove self errCode
Mar 11, 2026
2eeea98
Fix some review suggestion
Mar 11, 2026
9ed8919
Fix db Duplicate entry
Mar 11, 2026
d6c42af
Remove catching EntityExistsException
Mar 11, 2026
20eb208
<feature>[kvm]: introduce VmHostBackupFileVO
Mar 12, 2026
9c35f1f
<feature>[kvm]: support clone for TPM VM
Mar 12, 2026
5449945
<feature>[kvm]: support to start VM with VmHostBackupFileVO
Mar 12, 2026
cf37a84
<feature>[kvm]: clean VmHostFileVO after VM destroy
Mar 12, 2026
f1943f7
<fix>[header]: fix reference error in VmHostFileContentVO
Mar 16, 2026
4ce7c2f
<fix>[keyProvider]: reset default key provider after delete
Mar 13, 2026
f049511
<feature>[compute]: persist resource key when creating VM
Mar 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions build/deploydb.sh
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ mkdir -p ${flyway_sql}
eval "rm -f ${flyway_sql}/*"
cp ${base}/../conf/db/V0.6__schema.sql ${flyway_sql}
cp ${base}/../conf/db/upgrade/* ${flyway_sql}
cp ${base}/../conf/db/zsv/* ${flyway_sql}

if [[ ! -n $host ]] || [[ ! -n $port ]];then
url="jdbc:mysql://localhost:3306/zstack"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,11 @@ public class ComputeLegacyGlobalProperty {
*/
@GlobalProperty(name="legacyCpuTopologyFix", defaultValue = "false")
public static boolean cpuTopologyFix;
/**
* if enableNvRamTypeVolume = true, NvRam type volume will be created if UEFI is enabled;
* if enableNvRamTypeVolume = false, NvRam type volume will not be created, NvRam & TpmState will save in host
* (not in Primary storage);
*/
@GlobalProperty(name="enable.nv.ram.type.volume", defaultValue = "false")
public static boolean enableNvRamTypeVolume;
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import org.zstack.header.configuration.VmCustomSpecificationStruct;
import org.zstack.header.host.CpuArchitecture;
import org.zstack.header.vm.*;
import org.zstack.header.vm.devices.VmDevicesSpec;

import java.util.ArrayList;
import java.util.List;
Expand Down Expand Up @@ -32,6 +33,7 @@ public class InstantiateVmFromNewCreatedStruct {
private List<DiskAO> dataDisks;
private List<DiskAO> deprecatedDataVolumeSpecs = new ArrayList<>();
private VmCustomSpecificationStruct vmCustomSpecification;
private VmDevicesSpec devicesSpec;

public List<String> getCandidatePrimaryStorageUuidsForRootVolume() {
return candidatePrimaryStorageUuidsForRootVolume;
Expand Down Expand Up @@ -87,6 +89,14 @@ public void setVmCustomSpecification(VmCustomSpecificationStruct vmCustomSpecifi
this.vmCustomSpecification = vmCustomSpecification;
}

public VmDevicesSpec getDevicesSpec() {
return devicesSpec;
}

public void setDevicesSpec(VmDevicesSpec devicesSpec) {
this.devicesSpec = devicesSpec;
}

public List<String> getRootVolumeSystemTags() {
return rootVolumeSystemTags;
}
Expand Down Expand Up @@ -167,6 +177,7 @@ public static InstantiateVmFromNewCreatedStruct fromMessage(InstantiateNewCreate
struct.setDataDisks(msg.getDataDisks());
struct.setDeprecatedDataVolumeSpecs(msg.getDeprecatedDataVolumeSpecs());
struct.setVmCustomSpecification(msg.getVmCustomSpecification());
struct.setDevicesSpec(msg.getDevicesSpec());
return struct;
}

Expand All @@ -187,6 +198,7 @@ public static InstantiateVmFromNewCreatedStruct fromMessage(CreateVmInstanceMsg
struct.setDataDisks(msg.getDataDisks());
struct.setDeprecatedDataVolumeSpecs(msg.getDeprecatedDataVolumeSpecs());
struct.setVmCustomSpecification(msg.getVmCustomSpecification());
struct.setDevicesSpec(msg.getDevicesSpec());
return struct;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -472,9 +472,9 @@ public void done(ErrorCodeList errorCodeList) {
.flatMap(List::stream).map(VmCdRomInventory::getUuid)
.collect(Collectors.toList());
dbf.removeByPrimaryKeys(cdRomUuids, VmCdRomVO.class);
dbf.removeByPrimaryKeys(vminvs.stream().map(p -> p.getInventory().getUuid())
.collect(Collectors.toList()),
VmInstanceVO.class);

List<String> vmUuidList = transform(vminvs, p -> p.getInventory().getUuid());
dbf.removeByPrimaryKeys(vmUuidList, VmInstanceVO.class);
}

completion.success();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,9 @@ public void run(final FlowTrigger trigger, Map data) {
final boolean templated = isTemplated(spec.getVmInventory().getUuid());

/* data volume must be detached anyway no matter if it is going to be deleted */
if (spec.getVmInventory().getAllVolumes().size() > 1) {
boolean anyDataVolume = spec.getVmInventory().getAllVolumes().stream()
.anyMatch(arg -> VolumeType.Data.toString().equals(arg.getType()));
if (anyDataVolume) {
detachDataVolumes(spec);
}

Expand All @@ -60,7 +62,12 @@ public void run(final FlowTrigger trigger, Map data) {
return;
}

List<String> volumeTypes = Arrays.asList(VolumeType.Root.toString(), VolumeType.Memory.toString(), VolumeType.Cache.toString());
List<String> volumeTypes = Arrays.asList(
VolumeType.Root.toString(),
VolumeType.Memory.toString(),
VolumeType.Cache.toString(),
VolumeType.NvRam.toString()
);
List<VolumeDeletionStruct> ctx = transformAndRemoveNull(spec.getVmInventory().getAllVolumes(), arg -> {
if (VolumeType.Data.toString().equals(arg.getType()) && !deleteDataDisk && !templated) {
return null;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
package org.zstack.compute.vm;

import org.springframework.beans.factory.annotation.Autowire;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Configurable;
import org.zstack.core.asyncbatch.While;
import org.zstack.core.cloudbus.CloudBus;
import org.zstack.core.cloudbus.CloudBusCallBack;
import org.zstack.core.db.Q;
import org.zstack.header.core.WhileDoneCompletion;
import org.zstack.header.core.workflow.FlowTrigger;
import org.zstack.header.core.workflow.NoRollbackFlow;
import org.zstack.header.errorcode.ErrorCodeList;
import org.zstack.header.message.MessageReply;
import org.zstack.header.vm.VmInstanceConstant;
import org.zstack.header.vm.VmInstanceSpec;
import org.zstack.header.volume.ExpungeVolumeMsg;
import org.zstack.header.volume.VolumeConstant;
import org.zstack.header.volume.VolumeType;
import org.zstack.header.volume.VolumeVO;
import org.zstack.header.volume.VolumeVO_;
import org.zstack.utils.Utils;
import org.zstack.utils.logging.CLogger;

import java.util.List;
import java.util.Map;

import static org.zstack.core.Platform.multiErr;

@Configurable(preConstruction = true, autowire = Autowire.BY_TYPE)
public class VmExpungeNvRamVolumeFlow extends NoRollbackFlow {
private static final CLogger logger = Utils.getLogger(VmExpungeNvRamVolumeFlow.class);

@Autowired
protected CloudBus bus;

@Override
@SuppressWarnings("rawtypes")
public void run(FlowTrigger trigger, Map data) {
final VmInstanceSpec spec = (VmInstanceSpec) data.get(VmInstanceConstant.Params.VmInstanceSpec.toString());
String vmUuid = spec.getVmInventory().getUuid();

List<VolumeVO> volumes = Q.New(VolumeVO.class)
.eq(VolumeVO_.vmInstanceUuid, vmUuid)
.eq(VolumeVO_.type, VolumeType.NvRam)
.list();
if (volumes.isEmpty()) {
trigger.next();
return;
}

new While<>(volumes).each((vol, c) -> {
ExpungeVolumeMsg msg = new ExpungeVolumeMsg();
msg.setVolumeUuid(vol.getUuid());
bus.makeTargetServiceIdByResourceUuid(msg, VolumeConstant.SERVICE_ID, vol.getUuid());
bus.send(msg, new CloudBusCallBack(c) {
@Override
public void run(MessageReply reply) {
if (!reply.isSuccess()) {
logger.warn(String.format("failed to expunge the NvRam volume[uuid:%s] of the vm[uuid:%s, name:%s]: %s",
vol.getUuid(), spec.getVmInventory().getUuid(),
spec.getVmInventory().getName(), reply.getError()));

c.addError(reply.getError()
.withOpaque("volume.uuid", vol.getUuid()));
}

c.done();
}
});
}).run(new WhileDoneCompletion(trigger) {
@Override
public void done(ErrorCodeList errorCodeList) {
if (!errorCodeList.getCauses().isEmpty()) {
trigger.fail(multiErr(errorCodeList.getCauses(), "failed to expunge the NvRam volumes"));
return;
}

trigger.next();
}
});
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ public class VmGlobalConfig {
@GlobalConfigDef(defaultValue = "false", type = Boolean.class, description = "sync clock after vm resume")
public static GlobalConfig VM_CLOCK_SYNC_AFTER_VM_RESUME = new GlobalConfig(CATEGORY, "vm.clock.sync.after.vm.resume");

@BindResourceConfig(value = {VmInstanceVO.class, ClusterVO.class})
@GlobalConfigValidation(validValues = {"true", "false"})
public static GlobalConfig ENABLE_UEFI_SECURE_BOOT = new GlobalConfig(CATEGORY, "enable.uefi.secure.boot");

Expand All @@ -133,4 +134,9 @@ public class VmGlobalConfig {
@GlobalConfigValidation(validValues = {"None", "AuthenticAMD"})
@BindResourceConfig(value = {VmInstanceVO.class})
public static GlobalConfig VM_CPUID_VENDOR = new GlobalConfig(CATEGORY, "vm.cpuid.vendor");

@GlobalConfigDef(defaultValue = "true", type = Boolean.class, description = "whether reset TPM state after VM clone")
@GlobalConfigValidation(validValues = {"true", "false"})
@BindResourceConfig(value = {VmInstanceVO.class, ClusterVO.class})
public static GlobalConfig RESET_TPM_AFTER_VM_CLONE = new GlobalConfig(CATEGORY, "reset.tpm.after.vm.clone");
}
Original file line number Diff line number Diff line change
Expand Up @@ -1012,7 +1012,8 @@ private void validateRootDiskOffering(ImageMediaType imgFormat, APICreateVmInsta
}

if (msg.getRootDiskSize() <= 0) {
throw new ApiMessageInterceptionException(operr("Unexpected root disk settings"));
throw new ApiMessageInterceptionException(operr("Unexpected root disk settings")
.withException("DiskAO[0].size is mandatory when image format is ISO"));
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2593,7 +2593,7 @@ protected void scripts() {

sql(VmNicVO.class).eq(VmNicVO_.vmInstanceUuid, self.getUuid()).hardDelete();
sql(VolumeVO.class).eq(VolumeVO_.vmInstanceUuid, self.getUuid())
.eq(VolumeVO_.type, VolumeType.Root)
.in(VolumeVO_.type, list(VolumeType.Root, VolumeType.NvRam))
.hardDelete();
sql(VmCdRomVO.class).eq(VmCdRomVO_.vmInstanceUuid, self.getUuid()).hardDelete();
sql(VmInstanceVO.class).eq(VmInstanceVO_.uuid, self.getUuid()).hardDelete();
Expand Down Expand Up @@ -7705,6 +7705,7 @@ private VmInstanceSpec buildVmInstanceSpecFromStruct(InstantiateVmFromNewCreated
spec.setDataDisks(struct.getDataDisks());
spec.setDeprecatedDisksSpecs(struct.getDeprecatedDataVolumeSpecs());
spec.setVmCustomSpecification(struct.getVmCustomSpecification());
spec.setDevicesSpec(struct.getDevicesSpec());

List<CdRomSpec> cdRomSpecs = buildVmCdRomSpecsForNewCreated(spec);
spec.setCdRomSpecs(cdRomSpecs);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1214,16 +1214,22 @@ public void setup() {

flow(new Flow() {
String __name__ = "call-after-persist-vm-extensions";
List<VmInstanceCreateExtensionPoint> done = new ArrayList<>();

@Override
public void run(FlowTrigger trigger, Map data) {
pluginRgty.getExtensionList(VmInstanceCreateExtensionPoint.class).forEach(
extensionPoint -> extensionPoint.afterPersistVmInstanceVO(finalVo));
for (VmInstanceCreateExtensionPoint extension : pluginRgty.getExtensionList(VmInstanceCreateExtensionPoint.class)) {
done.add(extension);
extension.afterPersistVmInstanceVO(finalVo, msg);
}
trigger.next();
}

@Override
public void rollback(FlowRollback trigger, Map data) {
// do nothing
Collections.reverse(done);
CollectionUtils.safeForEach(done,
extension -> extension.afterRollbackPersistVmInstanceVO(finalVo, msg));
trigger.rollback();
}
});
Expand Down Expand Up @@ -1315,7 +1321,7 @@ public void run(FlowTrigger trigger, Map data) {
smsg.setRootDiskOfferingUuid(rootDisk.getDiskOfferingUuid());
} else if (rootDisk.getSize() > 0) {
dvo = new DiskOfferingVO();
dvo.setUuid(Platform.getUuid());
dvo.setUuid(getUuid());
dvo.setAccountUuid(msg.getAccountUuid());
dvo.setDiskSize(rootDisk.getSize());
dvo.setName("for-create-vm-" + finalVo.getUuid());
Expand Down Expand Up @@ -1352,6 +1358,7 @@ public void run(FlowTrigger trigger, Map data) {
smsg.setDataDisks(msg.getDataDisks());
smsg.setDeprecatedDataVolumeSpecs(msg.getDeprecatedDataVolumeSpecs());
smsg.setVmCustomSpecification(msg.getVmCustomSpecification());
smsg.setDevicesSpec(msg.getDevicesSpec());
bus.makeTargetServiceIdByResourceUuid(smsg, VmInstanceConstant.SERVICE_ID, finalVo.getUuid());
bus.send(smsg, new CloudBusCallBack(smsg) {
@Override
Expand Down Expand Up @@ -1380,7 +1387,7 @@ public void rollback(FlowRollback chain, Map data) {
}
DestroyVmInstanceMsg dmsg = new DestroyVmInstanceMsg();
dmsg.setVmInstanceUuid(finalVo.getUuid());
dmsg.setDeletionPolicy(VmInstanceDeletionPolicyManager.VmInstanceDeletionPolicy.Direct);
dmsg.setDeletionPolicy(VmInstanceDeletionPolicy.Direct);
bus.makeTargetServiceIdByResourceUuid(dmsg, VmInstanceConstant.SERVICE_ID, finalVo.getUuid());
bus.send(dmsg, new CloudBusCallBack(null) {
@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ public static CreateVmInstanceMsg fromAPICreateVmInstanceMsg(APICreateVmInstance
cmsg.setGuestOsType(msg.getGuestOsType());
cmsg.setArchitecture(msg.getArchitecture());
cmsg.setStrategy(msg.getStrategy());
cmsg.setDevicesSpec(msg.getDevicesSpec());
if (CollectionUtils.isNotEmpty(msg.getDataDiskOfferingUuids()) || CollectionUtils.isNotEmpty(msg.getDataDiskSizes())) {
cmsg.setPrimaryStorageUuidForDataVolume(getPSUuidForDataVolume(msg.getSystemTags()));
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package org.zstack.compute.vm.devices;

import org.zstack.header.core.Completion;
import org.zstack.utils.Utils;
import org.zstack.utils.logging.CLogger;

public class DummyTpmEncryptedResourceKeyBackend implements TpmEncryptedResourceKeyBackend {
private static final CLogger logger = Utils.getLogger(DummyTpmEncryptedResourceKeyBackend.class);

@Override
public void attachKeyProviderToTpm(String tpmUuid, String keyProviderUuid) {
logger.debug("ignore attach key provider to TPM request for TPM uuid " + tpmUuid +
" and key provider uuid " + keyProviderUuid);
}

@Override
public void detachKeyProviderFromTpm(String tpmUuid) {
logger.debug("ignore detach key provider from TPM request for TPM uuid " + tpmUuid);
}

@Override
public String findKeyProviderUuidByTpm(String tpmUuid) {
return null;
}

@Override
public void cloneEncryptedResourceKey(CloneEncryptedResourceKeyContext context, Completion completion) {
// do nothing
logger.debug("ignore clone encrypted resource key request for TPM uuid "
+ context.srcTpmUuid + " -> " + context.dstTpmUuid);
completion.success();
}
}
Loading