package org.ovirt.engine.core.common.action;
import java.util.HashMap;
import org.ovirt.engine.core.common.businessentities.ActionGroup;
public enum VdcActionType {
Unknown(0, QuotaDependency.NONE),
// Vm Commands
AddVm(1, ActionGroup.CREATE_VM, QuotaDependency.BOTH),
AddVmFromTemplate(2, ActionGroup.CREATE_VM, QuotaDependency.BOTH),
AddVmFromScratch(3, ActionGroup.CREATE_VM, QuotaDependency.BOTH),
AddUnmanagedVms(54, QuotaDependency.NONE),
RemoveVm(4, ActionGroup.DELETE_VM, QuotaDependency.STORAGE),
UpdateVm(5, ActionGroup.EDIT_VM_PROPERTIES, QuotaDependency.CLUSTER),
RebootVm(6, ActionGroup.REBOOT_VM, QuotaDependency.NONE),
StopVm(7, ActionGroup.STOP_VM, QuotaDependency.BOTH),
ShutdownVm(8, ActionGroup.SHUT_DOWN_VM, QuotaDependency.CLUSTER),
ChangeDisk(9, ActionGroup.CHANGE_VM_CD, QuotaDependency.NONE),
PauseVm(10, QuotaDependency.NONE),
HibernateVm(11, ActionGroup.HIBERNATE_VM, QuotaDependency.NONE),
RunVm(12, ActionGroup.RUN_VM, QuotaDependency.CLUSTER),
RunVmOnce(13, ActionGroup.RUN_VM, QuotaDependency.BOTH),
MigrateVm(14, ActionGroup.MIGRATE_VM, QuotaDependency.NONE),
MigrateVmToServer(16, ActionGroup.MIGRATE_VM, QuotaDependency.NONE),
ReorderVmNics(17, ActionGroup.CREATE_VM, false, QuotaDependency.NONE),
VmLogon(18, ActionGroup.CONNECT_TO_VM, QuotaDependency.NONE),
SetVmTicket(22, ActionGroup.CONNECT_TO_VM, false, QuotaDependency.NONE),
ExportVm(23, ActionGroup.IMPORT_EXPORT_VM, QuotaDependency.NONE),
ExportVmTemplate(24, ActionGroup.IMPORT_EXPORT_VM, QuotaDependency.NONE),
RestoreStatelessVm(25, QuotaDependency.NONE),
AddVmInterface(28, ActionGroup.CONFIGURE_VM_NETWORK, false, QuotaDependency.NONE),
RemoveVmInterface(29, ActionGroup.CONFIGURE_VM_NETWORK, false, QuotaDependency.NONE),
UpdateVmInterface(30, ActionGroup.CONFIGURE_VM_NETWORK, false, QuotaDependency.NONE),
AddDisk(31, ActionGroup.CONFIGURE_VM_STORAGE, QuotaDependency.STORAGE),
RegisterDisk(32, ActionGroup.CONFIGURE_VM_STORAGE, QuotaDependency.STORAGE),
UpdateVmDisk(34, ActionGroup.CONFIGURE_VM_STORAGE, false, QuotaDependency.STORAGE),
AttachDiskToVm(180, ActionGroup.CONFIGURE_VM_STORAGE, false, QuotaDependency.NONE),
DetachDiskFromVm(181, ActionGroup.CONFIGURE_VM_STORAGE, false, QuotaDependency.NONE),
HotPlugDiskToVm(182, ActionGroup.CONFIGURE_VM_STORAGE, false, QuotaDependency.NONE),
HotUnPlugDiskFromVm(183, ActionGroup.CONFIGURE_VM_STORAGE, false, QuotaDependency.NONE),
HotSetNumberOfCpus(184, ActionGroup.EDIT_VM_PROPERTIES, false, QuotaDependency.CLUSTER, true),
VmSlaPolicy(185, ActionGroup.EDIT_VM_PROPERTIES, false, QuotaDependency.NONE),
HotSetAmountOfMemory(186, ActionGroup.EDIT_VM_PROPERTIES, false, QuotaDependency.CLUSTER, true),
ImportVm(36, ActionGroup.IMPORT_EXPORT_VM, QuotaDependency.STORAGE),
RemoveVmFromImportExport(37, ActionGroup.DELETE_VM, QuotaDependency.NONE),
RemoveVmTemplateFromImportExport(38, ActionGroup.DELETE_TEMPLATE, QuotaDependency.NONE),
ImportVmTemplate(39, ActionGroup.IMPORT_EXPORT_VM, QuotaDependency.STORAGE),
ChangeVMCluster(40, ActionGroup.EDIT_VM_PROPERTIES, false, QuotaDependency.NONE),
CancelMigrateVm(41, ActionGroup.MIGRATE_VM, false, QuotaDependency.NONE),
ActivateDeactivateVmNic(42, QuotaDependency.NONE),
AddVmFromSnapshot(52, ActionGroup.CREATE_VM, QuotaDependency.BOTH),
CloneVm(53, ActionGroup.CREATE_VM, QuotaDependency.BOTH),
ImportVmFromConfiguration(43, ActionGroup.IMPORT_EXPORT_VM, QuotaDependency.STORAGE),
UpdateVmVersion(44, QuotaDependency.NONE),
ImportVmTemplateFromConfiguration(45, ActionGroup.IMPORT_EXPORT_VM, QuotaDependency.STORAGE),
ProcessDownVm(46, QuotaDependency.NONE),
ConvertVm(47, QuotaDependency.NONE),
ImportVmFromExternalProvider(48, ActionGroup.IMPORT_EXPORT_VM, QuotaDependency.STORAGE),
ImportVmFromOva(49, ActionGroup.IMPORT_EXPORT_VM, QuotaDependency.STORAGE),
ConvertOva(50, QuotaDependency.NONE),
CancelConvertVm(51, ActionGroup.IMPORT_EXPORT_VM, QuotaDependency.NONE),
ImportVmFromExternalUrl(55, ActionGroup.IMPORT_EXPORT_VM, QuotaDependency.NONE),
// VdsCommands
AddVds(101, ActionGroup.CREATE_HOST, QuotaDependency.NONE),
UpdateVds(102, ActionGroup.EDIT_HOST_CONFIGURATION, false, QuotaDependency.NONE),
RemoveVds(103, ActionGroup.DELETE_HOST, false, QuotaDependency.NONE),
RestartVds(104, ActionGroup.MANIPULATE_HOST, QuotaDependency.NONE),
VdsNotRespondingTreatment(105, QuotaDependency.NONE),
MaintenanceVds(106, QuotaDependency.NONE),
MaintenanceNumberOfVdss(107, ActionGroup.MANIPULATE_HOST, false, QuotaDependency.NONE),
ActivateVds(108, ActionGroup.MANIPULATE_HOST, QuotaDependency.NONE),
InstallVdsInternal(109, QuotaDependency.NONE),
ClearNonResponsiveVdsVms(110, QuotaDependency.NONE),
SshHostReboot(111, ActionGroup.MANIPULATE_HOST, QuotaDependency.NONE),
ApproveVds(112, ActionGroup.CREATE_HOST, QuotaDependency.NONE),
HandleVdsCpuFlagsOrClusterChanged(114, QuotaDependency.NONE),
InitVdsOnUp(115, QuotaDependency.NONE),
SetNonOperationalVds(117, QuotaDependency.NONE),
AddVdsSpmId(119, QuotaDependency.NONE),
ForceSelectSPM(120, QuotaDependency.NONE),
// Fencing (including RestartVds above)
StartVds(121, ActionGroup.MANIPULATE_HOST, QuotaDependency.NONE),
StopVds(122, ActionGroup.MANIPULATE_HOST, QuotaDependency.NONE),
HandleVdsVersion(124, QuotaDependency.NONE),
ChangeVDSCluster(125, ActionGroup.EDIT_HOST_CONFIGURATION, false, QuotaDependency.NONE),
RefreshHostCapabilities(126, ActionGroup.MANIPULATE_HOST, false, QuotaDependency.NONE),
SshSoftFencing(127, QuotaDependency.NONE),
VdsPowerDown(128, ActionGroup.MANIPULATE_HOST, QuotaDependency.NONE),
UpgradeOvirtNodeInternal(129, QuotaDependency.NONE),
InstallVds(130, ActionGroup.EDIT_HOST_CONFIGURATION, false, QuotaDependency.NONE),
UpgradeOvirtNode(131, ActionGroup.EDIT_HOST_CONFIGURATION, false, QuotaDependency.NONE),
VdsKdumpDetection(132, QuotaDependency.NONE),
AddFenceAgent(133, ActionGroup.EDIT_HOST_CONFIGURATION, QuotaDependency.NONE),
RemoveFenceAgent(134, ActionGroup.EDIT_HOST_CONFIGURATION, QuotaDependency.NONE),
UpdateFenceAgent(135, ActionGroup.EDIT_HOST_CONFIGURATION, QuotaDependency.NONE),
RemoveFenceAgentsByVdsId(136, ActionGroup.EDIT_HOST_CONFIGURATION, QuotaDependency.NONE),
UpgradeHost(137, ActionGroup.EDIT_HOST_CONFIGURATION, false, QuotaDependency.NONE),
UpgradeHostInternal(138, QuotaDependency.NONE),
HostEnrollCertificate(139, ActionGroup.EDIT_HOST_CONFIGURATION, false, QuotaDependency.NONE),
HostEnrollCertificateInternal(140, QuotaDependency.NONE),
HostUpgradeCheck(141, ActionGroup.EDIT_HOST_CONFIGURATION, false, QuotaDependency.NONE),
HostUpgradeCheckInternal(142, QuotaDependency.NONE),
// Network
AddNetwork(154, ActionGroup.CREATE_STORAGE_POOL_NETWORK, false, QuotaDependency.NONE),
RemoveNetwork(155, ActionGroup.CONFIGURE_STORAGE_POOL_NETWORK, false, QuotaDependency.NONE),
UpdateNetwork(156, ActionGroup.CONFIGURE_STORAGE_POOL_NETWORK, false, QuotaDependency.NONE),
CommitNetworkChanges(157, ActionGroup.CONFIGURE_HOST_NETWORK, QuotaDependency.NONE),
// VnicProfile Commands
AddVnicProfile(160, ActionGroup.CREATE_NETWORK_VNIC_PROFILE, false, QuotaDependency.NONE),
UpdateVnicProfile(161, ActionGroup.CONFIGURE_NETWORK_VNIC_PROFILE, false, QuotaDependency.NONE),
RemoveVnicProfile(162, ActionGroup.DELETE_NETWORK_VNIC_PROFILE, false, QuotaDependency.NONE),
// Network labels
LabelNetwork(163, ActionGroup.CONFIGURE_STORAGE_POOL_NETWORK, false, QuotaDependency.NONE),
UnlabelNetwork(164, ActionGroup.CONFIGURE_STORAGE_POOL_NETWORK, false, QuotaDependency.NONE),
LabelNic(165, ActionGroup.CONFIGURE_HOST_NETWORK, false, QuotaDependency.NONE),
UnlabelNic(166, ActionGroup.CONFIGURE_HOST_NETWORK, false, QuotaDependency.NONE),
PropagateLabeledNetworksToClusterHosts(167, false, QuotaDependency.NONE),
// SR-IOV
UpdateHostNicVfsConfig(175, ActionGroup.CONFIGURE_HOST_NETWORK, false, QuotaDependency.NONE),
AddVfsConfigNetwork(168, ActionGroup.CONFIGURE_HOST_NETWORK, false, QuotaDependency.NONE),
RemoveVfsConfigNetwork(169, ActionGroup.CONFIGURE_HOST_NETWORK, false, QuotaDependency.NONE),
AddVfsConfigLabel(173, ActionGroup.CONFIGURE_HOST_NETWORK, false, QuotaDependency.NONE),
RemoveVfsConfigLabel(174, ActionGroup.CONFIGURE_HOST_NETWORK, false, QuotaDependency.NONE),
// NUMA
AddVmNumaNodes(170, ActionGroup.EDIT_VM_PROPERTIES, false, QuotaDependency.NONE),
UpdateVmNumaNodes(171, ActionGroup.EDIT_VM_PROPERTIES, false, QuotaDependency.NONE),
RemoveVmNumaNodes(172, ActionGroup.EDIT_VM_PROPERTIES, false, QuotaDependency.NONE),
SetVmNumaNodes(176, ActionGroup.EDIT_VM_PROPERTIES, false, QuotaDependency.NONE),
// VmTemplatesCommand
AddVmTemplate(201, ActionGroup.CREATE_TEMPLATE, QuotaDependency.BOTH),
UpdateVmTemplate(202, ActionGroup.EDIT_TEMPLATE_PROPERTIES, QuotaDependency.CLUSTER),
RemoveVmTemplate(203, ActionGroup.DELETE_TEMPLATE, QuotaDependency.STORAGE),
AddVmTemplateInterface(220, ActionGroup.CONFIGURE_TEMPLATE_NETWORK, false, QuotaDependency.NONE),
RemoveVmTemplateInterface(221, ActionGroup.CONFIGURE_TEMPLATE_NETWORK, false, QuotaDependency.NONE),
UpdateVmTemplateInterface(222, ActionGroup.CONFIGURE_TEMPLATE_NETWORK, false, QuotaDependency.NONE),
AddVmTemplateFromSnapshot(240, ActionGroup.CREATE_TEMPLATE, QuotaDependency.BOTH),
SealVmTemplate(252, QuotaDependency.NONE),
// ImagesCommands
TryBackToSnapshot(204, QuotaDependency.NONE),
RestoreFromSnapshot(205, QuotaDependency.STORAGE),
CreateAllSnapshotsFromVm(206, ActionGroup.MANIPULATE_VM_SNAPSHOTS, QuotaDependency.STORAGE),
CreateSnapshot(207, QuotaDependency.STORAGE),
CreateSnapshotFromTemplate(208, QuotaDependency.STORAGE),
CreateImageTemplate(209, QuotaDependency.STORAGE),
RemoveSnapshot(210, ActionGroup.MANIPULATE_VM_SNAPSHOTS, QuotaDependency.STORAGE),
RemoveImage(211, QuotaDependency.STORAGE),
RemoveAllVmImages(212, QuotaDependency.STORAGE),
AddImageFromScratch(213, QuotaDependency.STORAGE),
RemoveTemplateSnapshot(215, QuotaDependency.STORAGE),
RemoveAllVmTemplateImageTemplates(216, QuotaDependency.STORAGE),
TryBackToAllSnapshotsOfVm(223, ActionGroup.MANIPULATE_VM_SNAPSHOTS, QuotaDependency.NONE),
RestoreAllSnapshots(224, ActionGroup.MANIPULATE_VM_SNAPSHOTS, QuotaDependency.STORAGE),
CopyImageGroup(225, QuotaDependency.STORAGE),
MoveOrCopyDisk(228, QuotaDependency.STORAGE),
RemoveSnapshotSingleDisk(227, QuotaDependency.STORAGE),
CreateCloneOfTemplate(229, QuotaDependency.STORAGE),
RemoveDisk(230, QuotaDependency.STORAGE),
MoveImageGroup(231, QuotaDependency.STORAGE),
GetDiskAlignment(232, QuotaDependency.NONE),
AmendVolume(233, ActionGroup.EDIT_DISK_PROPERTIES, QuotaDependency.NONE),
RemoveMemoryVolumes(234, QuotaDependency.NONE),
RemoveDiskSnapshots(235, ActionGroup.MANIPULATE_VM_SNAPSHOTS, QuotaDependency.NONE),
RemoveSnapshotSingleDiskLive(236, QuotaDependency.STORAGE),
Merge(237, QuotaDependency.STORAGE),
MergeStatus(238, QuotaDependency.NONE),
DestroyImage(239, QuotaDependency.STORAGE),
MergeExtend(241, QuotaDependency.STORAGE),
DestroyImageCheck(242, QuotaDependency.NONE),
CreateVolume(243, QuotaDependency.STORAGE),
SparsifyImage(244, ActionGroup.SPARSIFY_DISK, QuotaDependency.NONE),
AmendImageGroupVolumes(245, ActionGroup.EDIT_DISK_PROPERTIES, QuotaDependency.NONE),
ColdMergeSnapshotSingleDisk(246, QuotaDependency.STORAGE),
PrepareMerge(247, QuotaDependency.STORAGE),
ColdMerge(248, QuotaDependency.STORAGE),
FinalizeMerge(249, QuotaDependency.STORAGE),
CreateAllTemplateDisks(250, QuotaDependency.NONE),
CreateAllTemplateDisksFromSnapshot(251, QuotaDependency.NONE),
UpdateVolume(253, QuotaDependency.NONE),
UpdateAllTemplateDisks(254, QuotaDependency.NONE),
// VmPoolCommands
AddVmPool(304, ActionGroup.CREATE_VM_POOL, QuotaDependency.BOTH),
UpdateVmPool(305, ActionGroup.EDIT_VM_POOL_CONFIGURATION, QuotaDependency.STORAGE),
RemoveVmPool(307, ActionGroup.DELETE_VM_POOL, QuotaDependency.NONE),
DetachUserFromVmFromPool(312, QuotaDependency.NONE),
AddVmToPool(313, QuotaDependency.NONE),
RemoveVmFromPool(314, ActionGroup.EDIT_VM_POOL_CONFIGURATION, false, QuotaDependency.NONE),
AttachUserToVmFromPoolAndRun(318, ActionGroup.VM_POOL_BASIC_OPERATIONS, QuotaDependency.CLUSTER),
// UserAndGroupsCommands
LogoutSession(408, false, QuotaDependency.NONE),
RemoveUser(409, ActionGroup.MANIPULATE_USERS, false, QuotaDependency.NONE),
TerminateSession(410, false, QuotaDependency.NONE),
TerminateSessionsForToken(411, false, QuotaDependency.NONE),
RemoveGroup(415, ActionGroup.MANIPULATE_USERS, false, QuotaDependency.NONE),
AddUser(419, ActionGroup.MANIPULATE_USERS, false, QuotaDependency.NONE),
AddGroup(420, ActionGroup.MANIPULATE_USERS, false, QuotaDependency.NONE),
LoginOnBehalf(424, false, QuotaDependency.NONE),
CreateUserSession(425, ActionGroup.LOGIN, false, QuotaDependency.NONE),
// UserProfile
AddUserProfile(421, ActionGroup.EDIT_PROFILE, false, QuotaDependency.NONE),
UpdateUserProfile(422, ActionGroup.EDIT_PROFILE, false, QuotaDependency.NONE),
RemoveUserProfile(423, ActionGroup.EDIT_PROFILE, false, QuotaDependency.NONE),
// Tags
AddTag(501, false, QuotaDependency.NONE),
RemoveTag(502, false, QuotaDependency.NONE),
UpdateTag(503, false, QuotaDependency.NONE),
MoveTag(504, false, QuotaDependency.NONE),
AttachUserToTag(505, false, QuotaDependency.NONE),
DetachUserFromTag(506, false, QuotaDependency.NONE),
AttachUserGroupToTag(507, false, QuotaDependency.NONE),
DetachUserGroupFromTag(508, false, QuotaDependency.NONE),
AttachVmsToTag(509, false, QuotaDependency.NONE),
DetachVmFromTag(510, false, QuotaDependency.NONE),
AttachVdsToTag(511, false, QuotaDependency.NONE),
DetachVdsFromTag(512, false, QuotaDependency.NONE),
UpdateTagsVmMapDefaultDisplayType(515, false, QuotaDependency.NONE),
AttachTemplatesToTag(516, false, QuotaDependency.NONE),
DetachTemplateFromTag(517, false, QuotaDependency.NONE),
// Quota
AddQuota(601, ActionGroup.CONFIGURE_QUOTA, false, QuotaDependency.NONE),
UpdateQuota(602, ActionGroup.CONFIGURE_QUOTA, false, QuotaDependency.NONE),
RemoveQuota(603, ActionGroup.CONFIGURE_QUOTA, false, QuotaDependency.NONE),
ChangeQuotaForDisk(604, ActionGroup.CONSUME_QUOTA, false, QuotaDependency.STORAGE),
// bookmarks
AddBookmark(701, ActionGroup.BOOKMARK_MANAGEMENT, false, QuotaDependency.NONE),
RemoveBookmark(702, ActionGroup.BOOKMARK_MANAGEMENT, false, QuotaDependency.NONE),
UpdateBookmark(703, ActionGroup.BOOKMARK_MANAGEMENT, false, QuotaDependency.NONE),
// Cluster
AddCluster(704, ActionGroup.CREATE_CLUSTER, false, QuotaDependency.NONE),
UpdateCluster(705, ActionGroup.EDIT_CLUSTER_CONFIGURATION, false, QuotaDependency.NONE),
RemoveCluster(706, ActionGroup.DELETE_CLUSTER, false, QuotaDependency.NONE),
AttachNetworkToClusterInternal(707, false, QuotaDependency.NONE),
AttachNetworkToCluster(708, ActionGroup.ASSIGN_CLUSTER_NETWORK, false, QuotaDependency.NONE),
DetachNetworkToCluster(709, ActionGroup.ASSIGN_CLUSTER_NETWORK, false, QuotaDependency.NONE),
DetachNetworkFromClusterInternal(710, false, QuotaDependency.NONE),
UpdateNetworkOnCluster(711, ActionGroup.CONFIGURE_CLUSTER_NETWORK, false, QuotaDependency.NONE),
ManageNetworkClusters(712, ActionGroup.ASSIGN_CLUSTER_NETWORK, false, QuotaDependency.NONE),
/**
* MultiLevelAdministration
*/
AddPermission(800, ActionGroup.MANIPULATE_PERMISSIONS, false, QuotaDependency.NONE),
RemovePermission(801, ActionGroup.MANIPULATE_PERMISSIONS, false, QuotaDependency.NONE),
UpdateRole(803, ActionGroup.MANIPULATE_ROLES, false, QuotaDependency.NONE),
RemoveRole(804, ActionGroup.MANIPULATE_ROLES, false, QuotaDependency.NONE),
AttachActionGroupsToRole(805, ActionGroup.MANIPULATE_ROLES, false, QuotaDependency.NONE),
DetachActionGroupsFromRole(806, ActionGroup.MANIPULATE_ROLES, false, QuotaDependency.NONE),
AddRoleWithActionGroups(809, ActionGroup.MANIPULATE_ROLES, false, QuotaDependency.NONE),
AddSystemPermission(811, ActionGroup.MANIPULATE_PERMISSIONS, false, QuotaDependency.NONE),
RemoveSystemPermission(812, ActionGroup.MANIPULATE_PERMISSIONS, false, QuotaDependency.NONE),
/**
* Storages handling
*/
AddLocalStorageDomain(916, ActionGroup.CREATE_STORAGE_DOMAIN, QuotaDependency.NONE),
AddNFSStorageDomain(902, ActionGroup.CREATE_STORAGE_DOMAIN, QuotaDependency.NONE),
UpdateStorageDomain(903, ActionGroup.EDIT_STORAGE_DOMAIN_CONFIGURATION, false, QuotaDependency.NONE),
RemoveStorageDomain(904, ActionGroup.DELETE_STORAGE_DOMAIN, QuotaDependency.NONE),
ForceRemoveStorageDomain(905, ActionGroup.DELETE_STORAGE_DOMAIN, QuotaDependency.NONE),
AttachStorageDomainToPool(906, ActionGroup.MANIPULATE_STORAGE_DOMAIN, QuotaDependency.NONE),
DetachStorageDomainFromPool(907, ActionGroup.MANIPULATE_STORAGE_DOMAIN, QuotaDependency.NONE),
ActivateStorageDomain(908, ActionGroup.MANIPULATE_STORAGE_DOMAIN, QuotaDependency.NONE),
ConnectDomainToStorage(912, QuotaDependency.NONE),
DeactivateStorageDomain(909, ActionGroup.MANIPULATE_STORAGE_DOMAIN, QuotaDependency.NONE),
AddSANStorageDomain(910, ActionGroup.CREATE_STORAGE_DOMAIN, QuotaDependency.NONE),
ExtendSANStorageDomain(911, ActionGroup.EDIT_STORAGE_DOMAIN_CONFIGURATION, QuotaDependency.NONE),
ReconstructMasterDomain(913, QuotaDependency.NONE),
DeactivateStorageDomainWithOvfUpdate(914, ActionGroup.MANIPULATE_STORAGE_DOMAIN, QuotaDependency.NONE),
ProcessOvfUpdateForStorageDomain(1902, ActionGroup.MANIPULATE_STORAGE_DOMAIN, QuotaDependency.NONE),
CreateOvfVolumeForStorageDomain(1903, ActionGroup.MANIPULATE_STORAGE_DOMAIN, QuotaDependency.NONE),
RecoveryStoragePool(915, ActionGroup.CREATE_STORAGE_POOL, QuotaDependency.NONE),
RefreshLunsSize(917, ActionGroup.EDIT_STORAGE_DOMAIN_CONFIGURATION, QuotaDependency.NONE),
MoveStorageDomainDevice(918, ActionGroup.EDIT_STORAGE_DOMAIN_CONFIGURATION, QuotaDependency.NONE),
ReduceStorageDomain(919, ActionGroup.EDIT_STORAGE_DOMAIN_CONFIGURATION, QuotaDependency.NONE),
RemoveDeviceFromSANStorageDomain(920, ActionGroup.EDIT_STORAGE_DOMAIN_CONFIGURATION, QuotaDependency.NONE),
ReduceSANStorageDomainDevices(921, ActionGroup.EDIT_STORAGE_DOMAIN_CONFIGURATION, QuotaDependency.NONE),
AddEmptyStoragePool(950, ActionGroup.CREATE_STORAGE_POOL, false, QuotaDependency.NONE),
AddStoragePoolWithStorages(951, ActionGroup.CREATE_STORAGE_POOL, QuotaDependency.NONE),
RemoveStoragePool(957, ActionGroup.DELETE_STORAGE_POOL, QuotaDependency.NONE),
UpdateStoragePool(958, ActionGroup.EDIT_STORAGE_POOL_CONFIGURATION, QuotaDependency.NONE),
FenceVdsManualy(959, ActionGroup.MANIPULATE_HOST, false, QuotaDependency.NONE),
AddExistingFileStorageDomain(960, ActionGroup.CREATE_STORAGE_DOMAIN, QuotaDependency.NONE),
AddExistingBlockStorageDomain(961, ActionGroup.CREATE_STORAGE_DOMAIN, QuotaDependency.NONE),
AddStorageServerConnection(1000, ActionGroup.CREATE_STORAGE_DOMAIN, QuotaDependency.NONE),
UpdateStorageServerConnection(1001, ActionGroup.CREATE_STORAGE_DOMAIN, QuotaDependency.NONE),
DisconnectStorageServerConnection(1002, ActionGroup.CREATE_STORAGE_DOMAIN, QuotaDependency.NONE),
RemoveStorageServerConnection(1003, ActionGroup.CREATE_STORAGE_DOMAIN, QuotaDependency.NONE),
ConnectHostToStoragePoolServers(1004, QuotaDependency.NONE),
DisconnectHostFromStoragePoolServers(1005, QuotaDependency.NONE),
ConnectStorageToVds(1006, ActionGroup.CREATE_STORAGE_DOMAIN, QuotaDependency.NONE),
SetStoragePoolStatus(1007, QuotaDependency.NONE),
ConnectAllHostsToLun(1008, QuotaDependency.NONE),
AddPosixFsStorageDomain(1009, ActionGroup.CREATE_STORAGE_DOMAIN, QuotaDependency.NONE),
LiveMigrateDisk(1010, QuotaDependency.NONE),
LiveMigrateVmDisks(1011, false, QuotaDependency.STORAGE),
MoveDisks(1012, false, QuotaDependency.NONE),
ExtendImageSize(1013, false, QuotaDependency.STORAGE),
ImportRepoImage(1014, ActionGroup.CREATE_DISK, QuotaDependency.STORAGE),
ExportRepoImage(1015, QuotaDependency.NONE),
AttachStorageConnectionToStorageDomain(1016, ActionGroup.MANIPULATE_STORAGE_DOMAIN, QuotaDependency.NONE),
DetachStorageConnectionFromStorageDomain(1017, ActionGroup.MANIPULATE_STORAGE_DOMAIN, QuotaDependency.NONE),
SyncLunsInfoForBlockStorageDomain(1018, false, QuotaDependency.NONE),
UpdateStorageServerConnectionExtension(1019, ActionGroup.CREATE_STORAGE_DOMAIN, QuotaDependency.NONE),
RemoveStorageServerConnectionExtension(1020, ActionGroup.CREATE_STORAGE_DOMAIN, QuotaDependency.NONE),
AddStorageServerConnectionExtension(1021, ActionGroup.CREATE_STORAGE_DOMAIN, QuotaDependency.NONE),
RefreshVolume(1022, QuotaDependency.NONE),
TransferDiskImage(1024, false, QuotaDependency.STORAGE),
TransferImageStatus(1025, false, QuotaDependency.NONE),
ScanStorageForUnregisteredDisks(1026, ActionGroup.MANIPULATE_STORAGE_DOMAIN, QuotaDependency.NONE),
AllocateImageGroupVolume(1027, QuotaDependency.STORAGE),
CreateImagePlaceholder(1028, QuotaDependency.NONE),
SyncImageGroupData(1029, QuotaDependency.NONE),
CreateVolumeContainer(1030, QuotaDependency.STORAGE),
DownloadImage(1031, QuotaDependency.STORAGE),
CloneImageGroupVolumesStructure(1032, QuotaDependency.STORAGE),
CopyData(1033, QuotaDependency.STORAGE),
CopyImageGroupVolumesData(1034, QuotaDependency.STORAGE),
CopyImageGroupWithData(1035, QuotaDependency.STORAGE),
GlusterStorageSync(1036, QuotaDependency.NONE),
GlusterStorageGeoRepSyncInternal(1037, QuotaDependency.NONE),
ScheduleGlusterStorageSync(1038, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
FenceVolumeJob(1039, QuotaDependency.STORAGE),
// Leases
AddVmLease(1040, QuotaDependency.NONE),
RemoveVmLease(1041, QuotaDependency.NONE),
// Event Notification
AddEventSubscription(1100, false, QuotaDependency.NONE),
RemoveEventSubscription(1101, false, QuotaDependency.NONE),
// Config
ReloadConfigurations(1301, ActionGroup.CONFIGURE_ENGINE, false, QuotaDependency.NONE),
// Gluster
CreateGlusterVolume(1400, ActionGroup.CREATE_GLUSTER_VOLUME, QuotaDependency.NONE),
SetGlusterVolumeOption(1401, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
StartGlusterVolume(1402, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
StopGlusterVolume(1403, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
ResetGlusterVolumeOptions(1404, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
DeleteGlusterVolume(1405, ActionGroup.DELETE_GLUSTER_VOLUME, QuotaDependency.NONE),
GlusterVolumeRemoveBricks(1406, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
StartRebalanceGlusterVolume(1407, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
ReplaceGlusterVolumeBrick(1408, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
AddBricksToGlusterVolume(1409, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
StartGlusterVolumeProfile(1410, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
StopGlusterVolumeProfile(1411, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
RemoveGlusterServer(1412, ActionGroup.DELETE_HOST, QuotaDependency.NONE),
AddGlusterFsStorageDomain(1413, ActionGroup.CREATE_STORAGE_DOMAIN, QuotaDependency.NONE),
EnableGlusterHook(1414, ActionGroup.MANIPULATE_GLUSTER_HOOK, QuotaDependency.NONE),
DisableGlusterHook(1415, ActionGroup.MANIPULATE_GLUSTER_HOOK, QuotaDependency.NONE),
UpdateGlusterHook(1416, ActionGroup.MANIPULATE_GLUSTER_HOOK, QuotaDependency.NONE),
AddGlusterHook(1417, ActionGroup.MANIPULATE_GLUSTER_HOOK, QuotaDependency.NONE),
RemoveGlusterHook(1418, ActionGroup.MANIPULATE_GLUSTER_HOOK, QuotaDependency.NONE),
RefreshGlusterHooks(1419, ActionGroup.MANIPULATE_GLUSTER_HOOK, QuotaDependency.NONE),
ManageGlusterService(1420, ActionGroup.MANIPULATE_GLUSTER_SERVICE, QuotaDependency.NONE),
StopRebalanceGlusterVolume(1421, ActionGroup.MANIPULATE_GLUSTER_VOLUME, false, QuotaDependency.NONE),
StartRemoveGlusterVolumeBricks(1422, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
StopRemoveGlusterVolumeBricks(1423, ActionGroup.MANIPULATE_GLUSTER_VOLUME, false, QuotaDependency.NONE),
CommitRemoveGlusterVolumeBricks(1424, ActionGroup.MANIPULATE_GLUSTER_VOLUME, false, QuotaDependency.NONE),
RefreshGlusterVolumeDetails(1425, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
RefreshGeoRepSessions(1426, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
StopGeoRepSession(1427, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
DeleteGeoRepSession(1428, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
StartGlusterVolumeGeoRep(1429, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
ResumeGeoRepSession(1430, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
PauseGlusterVolumeGeoRepSession(1431, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
SetGeoRepConfig(1432, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
ResetDefaultGeoRepConfig(1433, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
DeleteGlusterVolumeSnapshot(1434, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
DeleteAllGlusterVolumeSnapshots(1435, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
ActivateGlusterVolumeSnapshot(1436, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
DeactivateGlusterVolumeSnapshot(1437, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
RestoreGlusterVolumeSnapshot(1438, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
UpdateGlusterVolumeSnapshotConfig(1439, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
SyncStorageDevices(1440, ActionGroup.MANIPULATE_HOST, QuotaDependency.NONE),
CreateGlusterVolumeSnapshot(1441, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
ScheduleGlusterVolumeSnapshot(1442, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
RescheduleGlusterVolumeSnapshot(1443, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
CreateBrick(1444, ActionGroup.MANIPULATE_HOST, QuotaDependency.NONE),
CreateGlusterVolumeGeoRepSession(1445, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
SetupGlusterGeoRepMountBrokerInternal(1446, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
UpdateGlusterHostPubKeyToSlaveInternal(1447, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
DisableGlusterCliSnapshotScheduleInternal(1448, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
SetUpPasswordLessSSHInternal(1449, ActionGroup.MANIPULATE_GLUSTER_VOLUME, QuotaDependency.NONE),
// Scheduling Policy
AddClusterPolicy(1450, ActionGroup.EDIT_STORAGE_POOL_CONFIGURATION, false, QuotaDependency.NONE),
EditClusterPolicy(1451, ActionGroup.EDIT_STORAGE_POOL_CONFIGURATION, false, QuotaDependency.NONE),
RemoveClusterPolicy(1452, ActionGroup.EDIT_STORAGE_POOL_CONFIGURATION, false, QuotaDependency.NONE),
RemoveExternalPolicyUnit(1453, ActionGroup.EDIT_STORAGE_POOL_CONFIGURATION, false, QuotaDependency.NONE),
// External events
AddExternalEvent(1500, ActionGroup.INJECT_EXTERNAL_EVENTS, QuotaDependency.NONE),
// Providers
AddProvider(1600, false, QuotaDependency.NONE),
UpdateProvider(1601, false, QuotaDependency.NONE),
RemoveProvider(1602, false, QuotaDependency.NONE),
TestProviderConnectivity(1603, false, QuotaDependency.NONE),
ImportProviderCertificate(1604, false, QuotaDependency.NONE),
AddNetworkOnProvider(1605, ActionGroup.CREATE_STORAGE_POOL_NETWORK, false, QuotaDependency.NONE),
AddSubnetToProvider(1606, false, QuotaDependency.NONE),
RemoveSubnetFromProvider(1607, false, QuotaDependency.NONE),
AddWatchdog(1700, ActionGroup.EDIT_VM_PROPERTIES, QuotaDependency.NONE),
UpdateWatchdog(1701, ActionGroup.EDIT_VM_PROPERTIES, QuotaDependency.NONE),
RemoveWatchdog(1702, ActionGroup.EDIT_VM_PROPERTIES, QuotaDependency.NONE),
AddNetworkQoS(1750, ActionGroup.CONFIGURE_STORAGE_POOL_NETWORK, false, QuotaDependency.NONE),
UpdateNetworkQoS(1751, ActionGroup.CONFIGURE_STORAGE_POOL_NETWORK, false, QuotaDependency.NONE),
RemoveNetworkQoS(1752, ActionGroup.CONFIGURE_STORAGE_POOL_NETWORK, false, QuotaDependency.NONE),
// qos
AddStorageQos(1753, ActionGroup.EDIT_STORAGE_POOL_CONFIGURATION, false, QuotaDependency.NONE),
UpdateStorageQos(1754, ActionGroup.EDIT_STORAGE_POOL_CONFIGURATION, false, QuotaDependency.NONE),
RemoveStorageQos(1755, ActionGroup.EDIT_STORAGE_POOL_CONFIGURATION, false, QuotaDependency.NONE),
AddCpuQos(1756, ActionGroup.EDIT_STORAGE_POOL_CONFIGURATION, false, QuotaDependency.NONE),
UpdateCpuQos(1757, ActionGroup.EDIT_STORAGE_POOL_CONFIGURATION, false, QuotaDependency.NONE),
RemoveCpuQos(1758, ActionGroup.EDIT_STORAGE_POOL_CONFIGURATION, false, QuotaDependency.NONE),
AddHostNetworkQos(1770, ActionGroup.EDIT_STORAGE_POOL_CONFIGURATION, false, QuotaDependency.NONE),
UpdateHostNetworkQos(1771, ActionGroup.EDIT_STORAGE_POOL_CONFIGURATION, false, QuotaDependency.NONE),
RemoveHostNetworkQos(1772, ActionGroup.EDIT_STORAGE_POOL_CONFIGURATION, false, QuotaDependency.NONE),
// disk profiles
AddDiskProfile(1760, ActionGroup.CREATE_STORAGE_DISK_PROFILE, false, QuotaDependency.NONE),
UpdateDiskProfile(1761, ActionGroup.CONFIGURE_STORAGE_DISK_PROFILE, false, QuotaDependency.NONE),
RemoveDiskProfile(1762, ActionGroup.DELETE_STORAGE_DISK_PROFILE, false, QuotaDependency.NONE),
// cpu profiles
AddCpuProfile(1763, ActionGroup.CREATE_CPU_PROFILE, false, QuotaDependency.NONE),
UpdateCpuProfile(1764, ActionGroup.UPDATE_CPU_PROFILE, false, QuotaDependency.NONE),
RemoveCpuProfile(1765, ActionGroup.DELETE_CPU_PROFILE, false, QuotaDependency.NONE),
// External Tasks
AddExternalJob(1800, ActionGroup.INJECT_EXTERNAL_TASKS, false, QuotaDependency.NONE),
EndExternalJob(1801, ActionGroup.INJECT_EXTERNAL_TASKS, false, QuotaDependency.NONE),
ClearExternalJob(1802, ActionGroup.INJECT_EXTERNAL_TASKS, false, QuotaDependency.NONE),
AddExternalStep(1803, ActionGroup.INJECT_EXTERNAL_TASKS, false, QuotaDependency.NONE),
EndExternalStep(1804, ActionGroup.INJECT_EXTERNAL_TASKS, false, QuotaDependency.NONE),
//Internal Tasks
AddInternalJob(1850, false, QuotaDependency.NONE),
AddInternalStep(1851, false, QuotaDependency.NONE),
UpdateMomPolicy(1900, ActionGroup.MANIPULATE_HOST, false, QuotaDependency.NONE),
UploadStream(1901, QuotaDependency.NONE),
RetrieveImageData(1905, QuotaDependency.NONE),
ProcessOvfUpdateForStoragePool(1906, QuotaDependency.NONE),
// Affinity Groups
AddAffinityGroup(1950, ActionGroup.MANIPULATE_AFFINITY_GROUPS, false, QuotaDependency.NONE),
EditAffinityGroup(1951, ActionGroup.MANIPULATE_AFFINITY_GROUPS, false, QuotaDependency.NONE),
RemoveAffinityGroup(1952, ActionGroup.MANIPULATE_AFFINITY_GROUPS, false, QuotaDependency.NONE),
// ISCSI Bonds
AddIscsiBond(2000, ActionGroup.EDIT_STORAGE_POOL_CONFIGURATION, false, QuotaDependency.NONE),
EditIscsiBond(2001, ActionGroup.EDIT_STORAGE_POOL_CONFIGURATION, false, QuotaDependency.NONE),
RemoveIscsiBond(2002, ActionGroup.EDIT_STORAGE_POOL_CONFIGURATION, false, QuotaDependency.NONE),
SetHaMaintenance(2050, ActionGroup.MANIPULATE_HOST, false, QuotaDependency.NONE),
// Rng crud
AddRngDevice(2150, ActionGroup.EDIT_VM_PROPERTIES, QuotaDependency.NONE),
UpdateRngDevice(2151, ActionGroup.EDIT_VM_PROPERTIES, QuotaDependency.NONE),
RemoveRngDevice(2152, ActionGroup.EDIT_VM_PROPERTIES, QuotaDependency.NONE),
// Graphics Device CRUD
AddGraphicsDevice(2250, ActionGroup.EDIT_VM_PROPERTIES, false, QuotaDependency.NONE),
UpdateGraphicsDevice(2251, ActionGroup.EDIT_VM_PROPERTIES, false, QuotaDependency.NONE),
RemoveGraphicsDevice(2252, ActionGroup.EDIT_VM_PROPERTIES, false, QuotaDependency.NONE),
AddGraphicsAndVideoDevices(2253, ActionGroup.EDIT_VM_PROPERTIES, false, QuotaDependency.NONE),
RemoveGraphicsAndVideoDevices(2254, ActionGroup.EDIT_VM_PROPERTIES, false, QuotaDependency.NONE),
// Vm Host Device CRUD
AddVmHostDevices(2350, ActionGroup.EDIT_ADMIN_VM_PROPERTIES, false, QuotaDependency.NONE),
RemoveVmHostDevices(2351, ActionGroup.EDIT_ADMIN_VM_PROPERTIES, false, QuotaDependency.NONE),
// Vm devices
HotUnplugMemory(2400, ActionGroup.EDIT_VM_PROPERTIES, false, QuotaDependency.NONE),
// Audit Log
RemoveAuditLogById(2100, false, QuotaDependency.NONE),
ClearAllAuditLogEvents(2101, false, QuotaDependency.NONE),
DisplayAllAuditLogEvents(2102, false, QuotaDependency.NONE),
ClearAllAuditLogAlerts(2103, false, QuotaDependency.NONE),
DisplayAllAuditLogAlerts(2104, false, QuotaDependency.NONE),
SetSesssionSoftLimit(3000, false, QuotaDependency.NONE),
// Mac Pool
AddMacPool(3100, ActionGroup.CREATE_MAC_POOL, false, QuotaDependency.NONE),
UpdateMacPool(3101, ActionGroup.EDIT_MAC_POOL, false, QuotaDependency.NONE),
RemoveMacPool(3102, ActionGroup.DELETE_MAC_POOL, false, QuotaDependency.NONE),
// Cinder
AddCinderDisk(3200, ActionGroup.CONFIGURE_VM_STORAGE, QuotaDependency.STORAGE),
RemoveCinderDisk(3201, QuotaDependency.STORAGE),
ExtendCinderDisk(3202, ActionGroup.CONFIGURE_VM_STORAGE, QuotaDependency.STORAGE),
RemoveAllVmCinderDisks(3203, QuotaDependency.STORAGE),
CloneSingleCinderDisk(3204, ActionGroup.CONFIGURE_VM_STORAGE, QuotaDependency.STORAGE),
RegisterCinderDisk(3206, ActionGroup.CONFIGURE_VM_STORAGE, false, QuotaDependency.NONE),
CreateCinderSnapshot(3207, ActionGroup.CONFIGURE_VM_STORAGE, false, QuotaDependency.STORAGE),
RemoveCinderSnapshotDisk(3208, ActionGroup.CONFIGURE_VM_STORAGE, false, QuotaDependency.STORAGE),
AddLibvirtSecret(3209, false, QuotaDependency.NONE),
UpdateLibvirtSecret(3210, false, QuotaDependency.NONE),
RemoveLibvirtSecret(3211, false, QuotaDependency.NONE),
TryBackToCinderSnapshot(3212, ActionGroup.CONFIGURE_VM_STORAGE, false, QuotaDependency.STORAGE),
RestoreFromCinderSnapshot(3214, ActionGroup.CONFIGURE_VM_STORAGE, false, QuotaDependency.STORAGE),
RestoreAllCinderSnapshots(3215, ActionGroup.CONFIGURE_VM_STORAGE, false, QuotaDependency.STORAGE),
RemoveAllCinderSnapshotDisks(3216, ActionGroup.CONFIGURE_VM_STORAGE, false, QuotaDependency.STORAGE),
FreezeVm(3217, ActionGroup.CONFIGURE_VM_STORAGE, QuotaDependency.NONE),
ThawVm(3218, ActionGroup.CONFIGURE_VM_STORAGE, QuotaDependency.NONE),
RemoveCinderDiskVolume(3219, QuotaDependency.STORAGE),
// Host Devices
RefreshHostDevices(4000, ActionGroup.MANIPULATE_HOST, false, QuotaDependency.NONE),
RefreshHost(4001, ActionGroup.MANIPULATE_HOST, false, QuotaDependency.NONE),
// Network Attachments
HostSetupNetworks(5200, ActionGroup.CONFIGURE_HOST_NETWORK, QuotaDependency.NONE),
AddNetworkAttachment(5201, ActionGroup.CONFIGURE_HOST_NETWORK, QuotaDependency.NONE),
UpdateNetworkAttachment(5202, ActionGroup.CONFIGURE_HOST_NETWORK, QuotaDependency.NONE),
RemoveNetworkAttachment(5203, ActionGroup.CONFIGURE_HOST_NETWORK, QuotaDependency.NONE),
PersistentHostSetupNetworks(5204, QuotaDependency.NONE),
SyncAllHostNetworks(5205, ActionGroup.CONFIGURE_HOST_NETWORK, QuotaDependency.NONE),
// Hosted Engine
ImportHostedEngineStorageDomain(6000, false, QuotaDependency.NONE),
/* Scheduling enabled `Label` actions are currently tied to the same
permissions as Tags as they have similar semantics and follow
almost the same rules.
TODO: change the action group as soon as the intended permissions change too
*/
AddLabel(6100, ActionGroup.TAG_MANAGEMENT, false, QuotaDependency.NONE),
RemoveLabel(6101, ActionGroup.TAG_MANAGEMENT, false, QuotaDependency.NONE),
UpdateLabel(6102, ActionGroup.TAG_MANAGEMENT, false, QuotaDependency.NONE),
// Scheduling and balancing
BalanceVm(6200, ActionGroup.MIGRATE_VM, QuotaDependency.NONE),
// CoCo
RunAsyncAction(7000, QuotaDependency.NONE),
// API:
AddDeprecatedApiEvent(8000, false, QuotaDependency.NONE);
private int intValue;
private ActionGroup actionGroup;
private boolean isActionMonitored;
private static final HashMap<Integer, VdcActionType> mappings = new HashMap<>();
private QuotaDependency quotaDependency;
private boolean quotaDependentAsInternalCommand = false;
static {
for (VdcActionType action : values()) {
mappings.put(action.getValue(), action);
}
}
private VdcActionType(int value , QuotaDependency quotaDependency) {
this(value, null, quotaDependency);
}
private VdcActionType(int value, boolean isActionMonitored, QuotaDependency quotaDependency) {
this(value, null, isActionMonitored, quotaDependency);
}
private VdcActionType(int value, ActionGroup actionGroupValue, QuotaDependency quotaDependency) {
this(value, actionGroupValue, true, quotaDependency);
}
private VdcActionType(int value, ActionGroup actionGroupValue, boolean isActionMonitored, QuotaDependency quotaDependency) {
this.intValue = value;
this.actionGroup = actionGroupValue;
this.isActionMonitored = isActionMonitored;
this.quotaDependency = quotaDependency;
}
private VdcActionType(int value,
ActionGroup actionGroupValue,
boolean isActionMonitored,
QuotaDependency quotaDependency,
boolean quotaDependentAsInternalCommand) {
this(value, actionGroupValue, isActionMonitored, quotaDependency);
this.quotaDependentAsInternalCommand = quotaDependentAsInternalCommand;
}
public int getValue() {
return intValue;
}
public ActionGroup getActionGroup() {
return actionGroup;
}
public boolean isActionMonitored() {
return isActionMonitored;
}
public static VdcActionType forValue(int value) {
return mappings.get(value);
}
public QuotaDependency getQuotaDependency() {
return quotaDependency;
}
public boolean isQuotaDependentAsInternalCommand() {
return quotaDependentAsInternalCommand;
}
/**
* The QuotaDependency marks on which kind of quota regulated resources each command is dependant.
* i.e. - Creating new Disk is dependant of Storage resources. Running a VM is dependant of VDS (cluster) resources.
*
* NONE - indicates no dependency of any quota regulated resources.
*
* !!! Notice !!! - marking your command with QuotaDependency is not enough. In order to avoid Exceptions and
* Quota consumption errors, the command must implement the correct interface: STORAGE=>QuotaStorageDependant,
* VDS=>QuotaVdsDependant, BOTH=>QuotaStorageDependant and QuotaVdsDependant
*/
public enum QuotaDependency {
NONE, STORAGE, CLUSTER, BOTH
}
}