mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 01:32:18 +02:00
Add Hypervisor default as cache mode for disk offerings (#10282)
Co-authored-by: Henrique Sato <henrique.sato@scclouds.com.br>
This commit is contained in:
parent
a15fbd9bcc
commit
cc3170577c
@ -37,7 +37,7 @@ public interface DiskOffering extends InfrastructureEntity, Identity, InternalId
|
||||
State getState();
|
||||
|
||||
enum DiskCacheMode {
|
||||
NONE("none"), WRITEBACK("writeback"), WRITETHROUGH("writethrough");
|
||||
NONE("none"), WRITEBACK("writeback"), WRITETHROUGH("writethrough"), HYPERVISOR_DEFAULT("hypervisor_default");
|
||||
|
||||
private final String _diskCacheMode;
|
||||
|
||||
|
||||
@ -151,7 +151,7 @@ public class CreateDiskOfferingCmd extends BaseCmd {
|
||||
@Parameter(name = ApiConstants.CACHE_MODE,
|
||||
type = CommandType.STRING,
|
||||
required = false,
|
||||
description = "the cache mode to use for this disk offering. none, writeback or writethrough",
|
||||
description = "the cache mode to use for this disk offering. none, writeback, writethrough or hypervisor default. If the hypervisor default cache mode is used on other hypervisors than KVM, it will fall back to none cache mode",
|
||||
since = "4.14")
|
||||
private String cacheMode;
|
||||
|
||||
|
||||
@ -190,7 +190,7 @@ public class CreateServiceOfferingCmd extends BaseCmd {
|
||||
@Parameter(name = ApiConstants.CACHE_MODE,
|
||||
type = CommandType.STRING,
|
||||
required = false,
|
||||
description = "the cache mode to use for this disk offering. none, writeback or writethrough",
|
||||
description = "the cache mode to use for this disk offering. none, writeback, writethrough or hypervisor default. If the hypervisor default cache mode is used on other hypervisors than KVM, it will fall back to none cache mode",
|
||||
since = "4.14")
|
||||
private String cacheMode;
|
||||
|
||||
|
||||
@ -197,7 +197,7 @@ public class ServiceOfferingResponse extends BaseResponseWithAnnotations {
|
||||
private Boolean isCustomized;
|
||||
|
||||
@SerializedName("cacheMode")
|
||||
@Param(description = "the cache mode to use for this disk offering. none, writeback or writethrough", since = "4.14")
|
||||
@Param(description = "the cache mode to use for this disk offering. none, writeback, writethrough or hypervisor default", since = "4.14")
|
||||
private String cacheMode;
|
||||
|
||||
@SerializedName("vspherestoragepolicy")
|
||||
|
||||
@ -116,8 +116,8 @@ public class VolumeObjectTO extends DownloadableObjectTO implements DataTO {
|
||||
iopsWriteRate = volume.getIopsWriteRate();
|
||||
iopsWriteRateMax = volume.getIopsWriteRateMax();
|
||||
iopsWriteRateMaxLength = volume.getIopsWriteRateMaxLength();
|
||||
cacheMode = volume.getCacheMode();
|
||||
hypervisorType = volume.getHypervisorType();
|
||||
setCacheMode(volume.getCacheMode());
|
||||
setDeviceId(volume.getDeviceId());
|
||||
this.migrationOptions = volume.getMigrationOptions();
|
||||
this.directDownload = volume.isDirectDownload();
|
||||
@ -343,6 +343,10 @@ public class VolumeObjectTO extends DownloadableObjectTO implements DataTO {
|
||||
}
|
||||
|
||||
public void setCacheMode(DiskCacheMode cacheMode) {
|
||||
if (DiskCacheMode.HYPERVISOR_DEFAULT.equals(cacheMode) && !Hypervisor.HypervisorType.KVM.equals(hypervisorType)) {
|
||||
this.cacheMode = DiskCacheMode.NONE;
|
||||
return;
|
||||
}
|
||||
this.cacheMode = cacheMode;
|
||||
}
|
||||
|
||||
|
||||
@ -26,6 +26,9 @@ CALL `cloud`.`IDEMPOTENT_CHANGE_COLUMN`('router_health_check', 'check_result', '
|
||||
-- Increase length of scripts_version column to 128 due to md5sum to sha512sum change
|
||||
CALL `cloud`.`IDEMPOTENT_CHANGE_COLUMN`('cloud.domain_router', 'scripts_version', 'scripts_version', 'VARCHAR(128)');
|
||||
|
||||
-- Increase the cache_mode column size from cloud.disk_offering table
|
||||
CALL `cloud`.`IDEMPOTENT_CHANGE_COLUMN`('cloud.disk_offering', 'cache_mode', 'cache_mode', 'varchar(18) DEFAULT "none" COMMENT "The disk cache mode to use for disks created with this offering"');
|
||||
|
||||
-- Add uuid column to ldap_configuration table
|
||||
CALL `cloud`.`IDEMPOTENT_ADD_COLUMN`('cloud.ldap_configuration', 'uuid', 'VARCHAR(40) NOT NULL');
|
||||
|
||||
|
||||
@ -707,7 +707,7 @@ public class LibvirtVMDef {
|
||||
}
|
||||
|
||||
public enum DiskCacheMode {
|
||||
NONE("none"), WRITEBACK("writeback"), WRITETHROUGH("writethrough");
|
||||
NONE("none"), WRITEBACK("writeback"), WRITETHROUGH("writethrough"), HYPERVISOR_DEFAULT("default");
|
||||
String _diskCacheMode;
|
||||
|
||||
DiskCacheMode(String cacheMode) {
|
||||
|
||||
@ -34,7 +34,7 @@ public class ProviderAdapterDiskOffering {
|
||||
this.type = ProvisioningType.getProvisioningType(hiddenDiskOffering.getProvisioningType().toString());
|
||||
}
|
||||
if (hiddenDiskOffering.getCacheMode() != null) {
|
||||
this.diskCacheMode = DiskCacheMode.getDiskCasehMode(hiddenDiskOffering.getCacheMode().toString());
|
||||
this.diskCacheMode = DiskCacheMode.getDiskCacheMode(hiddenDiskOffering.getCacheMode().toString());
|
||||
}
|
||||
if (hiddenDiskOffering.getState() != null) {
|
||||
this.state = State.valueOf(hiddenDiskOffering.getState().toString());
|
||||
@ -166,7 +166,7 @@ public class ProviderAdapterDiskOffering {
|
||||
}
|
||||
|
||||
enum DiskCacheMode {
|
||||
NONE("none"), WRITEBACK("writeback"), WRITETHROUGH("writethrough");
|
||||
NONE("none"), WRITEBACK("writeback"), WRITETHROUGH("writethrough"), HYPERVISOR_DEFAULT("hypervisor_default");
|
||||
|
||||
private final String _diskCacheMode;
|
||||
|
||||
@ -179,13 +179,15 @@ public class ProviderAdapterDiskOffering {
|
||||
return _diskCacheMode;
|
||||
}
|
||||
|
||||
public static DiskCacheMode getDiskCasehMode(String cacheMode) {
|
||||
public static DiskCacheMode getDiskCacheMode(String cacheMode) {
|
||||
if (cacheMode.equals(NONE._diskCacheMode)) {
|
||||
return NONE;
|
||||
} else if (cacheMode.equals(WRITEBACK._diskCacheMode)) {
|
||||
return WRITEBACK;
|
||||
} else if (cacheMode.equals(WRITETHROUGH._diskCacheMode)) {
|
||||
return WRITETHROUGH;
|
||||
} else if (cacheMode.equals(HYPERVISOR_DEFAULT._diskCacheMode)) {
|
||||
return HYPERVISOR_DEFAULT;
|
||||
} else {
|
||||
throw new NotImplementedException("Invalid cache mode specified: " + cacheMode);
|
||||
}
|
||||
|
||||
@ -8440,7 +8440,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
|
||||
!Enums.getIfPresent(DiskOffering.DiskCacheMode.class,
|
||||
cacheMode.toUpperCase()).isPresent()) {
|
||||
throw new InvalidParameterValueException(String.format("Invalid cache mode (%s). Please specify one of the following " +
|
||||
"valid cache mode parameters: none, writeback or writethrough", cacheMode));
|
||||
"valid cache mode parameters: none, writeback, writethrough or hypervisor_default.", cacheMode));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1211,6 +1211,7 @@
|
||||
"label.hourly": "Hourly",
|
||||
"label.hypervisor": "Hypervisor",
|
||||
"label.hypervisor.capabilities": "Hypervisor Capabilities",
|
||||
"label.hypervisor.default": "Hypervisor default",
|
||||
"label.hypervisor.type": "Hypervisor type",
|
||||
"label.hypervisors": "Hypervisors",
|
||||
"label.hypervisorsnapshotreserve": "Hypervisor Snapshot reserve",
|
||||
@ -2813,7 +2814,7 @@
|
||||
"label.windows": "Windows",
|
||||
"label.with.snapshotid": "with Snapshot ID",
|
||||
"label.write": "Write",
|
||||
"label.writeback": "Write-back disk caching",
|
||||
"label.writeback": "Write-back",
|
||||
"label.writecachetype": "Write-cache Type",
|
||||
"label.writeio": "Write (IO)",
|
||||
"label.writethrough": "Write-through",
|
||||
|
||||
@ -773,6 +773,7 @@
|
||||
"label.hourly": "A cada hora",
|
||||
"label.hypervisor": "Virtualizador",
|
||||
"label.hypervisor.capabilities": "Recursos do virtualizador",
|
||||
"label.hypervisor.default": "Padr\u00e3o do virtualizador",
|
||||
"label.hypervisor.type": "Tipo do virtualizador",
|
||||
"label.hypervisors": "Virtualizadores",
|
||||
"label.hypervisorsnapshotreserve": "Reserva de snapshot do virtualizador",
|
||||
@ -1813,7 +1814,7 @@
|
||||
"label.windows": "Windows",
|
||||
"label.with.snapshotid": "com o ID da snapshot",
|
||||
"label.write": "Escreva",
|
||||
"label.writeback": "Cache de disco write-back",
|
||||
"label.writeback": "Write-back",
|
||||
"label.writecachetype": "Tipo do cache de escrita",
|
||||
"label.writeio": "Escrita (IO)",
|
||||
"label.writethrough": "Write-through",
|
||||
|
||||
@ -467,6 +467,9 @@
|
||||
<a-radio-button value="writethrough">
|
||||
{{ $t('label.writethrough') }}
|
||||
</a-radio-button>
|
||||
<a-radio-button value="hypervisor_default">
|
||||
{{ $t('label.hypervisor.default') }}
|
||||
</a-radio-button>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
<a-form-item :label="$t('label.qostype')" name="qostype" ref="qostype">
|
||||
|
||||
@ -211,6 +211,9 @@
|
||||
<a-radio-button value="writethrough">
|
||||
{{ $t('label.writethrough') }}
|
||||
</a-radio-button>
|
||||
<a-radio-button value="hypervisor_default">
|
||||
{{ $t('label.hypervisor.default') }}
|
||||
</a-radio-button>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
<a-form-item v-if="isAdmin() || isDomainAdminAllowedToInformTags" name="tags" ref="tags">
|
||||
@ -604,7 +607,7 @@ export default {
|
||||
width: 80vw;
|
||||
|
||||
@media (min-width: 800px) {
|
||||
width: 430px;
|
||||
width: 480px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user