You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by nv...@apache.org on 2022/04/25 12:05:25 UTC
[cloudstack] branch main updated: schema,server,api: events improvement (#5997)
This is an automated email from the ASF dual-hosted git repository.
nvazquez pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/main by this push:
new 523805c8bc schema,server,api: events improvement (#5997)
523805c8bc is described below
commit 523805c8bc63e5d5f2b8634e46db9bb9ec6214ad
Author: Abhishek Kumar <ab...@gmail.com>
AuthorDate: Mon Apr 25 17:35:17 2022 +0530
schema,server,api: events improvement (#5997)
* schema,server,api: events improvement
Add resource ID and resource type to event.
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* wip
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* refactor resourcetype association with API class
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* add resource anme to the response
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* changes
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* test
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* more tests
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* new line
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* add resource test
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* changes
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* fix
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* smoke test for events resource
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* fix
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* changes
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* fix
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* ui improvements
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* refactor
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* api,ui: add support for listing events for a resource
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* since key
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* tests and permission changes
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* missing test
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* events for domain
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* improvements
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* fix
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* add missing license
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* ui: fix js console errors
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* sort enumeration
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* fix event resource for vpc
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* feedback changes
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* fix order
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* events with parent resource
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* missing UI labels
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* donot call cmd resource methods before dispatch
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* add restore vm to procedure
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* add missing imports
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* resource details for more events
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* add test for changes
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* more test, license fix
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* wrong merge fix
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
* fix for more event types
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
---
api/src/main/java/com/cloud/event/ActionEvent.java | 4 +
api/src/main/java/com/cloud/event/Event.java | 4 +
api/src/main/java/com/cloud/event/EventTypes.java | 13 +-
.../com/cloud/network/vpn/Site2SiteVpnService.java | 2 +
.../apache/cloudstack/api/ApiCommandJobType.java | 58 -----
.../cloudstack/api/ApiCommandResourceType.java | 118 ++++++++++
.../org/apache/cloudstack/api/ApiConstants.java | 1 +
.../org/apache/cloudstack/api/BaseAsyncCmd.java | 15 --
.../java/org/apache/cloudstack/api/BaseCmd.java | 27 ++-
.../org/apache/cloudstack/api/BaseListCmd.java | 5 -
.../org/apache/cloudstack/api/IBaseListCmd.java | 2 -
.../command/admin/account/CreateAccountCmd.java | 6 +
.../command/admin/account/DeleteAccountCmd.java | 8 +-
.../command/admin/account/DisableAccountCmd.java | 11 +-
.../command/admin/account/EnableAccountCmd.java | 11 +
.../command/admin/account/UpdateAccountCmd.java | 11 +
.../api/command/admin/acl/CreateRoleCmd.java | 9 +-
.../api/command/admin/acl/DeleteRoleCmd.java | 16 +-
.../api/command/admin/acl/UpdateRoleCmd.java | 14 +-
.../command/admin/autoscale/CreateCounterCmd.java | 6 +-
.../command/admin/autoscale/DeleteCounterCmd.java | 6 +-
.../admin/backup/UpdateBackupOfferingCmd.java | 11 +
.../command/admin/ca/ProvisionCertificateCmd.java | 6 +-
.../api/command/admin/cluster/AddClusterCmd.java | 6 +
.../command/admin/cluster/DeleteClusterCmd.java | 11 +
.../command/admin/cluster/UpdateClusterCmd.java | 11 +
.../admin/diagnostics/GetDiagnosticsDataCmd.java | 20 +-
.../admin/diagnostics/RunDiagnosticsCmd.java | 21 +-
.../api/command/admin/domain/CreateDomainCmd.java | 6 +
.../api/command/admin/domain/DeleteDomainCmd.java | 11 +
.../api/command/admin/domain/UpdateDomainCmd.java | 11 +
.../api/command/admin/guest/AddGuestOsCmd.java | 6 +-
.../command/admin/guest/AddGuestOsMappingCmd.java | 6 +-
.../api/command/admin/guest/RemoveGuestOsCmd.java | 6 +-
.../admin/guest/RemoveGuestOsMappingCmd.java | 6 +-
.../api/command/admin/guest/UpdateGuestOsCmd.java | 6 +-
.../admin/guest/UpdateGuestOsMappingCmd.java | 6 +-
.../admin/host/CancelHostAsDegradedCmd.java | 8 +-
.../command/admin/host/CancelMaintenanceCmd.java | 8 +-
.../admin/host/DeclareHostAsDegradedCmd.java | 8 +-
.../api/command/admin/host/ListHostTagsCmd.java | 6 +-
.../api/command/admin/host/ListHostsCmd.java | 6 +-
.../admin/host/PrepareForMaintenanceCmd.java | 8 +-
.../api/command/admin/host/ReconnectHostCmd.java | 8 +-
.../admin/host/ReleaseHostReservationCmd.java | 8 +-
.../admin/internallb/ListInternalLBVMsCmd.java | 6 +-
.../admin/internallb/StartInternalLBVMCmd.java | 8 +-
.../admin/internallb/StopInternalLBVMCmd.java | 8 +-
.../api/command/admin/management/ListMgmtsCmd.java | 6 +-
.../network/AddNetworkServiceProviderCmd.java | 6 +-
.../admin/network/CreatePhysicalNetworkCmd.java | 6 +-
.../network/DeleteNetworkServiceProviderCmd.java | 6 +-
.../admin/network/DeletePhysicalNetworkCmd.java | 11 +-
.../network/ReleaseDedicatedGuestVlanRangeCmd.java | 6 +-
.../admin/network/UpdateNetworkOfferingCmd.java | 11 +
.../network/UpdateNetworkServiceProviderCmd.java | 6 +-
.../admin/network/UpdatePhysicalNetworkCmd.java | 6 +-
.../admin/offering/CreateDiskOfferingCmd.java | 6 +
.../admin/offering/UpdateDiskOfferingCmd.java | 11 +
.../admin/offering/UpdateServiceOfferingCmd.java | 11 +
.../IssueOutOfBandManagementPowerActionCmd.java | 6 +-
.../api/command/admin/pod/CreatePodCmd.java | 8 +
.../api/command/admin/pod/DeletePodCmd.java | 11 +
.../api/command/admin/pod/UpdatePodCmd.java | 11 +
.../admin/region/CreatePortableIpRangeCmd.java | 6 +-
.../admin/region/DeletePortableIpRangeCmd.java | 6 +-
.../admin/resource/StartRollingMaintenanceCmd.java | 57 ++++-
.../admin/router/ConfigureOvsElementCmd.java | 8 +-
.../router/ConfigureVirtualRouterElementCmd.java | 8 +-
.../api/command/admin/router/DestroyRouterCmd.java | 8 +-
.../api/command/admin/router/ListRoutersCmd.java | 6 +-
.../api/command/admin/router/RebootRouterCmd.java | 8 +-
.../api/command/admin/router/StartRouterCmd.java | 8 +-
.../api/command/admin/router/StopRouterCmd.java | 8 +-
.../admin/router/UpgradeRouterTemplateCmd.java | 6 +-
.../CancelPrimaryStorageMaintenanceCmd.java | 8 +-
.../storage/FindStoragePoolsForMigrationCmd.java | 6 +-
.../command/admin/storage/ListStoragePoolsCmd.java | 6 +-
.../command/admin/storage/ListStorageTagsCmd.java | 6 +-
.../storage/MigrateSecondaryStorageDataCmd.java | 11 +
.../PreparePrimaryStorageForMaintenanceCmd.java | 8 +-
.../admin/storage/UpdateStoragePoolCmd.java | 11 +
.../command/admin/systemvm/DestroySystemVmCmd.java | 8 +-
.../command/admin/systemvm/ListSystemVMsCmd.java | 6 +-
.../command/admin/systemvm/RebootSystemVmCmd.java | 8 +-
.../command/admin/systemvm/StartSystemVMCmd.java | 8 +-
.../command/admin/systemvm/StopSystemVmCmd.java | 8 +-
.../api/command/admin/usage/AddTrafficTypeCmd.java | 6 +-
.../command/admin/usage/DeleteTrafficTypeCmd.java | 6 +-
.../command/admin/usage/UpdateTrafficTypeCmd.java | 6 +-
.../api/command/admin/user/CreateUserCmd.java | 6 +
.../api/command/admin/user/DeleteUserCmd.java | 11 +
.../api/command/admin/user/DisableUserCmd.java | 6 +-
.../api/command/admin/user/MoveUserCmd.java | 20 +-
.../api/command/admin/user/RegisterCmd.java | 11 +
.../api/command/admin/user/UpdateUserCmd.java | 11 +
.../api/command/admin/vm/AssignVMCmd.java | 10 +
.../api/command/admin/vm/ExpungeVMCmd.java | 8 +-
.../api/command/admin/vm/MigrateVMCmd.java | 11 +
.../vm/MigrateVirtualMachineWithVolumeCmd.java | 11 +
.../api/command/admin/vm/RecoverVMCmd.java | 11 +
.../command/admin/vm/UnmanageVMInstanceCmd.java | 8 +-
.../command/admin/vpc/DeletePrivateGatewayCmd.java | 6 +-
.../command/admin/vpc/DeleteVPCOfferingCmd.java | 10 +
.../command/admin/vpc/UpdateVPCOfferingCmd.java | 11 +
.../admin/zone/MarkDefaultZoneForAccountCmd.java | 12 +-
.../user/account/AddAccountToProjectCmd.java | 11 +
.../command/user/account/AddUserToProjectCmd.java | 13 +-
.../user/account/DeleteAccountFromProjectCmd.java | 11 +
.../user/account/DeleteUserFromProjectCmd.java | 11 +
.../api/command/user/account/ListAccountsCmd.java | 15 +-
.../user/account/ListProjectAccountsCmd.java | 6 +
.../command/user/address/AssociateIPAddrCmd.java | 6 +-
.../user/address/DisassociateIPAddrCmd.java | 8 +-
.../user/address/ListPublicIpAddressesCmd.java | 6 +-
.../api/command/user/address/ReserveIPAddrCmd.java | 10 +
.../api/command/user/address/UpdateIPAddrCmd.java | 11 +
.../user/affinitygroup/CreateAffinityGroupCmd.java | 6 +-
.../user/affinitygroup/DeleteAffinityGroupCmd.java | 11 +-
.../user/affinitygroup/ListAffinityGroupsCmd.java | 6 +-
.../affinitygroup/UpdateVMAffinityGroupCmd.java | 6 +-
.../user/autoscale/CreateAutoScalePolicyCmd.java | 6 +-
.../user/autoscale/CreateAutoScaleVmGroupCmd.java | 6 +-
.../autoscale/CreateAutoScaleVmProfileCmd.java | 6 +-
.../command/user/autoscale/CreateConditionCmd.java | 6 +-
.../user/autoscale/DeleteAutoScalePolicyCmd.java | 6 +-
.../user/autoscale/DeleteAutoScaleVmGroupCmd.java | 6 +-
.../autoscale/DeleteAutoScaleVmProfileCmd.java | 6 +-
.../command/user/autoscale/DeleteConditionCmd.java | 6 +-
.../user/autoscale/DisableAutoScaleVmGroupCmd.java | 6 +-
.../user/autoscale/EnableAutoScaleVmGroupCmd.java | 6 +-
.../user/autoscale/UpdateAutoScalePolicyCmd.java | 6 +-
.../user/autoscale/UpdateAutoScaleVmGroupCmd.java | 6 +-
.../autoscale/UpdateAutoScaleVmProfileCmd.java | 6 +-
.../api/command/user/backup/CreateBackupCmd.java | 6 +-
.../api/command/user/event/ListEventsCmd.java | 17 +-
.../user/firewall/CreateEgressFirewallRuleCmd.java | 6 +-
.../user/firewall/CreateFirewallRuleCmd.java | 6 +-
.../user/firewall/CreatePortForwardingRuleCmd.java | 6 +-
.../user/firewall/DeleteEgressFirewallRuleCmd.java | 6 +-
.../user/firewall/DeleteFirewallRuleCmd.java | 6 +-
.../user/firewall/DeletePortForwardingRuleCmd.java | 6 +-
.../api/command/user/iso/AttachIsoCmd.java | 11 +
.../api/command/user/iso/DeleteIsoCmd.java | 8 +-
.../api/command/user/iso/DetachIsoCmd.java | 11 +
.../api/command/user/iso/ExtractIsoCmd.java | 8 +-
.../api/command/user/iso/ListIsosCmd.java | 6 +-
.../api/command/user/iso/RegisterIsoCmd.java | 6 +
.../api/command/user/iso/UpdateIsoCmd.java | 11 +
.../CreateApplicationLoadBalancerCmd.java | 6 +-
.../loadbalancer/CreateLoadBalancerRuleCmd.java | 6 +-
.../DeleteApplicationLoadBalancerCmd.java | 6 +-
.../loadbalancer/DeleteLoadBalancerRuleCmd.java | 6 +-
.../user/nat/CreateIpForwardingRuleCmd.java | 6 +-
.../user/nat/DeleteIpForwardingRuleCmd.java | 6 +-
.../api/command/user/nat/DisableStaticNatCmd.java | 15 ++
.../api/command/user/nat/EnableStaticNatCmd.java | 10 +
.../command/user/network/CreateNetworkACLCmd.java | 6 +
.../user/network/CreateNetworkACLListCmd.java | 11 +
.../command/user/network/DeleteNetworkACLCmd.java | 11 +
.../user/network/DeleteNetworkACLListCmd.java | 11 +
.../api/command/user/network/DeleteNetworkCmd.java | 12 +-
.../user/network/MoveNetworkAclItemCmd.java | 6 +
.../command/user/network/RestartNetworkCmd.java | 25 ++-
.../user/network/UpdateNetworkACLItemCmd.java | 11 +
.../user/network/UpdateNetworkACLListCmd.java | 11 +
.../api/command/user/network/UpdateNetworkCmd.java | 22 +-
.../ha/gslb/CreateGlobalLoadBalancerRuleCmd.java | 6 +-
.../ha/gslb/DeleteGlobalLoadBalancerRuleCmd.java | 6 +-
.../AuthorizeSecurityGroupEgressCmd.java | 8 +-
.../AuthorizeSecurityGroupIngressCmd.java | 8 +-
.../user/securitygroup/ListSecurityGroupsCmd.java | 6 +-
.../RevokeSecurityGroupEgressCmd.java | 8 +-
.../RevokeSecurityGroupIngressCmd.java | 8 +-
.../command/user/snapshot/CreateSnapshotCmd.java | 6 +-
.../snapshot/CreateSnapshotFromVMSnapshotCmd.java | 6 +-
.../user/snapshot/CreateSnapshotPolicyCmd.java | 11 +
.../command/user/snapshot/DeleteSnapshotCmd.java | 8 +-
.../command/user/snapshot/ListSnapshotsCmd.java | 6 +-
.../command/user/snapshot/RevertSnapshotCmd.java | 8 +-
.../user/snapshot/UpdateSnapshotPolicyCmd.java | 2 +-
.../api/command/user/template/CopyTemplateCmd.java | 13 +-
.../command/user/template/CreateTemplateCmd.java | 6 +-
.../command/user/template/DeleteTemplateCmd.java | 8 +-
.../command/user/template/ExtractTemplateCmd.java | 13 +-
.../command/user/template/ListTemplatesCmd.java | 6 +-
.../command/user/template/RegisterTemplateCmd.java | 6 +-
.../command/user/template/UpdateTemplateCmd.java | 11 +
.../api/command/user/vm/AddIpToVmNicCmd.java | 6 +-
.../api/command/user/vm/AddNicToVMCmd.java | 16 +-
.../api/command/user/vm/DeployVMCmd.java | 6 +-
.../api/command/user/vm/DestroyVMCmd.java | 8 +-
.../api/command/user/vm/ListNicsCmd.java | 6 +-
.../cloudstack/api/command/user/vm/ListVMsCmd.java | 21 +-
.../api/command/user/vm/RebootVMCmd.java | 8 +-
.../api/command/user/vm/RemoveIpFromVmNicCmd.java | 6 +-
.../api/command/user/vm/ResetVMPasswordCmd.java | 8 +-
.../api/command/user/vm/ResetVMSSHKeyCmd.java | 8 +-
.../api/command/user/vm/RestoreVMCmd.java | 11 +
.../cloudstack/api/command/user/vm/ScaleVMCmd.java | 16 +-
.../cloudstack/api/command/user/vm/StartVMCmd.java | 8 +-
.../cloudstack/api/command/user/vm/StopVMCmd.java | 8 +-
.../api/command/user/vm/UpdateVMCmd.java | 16 +-
.../api/command/user/vm/UpdateVmNicIpCmd.java | 6 +-
.../user/vmsnapshot/CreateVMSnapshotCmd.java | 10 +-
.../user/vmsnapshot/DeleteVMSnapshotCmd.java | 10 +
.../user/vmsnapshot/RevertToVMSnapshotCmd.java | 10 +
.../api/command/user/volume/AttachVolumeCmd.java | 8 +-
.../api/command/user/volume/CreateVolumeCmd.java | 6 +-
.../api/command/user/volume/DeleteVolumeCmd.java | 11 +
.../api/command/user/volume/DestroyVolumeCmd.java | 8 +-
.../api/command/user/volume/DetachVolumeCmd.java | 8 +-
.../api/command/user/volume/ExtractVolumeCmd.java | 8 +-
.../api/command/user/volume/ListVolumesCmd.java | 7 +-
.../api/command/user/volume/MigrateVolumeCmd.java | 13 +-
.../api/command/user/volume/RecoverVolumeCmd.java | 11 +
.../user/volume/RemoveResourceDetailCmd.java | 6 +-
.../api/command/user/volume/ResizeVolumeCmd.java | 11 +-
.../api/command/user/volume/UpdateVolumeCmd.java | 8 +-
.../api/command/user/volume/UploadVolumeCmd.java | 10 +-
.../command/user/vpc/CreatePrivateGatewayCmd.java | 6 +-
.../api/command/user/vpc/CreateStaticRouteCmd.java | 6 +-
.../api/command/user/vpc/DeleteStaticRouteCmd.java | 6 +-
.../api/command/user/vpc/DeleteVPCCmd.java | 11 +
.../api/command/user/vpc/RestartVPCCmd.java | 11 +
.../api/command/user/vpc/UpdateVPCCmd.java | 11 +
.../command/user/vpn/CreateRemoteAccessVpnCmd.java | 11 +
.../user/vpn/CreateVpnCustomerGatewayCmd.java | 29 ++-
.../command/user/vpn/DeleteRemoteAccessVpnCmd.java | 10 +
.../user/vpn/DeleteVpnCustomerGatewayCmd.java | 11 +
.../user/vpn/UpdateVpnCustomerGatewayCmd.java | 11 +
.../cloudstack/api/response/EventResponse.java | 39 +++-
.../org/apache/cloudstack/context/CallContext.java | 19 ++
.../cloudstack/api/ApiCommandResourceTypeTest.java | 71 ++++++
.../src/main/java/com/cloud/event/EventVO.java | 24 +++
.../resources/META-INF/db/schema-41610to41700.sql | 48 +++++
.../main/java/com/cloud/dao/EntityManagerImpl.java | 9 +-
.../framework/jobs/impl/AsyncJobManagerImpl.java | 4 +-
.../cluster/CreateKubernetesClusterCmd.java | 20 +-
.../network/guru/BigSwitchBcfGuestNetworkGuru.java | 3 +-
.../api/command/CreateServiceInstanceCmd.java | 5 +
.../com/cloud/api/commands/StopNetScalerVMCmd.java | 8 +-
.../cloud/network/guru/OvsGuestNetworkGuru.java | 15 +-
.../cloud/network/guru/VxlanGuestNetworkGuru.java | 10 +-
.../api/command/LinkAccountToLdapCmd.java | 26 ++-
.../api/command/ListAndSwitchSAMLAccountCmd.java | 48 +++--
.../java/com/cloud/api/ApiAsyncJobDispatcher.java | 8 +-
server/src/main/java/com/cloud/api/ApiDBUtils.java | 52 ++---
.../src/main/java/com/cloud/api/ApiDispatcher.java | 15 +-
server/src/main/java/com/cloud/api/ApiServer.java | 10 +-
.../com/cloud/api/dispatch/ParamProcessWorker.java | 6 +-
.../java/com/cloud/api/query/QueryManagerImpl.java | 61 +++++-
.../com/cloud/api/query/vo/AsyncJobJoinVO.java | 8 +-
.../java/com/cloud/api/query/vo/EventJoinVO.java | 14 ++
.../configuration/ConfigurationManagerImpl.java | 10 +-
.../com/cloud/event/ActionEventInterceptor.java | 40 +++-
.../java/com/cloud/event/ActionEventUtils.java | 238 ++++++++++++++-------
.../java/com/cloud/event/dao/EventJoinDaoImpl.java | 43 +++-
.../com/cloud/network/IpAddressManagerImpl.java | 3 +-
.../java/com/cloud/network/NetworkServiceImpl.java | 15 +-
.../network/firewall/FirewallManagerImpl.java | 1 +
.../network/guru/ExternalGuestNetworkGuru.java | 17 +-
.../com/cloud/network/guru/GuestNetworkGuru.java | 8 +-
.../router/VirtualNetworkApplianceManagerImpl.java | 17 +-
.../cloud/network/vpc/NetworkACLManagerImpl.java | 2 +-
.../java/com/cloud/network/vpc/VpcManagerImpl.java | 5 +-
.../cloud/network/vpn/Site2SiteVpnManagerImpl.java | 8 +-
.../com/cloud/resource/ResourceManagerImpl.java | 5 +-
.../resource/RollingMaintenanceManagerImpl.java | 47 ++--
.../resourceicon/ResourceIconManagerImpl.java | 43 +++-
.../com/cloud/server/ManagementServerImpl.java | 17 +-
.../com/cloud/storage/VolumeApiServiceImpl.java | 19 +-
.../storage/snapshot/SnapshotManagerImpl.java | 10 +-
.../storage/snapshot/SnapshotSchedulerImpl.java | 10 +-
.../com/cloud/tags/ResourceManagerUtilImpl.java | 36 ++--
.../com/cloud/template/TemplateManagerImpl.java | 3 +
.../java/com/cloud/user/AccountManagerImpl.java | 10 +-
.../main/java/com/cloud/vm/UserVmManagerImpl.java | 5 +-
.../cloud/vm/snapshot/VMSnapshotManagerImpl.java | 11 +-
.../org/apache/cloudstack/acl/RoleManagerImpl.java | 4 +-
.../affinity/AffinityGroupServiceImpl.java | 6 +-
.../annotation/AnnotationManagerImpl.java | 89 ++++++--
.../cloudstack/backup/BackupManagerImpl.java | 9 +-
.../direct/download/DirectDownloadManagerImpl.java | 3 +-
.../org/apache/cloudstack/ha/HAManagerImpl.java | 7 +-
.../OutOfBandManagementServiceImpl.java | 59 ++---
.../outofbandmanagement/PowerOperationTask.java | 8 +-
.../test/java/com/cloud/api/ApiDispatcherTest.java | 94 ++++++++
.../com/cloud/api/query/QueryManagerImplTest.java | 190 ++++++++++++++++
...lsTest.java => ActionEventInterceptorTest.java} | 162 ++++++++++----
.../java/com/cloud/event/ActionEventUtilsTest.java | 202 +++++++++++++++--
.../com/cloud/event/dao/EventJoinDaoImplTest.java | 69 ++++++
.../cloud/resource/ResourceManagerImplTest.java | 6 +-
.../resourceicon/ResourceIconManagerImplTest.java | 133 ++++++++++++
.../com/cloud/storage/dao/AsyncJobJoinDaoTest.java | 4 +-
.../com/cloud/vpc/MockSite2SiteVpnManagerImpl.java | 9 +
.../annotation/AnnotationManagerImplTest.java | 193 +++++++++++++++++
test/integration/smoke/test_events_resource.py | 197 +++++++++++++++++
ui/public/locales/en.json | 5 +
ui/src/components/view/EventsTab.vue | 171 +++++++++++++++
ui/src/components/view/InfoCard.vue | 13 +-
ui/src/components/view/ListView.vue | 7 +-
ui/src/components/view/ResourceView.vue | 11 +-
ui/src/components/view/SearchView.vue | 27 +++
ui/src/components/view/TreeView.vue | 15 ++
ui/src/components/widgets/ResourceLabel.vue | 69 ++++++
ui/src/config/section/account.js | 6 +
ui/src/config/section/domain.js | 9 +-
ui/src/config/section/event.js | 6 +-
ui/src/config/section/image.js | 12 ++
ui/src/config/section/infra/pods.js | 7 +
ui/src/config/section/infra/primaryStorages.js | 5 +
ui/src/config/section/infra/routers.js | 6 +
ui/src/config/section/infra/secondaryStorages.js | 5 +
ui/src/config/section/infra/systemVms.js | 7 +
ui/src/config/section/infra/zones.js | 5 +
ui/src/config/section/network.js | 12 ++
ui/src/config/section/project.js | 6 +
ui/src/config/section/storage.js | 6 +
ui/src/config/section/user.js | 13 ++
ui/src/utils/plugins.js | 54 +++++
ui/src/views/compute/InstanceTab.vue | 5 +
ui/src/views/dashboard/CapacityDashboard.vue | 5 +-
ui/src/views/network/VpcTab.vue | 5 +
.../java/com/cloud/utils/db/EntityManager.java | 2 +
325 files changed, 4230 insertions(+), 1073 deletions(-)
diff --git a/api/src/main/java/com/cloud/event/ActionEvent.java b/api/src/main/java/com/cloud/event/ActionEvent.java
index 8fe14dd800..e72cdd92bf 100644
--- a/api/src/main/java/com/cloud/event/ActionEvent.java
+++ b/api/src/main/java/com/cloud/event/ActionEvent.java
@@ -33,4 +33,8 @@ public @interface ActionEvent {
String eventType();
String eventDescription();
+
+ long resourceId() default -1;
+
+ String resourceType() default "";
}
diff --git a/api/src/main/java/com/cloud/event/Event.java b/api/src/main/java/com/cloud/event/Event.java
index bd86a7ffad..0d1fb11a1b 100644
--- a/api/src/main/java/com/cloud/event/Event.java
+++ b/api/src/main/java/com/cloud/event/Event.java
@@ -33,6 +33,10 @@ public interface Event extends ControlledEntity, Identity, InternalIdentity {
String getDescription();
+ Long getResourceId();
+
+ String getResourceType();
+
Date getCreateDate();
long getUserId();
diff --git a/api/src/main/java/com/cloud/event/EventTypes.java b/api/src/main/java/com/cloud/event/EventTypes.java
index 6471742e8f..842697f3f0 100644
--- a/api/src/main/java/com/cloud/event/EventTypes.java
+++ b/api/src/main/java/com/cloud/event/EventTypes.java
@@ -21,6 +21,7 @@ import java.util.Map;
import org.apache.cloudstack.acl.Role;
import org.apache.cloudstack.acl.RolePermission;
+import org.apache.cloudstack.affinity.AffinityGroup;
import org.apache.cloudstack.annotation.Annotation;
import org.apache.cloudstack.api.response.ClusterResponse;
import org.apache.cloudstack.api.response.HostResponse;
@@ -63,6 +64,7 @@ import com.cloud.network.vpc.NetworkACLItem;
import com.cloud.network.vpc.PrivateGateway;
import com.cloud.network.vpc.StaticRoute;
import com.cloud.network.vpc.Vpc;
+import com.cloud.network.vpc.VpcOffering;
import com.cloud.offering.DiskOffering;
import com.cloud.offering.NetworkOffering;
import com.cloud.offering.ServiceOffering;
@@ -972,9 +974,9 @@ public class EventTypes {
entityEventDetails.put(EVENT_VPC_RESTART, Vpc.class);
// VPC offerings
- entityEventDetails.put(EVENT_VPC_OFFERING_CREATE, Vpc.class);
- entityEventDetails.put(EVENT_VPC_OFFERING_UPDATE, Vpc.class);
- entityEventDetails.put(EVENT_VPC_OFFERING_DELETE, Vpc.class);
+ entityEventDetails.put(EVENT_VPC_OFFERING_CREATE, VpcOffering.class);
+ entityEventDetails.put(EVENT_VPC_OFFERING_UPDATE, VpcOffering.class);
+ entityEventDetails.put(EVENT_VPC_OFFERING_DELETE, VpcOffering.class);
// Private gateway
entityEventDetails.put(EVENT_PRIVATE_GATEWAY_CREATE, PrivateGateway.class);
@@ -1014,6 +1016,11 @@ public class EventTypes {
entityEventDetails.put(EVENT_GUEST_VLAN_RANGE_DEDICATE, GuestVlan.class);
entityEventDetails.put(EVENT_DEDICATED_GUEST_VLAN_RANGE_RELEASE, GuestVlan.class);
+ entityEventDetails.put(EVENT_AFFINITY_GROUP_CREATE, AffinityGroup.class);
+ entityEventDetails.put(EVENT_AFFINITY_GROUP_DELETE, AffinityGroup.class);
+ entityEventDetails.put(EVENT_AFFINITY_GROUP_ASSIGN, AffinityGroup.class);
+ entityEventDetails.put(EVENT_AFFINITY_GROUP_REMOVE, AffinityGroup.class);
+
// OpenDaylight
entityEventDetails.put(EVENT_EXTERNAL_OPENDAYLIGHT_ADD_CONTROLLER, "OpenDaylightController");
entityEventDetails.put(EVENT_EXTERNAL_OPENDAYLIGHT_DELETE_CONTROLLER, "OpenDaylightController");
diff --git a/api/src/main/java/com/cloud/network/vpn/Site2SiteVpnService.java b/api/src/main/java/com/cloud/network/vpn/Site2SiteVpnService.java
index abdc756876..73cc61a786 100644
--- a/api/src/main/java/com/cloud/network/vpn/Site2SiteVpnService.java
+++ b/api/src/main/java/com/cloud/network/vpn/Site2SiteVpnService.java
@@ -46,6 +46,8 @@ public interface Site2SiteVpnService {
Site2SiteVpnGateway getVpnGateway(Long vpnGatewayId);
+ Site2SiteCustomerGateway getCustomerGateway(Long customerGatewayId);
+
Site2SiteVpnConnection createVpnConnection(CreateVpnConnectionCmd cmd) throws NetworkRuleConflictException;
boolean deleteCustomerGateway(DeleteVpnCustomerGatewayCmd deleteVpnCustomerGatewayCmd);
diff --git a/api/src/main/java/org/apache/cloudstack/api/ApiCommandJobType.java b/api/src/main/java/org/apache/cloudstack/api/ApiCommandJobType.java
deleted file mode 100644
index 1cac1daba1..0000000000
--- a/api/src/main/java/org/apache/cloudstack/api/ApiCommandJobType.java
+++ /dev/null
@@ -1,58 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-package org.apache.cloudstack.api;
-
-public enum ApiCommandJobType {
- None,
- VirtualMachine,
- DomainRouter,
- Volume,
- ConsoleProxy,
- Snapshot,
- Backup,
- Template,
- Iso,
- SystemVm,
- Host,
- StoragePool,
- ImageStore,
- IpAddress,
- PortableIpAddress,
- SecurityGroup,
- PhysicalNetwork,
- TrafficType,
- PhysicalNetworkServiceProvider,
- FirewallRule,
- Account,
- User,
- PrivateGateway,
- StaticRoute,
- Counter,
- Condition,
- AutoScalePolicy,
- AutoScaleVmProfile,
- AutoScaleVmGroup,
- GlobalLoadBalancerRule,
- LoadBalancerRule,
- AffinityGroup,
- InternalLbVm,
- DedicatedGuestVlanRange,
- GuestOs,
- GuestOsMapping,
- Network,
- Management
-}
diff --git a/api/src/main/java/org/apache/cloudstack/api/ApiCommandResourceType.java b/api/src/main/java/org/apache/cloudstack/api/ApiCommandResourceType.java
new file mode 100644
index 0000000000..0a7ece7b7d
--- /dev/null
+++ b/api/src/main/java/org/apache/cloudstack/api/ApiCommandResourceType.java
@@ -0,0 +1,118 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package org.apache.cloudstack.api;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.cloudstack.region.PortableIp;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.EnumUtils;
+import org.apache.commons.lang3.StringUtils;
+
+public enum ApiCommandResourceType {
+ None(null),
+ VirtualMachine(com.cloud.vm.VirtualMachine.class),
+ DomainRouter(com.cloud.network.router.VirtualRouter.class),
+ Volume(com.cloud.storage.Volume.class),
+ ConsoleProxy(com.cloud.vm.VirtualMachine.class),
+ Snapshot(com.cloud.storage.Snapshot.class),
+ Backup(org.apache.cloudstack.backup.Backup.class),
+ Template(com.cloud.template.VirtualMachineTemplate.class),
+ Iso(com.cloud.template.VirtualMachineTemplate.class),
+ SystemVm(com.cloud.vm.VirtualMachine.class),
+ Host(com.cloud.host.Host.class),
+ StoragePool(com.cloud.storage.StoragePool.class),
+ ImageStore(com.cloud.storage.ImageStore.class),
+ IpAddress(com.cloud.network.IpAddress.class),
+ PortableIpAddress(PortableIp.class),
+ SecurityGroup(com.cloud.network.security.SecurityGroup.class),
+ PhysicalNetwork(com.cloud.network.PhysicalNetwork.class),
+ TrafficType(com.cloud.network.PhysicalNetworkTrafficType.class),
+ PhysicalNetworkServiceProvider(com.cloud.network.PhysicalNetworkServiceProvider.class),
+ FirewallRule(com.cloud.network.rules.FirewallRule.class),
+ Account(com.cloud.user.Account.class),
+ User(com.cloud.user.User.class),
+ PrivateGateway(com.cloud.network.vpc.PrivateGateway.class),
+ StaticRoute(com.cloud.network.vpc.StaticRoute.class),
+ Counter(com.cloud.network.as.Counter.class),
+ Condition(com.cloud.network.as.Condition.class),
+ AutoScalePolicy(com.cloud.network.as.AutoScalePolicy.class),
+ AutoScaleVmProfile(com.cloud.network.as.AutoScaleVmProfile.class),
+ AutoScaleVmGroup(com.cloud.network.as.AutoScaleVmGroup.class),
+ GlobalLoadBalancerRule(com.cloud.region.ha.GlobalLoadBalancerRule.class),
+ LoadBalancerRule(com.cloud.network.lb.LoadBalancingRule.class),
+ AffinityGroup(org.apache.cloudstack.affinity.AffinityGroup.class),
+ InternalLbVm(com.cloud.network.router.VirtualRouter.class),
+ DedicatedGuestVlanRange(com.cloud.network.GuestVlan.class),
+ GuestOs(com.cloud.storage.GuestOS.class),
+ GuestOsMapping(com.cloud.storage.GuestOSHypervisor.class),
+ Network(com.cloud.network.Network.class),
+ NetworkAcl(com.cloud.network.vpc.NetworkACL.class),
+ NetworkAclItem(com.cloud.network.vpc.NetworkACLItem.class),
+ Project(com.cloud.projects.Project.class),
+ Domain(com.cloud.domain.Domain.class),
+ DiskOffering(com.cloud.offering.DiskOffering.class),
+ ServiceOffering(com.cloud.offering.ServiceOffering.class),
+ NetworkOffering(com.cloud.offering.NetworkOffering.class),
+ VpcOffering(com.cloud.network.vpc.VpcOffering.class),
+ BackupOffering(org.apache.cloudstack.backup.BackupOffering.class),
+ Zone(com.cloud.dc.DataCenter.class),
+ Vpc(com.cloud.network.vpc.Vpc.class),
+ Cluster(com.cloud.org.Cluster.class),
+ Pod(com.cloud.dc.Pod.class),
+ VmSnapshot(com.cloud.vm.snapshot.VMSnapshot.class),
+ Role(org.apache.cloudstack.acl.Role.class),
+ VpnCustomerGateway(com.cloud.network.Site2SiteCustomerGateway.class);
+
+ private final Class<?> clazz;
+
+ private ApiCommandResourceType(Class<?> clazz) {
+ this.clazz = clazz;
+ }
+
+ public Class<?> getAssociatedClass() {
+ return this.clazz;
+ }
+
+ public static List<ApiCommandResourceType> valuesFromAssociatedClass(Class<?> clazz) {
+ List<ApiCommandResourceType> types = new ArrayList<>();
+ for (ApiCommandResourceType type : ApiCommandResourceType.values()) {
+ if (type.getAssociatedClass() == clazz) {
+ types.add(type);
+ }
+ }
+ return types;
+ }
+
+ public static ApiCommandResourceType valueFromAssociatedClass(Class<?> clazz) {
+ List<ApiCommandResourceType> types = valuesFromAssociatedClass(clazz);
+ return CollectionUtils.isEmpty(types) ? null : types.get(0);
+ }
+
+ @Override
+ public String toString() {
+ return this.name();
+ }
+
+ public static ApiCommandResourceType fromString(String value) {
+ if (StringUtils.isNotEmpty(value) && EnumUtils.isValidEnum(ApiCommandResourceType.class, value)) {
+ return valueOf(value);
+ }
+ return null;
+ }
+}
diff --git a/api/src/main/java/org/apache/cloudstack/api/ApiConstants.java b/api/src/main/java/org/apache/cloudstack/api/ApiConstants.java
index 70ae181973..db8eaf808d 100644
--- a/api/src/main/java/org/apache/cloudstack/api/ApiConstants.java
+++ b/api/src/main/java/org/apache/cloudstack/api/ApiConstants.java
@@ -335,6 +335,7 @@ public class ApiConstants {
public static final String RECONNECT = "reconnect";
public static final String RECOVER = "recover";
public static final String REQUIRES_HVM = "requireshvm";
+ public static final String RESOURCE_NAME = "resourcename";
public static final String RESOURCE_TYPE = "resourcetype";
public static final String RESOURCE_TYPE_NAME = "resourcetypename";
public static final String RESPONSE = "response";
diff --git a/api/src/main/java/org/apache/cloudstack/api/BaseAsyncCmd.java b/api/src/main/java/org/apache/cloudstack/api/BaseAsyncCmd.java
index 1c3822c105..865ec74564 100644
--- a/api/src/main/java/org/apache/cloudstack/api/BaseAsyncCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/BaseAsyncCmd.java
@@ -74,21 +74,6 @@ public abstract class BaseAsyncCmd extends BaseCmd {
this.startEventId = startEventId;
}
- /**
- * Async commands that want to be tracked as part of the listXXX commands need to
- * provide implementations of the two following methods, getInstanceId() and getInstanceType()
- *
- * getObjectId() should return the id of the object the async command is executing on
- * getObjectType() should return a type from the AsyncJob.Type enumeration
- */
- public Long getInstanceId() {
- return null;
- }
-
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.None;
- }
-
public String getSyncObjType() {
return null;
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/BaseCmd.java b/api/src/main/java/org/apache/cloudstack/api/BaseCmd.java
index 475745d081..da381b05e7 100644
--- a/api/src/main/java/org/apache/cloudstack/api/BaseCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/BaseCmd.java
@@ -29,11 +29,6 @@ import java.util.regex.Pattern;
import javax.inject.Inject;
-import com.cloud.server.ManagementService;
-import com.cloud.server.ResourceIconManager;
-import com.cloud.server.ResourceManagerUtil;
-import com.cloud.server.ResourceMetaDataService;
-import com.cloud.server.TaggedResourceService;
import org.apache.cloudstack.acl.ProjectRoleService;
import org.apache.cloudstack.acl.RoleService;
import org.apache.cloudstack.acl.RoleType;
@@ -72,6 +67,11 @@ import com.cloud.network.vpn.RemoteAccessVpnService;
import com.cloud.network.vpn.Site2SiteVpnService;
import com.cloud.projects.ProjectService;
import com.cloud.resource.ResourceService;
+import com.cloud.server.ManagementService;
+import com.cloud.server.ResourceIconManager;
+import com.cloud.server.ResourceManagerUtil;
+import com.cloud.server.ResourceMetaDataService;
+import com.cloud.server.TaggedResourceService;
import com.cloud.storage.DataStoreProviderApiService;
import com.cloud.storage.StorageService;
import com.cloud.storage.VolumeApiService;
@@ -430,4 +430,21 @@ public abstract class BaseCmd {
return null;
}
+ /**
+ * Commands that generate action events associated to a resource and
+ * async commands that want to be tracked as part of the listXXX commands
+ * need to provide implementations of the two following methods,
+ * getApiResourceId() and getApiResourceType()
+ *
+ * getApiResourceId() should return the id of the object the async command is executing on
+ * getApiResourceType() should return a type from the ApiCommandResourceType enumeration
+ */
+ public Long getApiResourceId() {
+ return null;
+ }
+
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.None;
+ }
+
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/BaseListCmd.java b/api/src/main/java/org/apache/cloudstack/api/BaseListCmd.java
index bcebbb8600..9bd69dc9e4 100644
--- a/api/src/main/java/org/apache/cloudstack/api/BaseListCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/BaseListCmd.java
@@ -117,11 +117,6 @@ public abstract class BaseListCmd extends BaseCmd implements IBaseListCmd {
return startIndex;
}
- @Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.None;
- }
-
@Override
public void validateSpecificParameters(final Map<String, String> params){
super.validateSpecificParameters(params);
diff --git a/api/src/main/java/org/apache/cloudstack/api/IBaseListCmd.java b/api/src/main/java/org/apache/cloudstack/api/IBaseListCmd.java
index 70957ea915..bf87e11608 100644
--- a/api/src/main/java/org/apache/cloudstack/api/IBaseListCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/IBaseListCmd.java
@@ -27,6 +27,4 @@ public interface IBaseListCmd {
Long getPageSizeVal();
Long getStartIndex();
-
- ApiCommandJobType getInstanceType();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/account/CreateAccountCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/account/CreateAccountCmd.java
index 7b68296fcb..7d1150597f 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/account/CreateAccountCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/account/CreateAccountCmd.java
@@ -19,6 +19,7 @@ package org.apache.cloudstack.api.command.admin.account;
import java.util.Collection;
import java.util.Map;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
@@ -207,4 +208,9 @@ public class CreateAccountCmd extends BaseCmd {
throw new ServerApiException(ApiErrorCode.PARAM_ERROR, "Neither account type and role ID are not provided");
}
}
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Account;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/account/DeleteAccountCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/account/DeleteAccountCmd.java
index 1896f97311..22eec04c57 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/account/DeleteAccountCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/account/DeleteAccountCmd.java
@@ -21,7 +21,7 @@ import javax.inject.Inject;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -110,12 +110,12 @@ public class DeleteAccountCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Account;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Account;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return id;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/account/DisableAccountCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/account/DisableAccountCmd.java
index 3e5e1d3d01..f71484c2de 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/account/DisableAccountCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/account/DisableAccountCmd.java
@@ -23,7 +23,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -133,7 +133,12 @@ public class DisableAccountCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Account;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Account;
+ }
+
+ @Override
+ public Long getApiResourceId() {
+ return id;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/account/EnableAccountCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/account/EnableAccountCmd.java
index f30c985c96..e9dc9f611d 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/account/EnableAccountCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/account/EnableAccountCmd.java
@@ -18,6 +18,7 @@ package org.apache.cloudstack.api.command.admin.account;
import javax.inject.Inject;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
@@ -108,4 +109,14 @@ public class EnableAccountCmd extends BaseCmd {
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to enable account");
}
}
+
+ @Override
+ public Long getApiResourceId() {
+ return id;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Account;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/account/UpdateAccountCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/account/UpdateAccountCmd.java
index 43377dad8a..0dd7a37bb9 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/account/UpdateAccountCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/account/UpdateAccountCmd.java
@@ -21,6 +21,7 @@ import java.util.Map;
import javax.inject.Inject;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.response.RoleResponse;
import org.apache.log4j.Logger;
@@ -145,4 +146,14 @@ public class UpdateAccountCmd extends BaseCmd {
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to update account");
}
}
+
+ @Override
+ public Long getApiResourceId() {
+ return id;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Account;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/acl/CreateRoleCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/acl/CreateRoleCmd.java
index 69d7027326..73c5ca2d75 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/acl/CreateRoleCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/acl/CreateRoleCmd.java
@@ -17,10 +17,10 @@
package org.apache.cloudstack.api.command.admin.acl;
-import com.cloud.user.Account;
import org.apache.cloudstack.acl.Role;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseCmd;
@@ -29,6 +29,8 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.RoleResponse;
import org.apache.cloudstack.context.CallContext;
+import com.cloud.user.Account;
+
@APICommand(name = CreateRoleCmd.APINAME, description = "Creates a role", responseObject = RoleResponse.class,
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false,
since = "4.9.0",
@@ -111,4 +113,9 @@ public class CreateRoleCmd extends RoleCmd {
throw new ServerApiException(ApiErrorCode.PARAM_ERROR, "Invalid role id provided");
}
}
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Role;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/acl/DeleteRoleCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/acl/DeleteRoleCmd.java
index bd4a7cdacb..89f82500da 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/acl/DeleteRoleCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/acl/DeleteRoleCmd.java
@@ -17,20 +17,22 @@
package org.apache.cloudstack.api.command.admin.acl;
-import com.cloud.user.Account;
import org.apache.cloudstack.acl.Role;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiArgValidator;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
-import org.apache.cloudstack.api.ApiArgValidator;
import org.apache.cloudstack.api.response.RoleResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
import org.apache.cloudstack.context.CallContext;
+import com.cloud.user.Account;
+
@APICommand(name = DeleteRoleCmd.APINAME, description = "Deletes a role", responseObject = SuccessResponse.class,
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false,
since = "4.9.0",
@@ -80,4 +82,14 @@ public class DeleteRoleCmd extends BaseCmd {
response.setSuccess(result);
setResponseObject(response);
}
+
+ @Override
+ public Long getApiResourceId() {
+ return getRoleId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Role;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/acl/UpdateRoleCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/acl/UpdateRoleCmd.java
index 0137d1e317..7b7b4e4429 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/acl/UpdateRoleCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/acl/UpdateRoleCmd.java
@@ -17,11 +17,11 @@
package org.apache.cloudstack.api.command.admin.acl;
-import com.cloud.user.Account;
import org.apache.cloudstack.acl.Role;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.ApiArgValidator;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseCmd;
@@ -30,6 +30,8 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.RoleResponse;
import org.apache.cloudstack.context.CallContext;
+import com.cloud.user.Account;
+
@APICommand(name = UpdateRoleCmd.APINAME, description = "Updates a role", responseObject = RoleResponse.class,
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false,
since = "4.9.0",
@@ -87,4 +89,14 @@ public class UpdateRoleCmd extends RoleCmd {
role = roleService.updateRole(role, getRoleName(), getRoleType(), getRoleDescription());
setupResponse(role);
}
+
+ @Override
+ public Long getApiResourceId() {
+ return getRoleId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Role;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/autoscale/CreateCounterCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/autoscale/CreateCounterCmd.java
index ea715663d9..6c49a23aa5 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/autoscale/CreateCounterCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/autoscale/CreateCounterCmd.java
@@ -20,7 +20,7 @@ package org.apache.cloudstack.api.command.admin.autoscale;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCreateCmd;
@@ -97,8 +97,8 @@ public class CreateCounterCmd extends BaseAsyncCreateCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Counter;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Counter;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/autoscale/DeleteCounterCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/autoscale/DeleteCounterCmd.java
index 3547ef10c8..6575bf940b 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/autoscale/DeleteCounterCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/autoscale/DeleteCounterCmd.java
@@ -20,7 +20,7 @@ package org.apache.cloudstack.api.command.admin.autoscale;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -83,8 +83,8 @@ public class DeleteCounterCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Counter;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Counter;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/backup/UpdateBackupOfferingCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/backup/UpdateBackupOfferingCmd.java
index d23d80465e..2a8ee2b831 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/backup/UpdateBackupOfferingCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/backup/UpdateBackupOfferingCmd.java
@@ -19,6 +19,7 @@ package org.apache.cloudstack.api.command.admin.backup;
import javax.inject.Inject;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseCmd;
@@ -114,4 +115,14 @@ public class UpdateBackupOfferingCmd extends BaseCmd {
public long getEntityOwnerId() {
return Account.ACCOUNT_ID_SYSTEM;
}
+
+ @Override
+ public Long getApiResourceId() {
+ return id;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.BackupOffering;
+ }
}
\ No newline at end of file
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/ca/ProvisionCertificateCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/ca/ProvisionCertificateCmd.java
index 2745f071dd..99f3eae2ae 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/ca/ProvisionCertificateCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/ca/ProvisionCertificateCmd.java
@@ -21,7 +21,7 @@ import javax.inject.Inject;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -119,7 +119,7 @@ public class ProvisionCertificateCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Host;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Host;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/AddClusterCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/AddClusterCmd.java
index 3d0d714974..e258d72ca3 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/AddClusterCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/AddClusterCmd.java
@@ -20,6 +20,7 @@ package org.apache.cloudstack.api.command.admin.cluster;
import java.util.ArrayList;
import java.util.List;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
@@ -206,6 +207,11 @@ public class AddClusterCmd extends BaseCmd {
this.allocationState = allocationState;
}
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Cluster;
+ }
+
@Override
public void execute() {
try {
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/DeleteClusterCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/DeleteClusterCmd.java
index 5d04675800..7493c7c45e 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/DeleteClusterCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/DeleteClusterCmd.java
@@ -16,6 +16,7 @@
// under the License.
package org.apache.cloudstack.api.command.admin.cluster;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
@@ -65,6 +66,16 @@ public class DeleteClusterCmd extends BaseCmd {
return Account.ACCOUNT_ID_SYSTEM;
}
+ @Override
+ public Long getApiResourceId() {
+ return getId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Cluster;
+ }
+
@Override
public void execute() {
boolean result = _resourceService.deleteCluster(this);
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/UpdateClusterCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/UpdateClusterCmd.java
index 8d6faf99bd..99c62a17eb 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/UpdateClusterCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/UpdateClusterCmd.java
@@ -16,6 +16,7 @@
// under the License.
package org.apache.cloudstack.api.command.admin.cluster;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
@@ -105,6 +106,16 @@ public class UpdateClusterCmd extends BaseCmd {
this.managedState = managedstate;
}
+ @Override
+ public Long getApiResourceId() {
+ return getId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Cluster;
+ }
+
@Override
public void execute() {
Cluster cluster = _resourceService.getCluster(getId());
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/diagnostics/GetDiagnosticsDataCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/diagnostics/GetDiagnosticsDataCmd.java
index dc058ff0a2..b414857908 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/diagnostics/GetDiagnosticsDataCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/diagnostics/GetDiagnosticsDataCmd.java
@@ -23,7 +23,7 @@ import javax.inject.Inject;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.ApiArgValidator;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.BaseCmd;
@@ -150,8 +150,22 @@ public class GetDiagnosticsDataCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.SystemVm;
+ public Long getApiResourceId() {
+ return getId();
}
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+
+ VirtualMachine.Type vmType = _entityMgr.findById(VirtualMachine.class, getId()).getType();
+ switch (vmType) {
+ case ConsoleProxy:
+ return ApiCommandResourceType.ConsoleProxy;
+ case SecondaryStorageVm:
+ return ApiCommandResourceType.SystemVm;
+ case DomainRouter:
+ return ApiCommandResourceType.DomainRouter;
+ }
+ return null;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/diagnostics/RunDiagnosticsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/diagnostics/RunDiagnosticsCmd.java
index d7f3b39331..f4e15d7864 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/diagnostics/RunDiagnosticsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/diagnostics/RunDiagnosticsCmd.java
@@ -26,7 +26,7 @@ import org.apache.cloudstack.acl.SecurityChecker;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.ApiArgValidator;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -141,8 +141,23 @@ public class RunDiagnosticsCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.SystemVm;
+ public Long getApiResourceId() {
+ return getId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+
+ VirtualMachine.Type vmType = _entityMgr.findById(VirtualMachine.class, getId()).getType();
+ switch (vmType) {
+ case ConsoleProxy:
+ return ApiCommandResourceType.ConsoleProxy;
+ case SecondaryStorageVm:
+ return ApiCommandResourceType.SystemVm;
+ case DomainRouter:
+ return ApiCommandResourceType.DomainRouter;
+ }
+ return null;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/CreateDomainCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/CreateDomainCmd.java
index fe1c20206b..80f1c03095 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/CreateDomainCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/CreateDomainCmd.java
@@ -16,6 +16,7 @@
// under the License.
package org.apache.cloudstack.api.command.admin.domain;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
@@ -103,4 +104,9 @@ public class CreateDomainCmd extends BaseCmd {
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create domain");
}
}
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Domain;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/DeleteDomainCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/DeleteDomainCmd.java
index 037cf3d9ab..4302089dbc 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/DeleteDomainCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/DeleteDomainCmd.java
@@ -20,6 +20,7 @@ import javax.inject.Inject;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -109,4 +110,14 @@ public class DeleteDomainCmd extends BaseAsyncCmd {
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to delete domain");
}
}
+
+ @Override
+ public Long getApiResourceId() {
+ return id;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Domain;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/UpdateDomainCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/UpdateDomainCmd.java
index 409a84d7d8..76cc3292c9 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/UpdateDomainCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/domain/UpdateDomainCmd.java
@@ -18,6 +18,7 @@ package org.apache.cloudstack.api.command.admin.domain;
import javax.inject.Inject;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
@@ -100,4 +101,14 @@ public class UpdateDomainCmd extends BaseCmd {
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to update domain");
}
}
+
+ @Override
+ public Long getApiResourceId() {
+ return id;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Domain;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/AddGuestOsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/AddGuestOsCmd.java
index 717bcfe815..891ecb6d47 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/AddGuestOsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/AddGuestOsCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.admin.guest;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCreateCmd;
@@ -143,8 +143,8 @@ public class AddGuestOsCmd extends BaseAsyncCreateCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.GuestOs;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.GuestOs;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/AddGuestOsMappingCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/AddGuestOsMappingCmd.java
index 8af50a15bf..79e82d6f5d 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/AddGuestOsMappingCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/AddGuestOsMappingCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.admin.guest;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCreateCmd;
@@ -130,8 +130,8 @@ public class AddGuestOsMappingCmd extends BaseAsyncCreateCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.GuestOsMapping;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.GuestOsMapping;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/RemoveGuestOsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/RemoveGuestOsCmd.java
index 3de7f7a68d..fc8c9e641a 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/RemoveGuestOsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/RemoveGuestOsCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.admin.guest;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -91,8 +91,8 @@ public class RemoveGuestOsCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.GuestOs;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.GuestOs;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/RemoveGuestOsMappingCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/RemoveGuestOsMappingCmd.java
index ddd45399de..690bc9f94b 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/RemoveGuestOsMappingCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/RemoveGuestOsMappingCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.admin.guest;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -91,8 +91,8 @@ public class RemoveGuestOsMappingCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.GuestOsMapping;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.GuestOsMapping;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/UpdateGuestOsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/UpdateGuestOsCmd.java
index ff3b49d79b..d67ffc66e9 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/UpdateGuestOsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/UpdateGuestOsCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.admin.guest;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -122,7 +122,7 @@ public class UpdateGuestOsCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.GuestOs;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.GuestOs;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/UpdateGuestOsMappingCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/UpdateGuestOsMappingCmd.java
index d760d534cf..2683a21dfc 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/UpdateGuestOsMappingCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/guest/UpdateGuestOsMappingCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.admin.guest;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -95,8 +95,8 @@ public class UpdateGuestOsMappingCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.GuestOsMapping;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.GuestOsMapping;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/CancelHostAsDegradedCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/CancelHostAsDegradedCmd.java
index 98557dd710..9d6a575bc6 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/CancelHostAsDegradedCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/CancelHostAsDegradedCmd.java
@@ -22,7 +22,7 @@ import com.cloud.utils.fsm.NoTransitionException;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.ApiArgValidator;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseCmd;
@@ -87,12 +87,12 @@ public class CancelHostAsDegradedCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Host;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Host;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/CancelMaintenanceCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/CancelMaintenanceCmd.java
index d23a7651bb..a584c05759 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/CancelMaintenanceCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/CancelMaintenanceCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.admin.host;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -88,12 +88,12 @@ public class CancelMaintenanceCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Host;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Host;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/DeclareHostAsDegradedCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/DeclareHostAsDegradedCmd.java
index bdf440fc05..c6188eadb8 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/DeclareHostAsDegradedCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/DeclareHostAsDegradedCmd.java
@@ -22,7 +22,7 @@ import com.cloud.utils.fsm.NoTransitionException;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.ApiArgValidator;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseCmd;
@@ -87,12 +87,12 @@ public class DeclareHostAsDegradedCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Host;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Host;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ListHostTagsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ListHostTagsCmd.java
index 5f55ada61d..7adb3a14d1 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ListHostTagsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ListHostTagsCmd.java
@@ -20,7 +20,7 @@ package org.apache.cloudstack.api.command.admin.host;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.BaseListCmd;
import org.apache.cloudstack.api.response.ListResponse;
import org.apache.cloudstack.api.response.HostTagResponse;
@@ -49,8 +49,8 @@ public class ListHostTagsCmd extends BaseListCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Host;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Host;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ListHostsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ListHostsCmd.java
index 9a5d3115b5..1ec8f6bf5d 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ListHostsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ListHostsCmd.java
@@ -24,7 +24,7 @@ import java.util.Map;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiConstants.HostDetails;
import org.apache.cloudstack.api.BaseListCmd;
@@ -198,8 +198,8 @@ public class ListHostsCmd extends BaseListCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Host;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Host;
}
protected ListResponse<HostResponse> getHostResponses() {
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/PrepareForMaintenanceCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/PrepareForMaintenanceCmd.java
index 7083f0db13..fc228225c2 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/PrepareForMaintenanceCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/PrepareForMaintenanceCmd.java
@@ -17,7 +17,7 @@
package org.apache.cloudstack.api.command.admin.host;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -88,12 +88,12 @@ public class PrepareForMaintenanceCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Host;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Host;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ReconnectHostCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ReconnectHostCmd.java
index 34e439f3a3..8262528027 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ReconnectHostCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ReconnectHostCmd.java
@@ -17,7 +17,7 @@
package org.apache.cloudstack.api.command.admin.host;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -89,12 +89,12 @@ public class ReconnectHostCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Host;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Host;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ReleaseHostReservationCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ReleaseHostReservationCmd.java
index 6aeff6312c..c0d339e86b 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ReleaseHostReservationCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ReleaseHostReservationCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.admin.host;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -84,12 +84,12 @@ public class ReleaseHostReservationCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Host;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Host;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/ListInternalLBVMsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/ListInternalLBVMsCmd.java
index fd415858f5..f575690970 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/ListInternalLBVMsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/ListInternalLBVMsCmd.java
@@ -20,7 +20,7 @@ import org.apache.commons.lang.BooleanUtils;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseListProjectAndAccountResourcesCmd;
import org.apache.cloudstack.api.Parameter;
@@ -137,8 +137,8 @@ public class ListInternalLBVMsCmd extends BaseListProjectAndAccountResourcesCmd
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.DomainRouter;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.DomainRouter;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/StartInternalLBVMCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/StartInternalLBVMCmd.java
index 7040e7cf29..fdec794785 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/StartInternalLBVMCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/StartInternalLBVMCmd.java
@@ -21,7 +21,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -94,12 +94,12 @@ public class StartInternalLBVMCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.InternalLbVm;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.InternalLbVm;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/StopInternalLBVMCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/StopInternalLBVMCmd.java
index 51a3d9f8fa..1381f67052 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/StopInternalLBVMCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/internallb/StopInternalLBVMCmd.java
@@ -21,7 +21,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -92,12 +92,12 @@ public class StopInternalLBVMCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.InternalLbVm;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.InternalLbVm;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/management/ListMgmtsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/management/ListMgmtsCmd.java
index c01019e6e8..4e2ae10da5 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/management/ListMgmtsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/management/ListMgmtsCmd.java
@@ -17,7 +17,7 @@
package org.apache.cloudstack.api.command.admin.management;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseCmd;
import org.apache.cloudstack.api.BaseListCmd;
@@ -65,8 +65,8 @@ public class ListMgmtsCmd extends BaseListCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Host;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Host;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/AddNetworkServiceProviderCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/AddNetworkServiceProviderCmd.java
index bb87015da7..756c35fc23 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/AddNetworkServiceProviderCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/AddNetworkServiceProviderCmd.java
@@ -21,7 +21,7 @@ import java.util.List;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCreateCmd;
@@ -143,7 +143,7 @@ public class AddNetworkServiceProviderCmd extends BaseAsyncCreateCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.PhysicalNetworkServiceProvider;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.PhysicalNetworkServiceProvider;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreatePhysicalNetworkCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreatePhysicalNetworkCmd.java
index c691a18c83..9819cde6b4 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreatePhysicalNetworkCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreatePhysicalNetworkCmd.java
@@ -21,7 +21,7 @@ import java.util.List;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCreateCmd;
@@ -181,7 +181,7 @@ public class CreatePhysicalNetworkCmd extends BaseAsyncCreateCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.PhysicalNetwork;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.PhysicalNetwork;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeleteNetworkServiceProviderCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeleteNetworkServiceProviderCmd.java
index 9df27d3e06..fc752e8f88 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeleteNetworkServiceProviderCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeleteNetworkServiceProviderCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.admin.network;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -103,7 +103,7 @@ public class DeleteNetworkServiceProviderCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.PhysicalNetworkServiceProvider;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.PhysicalNetworkServiceProvider;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeletePhysicalNetworkCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeletePhysicalNetworkCmd.java
index 4d8c44628d..06619aecc3 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeletePhysicalNetworkCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/DeletePhysicalNetworkCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.admin.network;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -94,7 +94,12 @@ public class DeletePhysicalNetworkCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.PhysicalNetwork;
+ public Long getApiResourceId() {
+ return id;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.PhysicalNetwork;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ReleaseDedicatedGuestVlanRangeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ReleaseDedicatedGuestVlanRangeCmd.java
index 263d46a750..f6e49491fd 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ReleaseDedicatedGuestVlanRangeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/ReleaseDedicatedGuestVlanRangeCmd.java
@@ -20,7 +20,7 @@ package org.apache.cloudstack.api.command.admin.network;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -64,8 +64,8 @@ public class ReleaseDedicatedGuestVlanRangeCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.DedicatedGuestVlanRange;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.DedicatedGuestVlanRange;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdateNetworkOfferingCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdateNetworkOfferingCmd.java
index 3e4b528acf..61a2d8a8fd 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdateNetworkOfferingCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdateNetworkOfferingCmd.java
@@ -20,6 +20,7 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseCmd;
@@ -203,6 +204,16 @@ public class UpdateNetworkOfferingCmd extends BaseCmd {
return Account.ACCOUNT_ID_SYSTEM;
}
+ @Override
+ public Long getApiResourceId() {
+ return id;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.NetworkOffering;
+ }
+
@Override
public void execute() {
NetworkOffering result = _configService.updateNetworkOffering(this);
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdateNetworkServiceProviderCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdateNetworkServiceProviderCmd.java
index bb4f64e040..a448ed77df 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdateNetworkServiceProviderCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdateNetworkServiceProviderCmd.java
@@ -21,7 +21,7 @@ import java.util.List;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -112,8 +112,8 @@ public class UpdateNetworkServiceProviderCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.PhysicalNetworkServiceProvider;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.PhysicalNetworkServiceProvider;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdatePhysicalNetworkCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdatePhysicalNetworkCmd.java
index ed3fa97ce7..6f0cc3f601 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdatePhysicalNetworkCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/UpdatePhysicalNetworkCmd.java
@@ -21,7 +21,7 @@ import java.util.List;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.Parameter;
@@ -115,7 +115,7 @@ public class UpdatePhysicalNetworkCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.PhysicalNetwork;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.PhysicalNetwork;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java
index 1992ed8caa..b628ce44f1 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java
@@ -24,6 +24,7 @@ import java.util.Map;
import java.util.Set;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseCmd;
@@ -334,4 +335,9 @@ public class CreateDiskOfferingCmd extends BaseCmd {
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create disk offering");
}
}
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.DiskOffering;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/UpdateDiskOfferingCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/UpdateDiskOfferingCmd.java
index b0e2262aff..f05c74eef7 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/UpdateDiskOfferingCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/UpdateDiskOfferingCmd.java
@@ -21,6 +21,7 @@ import java.util.List;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseCmd;
@@ -279,6 +280,16 @@ public class UpdateDiskOfferingCmd extends BaseCmd {
return Account.ACCOUNT_ID_SYSTEM;
}
+ @Override
+ public Long getApiResourceId() {
+ return id;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.DiskOffering;
+ }
+
@Override
public void execute() {
DiskOffering result = _configService.updateDiskOffering(this);
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/UpdateServiceOfferingCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/UpdateServiceOfferingCmd.java
index 487cb534d5..42532932dc 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/UpdateServiceOfferingCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/offering/UpdateServiceOfferingCmd.java
@@ -21,6 +21,7 @@ import java.util.List;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseCmd;
@@ -189,6 +190,16 @@ public class UpdateServiceOfferingCmd extends BaseCmd {
return Account.ACCOUNT_ID_SYSTEM;
}
+ @Override
+ public Long getApiResourceId() {
+ return id;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.ServiceOffering;
+ }
+
@Override
public void execute() {
//Note
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/outofbandmanagement/IssueOutOfBandManagementPowerActionCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/outofbandmanagement/IssueOutOfBandManagementPowerActionCmd.java
index 49eab1f176..d61f62c1b0 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/outofbandmanagement/IssueOutOfBandManagementPowerActionCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/outofbandmanagement/IssueOutOfBandManagementPowerActionCmd.java
@@ -26,7 +26,7 @@ import com.cloud.host.Host;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.ApiArgValidator;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -118,7 +118,7 @@ public class IssueOutOfBandManagementPowerActionCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Host;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Host;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/pod/CreatePodCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/pod/CreatePodCmd.java
index d912b44132..9a060e0134 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/pod/CreatePodCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/pod/CreatePodCmd.java
@@ -16,6 +16,7 @@
// under the License.
package org.apache.cloudstack.api.command.admin.pod;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
@@ -106,11 +107,18 @@ public class CreatePodCmd extends BaseCmd {
return s_name;
}
+
+
@Override
public long getEntityOwnerId() {
return Account.ACCOUNT_ID_SYSTEM;
}
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return super.getApiResourceType();
+ }
+
@Override
public void execute() {
Pod result = _configService.createPod(getZoneId(), getPodName(), getStartIp(), getEndIp(), getGateway(), getNetmask(), getAllocationState());
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/pod/DeletePodCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/pod/DeletePodCmd.java
index c2edacba35..454bfd079b 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/pod/DeletePodCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/pod/DeletePodCmd.java
@@ -16,6 +16,7 @@
// under the License.
package org.apache.cloudstack.api.command.admin.pod;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
@@ -65,6 +66,16 @@ public class DeletePodCmd extends BaseCmd {
return Account.ACCOUNT_ID_SYSTEM;
}
+ @Override
+ public Long getApiResourceId() {
+ return getId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Pod;
+ }
+
@Override
public void execute() {
boolean result = _configService.deletePod(this);
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/pod/UpdatePodCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/pod/UpdatePodCmd.java
index c89694c56b..d49e9bd981 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/pod/UpdatePodCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/pod/UpdatePodCmd.java
@@ -16,6 +16,7 @@
// under the License.
package org.apache.cloudstack.api.command.admin.pod;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
@@ -107,6 +108,16 @@ public class UpdatePodCmd extends BaseCmd {
return Account.ACCOUNT_ID_SYSTEM;
}
+ @Override
+ public Long getApiResourceId() {
+ return getId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Pod;
+ }
+
@Override
public void execute() {
Pod result = _configService.editPod(this);
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/region/CreatePortableIpRangeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/region/CreatePortableIpRangeCmd.java
index 403eaf3e39..c28a29c6e9 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/region/CreatePortableIpRangeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/region/CreatePortableIpRangeCmd.java
@@ -20,7 +20,7 @@ package org.apache.cloudstack.api.command.admin.region;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCreateCmd;
@@ -148,7 +148,7 @@ public class CreatePortableIpRangeCmd extends BaseAsyncCreateCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.PortableIpAddress;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.PortableIpAddress;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/region/DeletePortableIpRangeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/region/DeletePortableIpRangeCmd.java
index 413818b824..6cc884645e 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/region/DeletePortableIpRangeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/region/DeletePortableIpRangeCmd.java
@@ -20,7 +20,7 @@ package org.apache.cloudstack.api.command.admin.region;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -89,7 +89,7 @@ public class DeletePortableIpRangeCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.PortableIpAddress;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.PortableIpAddress;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/StartRollingMaintenanceCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/StartRollingMaintenanceCmd.java
index b5a9128104..a3f9fe9df7 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/StartRollingMaintenanceCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/StartRollingMaintenanceCmd.java
@@ -17,17 +17,13 @@
package org.apache.cloudstack.api.command.admin.resource;
-import com.cloud.event.EventTypes;
-import com.cloud.exception.ConcurrentOperationException;
-import com.cloud.exception.InsufficientCapacityException;
-import com.cloud.exception.NetworkRuleConflictException;
-import com.cloud.exception.ResourceAllocationException;
-import com.cloud.exception.ResourceUnavailableException;
-import com.cloud.resource.RollingMaintenanceManager;
-import com.cloud.utils.Pair;
-import com.cloud.utils.Ternary;
+import java.util.List;
+
+import javax.inject.Inject;
+
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.BaseCmd;
@@ -41,8 +37,15 @@ import org.apache.cloudstack.api.response.ZoneResponse;
import org.apache.cloudstack.context.CallContext;
import org.apache.log4j.Logger;
-import javax.inject.Inject;
-import java.util.List;
+import com.cloud.event.EventTypes;
+import com.cloud.exception.ConcurrentOperationException;
+import com.cloud.exception.InsufficientCapacityException;
+import com.cloud.exception.NetworkRuleConflictException;
+import com.cloud.exception.ResourceAllocationException;
+import com.cloud.exception.ResourceUnavailableException;
+import com.cloud.resource.RollingMaintenanceManager;
+import com.cloud.utils.Pair;
+import com.cloud.utils.Ternary;
@APICommand(name = StartRollingMaintenanceCmd.APINAME, description = "Start rolling maintenance",
responseObject = RollingMaintenanceResponse.class,
@@ -175,4 +178,36 @@ public class StartRollingMaintenanceCmd extends BaseAsyncCmd {
Pair<RollingMaintenanceManager.ResourceType, List<Long>> pair = manager.getResourceTypeIdPair(this);
return "Starting rolling maintenance on entity: " + pair.first() + " with IDs: " + pair.second();
}
+
+ @Override
+ public Long getApiResourceId() {
+ String eventType = getEventType();
+ switch (eventType) {
+ case EventTypes.EVENT_ZONE_ROLLING_MAINTENANCE:
+ return getZoneIds().get(0);
+ case EventTypes.EVENT_POD_ROLLING_MAINTENANCE:
+ return getPodIds().get(0);
+ case EventTypes.EVENT_CLUSTER_ROLLING_MAINTENANCE:
+ return getClusterIds().get(0);
+ case EventTypes.EVENT_HOST_ROLLING_MAINTENANCE:
+ return getHostIds().get(0);
+ }
+ return null;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ String eventType = getEventType();
+ switch (eventType) {
+ case EventTypes.EVENT_ZONE_ROLLING_MAINTENANCE:
+ return ApiCommandResourceType.Zone;
+ case EventTypes.EVENT_POD_ROLLING_MAINTENANCE:
+ return ApiCommandResourceType.Pod;
+ case EventTypes.EVENT_CLUSTER_ROLLING_MAINTENANCE:
+ return ApiCommandResourceType.Cluster;
+ case EventTypes.EVENT_HOST_ROLLING_MAINTENANCE:
+ return ApiCommandResourceType.Host;
+ }
+ return null;
+ }
}
\ No newline at end of file
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ConfigureOvsElementCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ConfigureOvsElementCmd.java
index 7577f2eb88..d3b4896e53 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ConfigureOvsElementCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ConfigureOvsElementCmd.java
@@ -21,7 +21,7 @@ import java.util.List;
import javax.inject.Inject;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -106,12 +106,12 @@ public class ConfigureOvsElementCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.None;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.None;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return id;
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ConfigureVirtualRouterElementCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ConfigureVirtualRouterElementCmd.java
index 6dd05a48b7..575920cc32 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ConfigureVirtualRouterElementCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ConfigureVirtualRouterElementCmd.java
@@ -23,7 +23,7 @@ import javax.inject.Inject;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -112,12 +112,12 @@ public class ConfigureVirtualRouterElementCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.None;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.None;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return id;
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/DestroyRouterCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/DestroyRouterCmd.java
index c460c6665e..b6b370a6ba 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/DestroyRouterCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/DestroyRouterCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.admin.router;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -86,12 +86,12 @@ public class DestroyRouterCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.DomainRouter;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.DomainRouter;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ListRoutersCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ListRoutersCmd.java
index 3c9b684c0c..e5c689dcd8 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ListRoutersCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/ListRoutersCmd.java
@@ -20,7 +20,7 @@ import org.apache.commons.lang.BooleanUtils;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseListProjectAndAccountResourcesCmd;
import org.apache.cloudstack.api.Parameter;
@@ -160,8 +160,8 @@ public class ListRoutersCmd extends BaseListProjectAndAccountResourcesCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.DomainRouter;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.DomainRouter;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/RebootRouterCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/RebootRouterCmd.java
index 764d304e25..bc0e6e8dee 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/RebootRouterCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/RebootRouterCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.admin.router;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -90,12 +90,12 @@ public class RebootRouterCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.DomainRouter;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.DomainRouter;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/StartRouterCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/StartRouterCmd.java
index 6d36a3c801..25235cb043 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/StartRouterCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/StartRouterCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.admin.router;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -93,12 +93,12 @@ public class StartRouterCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.DomainRouter;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.DomainRouter;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/StopRouterCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/StopRouterCmd.java
index 2474171a45..dc970ce61a 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/StopRouterCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/StopRouterCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.admin.router;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -91,12 +91,12 @@ public class StopRouterCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.DomainRouter;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.DomainRouter;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/UpgradeRouterTemplateCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/UpgradeRouterTemplateCmd.java
index fedc314be7..2004910c9f 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/router/UpgradeRouterTemplateCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/router/UpgradeRouterTemplateCmd.java
@@ -20,7 +20,7 @@ import java.util.List;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseResponse;
@@ -117,8 +117,8 @@ public class UpgradeRouterTemplateCmd extends org.apache.cloudstack.api.BaseCmd
return Account.ACCOUNT_ID_SYSTEM; // no account info given, parent this command to SYSTEM so ERROR events are tracked
}
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.DomainRouter;
+ public ApiCommandResourceType getInstanceType() {
+ return ApiCommandResourceType.DomainRouter;
}
public Long getInstanceId() {
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/CancelPrimaryStorageMaintenanceCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/CancelPrimaryStorageMaintenanceCmd.java
index 91348ecf6b..a694aba30f 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/CancelPrimaryStorageMaintenanceCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/CancelPrimaryStorageMaintenanceCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.admin.storage;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -69,12 +69,12 @@ public class CancelPrimaryStorageMaintenanceCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.StoragePool;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.StoragePool;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/FindStoragePoolsForMigrationCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/FindStoragePoolsForMigrationCmd.java
index 73c596c9e5..8133806cbc 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/FindStoragePoolsForMigrationCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/FindStoragePoolsForMigrationCmd.java
@@ -22,7 +22,7 @@ import java.util.Comparator;
import java.util.List;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseListCmd;
import org.apache.cloudstack.api.Parameter;
@@ -67,8 +67,8 @@ public class FindStoragePoolsForMigrationCmd extends BaseListCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.StoragePool;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.StoragePool;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListStoragePoolsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListStoragePoolsCmd.java
index 2450ac7cd6..b2455c3037 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListStoragePoolsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListStoragePoolsCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.admin.storage;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseListCmd;
import org.apache.cloudstack.api.Parameter;
@@ -112,8 +112,8 @@ public class ListStoragePoolsCmd extends BaseListCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.StoragePool;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.StoragePool;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListStorageTagsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListStorageTagsCmd.java
index 9e0aeccee5..d740d04cff 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListStorageTagsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListStorageTagsCmd.java
@@ -20,7 +20,7 @@ package org.apache.cloudstack.api.command.admin.storage;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.BaseListCmd;
import org.apache.cloudstack.api.response.ListResponse;
import org.apache.cloudstack.api.response.StorageTagResponse;
@@ -49,8 +49,8 @@ public class ListStorageTagsCmd extends BaseListCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.StoragePool;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.StoragePool;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/MigrateSecondaryStorageDataCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/MigrateSecondaryStorageDataCmd.java
index 9abbecfcd8..e8a287552b 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/MigrateSecondaryStorageDataCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/MigrateSecondaryStorageDataCmd.java
@@ -21,6 +21,7 @@ import java.util.List;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.Parameter;
@@ -112,4 +113,14 @@ public class MigrateSecondaryStorageDataCmd extends BaseAsyncCmd {
public long getEntityOwnerId() {
return CallContext.current().getCallingAccountId();
}
+
+ @Override
+ public Long getApiResourceId() {
+ return getId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.ImageStore;
+ }
}
\ No newline at end of file
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/PreparePrimaryStorageForMaintenanceCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/PreparePrimaryStorageForMaintenanceCmd.java
index cf5fdf66c6..ddabefb14c 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/PreparePrimaryStorageForMaintenanceCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/PreparePrimaryStorageForMaintenanceCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.admin.storage;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -69,12 +69,12 @@ public class PreparePrimaryStorageForMaintenanceCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.StoragePool;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.StoragePool;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/UpdateStoragePoolCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/UpdateStoragePoolCmd.java
index ad91c29dde..0128a218a7 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/UpdateStoragePoolCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/storage/UpdateStoragePoolCmd.java
@@ -18,6 +18,7 @@ package org.apache.cloudstack.api.command.admin.storage;
import java.util.List;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
@@ -103,6 +104,16 @@ public class UpdateStoragePoolCmd extends BaseCmd {
return Account.ACCOUNT_ID_SYSTEM;
}
+ @Override
+ public Long getApiResourceId() {
+ return getId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.StoragePool;
+ }
+
@Override
public void execute() {
StoragePool result = _storageService.updateStoragePool(this);
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/DestroySystemVmCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/DestroySystemVmCmd.java
index f68f9ddb49..0a477a8940 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/DestroySystemVmCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/DestroySystemVmCmd.java
@@ -21,7 +21,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -88,12 +88,12 @@ public class DestroySystemVmCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.SystemVm;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.SystemVm;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/ListSystemVMsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/ListSystemVMsCmd.java
index 2b2faf5011..aee2084c2e 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/ListSystemVMsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/ListSystemVMsCmd.java
@@ -22,7 +22,7 @@ import java.util.List;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseListCmd;
import org.apache.cloudstack.api.Parameter;
@@ -123,8 +123,8 @@ public class ListSystemVMsCmd extends BaseListCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.SystemVm;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.SystemVm;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/RebootSystemVmCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/RebootSystemVmCmd.java
index 352fd3b330..6c440ff2ba 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/RebootSystemVmCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/RebootSystemVmCmd.java
@@ -21,7 +21,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -98,12 +98,12 @@ public class RebootSystemVmCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.SystemVm;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.SystemVm;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/StartSystemVMCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/StartSystemVMCmd.java
index a2b70a6630..a3dd5a032d 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/StartSystemVMCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/StartSystemVMCmd.java
@@ -21,7 +21,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -99,12 +99,12 @@ public class StartSystemVMCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.SystemVm;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.SystemVm;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/StopSystemVmCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/StopSystemVmCmd.java
index 9237004b72..4405667104 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/StopSystemVmCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/systemvm/StopSystemVmCmd.java
@@ -21,7 +21,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -101,12 +101,12 @@ public class StopSystemVmCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.SystemVm;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.SystemVm;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/AddTrafficTypeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/AddTrafficTypeCmd.java
index 9e4254c49a..1111434c66 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/AddTrafficTypeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/AddTrafficTypeCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.admin.usage;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCreateCmd;
@@ -191,7 +191,7 @@ public class AddTrafficTypeCmd extends BaseAsyncCreateCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.TrafficType;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.TrafficType;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/DeleteTrafficTypeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/DeleteTrafficTypeCmd.java
index 46383cca72..0dda89b2a5 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/DeleteTrafficTypeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/DeleteTrafficTypeCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.admin.usage;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -88,8 +88,8 @@ public class DeleteTrafficTypeCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.TrafficType;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.TrafficType;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/UpdateTrafficTypeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/UpdateTrafficTypeCmd.java
index 6d0824cca7..3c7548583c 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/UpdateTrafficTypeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/UpdateTrafficTypeCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.admin.usage;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -135,7 +135,7 @@ public class UpdateTrafficTypeCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.TrafficType;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.TrafficType;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/CreateUserCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/CreateUserCmd.java
index 884c982dc0..63d532bd27 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/CreateUserCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/CreateUserCmd.java
@@ -17,6 +17,7 @@
package org.apache.cloudstack.api.command.admin.user;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseCmd;
@@ -172,4 +173,9 @@ public class CreateUserCmd extends BaseCmd {
throw new ServerApiException(ApiErrorCode.PARAM_ERROR, "Empty passwords are not allowed");
}
}
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.User;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/DeleteUserCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/DeleteUserCmd.java
index 08ba521ed6..e8ac7fd372 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/DeleteUserCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/DeleteUserCmd.java
@@ -18,6 +18,7 @@ package org.apache.cloudstack.api.command.admin.user;
import javax.inject.Inject;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
@@ -77,6 +78,16 @@ public class DeleteUserCmd extends BaseCmd {
return Account.ACCOUNT_ID_SYSTEM; // no account info given, parent this command to SYSTEM so ERROR events are tracked
}
+ @Override
+ public Long getApiResourceId() {
+ return id;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.User;
+ }
+
@Override
public void execute() {
CallContext.current().setEventDetails("UserId: " + getId());
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/DisableUserCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/DisableUserCmd.java
index c6e09ef0f9..89c7af4cec 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/DisableUserCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/DisableUserCmd.java
@@ -21,7 +21,7 @@ import javax.inject.Inject;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -104,7 +104,7 @@ public class DisableUserCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.User;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.User;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/MoveUserCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/MoveUserCmd.java
index e34def3b5d..1d4096f37e 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/MoveUserCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/MoveUserCmd.java
@@ -16,11 +16,11 @@
// under the License.
package org.apache.cloudstack.api.command.admin.user;
-import com.cloud.user.Account;
-import com.cloud.user.User;
-import com.google.common.base.Preconditions;
+import javax.inject.Inject;
+
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseCmd;
@@ -34,7 +34,9 @@ import org.apache.cloudstack.region.RegionService;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.log4j.Logger;
-import javax.inject.Inject;
+import com.cloud.user.Account;
+import com.cloud.user.User;
+import com.google.common.base.Preconditions;
@APICommand(name = "moveUser",
description = "Moves a user to another account",
@@ -107,6 +109,16 @@ public class MoveUserCmd extends BaseCmd {
return Account.ACCOUNT_ID_SYSTEM; // no account info given, parent this command to SYSTEM so ERROR events are tracked
}
+ @Override
+ public Long getApiResourceId() {
+ return id;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.User;
+ }
+
@Override
public void execute() {
Preconditions.checkNotNull(getId(),"I have to have an user to move!");
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/RegisterCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/RegisterCmd.java
index 2732bb9058..f0d92322f3 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/RegisterCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/RegisterCmd.java
@@ -16,6 +16,7 @@
// under the License.
package org.apache.cloudstack.api.command.admin.user;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
@@ -75,6 +76,16 @@ public class RegisterCmd extends BaseCmd {
return Account.ACCOUNT_ID_SYSTEM; // no account info given, parent this command to SYSTEM so ERROR events are tracked
}
+ @Override
+ public Long getApiResourceId() {
+ return id;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.User;
+ }
+
@Override
public void execute() {
String[] keys = _accountService.createApiKeyAndSecretKey(this);
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/UpdateUserCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/UpdateUserCmd.java
index 24624e2c27..5035b32d14 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/UpdateUserCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/UpdateUserCmd.java
@@ -19,6 +19,7 @@ package org.apache.cloudstack.api.command.admin.user;
import javax.inject.Inject;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseCmd;
@@ -174,4 +175,14 @@ public class UpdateUserCmd extends BaseCmd {
public void setEmail(String email) {
this.email = email;
}
+
+ @Override
+ public Long getApiResourceId() {
+ return id;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.User;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/AssignVMCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/AssignVMCmd.java
index 7b577963f1..290349070d 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/AssignVMCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/AssignVMCmd.java
@@ -18,6 +18,7 @@ package org.apache.cloudstack.api.command.admin.vm;
import java.util.List;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
@@ -160,4 +161,13 @@ public class AssignVMCmd extends BaseCmd {
return Account.ACCOUNT_ID_SYSTEM; // no account info given, parent this command to SYSTEM so ERROR events are tracked
}
+ @Override
+ public Long getApiResourceId() {
+ return getVmId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VirtualMachine;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ExpungeVMCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ExpungeVMCmd.java
index ea6cb00efa..cd9b89b6ff 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ExpungeVMCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ExpungeVMCmd.java
@@ -21,7 +21,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -93,12 +93,12 @@ public class ExpungeVMCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.VirtualMachine;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VirtualMachine;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/MigrateVMCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/MigrateVMCmd.java
index 2c68d86f44..2962dd4a68 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/MigrateVMCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/MigrateVMCmd.java
@@ -16,6 +16,7 @@
// under the License.
package org.apache.cloudstack.api.command.admin.vm;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
@@ -214,4 +215,14 @@ public class MigrateVMCmd extends BaseAsyncCmd {
}
return null;
}
+
+ @Override
+ public Long getApiResourceId() {
+ return virtualMachineId;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VirtualMachine;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/MigrateVirtualMachineWithVolumeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/MigrateVirtualMachineWithVolumeCmd.java
index 195e1316fd..db513ff4dc 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/MigrateVirtualMachineWithVolumeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/MigrateVirtualMachineWithVolumeCmd.java
@@ -22,6 +22,7 @@ import java.util.Iterator;
import java.util.Map;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -138,6 +139,16 @@ public class MigrateVirtualMachineWithVolumeCmd extends BaseAsyncCmd {
return "Attempting to migrate VM Id: " + this._uuidMgr.getUuid(VirtualMachine.class, getVirtualMachineId()) + " to host Id: " + this._uuidMgr.getUuid(Host.class, getHostId());
}
+ @Override
+ public Long getApiResourceId() {
+ return virtualMachineId;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VirtualMachine;
+ }
+
@Override
public void execute() {
if (hostId == null && MapUtils.isEmpty(migrateVolumeTo)) {
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/RecoverVMCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/RecoverVMCmd.java
index 1a123ecfcd..50062acfab 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/RecoverVMCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/RecoverVMCmd.java
@@ -16,6 +16,7 @@
// under the License.
package org.apache.cloudstack.api.command.admin.vm;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
@@ -76,6 +77,16 @@ public class RecoverVMCmd extends BaseCmd {
return Account.ACCOUNT_ID_SYSTEM; // no account info given, parent this command to SYSTEM so ERROR events are tracked
}
+ @Override
+ public Long getApiResourceId() {
+ return getId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VirtualMachine;
+ }
+
@Override
public void execute() throws ResourceAllocationException {
UserVm result = _userVmService.recoverVirtualMachine(this);
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/UnmanageVMInstanceCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/UnmanageVMInstanceCmd.java
index f49577ebd5..db729b7f8d 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/UnmanageVMInstanceCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vm/UnmanageVMInstanceCmd.java
@@ -30,7 +30,7 @@ import com.cloud.uservm.UserVm;
import com.cloud.vm.VirtualMachine;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -124,12 +124,12 @@ public class UnmanageVMInstanceCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.VirtualMachine;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VirtualMachine;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return vmId;
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/DeletePrivateGatewayCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/DeletePrivateGatewayCmd.java
index 1126779f45..063faf96a9 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/DeletePrivateGatewayCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/DeletePrivateGatewayCmd.java
@@ -20,7 +20,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -109,8 +109,8 @@ public class DeletePrivateGatewayCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.PrivateGateway;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.PrivateGateway;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/DeleteVPCOfferingCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/DeleteVPCOfferingCmd.java
index 0959f5f8c0..a5e1b7c90a 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/DeleteVPCOfferingCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/DeleteVPCOfferingCmd.java
@@ -16,6 +16,7 @@
// under the License.
package org.apache.cloudstack.api.command.admin.vpc;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
@@ -86,4 +87,13 @@ public class DeleteVPCOfferingCmd extends BaseAsyncCmd {
return "Deleting VPC offering id=" + getId();
}
+ @Override
+ public Long getApiResourceId() {
+ return getId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VpcOffering;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/UpdateVPCOfferingCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/UpdateVPCOfferingCmd.java
index 23279e652c..0d1a57a661 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/UpdateVPCOfferingCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/UpdateVPCOfferingCmd.java
@@ -20,6 +20,7 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -191,4 +192,14 @@ public class UpdateVPCOfferingCmd extends BaseAsyncCmd {
public String getEventDescription() {
return "Updating VPC offering id=" + getId();
}
+
+ @Override
+ public Long getApiResourceId() {
+ return id;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VpcOffering;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/zone/MarkDefaultZoneForAccountCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/zone/MarkDefaultZoneForAccountCmd.java
index 28a6d6ccc1..9dd0337a83 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/zone/MarkDefaultZoneForAccountCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/zone/MarkDefaultZoneForAccountCmd.java
@@ -20,7 +20,7 @@ package org.apache.cloudstack.api.command.admin.zone;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -107,8 +107,14 @@ public class MarkDefaultZoneForAccountCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Account;
+ public Long getApiResourceId() {
+ Account account = _accountService.getActiveAccountByName(accountName, domainId);
+ return account != null ? account.getId() : null;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Account;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/account/AddAccountToProjectCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/account/AddAccountToProjectCmd.java
index 255cdeb293..1ccb18ffaa 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/account/AddAccountToProjectCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/account/AddAccountToProjectCmd.java
@@ -19,6 +19,7 @@ package org.apache.cloudstack.api.command.user.account;
import java.util.List;
import org.apache.cloudstack.api.ApiArgValidator;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.BaseCmd;
import org.apache.cloudstack.api.response.ProjectRoleResponse;
import org.apache.commons.lang3.EnumUtils;
@@ -159,4 +160,14 @@ public class AddAccountToProjectCmd extends BaseAsyncCmd {
return "Sending invitation to email " + email + " to join project: " + getProjectId();
}
}
+
+ @Override
+ public Long getApiResourceId() {
+ return projectId;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Project;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/account/AddUserToProjectCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/account/AddUserToProjectCmd.java
index 5ebb3bebd7..2418ceb23e 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/account/AddUserToProjectCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/account/AddUserToProjectCmd.java
@@ -20,6 +20,7 @@ package org.apache.cloudstack.api.command.user.account;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.ApiArgValidator;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -31,11 +32,11 @@ import org.apache.cloudstack.api.response.ProjectRoleResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
import org.apache.cloudstack.context.CallContext;
import org.apache.commons.lang3.EnumUtils;
+import org.apache.commons.lang3.StringUtils;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.projects.ProjectAccount;
-import org.apache.commons.lang3.StringUtils;
@APICommand(name = AddUserToProjectCmd.APINAME, description = "Adds user to a project", responseObject = SuccessResponse.class, since = "4.14",
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, authorized = {RoleType.Admin, RoleType.DomainAdmin, RoleType.ResourceAdmin, RoleType.User})
@@ -147,4 +148,14 @@ public class AddUserToProjectCmd extends BaseAsyncCmd {
public long getEntityOwnerId() {
return CallContext.current().getCallingAccountId();
}
+
+ @Override
+ public Long getApiResourceId() {
+ return projectId;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Project;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/account/DeleteAccountFromProjectCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/account/DeleteAccountFromProjectCmd.java
index 84b06c0a25..6804f091e7 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/account/DeleteAccountFromProjectCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/account/DeleteAccountFromProjectCmd.java
@@ -18,6 +18,7 @@ package org.apache.cloudstack.api.command.user.account;
import java.util.List;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
@@ -112,4 +113,14 @@ public class DeleteAccountFromProjectCmd extends BaseAsyncCmd {
public String getEventDescription() {
return "Removing account " + accountName + " from project: " + projectId;
}
+
+ @Override
+ public Long getApiResourceId() {
+ return projectId;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Project;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/account/DeleteUserFromProjectCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/account/DeleteUserFromProjectCmd.java
index 83b01eac4e..7cd9012504 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/account/DeleteUserFromProjectCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/account/DeleteUserFromProjectCmd.java
@@ -21,6 +21,7 @@ import java.util.List;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -103,6 +104,16 @@ public class DeleteUserFromProjectCmd extends BaseAsyncCmd {
return _projectService.getProjectOwners(projectId);
}
+ @Override
+ public Long getApiResourceId() {
+ return projectId;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Project;
+ }
+
@Override
public void execute() {
CallContext.current().setEventDetails("Project ID: " + projectId + "; user ID: " + userId);
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/account/ListAccountsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/account/ListAccountsCmd.java
index 06880f1b5c..66a4d91172 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/account/ListAccountsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/account/ListAccountsCmd.java
@@ -20,12 +20,8 @@ import java.util.ArrayList;
import java.util.EnumSet;
import java.util.List;
-import com.cloud.server.ResourceIcon;
-import com.cloud.server.ResourceTag;
-import org.apache.cloudstack.api.response.ResourceIconResponse;
-import org.apache.log4j.Logger;
-
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiConstants.DomainDetails;
import org.apache.cloudstack.api.BaseListDomainResourcesCmd;
@@ -34,8 +30,12 @@ import org.apache.cloudstack.api.ResponseObject.ResponseView;
import org.apache.cloudstack.api.command.user.UserCmd;
import org.apache.cloudstack.api.response.AccountResponse;
import org.apache.cloudstack.api.response.ListResponse;
+import org.apache.cloudstack.api.response.ResourceIconResponse;
+import org.apache.log4j.Logger;
import com.cloud.exception.InvalidParameterValueException;
+import com.cloud.server.ResourceIcon;
+import com.cloud.server.ResourceTag;
import com.cloud.user.Account;
@APICommand(name = "listAccounts", description = "Lists accounts and provides detailed account information for listed accounts", responseObject = AccountResponse.class, responseView = ResponseView.Restricted, entityType = {Account.class},
@@ -151,4 +151,9 @@ public class ListAccountsCmd extends BaseListDomainResourcesCmd implements UserC
accountResponse.setResourceIconResponse(iconResponse);
}
}
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Account;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/account/ListProjectAccountsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/account/ListProjectAccountsCmd.java
index bc10e4b6e4..bcfedd2262 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/account/ListProjectAccountsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/account/ListProjectAccountsCmd.java
@@ -17,6 +17,7 @@
package org.apache.cloudstack.api.command.user.account;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseListCmd;
import org.apache.cloudstack.api.Parameter;
@@ -100,4 +101,9 @@ public class ListProjectAccountsCmd extends BaseListCmd {
this.setResponseObject(response);
}
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Account;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/address/AssociateIPAddrCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/address/AssociateIPAddrCmd.java
index 5beba26d0f..75b83b40f3 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/address/AssociateIPAddrCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/address/AssociateIPAddrCmd.java
@@ -22,7 +22,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -366,8 +366,8 @@ public class AssociateIPAddrCmd extends BaseAsyncCreateCmd implements UserCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.IpAddress;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.IpAddress;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/address/DisassociateIPAddrCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/address/DisassociateIPAddrCmd.java
index c2e173c0fa..17b17632ca 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/address/DisassociateIPAddrCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/address/DisassociateIPAddrCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.user.address;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -141,12 +141,12 @@ public class DisassociateIPAddrCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.IpAddress;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.IpAddress;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getIpAddressId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/address/ListPublicIpAddressesCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/address/ListPublicIpAddressesCmd.java
index a9b3bf89af..e456074145 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/address/ListPublicIpAddressesCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/address/ListPublicIpAddressesCmd.java
@@ -23,7 +23,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseListTaggedResourcesCmd;
import org.apache.cloudstack.api.Parameter;
@@ -206,7 +206,7 @@ public class ListPublicIpAddressesCmd extends BaseListTaggedResourcesCmd impleme
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.IpAddress;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.IpAddress;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/address/ReserveIPAddrCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/address/ReserveIPAddrCmd.java
index 7280e78509..030a16b7a9 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/address/ReserveIPAddrCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/address/ReserveIPAddrCmd.java
@@ -16,6 +16,7 @@
// under the License.
package org.apache.cloudstack.api.command.user.address;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.RoleType;
@@ -161,4 +162,13 @@ public class ReserveIPAddrCmd extends BaseCmd implements UserCmd {
}
}
+ @Override
+ public Long getApiResourceId() {
+ return getIpAddressId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.IpAddress;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/address/UpdateIPAddrCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/address/UpdateIPAddrCmd.java
index 6d20283984..9ed66b0935 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/address/UpdateIPAddrCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/address/UpdateIPAddrCmd.java
@@ -16,6 +16,7 @@
// under the License.
package org.apache.cloudstack.api.command.user.address;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.RoleType;
@@ -133,4 +134,14 @@ public class UpdateIPAddrCmd extends BaseAsyncCustomIdCmd {
setResponseObject(ipResponse);
}
}
+
+ @Override
+ public Long getApiResourceId() {
+ return getId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.IpAddress;
+ }
}
\ No newline at end of file
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/CreateAffinityGroupCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/CreateAffinityGroupCmd.java
index 8cc3d69bb6..052b98719d 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/CreateAffinityGroupCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/CreateAffinityGroupCmd.java
@@ -20,7 +20,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.affinity.AffinityGroup;
import org.apache.cloudstack.affinity.AffinityGroupResponse;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCreateCmd;
@@ -169,8 +169,8 @@ public class CreateAffinityGroupCmd extends BaseAsyncCreateCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.AffinityGroup;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.AffinityGroup;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/DeleteAffinityGroupCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/DeleteAffinityGroupCmd.java
index e8884b4f65..e96ba43347 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/DeleteAffinityGroupCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/DeleteAffinityGroupCmd.java
@@ -24,7 +24,7 @@ import org.apache.cloudstack.affinity.AffinityGroup;
import org.apache.cloudstack.affinity.AffinityGroupResponse;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -135,7 +135,12 @@ public class DeleteAffinityGroupCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.AffinityGroup;
+ public Long getApiResourceId() {
+ return getId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.AffinityGroup;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/ListAffinityGroupsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/ListAffinityGroupsCmd.java
index fa7935b0b6..de70361c33 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/ListAffinityGroupsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/ListAffinityGroupsCmd.java
@@ -21,7 +21,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.affinity.AffinityGroup;
import org.apache.cloudstack.affinity.AffinityGroupResponse;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseListProjectAndAccountResourcesCmd;
import org.apache.cloudstack.api.Parameter;
@@ -90,7 +90,7 @@ public class ListAffinityGroupsCmd extends BaseListProjectAndAccountResourcesCmd
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.AffinityGroup;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.AffinityGroup;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/UpdateVMAffinityGroupCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/UpdateVMAffinityGroupCmd.java
index c798b1820d..c70e4fbda6 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/UpdateVMAffinityGroupCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/affinitygroup/UpdateVMAffinityGroupCmd.java
@@ -26,7 +26,7 @@ import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.affinity.AffinityGroupResponse;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiConstants.VMDetails;
import org.apache.cloudstack.api.ApiErrorCode;
@@ -169,8 +169,8 @@ public class UpdateVMAffinityGroupCmd extends BaseAsyncCmd implements UserCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.AffinityGroup;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.AffinityGroup;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateAutoScalePolicyCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateAutoScalePolicyCmd.java
index 6a2b491f2f..7ab9f276b8 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateAutoScalePolicyCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateAutoScalePolicyCmd.java
@@ -21,7 +21,7 @@ import java.util.List;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCreateCmd;
@@ -156,8 +156,8 @@ public class CreateAutoScalePolicyCmd extends BaseAsyncCreateCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.AutoScalePolicy;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.AutoScalePolicy;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateAutoScaleVmGroupCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateAutoScaleVmGroupCmd.java
index 0308c1710c..45881f2bc7 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateAutoScaleVmGroupCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateAutoScaleVmGroupCmd.java
@@ -22,7 +22,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCreateCmd;
@@ -180,8 +180,8 @@ public class CreateAutoScaleVmGroupCmd extends BaseAsyncCreateCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.AutoScaleVmGroup;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.AutoScaleVmGroup;
}
@Deprecated
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateAutoScaleVmProfileCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateAutoScaleVmProfileCmd.java
index 447085e79b..d62b936767 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateAutoScaleVmProfileCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateAutoScaleVmProfileCmd.java
@@ -23,7 +23,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCreateCmd;
@@ -245,8 +245,8 @@ public class CreateAutoScaleVmProfileCmd extends BaseAsyncCreateCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.AutoScaleVmProfile;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.AutoScaleVmProfile;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateConditionCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateConditionCmd.java
index 847866ef3a..655fcfceb3 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateConditionCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/CreateConditionCmd.java
@@ -20,7 +20,7 @@ package org.apache.cloudstack.api.command.user.autoscale;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCreateCmd;
@@ -122,8 +122,8 @@ public class CreateConditionCmd extends BaseAsyncCreateCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Condition;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Condition;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScalePolicyCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScalePolicyCmd.java
index c0a3a00f7d..a33a620090 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScalePolicyCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScalePolicyCmd.java
@@ -21,7 +21,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -105,7 +105,7 @@ public class DeleteAutoScalePolicyCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.AutoScalePolicy;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.AutoScalePolicy;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScaleVmGroupCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScaleVmGroupCmd.java
index a9d2f4e232..0cc9571a68 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScaleVmGroupCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScaleVmGroupCmd.java
@@ -21,7 +21,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -105,7 +105,7 @@ public class DeleteAutoScaleVmGroupCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.AutoScaleVmGroup;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.AutoScaleVmGroup;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScaleVmProfileCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScaleVmProfileCmd.java
index 779315a96d..5f9fd8a5f7 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScaleVmProfileCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteAutoScaleVmProfileCmd.java
@@ -21,7 +21,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -104,7 +104,7 @@ public class DeleteAutoScaleVmProfileCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.AutoScaleVmProfile;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.AutoScaleVmProfile;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteConditionCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteConditionCmd.java
index 24f4cc6878..8c3e56d43b 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteConditionCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DeleteConditionCmd.java
@@ -22,7 +22,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -81,8 +81,8 @@ public class DeleteConditionCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Condition;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Condition;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DisableAutoScaleVmGroupCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DisableAutoScaleVmGroupCmd.java
index 8eb1809f88..b0daf2ec66 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DisableAutoScaleVmGroupCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/DisableAutoScaleVmGroupCmd.java
@@ -22,7 +22,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -102,8 +102,8 @@ public class DisableAutoScaleVmGroupCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.AutoScaleVmGroup;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.AutoScaleVmGroup;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/EnableAutoScaleVmGroupCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/EnableAutoScaleVmGroupCmd.java
index 59c9f7a9aa..b6f2a82ac4 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/EnableAutoScaleVmGroupCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/EnableAutoScaleVmGroupCmd.java
@@ -22,7 +22,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -102,8 +102,8 @@ public class EnableAutoScaleVmGroupCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.AutoScaleVmGroup;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.AutoScaleVmGroup;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScalePolicyCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScalePolicyCmd.java
index 24858f4656..b1089a5ee0 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScalePolicyCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScalePolicyCmd.java
@@ -24,7 +24,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -132,7 +132,7 @@ public class UpdateAutoScalePolicyCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.AutoScalePolicy;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.AutoScalePolicy;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScaleVmGroupCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScaleVmGroupCmd.java
index 76fa3d75d1..c086c3290e 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScaleVmGroupCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScaleVmGroupCmd.java
@@ -25,7 +25,7 @@ import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCustomIdCmd;
@@ -163,8 +163,8 @@ public class UpdateAutoScaleVmGroupCmd extends BaseAsyncCustomIdCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.AutoScaleVmGroup;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.AutoScaleVmGroup;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScaleVmProfileCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScaleVmProfileCmd.java
index deebe2ecc9..2f4445a20d 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScaleVmProfileCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/autoscale/UpdateAutoScaleVmProfileCmd.java
@@ -25,7 +25,7 @@ import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCustomIdCmd;
@@ -155,8 +155,8 @@ public class UpdateAutoScaleVmProfileCmd extends BaseAsyncCustomIdCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.AutoScaleVmProfile;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.AutoScaleVmProfile;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/backup/CreateBackupCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/backup/CreateBackupCmd.java
index db7a2763ef..189ebe2f69 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/backup/CreateBackupCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/backup/CreateBackupCmd.java
@@ -21,7 +21,7 @@ import javax.inject.Inject;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCreateCmd;
@@ -96,8 +96,8 @@ public class CreateBackupCmd extends BaseAsyncCreateCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Backup;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Backup;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/event/ListEventsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/event/ListEventsCmd.java
index b98c30897a..66aff30e52 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/event/ListEventsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/event/ListEventsCmd.java
@@ -18,14 +18,13 @@ package org.apache.cloudstack.api.command.user.event;
import java.util.Date;
-import org.apache.log4j.Logger;
-
import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseListProjectAndAccountResourcesCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.response.EventResponse;
import org.apache.cloudstack.api.response.ListResponse;
+import org.apache.log4j.Logger;
import com.cloud.event.Event;
@@ -68,6 +67,12 @@ public class ListEventsCmd extends BaseListProjectAndAccountResourcesCmd {
@Parameter(name = ApiConstants.START_ID, type = CommandType.UUID, entityType = EventResponse.class, description = "the parent/start ID of the event, when provided this will list all the events with the start/parent ID including the parent event")
private Long startId;
+ @Parameter(name = ApiConstants.RESOURCE_ID, type = CommandType.STRING, description = "the ID of the resource associated with the event", since="4.17.0")
+ private String resourceId;
+
+ @Parameter(name = ApiConstants.RESOURCE_TYPE, type = CommandType.STRING, description = "the type of the resource associated with the event", since="4.17.0")
+ private String resourceType;
+
/////////////////////////////////////////////////////
/////////////////// Accessors ///////////////////////
/////////////////////////////////////////////////////
@@ -104,6 +109,14 @@ public class ListEventsCmd extends BaseListProjectAndAccountResourcesCmd {
return startId;
}
+ public String getResourceId() {
+ return resourceId;
+ }
+
+ public String getResourceType() {
+ return resourceType;
+ }
+
/////////////////////////////////////////////////////
/////////////// API Implementation///////////////////
/////////////////////////////////////////////////////
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/firewall/CreateEgressFirewallRuleCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/firewall/CreateEgressFirewallRuleCmd.java
index dab7d10ddd..65539346a1 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/firewall/CreateEgressFirewallRuleCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/firewall/CreateEgressFirewallRuleCmd.java
@@ -25,7 +25,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -366,8 +366,8 @@ public class CreateEgressFirewallRuleCmd extends BaseAsyncCreateCmd implements F
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.FirewallRule;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.FirewallRule;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/firewall/CreateFirewallRuleCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/firewall/CreateFirewallRuleCmd.java
index ca66ee762b..878561d5e3 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/firewall/CreateFirewallRuleCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/firewall/CreateFirewallRuleCmd.java
@@ -23,7 +23,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -330,8 +330,8 @@ public class CreateFirewallRuleCmd extends BaseAsyncCreateCmd implements Firewal
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.FirewallRule;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.FirewallRule;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/firewall/CreatePortForwardingRuleCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/firewall/CreatePortForwardingRuleCmd.java
index 6a4e802e93..a90367c8ac 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/firewall/CreatePortForwardingRuleCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/firewall/CreatePortForwardingRuleCmd.java
@@ -24,7 +24,7 @@ import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -419,8 +419,8 @@ public class CreatePortForwardingRuleCmd extends BaseAsyncCreateCmd implements P
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.FirewallRule;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.FirewallRule;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/firewall/DeleteEgressFirewallRuleCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/firewall/DeleteEgressFirewallRuleCmd.java
index 59a0519df4..bcb2589013 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/firewall/DeleteEgressFirewallRuleCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/firewall/DeleteEgressFirewallRuleCmd.java
@@ -22,7 +22,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -122,7 +122,7 @@ public class DeleteEgressFirewallRuleCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.FirewallRule;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.FirewallRule;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/firewall/DeleteFirewallRuleCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/firewall/DeleteFirewallRuleCmd.java
index ba8b18eacf..7bd5836f99 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/firewall/DeleteFirewallRuleCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/firewall/DeleteFirewallRuleCmd.java
@@ -21,7 +21,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -120,7 +120,7 @@ public class DeleteFirewallRuleCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.FirewallRule;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.FirewallRule;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/firewall/DeletePortForwardingRuleCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/firewall/DeletePortForwardingRuleCmd.java
index 1c45280a83..505777b64f 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/firewall/DeletePortForwardingRuleCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/firewall/DeletePortForwardingRuleCmd.java
@@ -21,7 +21,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -124,7 +124,7 @@ public class DeletePortForwardingRuleCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.FirewallRule;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.FirewallRule;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/iso/AttachIsoCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/iso/AttachIsoCmd.java
index 74a98beef9..cdc72de4a1 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/iso/AttachIsoCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/iso/AttachIsoCmd.java
@@ -16,6 +16,7 @@
// under the License.
package org.apache.cloudstack.api.command.user.iso;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
@@ -103,6 +104,16 @@ public class AttachIsoCmd extends BaseAsyncCmd implements UserCmd {
return "attaching ISO: " + getId() + " to VM: " + getVirtualMachineId();
}
+ @Override
+ public Long getApiResourceId() {
+ return virtualMachineId;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VirtualMachine;
+ }
+
@Override
public void execute() {
CallContext.current().setEventDetails("Vm Id: " + getVirtualMachineId() + " ISO ID: " + getId());
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/iso/DeleteIsoCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/iso/DeleteIsoCmd.java
index b38a24f8ad..8e6750cc3e 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/iso/DeleteIsoCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/iso/DeleteIsoCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.user.iso;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -103,12 +103,12 @@ public class DeleteIsoCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Iso;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Iso;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/iso/DetachIsoCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/iso/DetachIsoCmd.java
index 4f4a0197ac..e3b22c4a49 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/iso/DetachIsoCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/iso/DetachIsoCmd.java
@@ -16,6 +16,7 @@
// under the License.
package org.apache.cloudstack.api.command.user.iso;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
@@ -93,6 +94,16 @@ public class DetachIsoCmd extends BaseAsyncCmd implements UserCmd {
return "detaching ISO from VM: " + getVirtualMachineId();
}
+ @Override
+ public Long getApiResourceId() {
+ return virtualMachineId;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VirtualMachine;
+ }
+
@Override
public void execute() {
boolean result = _templateService.detachIso(virtualMachineId, isForced());
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/iso/ExtractIsoCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/iso/ExtractIsoCmd.java
index a400a014b6..9e63ce0091 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/iso/ExtractIsoCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/iso/ExtractIsoCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.user.iso;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -117,12 +117,12 @@ public class ExtractIsoCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Iso;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Iso;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/iso/ListIsosCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/iso/ListIsosCmd.java
index 44bbb7168c..90ecaa47de 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/iso/ListIsosCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/iso/ListIsosCmd.java
@@ -22,7 +22,7 @@ import org.apache.cloudstack.api.response.ResourceIconResponse;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseListTaggedResourcesCmd;
import org.apache.cloudstack.api.Parameter;
@@ -167,8 +167,8 @@ public class ListIsosCmd extends BaseListTaggedResourcesCmd implements UserCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Iso;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Iso;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/iso/RegisterIsoCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/iso/RegisterIsoCmd.java
index 1c1a767aa3..47018b3b38 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/iso/RegisterIsoCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/iso/RegisterIsoCmd.java
@@ -19,6 +19,7 @@ package org.apache.cloudstack.api.command.user.iso;
import java.util.List;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseCmd;
@@ -242,6 +243,11 @@ public class RegisterIsoCmd extends BaseCmd implements UserCmd {
return accountId;
}
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Iso;
+ }
+
@Override
public void execute() throws ResourceAllocationException {
VirtualMachineTemplate template = _templateService.registerIso(this);
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/iso/UpdateIsoCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/iso/UpdateIsoCmd.java
index 36e9b5329e..58c475c661 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/iso/UpdateIsoCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/iso/UpdateIsoCmd.java
@@ -16,6 +16,7 @@
// under the License.
package org.apache.cloudstack.api.command.user.iso;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
@@ -68,6 +69,16 @@ public class UpdateIsoCmd extends BaseUpdateTemplateOrIsoCmd implements UserCmd
return Account.ACCOUNT_ID_SYSTEM; // no account info given, parent this command to SYSTEM so ERROR events are tracked
}
+ @Override
+ public Long getApiResourceId() {
+ return getId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Iso;
+ }
+
@Override
public void execute() {
VirtualMachineTemplate result = _templateService.updateTemplate(this);
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/loadbalancer/CreateApplicationLoadBalancerCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/loadbalancer/CreateApplicationLoadBalancerCmd.java
index 592f49f440..0b581f410a 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/loadbalancer/CreateApplicationLoadBalancerCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/loadbalancer/CreateApplicationLoadBalancerCmd.java
@@ -18,7 +18,7 @@ package org.apache.cloudstack.api.command.user.loadbalancer;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCreateCmd;
@@ -164,8 +164,8 @@ public class CreateApplicationLoadBalancerCmd extends BaseAsyncCreateCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.LoadBalancerRule;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.LoadBalancerRule;
}
public String getSourceIp() {
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/loadbalancer/CreateLoadBalancerRuleCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/loadbalancer/CreateLoadBalancerRuleCmd.java
index 6c1e133d57..7606152545 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/loadbalancer/CreateLoadBalancerRuleCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/loadbalancer/CreateLoadBalancerRuleCmd.java
@@ -20,7 +20,7 @@ import java.util.List;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -412,8 +412,8 @@ public class CreateLoadBalancerRuleCmd extends BaseAsyncCreateCmd /*implements L
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.FirewallRule;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.FirewallRule;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/loadbalancer/DeleteApplicationLoadBalancerCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/loadbalancer/DeleteApplicationLoadBalancerCmd.java
index f63b0014bd..d945e81a8b 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/loadbalancer/DeleteApplicationLoadBalancerCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/loadbalancer/DeleteApplicationLoadBalancerCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.user.loadbalancer;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -110,7 +110,7 @@ public class DeleteApplicationLoadBalancerCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.FirewallRule;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.FirewallRule;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLoadBalancerRuleCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLoadBalancerRuleCmd.java
index 112f6cf7fc..2c6ba178b3 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLoadBalancerRuleCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLoadBalancerRuleCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.user.loadbalancer;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -116,7 +116,7 @@ public class DeleteLoadBalancerRuleCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.FirewallRule;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.FirewallRule;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/nat/CreateIpForwardingRuleCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/nat/CreateIpForwardingRuleCmd.java
index de7f68de00..70b721b96e 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/nat/CreateIpForwardingRuleCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/nat/CreateIpForwardingRuleCmd.java
@@ -21,7 +21,7 @@ import java.util.List;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -309,8 +309,8 @@ public class CreateIpForwardingRuleCmd extends BaseAsyncCreateCmd implements Sta
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.FirewallRule;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.FirewallRule;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/nat/DeleteIpForwardingRuleCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/nat/DeleteIpForwardingRuleCmd.java
index 9059d50731..d40a63fc67 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/nat/DeleteIpForwardingRuleCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/nat/DeleteIpForwardingRuleCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.user.nat;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -117,8 +117,8 @@ public class DeleteIpForwardingRuleCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.FirewallRule;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.FirewallRule;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/nat/DisableStaticNatCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/nat/DisableStaticNatCmd.java
index 3e0ab2e814..c42670d2bc 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/nat/DisableStaticNatCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/nat/DisableStaticNatCmd.java
@@ -16,6 +16,7 @@
// under the License.
package org.apache.cloudstack.api.command.user.nat;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
@@ -111,4 +112,18 @@ public class DisableStaticNatCmd extends BaseAsyncCmd {
}
return ip;
}
+
+ @Override
+ public Long getApiResourceId() {
+ IpAddress object = _entityMgr.findById(IpAddress.class, ipAddressId);
+ if (object != null) {
+ object.getAssociatedWithVmId();
+ }
+ return null;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VirtualMachine;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/nat/EnableStaticNatCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/nat/EnableStaticNatCmd.java
index c960285ed6..60e579196c 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/nat/EnableStaticNatCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/nat/EnableStaticNatCmd.java
@@ -16,6 +16,7 @@
// under the License.
package org.apache.cloudstack.api.command.user.nat;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
@@ -144,4 +145,13 @@ public class EnableStaticNatCmd extends BaseCmd {
}
}
+ @Override
+ public Long getApiResourceId() {
+ return getVirtualMachineId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VirtualMachine;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/network/CreateNetworkACLCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/network/CreateNetworkACLCmd.java
index ca6c801851..7fd75719b9 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/network/CreateNetworkACLCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/network/CreateNetworkACLCmd.java
@@ -21,6 +21,7 @@ import java.util.List;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCreateCmd;
@@ -247,4 +248,9 @@ public class CreateNetworkACLCmd extends BaseAsyncCreateCmd {
}
}
}
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.NetworkAclItem;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/network/CreateNetworkACLListCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/network/CreateNetworkACLListCmd.java
index 530dc4e703..884ca53f05 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/network/CreateNetworkACLListCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/network/CreateNetworkACLListCmd.java
@@ -18,6 +18,7 @@ package org.apache.cloudstack.api.command.user.network;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCreateCmd;
@@ -134,4 +135,14 @@ public class CreateNetworkACLListCmd extends BaseAsyncCreateCmd {
public String getEventDescription() {
return "Creating Network ACL with ID: " + getEntityUuid();
}
+
+ @Override
+ public Long getApiResourceId() {
+ return getEntityId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.NetworkAcl;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/network/DeleteNetworkACLCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/network/DeleteNetworkACLCmd.java
index ab6df801fe..6243826c74 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/network/DeleteNetworkACLCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/network/DeleteNetworkACLCmd.java
@@ -16,6 +16,7 @@
// under the License.
package org.apache.cloudstack.api.command.user.network;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
@@ -77,6 +78,16 @@ public class DeleteNetworkACLCmd extends BaseAsyncCmd {
return caller.getAccountId();
}
+ @Override
+ public Long getApiResourceId() {
+ return id;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.NetworkAclItem;
+ }
+
@Override
public void execute() throws ResourceUnavailableException {
CallContext.current().setEventDetails("Network ACL item ID: " + id);
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/network/DeleteNetworkACLListCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/network/DeleteNetworkACLListCmd.java
index 19cf601d63..e6868dbbbd 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/network/DeleteNetworkACLListCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/network/DeleteNetworkACLListCmd.java
@@ -16,6 +16,7 @@
// under the License.
package org.apache.cloudstack.api.command.user.network;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
@@ -77,6 +78,16 @@ public class DeleteNetworkACLListCmd extends BaseAsyncCmd {
return caller.getAccountId();
}
+ @Override
+ public Long getApiResourceId() {
+ return id;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.NetworkAcl;
+ }
+
@Override
public void execute() throws ResourceUnavailableException {
CallContext.current().setEventDetails("Network ACL ID: " + id);
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/network/DeleteNetworkCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/network/DeleteNetworkCmd.java
index c8e49f414f..9f2106139f 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/network/DeleteNetworkCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/network/DeleteNetworkCmd.java
@@ -16,13 +16,10 @@
// under the License.
package org.apache.cloudstack.api.command.user.network;
-
-import org.apache.log4j.Logger;
-
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -31,6 +28,7 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.NetworkResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
import org.apache.cloudstack.context.CallContext;
+import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
@@ -107,13 +105,13 @@ public class DeleteNetworkCmd extends BaseAsyncCmd {
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Network;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Network;
}
@Override
public long getEntityOwnerId() {
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/network/MoveNetworkAclItemCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/network/MoveNetworkAclItemCmd.java
index acc7fdff90..1fba93c415 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/network/MoveNetworkAclItemCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/network/MoveNetworkAclItemCmd.java
@@ -17,6 +17,7 @@
package org.apache.cloudstack.api.command.user.network;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseAsyncCustomIdCmd;
import org.apache.cloudstack.api.Parameter;
@@ -100,4 +101,9 @@ public class MoveNetworkAclItemCmd extends BaseAsyncCustomIdCmd {
public String getAclConsistencyHash() {
return aclConsistencyHash;
}
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.NetworkAclItem;
+ }
}
\ No newline at end of file
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/network/RestartNetworkCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/network/RestartNetworkCmd.java
index d4db584149..c59dffc3ef 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/network/RestartNetworkCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/network/RestartNetworkCmd.java
@@ -16,12 +16,10 @@
// under the License.
package org.apache.cloudstack.api.command.user.network;
-import org.apache.log4j.Logger;
-
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -29,6 +27,7 @@ import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.NetworkResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.ConcurrentOperationException;
@@ -132,16 +131,6 @@ public class RestartNetworkCmd extends BaseAsyncCmd {
return EventTypes.EVENT_NETWORK_RESTART;
}
- @Override
- public Long getInstanceId() {
- return getNetworkId();
- }
-
- @Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Network;
- }
-
@Override
public long getEntityOwnerId() {
Network network = _networkService.getNetwork(id);
@@ -151,4 +140,14 @@ public class RestartNetworkCmd extends BaseAsyncCmd {
return _networkService.getNetwork(id).getAccountId();
}
}
+
+ @Override
+ public Long getApiResourceId() {
+ return id;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Network;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/network/UpdateNetworkACLItemCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/network/UpdateNetworkACLItemCmd.java
index 189ed1ccc6..f675fa23e3 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/network/UpdateNetworkACLItemCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/network/UpdateNetworkACLItemCmd.java
@@ -20,6 +20,7 @@ import java.util.List;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseAsyncCustomIdCmd;
import org.apache.cloudstack.api.Parameter;
@@ -194,4 +195,14 @@ public class UpdateNetworkACLItemCmd extends BaseAsyncCustomIdCmd {
public boolean isPartialUpgrade() {
return partialUpgrade;
}
+
+ @Override
+ public Long getApiResourceId() {
+ return id;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.NetworkAclItem;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/network/UpdateNetworkACLListCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/network/UpdateNetworkACLListCmd.java
index 22eaf2180c..04617086a3 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/network/UpdateNetworkACLListCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/network/UpdateNetworkACLListCmd.java
@@ -18,6 +18,7 @@ package org.apache.cloudstack.api.command.user.network;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseAsyncCustomIdCmd;
import org.apache.cloudstack.api.Parameter;
@@ -111,4 +112,14 @@ public class UpdateNetworkACLListCmd extends BaseAsyncCustomIdCmd {
public String getName() {
return name;
}
+
+ @Override
+ public Long getApiResourceId() {
+ return id;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.NetworkAcl;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/network/UpdateNetworkCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/network/UpdateNetworkCmd.java
index 5abd0492f1..bb27579992 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/network/UpdateNetworkCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/network/UpdateNetworkCmd.java
@@ -20,7 +20,7 @@ import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -145,16 +145,6 @@ public class UpdateNetworkCmd extends BaseAsyncCustomIdCmd implements UserCmd {
return s_name;
}
- @Override
- public Long getInstanceId() {
- return getId();
- }
-
- @Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Network;
- }
-
@Override
public long getEntityOwnerId() {
Network network = _networkService.getNetwork(id);
@@ -225,4 +215,14 @@ public class UpdateNetworkCmd extends BaseAsyncCustomIdCmd implements UserCmd {
_uuidMgr.checkUuid(getCustomId(), Network.class);
}
}
+
+ @Override
+ public Long getApiResourceId() {
+ return id;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Network;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/region/ha/gslb/CreateGlobalLoadBalancerRuleCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/region/ha/gslb/CreateGlobalLoadBalancerRuleCmd.java
index 18f5b7683c..6f3a8a6a70 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/region/ha/gslb/CreateGlobalLoadBalancerRuleCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/region/ha/gslb/CreateGlobalLoadBalancerRuleCmd.java
@@ -20,7 +20,7 @@ package org.apache.cloudstack.api.command.user.region.ha.gslb;
import javax.inject.Inject;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCreateCmd;
@@ -182,8 +182,8 @@ public class CreateGlobalLoadBalancerRuleCmd extends BaseAsyncCreateCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.GlobalLoadBalancerRule;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.GlobalLoadBalancerRule;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/region/ha/gslb/DeleteGlobalLoadBalancerRuleCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/region/ha/gslb/DeleteGlobalLoadBalancerRuleCmd.java
index dfb093d5b1..ec84e668db 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/region/ha/gslb/DeleteGlobalLoadBalancerRuleCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/region/ha/gslb/DeleteGlobalLoadBalancerRuleCmd.java
@@ -22,7 +22,7 @@ import javax.inject.Inject;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -119,7 +119,7 @@ public class DeleteGlobalLoadBalancerRuleCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.GlobalLoadBalancerRule;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.GlobalLoadBalancerRule;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/securitygroup/AuthorizeSecurityGroupEgressCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/securitygroup/AuthorizeSecurityGroupEgressCmd.java
index 9d9553a28d..0e1c172bd5 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/securitygroup/AuthorizeSecurityGroupEgressCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/securitygroup/AuthorizeSecurityGroupEgressCmd.java
@@ -27,7 +27,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -229,12 +229,12 @@ public class AuthorizeSecurityGroupEgressCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.SecurityGroup;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.SecurityGroup;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getSecurityGroupId();
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/securitygroup/AuthorizeSecurityGroupIngressCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/securitygroup/AuthorizeSecurityGroupIngressCmd.java
index 41abc46173..503b64397b 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/securitygroup/AuthorizeSecurityGroupIngressCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/securitygroup/AuthorizeSecurityGroupIngressCmd.java
@@ -27,7 +27,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -228,12 +228,12 @@ public class AuthorizeSecurityGroupIngressCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.SecurityGroup;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.SecurityGroup;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getSecurityGroupId();
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/securitygroup/ListSecurityGroupsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/securitygroup/ListSecurityGroupsCmd.java
index 4a8081a350..2895593595 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/securitygroup/ListSecurityGroupsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/securitygroup/ListSecurityGroupsCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.user.securitygroup;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseListTaggedResourcesCmd;
import org.apache.cloudstack.api.Parameter;
@@ -84,7 +84,7 @@ public class ListSecurityGroupsCmd extends BaseListTaggedResourcesCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.SecurityGroup;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.SecurityGroup;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/securitygroup/RevokeSecurityGroupEgressCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/securitygroup/RevokeSecurityGroupEgressCmd.java
index a28a220b53..e10c7c75a7 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/securitygroup/RevokeSecurityGroupEgressCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/securitygroup/RevokeSecurityGroupEgressCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.user.securitygroup;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -105,12 +105,12 @@ public class RevokeSecurityGroupEgressCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.SecurityGroup;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.SecurityGroup;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/securitygroup/RevokeSecurityGroupIngressCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/securitygroup/RevokeSecurityGroupIngressCmd.java
index 9e81d0bc4e..1b4a13f877 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/securitygroup/RevokeSecurityGroupIngressCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/securitygroup/RevokeSecurityGroupIngressCmd.java
@@ -21,7 +21,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -106,12 +106,12 @@ public class RevokeSecurityGroupIngressCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.SecurityGroup;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.SecurityGroup;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/CreateSnapshotCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/CreateSnapshotCmd.java
index 0db47b1022..9b616ea28f 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/CreateSnapshotCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/CreateSnapshotCmd.java
@@ -21,7 +21,7 @@ import java.util.HashMap;
import java.util.Map;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -196,8 +196,8 @@ public class CreateSnapshotCmd extends BaseAsyncCreateCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Snapshot;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Snapshot;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/CreateSnapshotFromVMSnapshotCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/CreateSnapshotFromVMSnapshotCmd.java
index a98a087457..bbd6a2fe30 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/CreateSnapshotFromVMSnapshotCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/CreateSnapshotFromVMSnapshotCmd.java
@@ -17,7 +17,7 @@
package org.apache.cloudstack.api.command.user.snapshot;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -155,8 +155,8 @@ public class CreateSnapshotFromVMSnapshotCmd extends BaseAsyncCreateCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Snapshot;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Snapshot;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/CreateSnapshotPolicyCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/CreateSnapshotPolicyCmd.java
index 07ae40368b..45aa9313f9 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/CreateSnapshotPolicyCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/CreateSnapshotPolicyCmd.java
@@ -22,6 +22,7 @@ import java.util.Map;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseCmd;
@@ -163,4 +164,14 @@ public class CreateSnapshotPolicyCmd extends BaseCmd {
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create snapshot policy");
}
}
+
+ @Override
+ public Long getApiResourceId() {
+ return getVolumeId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Volume;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/DeleteSnapshotCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/DeleteSnapshotCmd.java
index 452135fc1f..dada167ede 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/DeleteSnapshotCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/DeleteSnapshotCmd.java
@@ -21,7 +21,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -88,12 +88,12 @@ public class DeleteSnapshotCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Snapshot;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Snapshot;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/ListSnapshotsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/ListSnapshotsCmd.java
index bdb23e4ad5..c6a15605ed 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/ListSnapshotsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/ListSnapshotsCmd.java
@@ -22,7 +22,7 @@ import java.util.List;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseListTaggedResourcesCmd;
import org.apache.cloudstack.api.Parameter;
@@ -104,8 +104,8 @@ public class ListSnapshotsCmd extends BaseListTaggedResourcesCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Snapshot;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Snapshot;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/RevertSnapshotCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/RevertSnapshotCmd.java
index 20a638c36f..824c2b4abe 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/RevertSnapshotCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/RevertSnapshotCmd.java
@@ -21,7 +21,7 @@ package org.apache.cloudstack.api.command.user.snapshot;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -86,12 +86,12 @@ public class RevertSnapshotCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Snapshot;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Snapshot;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/UpdateSnapshotPolicyCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/UpdateSnapshotPolicyCmd.java
index 7181fd50d0..8b62230e17 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/UpdateSnapshotPolicyCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/UpdateSnapshotPolicyCmd.java
@@ -79,7 +79,7 @@ public class UpdateSnapshotPolicyCmd extends BaseAsyncCustomIdCmd {
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/template/CopyTemplateCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/template/CopyTemplateCmd.java
index 54900974c2..f672d4c889 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/template/CopyTemplateCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/template/CopyTemplateCmd.java
@@ -19,11 +19,8 @@ package org.apache.cloudstack.api.command.user.template;
import java.util.ArrayList;
import java.util.List;
-import com.cloud.dc.DataCenter;
-import org.apache.log4j.Logger;
-
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -34,7 +31,9 @@ import org.apache.cloudstack.api.command.user.UserCmd;
import org.apache.cloudstack.api.response.TemplateResponse;
import org.apache.cloudstack.api.response.ZoneResponse;
import org.apache.cloudstack.context.CallContext;
+import org.apache.log4j.Logger;
+import com.cloud.dc.DataCenter;
import com.cloud.event.EventTypes;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.exception.StorageUnavailableException;
@@ -155,12 +154,12 @@ public class CopyTemplateCmd extends BaseAsyncCmd implements UserCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Template;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Template;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/template/CreateTemplateCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/template/CreateTemplateCmd.java
index 79936eecf8..a21cbfbdef 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/template/CreateTemplateCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/template/CreateTemplateCmd.java
@@ -32,7 +32,7 @@ import org.apache.cloudstack.api.response.ProjectResponse;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCreateCmd;
@@ -276,8 +276,8 @@ public class CreateTemplateCmd extends BaseAsyncCreateCmd implements UserCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Template;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Template;
}
protected boolean isBareMetal() {
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/template/DeleteTemplateCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/template/DeleteTemplateCmd.java
index 3cee148f75..07b0f81bf8 100755
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/template/DeleteTemplateCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/template/DeleteTemplateCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.user.template;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -104,12 +104,12 @@ public class DeleteTemplateCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Template;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Template;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/template/ExtractTemplateCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/template/ExtractTemplateCmd.java
index f0e7b0803e..13076287a3 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/template/ExtractTemplateCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/template/ExtractTemplateCmd.java
@@ -16,11 +16,8 @@
// under the License.
package org.apache.cloudstack.api.command.user.template;
-import com.cloud.dc.DataCenter;
-import org.apache.log4j.Logger;
-
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -30,7 +27,9 @@ import org.apache.cloudstack.api.response.ExtractResponse;
import org.apache.cloudstack.api.response.TemplateResponse;
import org.apache.cloudstack.api.response.ZoneResponse;
import org.apache.cloudstack.context.CallContext;
+import org.apache.log4j.Logger;
+import com.cloud.dc.DataCenter;
import com.cloud.event.EventTypes;
import com.cloud.exception.InternalErrorException;
import com.cloud.template.VirtualMachineTemplate;
@@ -118,12 +117,12 @@ public class ExtractTemplateCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Template;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Template;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/template/ListTemplatesCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/template/ListTemplatesCmd.java
index bf3b2fbf5a..a64ce195c0 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/template/ListTemplatesCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/template/ListTemplatesCmd.java
@@ -27,7 +27,7 @@ import java.util.ArrayList;
import java.util.EnumSet;
import java.util.List;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseListTaggedResourcesCmd;
import org.apache.cloudstack.api.Parameter;
@@ -181,8 +181,8 @@ public class ListTemplatesCmd extends BaseListTaggedResourcesCmd implements User
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Template;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Template;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/template/RegisterTemplateCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/template/RegisterTemplateCmd.java
index bb7f7a441b..255b11aaa2 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/template/RegisterTemplateCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/template/RegisterTemplateCmd.java
@@ -24,7 +24,7 @@ import java.util.List;
import java.util.Map;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseCmd;
@@ -293,8 +293,8 @@ public class RegisterTemplateCmd extends BaseCmd implements UserCmd {
return s_name;
}
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Template;
+ public ApiCommandResourceType getInstanceType() {
+ return ApiCommandResourceType.Template;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/template/UpdateTemplateCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/template/UpdateTemplateCmd.java
index 8396b078c1..28ecd453d2 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/template/UpdateTemplateCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/template/UpdateTemplateCmd.java
@@ -16,6 +16,7 @@
// under the License.
package org.apache.cloudstack.api.command.user.template;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
@@ -79,6 +80,16 @@ public class UpdateTemplateCmd extends BaseUpdateTemplateOrIsoCmd implements Use
return Account.ACCOUNT_ID_SYSTEM; // no account info given, parent this command to SYSTEM so ERROR events are tracked
}
+ @Override
+ public Long getApiResourceId() {
+ return getId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Template;
+ }
+
@Override
public void execute() {
VirtualMachineTemplate result = _templateService.updateTemplate(this);
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/AddIpToVmNicCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/AddIpToVmNicCmd.java
index ba465ad425..fc009c7e5d 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/AddIpToVmNicCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/AddIpToVmNicCmd.java
@@ -17,7 +17,7 @@
package org.apache.cloudstack.api.command.user.vm;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCreateCmd;
@@ -136,8 +136,8 @@ public class AddIpToVmNicCmd extends BaseAsyncCreateCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.IpAddress;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.IpAddress;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/AddNicToVMCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/AddNicToVMCmd.java
index 454ca6db80..1e395831a6 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/AddNicToVMCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/AddNicToVMCmd.java
@@ -22,12 +22,10 @@ import java.util.EnumSet;
import java.util.HashMap;
import java.util.Map;
-import com.cloud.network.Network;
-import org.apache.log4j.Logger;
-
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiConstants.VMDetails;
import org.apache.cloudstack.api.ApiErrorCode;
@@ -39,9 +37,11 @@ import org.apache.cloudstack.api.command.user.UserCmd;
import org.apache.cloudstack.api.response.NetworkResponse;
import org.apache.cloudstack.api.response.UserVmResponse;
import org.apache.cloudstack.context.CallContext;
+import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
+import com.cloud.network.Network;
import com.cloud.user.Account;
import com.cloud.uservm.UserVm;
import com.cloud.utils.net.Dhcp;
@@ -157,6 +157,16 @@ public class AddNicToVMCmd extends BaseAsyncCmd implements UserCmd {
return dhcpOptionsMap;
}
+ @Override
+ public Long getApiResourceId() {
+ return getVmId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VirtualMachine;
+ }
+
@Override
public void execute() {
CallContext.current().setEventDetails("Vm Id: " + this._uuidMgr.getUuid(VirtualMachine.class, getVmId()) + " Network Id: " + this._uuidMgr.getUuid(Network.class, getNetworkId()));
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/DeployVMCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/DeployVMCmd.java
index 88f4a3f54b..d974783f62 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/DeployVMCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/DeployVMCmd.java
@@ -31,7 +31,7 @@ import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.affinity.AffinityGroupResponse;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCreateCustomIdCmd;
@@ -700,8 +700,8 @@ public class DeployVMCmd extends BaseAsyncCreateCustomIdCmd implements SecurityG
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.VirtualMachine;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VirtualMachine;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/DestroyVMCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/DestroyVMCmd.java
index 30ab5b562f..07fd55276f 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/DestroyVMCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/DestroyVMCmd.java
@@ -23,7 +23,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -122,12 +122,12 @@ public class DestroyVMCmd extends BaseAsyncCmd implements UserCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.VirtualMachine;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VirtualMachine;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/ListNicsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/ListNicsCmd.java
index 30a3b8cce9..0614e641f3 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/ListNicsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/ListNicsCmd.java
@@ -22,7 +22,7 @@ import com.cloud.vm.NicSecondaryIp;
import org.apache.cloudstack.api.response.NicSecondaryIpResponse;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseListCmd;
@@ -169,8 +169,8 @@ public class ListNicsCmd extends BaseListCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.IpAddress;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.IpAddress;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/ListVMsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/ListVMsCmd.java
index 11a81df83d..078ea55d52 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/ListVMsCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/ListVMsCmd.java
@@ -20,35 +20,34 @@ import java.util.ArrayList;
import java.util.EnumSet;
import java.util.List;
-import com.cloud.server.ResourceIcon;
-import com.cloud.server.ResourceTag;
-import org.apache.cloudstack.api.command.user.UserCmd;
-import org.apache.cloudstack.api.response.ResourceIconResponse;
-import org.apache.cloudstack.api.response.SecurityGroupResponse;
-import org.apache.cloudstack.api.response.UserResponse;
-import org.apache.log4j.Logger;
-
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.affinity.AffinityGroupResponse;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiConstants.VMDetails;
import org.apache.cloudstack.api.BaseListTaggedResourcesCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ResponseObject.ResponseView;
+import org.apache.cloudstack.api.command.user.UserCmd;
import org.apache.cloudstack.api.response.BackupOfferingResponse;
import org.apache.cloudstack.api.response.InstanceGroupResponse;
import org.apache.cloudstack.api.response.IsoVmResponse;
import org.apache.cloudstack.api.response.ListResponse;
import org.apache.cloudstack.api.response.NetworkResponse;
+import org.apache.cloudstack.api.response.ResourceIconResponse;
+import org.apache.cloudstack.api.response.SecurityGroupResponse;
import org.apache.cloudstack.api.response.ServiceOfferingResponse;
import org.apache.cloudstack.api.response.TemplateResponse;
+import org.apache.cloudstack.api.response.UserResponse;
import org.apache.cloudstack.api.response.UserVmResponse;
import org.apache.cloudstack.api.response.VpcResponse;
import org.apache.cloudstack.api.response.ZoneResponse;
+import org.apache.log4j.Logger;
import com.cloud.exception.InvalidParameterValueException;
+import com.cloud.server.ResourceIcon;
+import com.cloud.server.ResourceTag;
import com.cloud.vm.VirtualMachine;
@@ -263,8 +262,8 @@ public class ListVMsCmd extends BaseListTaggedResourcesCmd implements UserCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.VirtualMachine;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VirtualMachine;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/RebootVMCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/RebootVMCmd.java
index d827a6b894..9bdcc1aed5 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/RebootVMCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/RebootVMCmd.java
@@ -21,7 +21,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -105,12 +105,12 @@ public class RebootVMCmd extends BaseAsyncCmd implements UserCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.VirtualMachine;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VirtualMachine;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/RemoveIpFromVmNicCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/RemoveIpFromVmNicCmd.java
index db84dc9fc8..50e2e560d3 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/RemoveIpFromVmNicCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/RemoveIpFromVmNicCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.user.vm;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -180,8 +180,8 @@ public class RemoveIpFromVmNicCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.IpAddress;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.IpAddress;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/ResetVMPasswordCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/ResetVMPasswordCmd.java
index e9a2503ce4..e275a988cd 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/ResetVMPasswordCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/ResetVMPasswordCmd.java
@@ -21,7 +21,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -107,12 +107,12 @@ public class ResetVMPasswordCmd extends BaseAsyncCmd implements UserCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.VirtualMachine;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VirtualMachine;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/ResetVMSSHKeyCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/ResetVMSSHKeyCmd.java
index 41509b0cf6..259cfebbad 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/ResetVMSSHKeyCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/ResetVMSSHKeyCmd.java
@@ -22,7 +22,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -127,8 +127,8 @@ public class ResetVMSSHKeyCmd extends BaseAsyncCmd implements UserCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.VirtualMachine;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VirtualMachine;
}
@Override
@@ -147,7 +147,7 @@ public class ResetVMSSHKeyCmd extends BaseAsyncCmd implements UserCmd {
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/RestoreVMCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/RestoreVMCmd.java
index 2439a26c53..ab1bd0b79e 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/RestoreVMCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/RestoreVMCmd.java
@@ -16,6 +16,7 @@
// under the License.
package org.apache.cloudstack.api.command.user.vm;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
@@ -110,4 +111,14 @@ public class RestoreVMCmd extends BaseAsyncCmd implements UserCmd {
public Long getId() {
return getVmId();
}
+
+ @Override
+ public Long getApiResourceId() {
+ return getId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VirtualMachine;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/ScaleVMCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/ScaleVMCmd.java
index 8243e1cda7..193a3b1c05 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/ScaleVMCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/ScaleVMCmd.java
@@ -22,12 +22,10 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import com.cloud.offering.ServiceOffering;
-import org.apache.log4j.Logger;
-
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -38,12 +36,14 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.command.user.UserCmd;
import org.apache.cloudstack.api.response.ServiceOfferingResponse;
import org.apache.cloudstack.api.response.UserVmResponse;
+import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.ManagementServerException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.exception.VirtualMachineMigrationException;
+import com.cloud.offering.ServiceOffering;
import com.cloud.user.Account;
import com.cloud.uservm.UserVm;
import com.cloud.vm.VirtualMachine;
@@ -166,6 +166,16 @@ public class ScaleVMCmd extends BaseAsyncCmd implements UserCmd {
return "upgrading vm: " + this._uuidMgr.getUuid(VirtualMachine.class, getId()) + " to service offering: " + this._uuidMgr.getUuid(ServiceOffering.class, getServiceOfferingId());
}
+ @Override
+ public Long getApiResourceId() {
+ return getId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VirtualMachine;
+ }
+
@Override
public void execute() {
UserVm result;
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/StartVMCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/StartVMCmd.java
index ffbce175b5..2e7f5a6f0d 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/StartVMCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/StartVMCmd.java
@@ -24,7 +24,7 @@ import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -151,12 +151,12 @@ public class StartVMCmd extends BaseAsyncCmd implements UserCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.VirtualMachine;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VirtualMachine;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/StopVMCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/StopVMCmd.java
index 8e1c3cbbaa..529e09a075 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/StopVMCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/StopVMCmd.java
@@ -21,7 +21,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -101,12 +101,12 @@ public class StopVMCmd extends BaseAsyncCmd implements UserCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.VirtualMachine;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VirtualMachine;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/UpdateVMCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/UpdateVMCmd.java
index 6cc9f16d8c..cc0d7afacd 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/UpdateVMCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/UpdateVMCmd.java
@@ -21,13 +21,11 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import com.cloud.utils.exception.CloudRuntimeException;
-import org.apache.log4j.Logger;
-
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseCustomIdCmd;
@@ -39,11 +37,13 @@ import org.apache.cloudstack.api.response.GuestOSResponse;
import org.apache.cloudstack.api.response.SecurityGroupResponse;
import org.apache.cloudstack.api.response.UserVmResponse;
import org.apache.cloudstack.context.CallContext;
+import org.apache.log4j.Logger;
import com.cloud.exception.InsufficientCapacityException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.user.Account;
import com.cloud.uservm.UserVm;
+import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.net.Dhcp;
import com.cloud.vm.VirtualMachine;
@@ -286,4 +286,14 @@ public class UpdateVMCmd extends BaseCustomIdCmd implements SecurityGroupAction,
}
}
+
+ @Override
+ public Long getApiResourceId() {
+ return id;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VirtualMachine;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/UpdateVmNicIpCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/UpdateVmNicIpCmd.java
index a9ea7bd242..aee5307a23 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/UpdateVmNicIpCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/UpdateVmNicIpCmd.java
@@ -22,7 +22,7 @@ import java.util.EnumSet;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -179,8 +179,8 @@ public class UpdateVmNicIpCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.IpAddress;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.IpAddress;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vmsnapshot/CreateVMSnapshotCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vmsnapshot/CreateVMSnapshotCmd.java
index 7cb3194e97..fc78edbe87 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vmsnapshot/CreateVMSnapshotCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vmsnapshot/CreateVMSnapshotCmd.java
@@ -17,12 +17,10 @@
package org.apache.cloudstack.api.command.user.vmsnapshot;
-import org.apache.log4j.Logger;
-
-import com.cloud.vm.VirtualMachine;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCreateCmd;
@@ -31,10 +29,12 @@ import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.UserVmResponse;
import org.apache.cloudstack.api.response.VMSnapshotResponse;
import org.apache.cloudstack.context.CallContext;
+import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.uservm.UserVm;
+import com.cloud.vm.VirtualMachine;
import com.cloud.vm.snapshot.VMSnapshot;
@APICommand(name = "createVMSnapshot", description = "Creates snapshot for a vm.", responseObject = VMSnapshotResponse.class, since = "4.2.0", entityType = {VMSnapshot.class},
@@ -132,4 +132,8 @@ public class CreateVMSnapshotCmd extends BaseAsyncCreateCmd {
return userVM.getAccountId();
}
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VmSnapshot;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vmsnapshot/DeleteVMSnapshotCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vmsnapshot/DeleteVMSnapshotCmd.java
index 03c9d43d9e..a712d44fc4 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vmsnapshot/DeleteVMSnapshotCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vmsnapshot/DeleteVMSnapshotCmd.java
@@ -17,6 +17,7 @@
package org.apache.cloudstack.api.command.user.vmsnapshot;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
@@ -89,4 +90,13 @@ public class DeleteVMSnapshotCmd extends BaseAsyncCmd {
return EventTypes.EVENT_VM_SNAPSHOT_DELETE;
}
+ @Override
+ public Long getApiResourceId() {
+ return getId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VmSnapshot;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vmsnapshot/RevertToVMSnapshotCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vmsnapshot/RevertToVMSnapshotCmd.java
index 86562ad97b..42cd18bfa2 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vmsnapshot/RevertToVMSnapshotCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vmsnapshot/RevertToVMSnapshotCmd.java
@@ -16,6 +16,7 @@
// under the License.
package org.apache.cloudstack.api.command.user.vmsnapshot;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
@@ -97,4 +98,13 @@ public class RevertToVMSnapshotCmd extends BaseAsyncCmd implements UserCmd {
return EventTypes.EVENT_VM_SNAPSHOT_REVERT;
}
+ @Override
+ public Long getApiResourceId() {
+ return getVmSnapShotId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VmSnapshot;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/volume/AttachVolumeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/volume/AttachVolumeCmd.java
index 87ecc5700e..b7e10be074 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/volume/AttachVolumeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/volume/AttachVolumeCmd.java
@@ -22,7 +22,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.Parameter;
@@ -88,12 +88,12 @@ public class AttachVolumeCmd extends BaseAsyncCmd implements UserCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Volume;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Volume;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/volume/CreateVolumeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/volume/CreateVolumeCmd.java
index a54bda1920..3426a95686 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/volume/CreateVolumeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/volume/CreateVolumeCmd.java
@@ -20,7 +20,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCreateCustomIdCmd;
@@ -183,8 +183,8 @@ public class CreateVolumeCmd extends BaseAsyncCreateCustomIdCmd implements UserC
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Volume;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Volume;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/volume/DeleteVolumeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/volume/DeleteVolumeCmd.java
index 678299c8b5..020d7ca845 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/volume/DeleteVolumeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/volume/DeleteVolumeCmd.java
@@ -15,6 +15,7 @@
// specific language governing permissions and limitations
// under the License.
package org.apache.cloudstack.api.command.user.volume;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
@@ -79,6 +80,16 @@ public class DeleteVolumeCmd extends BaseCmd {
return Account.ACCOUNT_ID_SYSTEM; // no account info given, parent this command to SYSTEM so ERROR events are tracked
}
+ @Override
+ public Long getApiResourceId() {
+ return id;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Volume;
+ }
+
@Override
public void execute() throws ConcurrentOperationException {
CallContext.current().setEventDetails("Volume Id: " + this._uuidMgr.getUuid(Volume.class, getId()));
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/volume/DestroyVolumeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/volume/DestroyVolumeCmd.java
index ed84578939..f4007ce9f4 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/volume/DestroyVolumeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/volume/DestroyVolumeCmd.java
@@ -22,7 +22,7 @@ import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -106,12 +106,12 @@ public class DestroyVolumeCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Volume;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Volume;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/volume/DetachVolumeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/volume/DetachVolumeCmd.java
index 1e38ca24ed..e92f6a3cb0 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/volume/DetachVolumeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/volume/DetachVolumeCmd.java
@@ -22,7 +22,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.Parameter;
@@ -93,12 +93,12 @@ public class DetachVolumeCmd extends BaseAsyncCmd implements UserCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Volume;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Volume;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/volume/ExtractVolumeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/volume/ExtractVolumeCmd.java
index f48236680e..8534012c6b 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/volume/ExtractVolumeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/volume/ExtractVolumeCmd.java
@@ -21,7 +21,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -101,12 +101,12 @@ public class ExtractVolumeCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Volume;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Volume;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/volume/ListVolumesCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/volume/ListVolumesCmd.java
index 0b3e6dd5ce..b1d0d3d5b4 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/volume/ListVolumesCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/volume/ListVolumesCmd.java
@@ -20,11 +20,10 @@ import java.util.List;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseListTaggedResourcesCmd;
import org.apache.cloudstack.api.Parameter;
-import org.apache.cloudstack.api.BaseCmd.CommandType;
import org.apache.cloudstack.api.ResponseObject.ResponseView;
import org.apache.cloudstack.api.command.user.UserCmd;
import org.apache.cloudstack.api.response.ClusterResponse;
@@ -157,8 +156,8 @@ public class ListVolumesCmd extends BaseListTaggedResourcesCmd implements UserCm
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Volume;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Volume;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/volume/MigrateVolumeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/volume/MigrateVolumeCmd.java
index d3183dbf31..a0a50c5b9f 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/volume/MigrateVolumeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/volume/MigrateVolumeCmd.java
@@ -16,8 +16,8 @@
// under the License.
package org.apache.cloudstack.api.command.user.volume;
-import com.cloud.storage.StoragePool;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -30,6 +30,7 @@ import org.apache.cloudstack.api.response.StoragePoolResponse;
import org.apache.cloudstack.api.response.VolumeResponse;
import com.cloud.event.EventTypes;
+import com.cloud.storage.StoragePool;
import com.cloud.storage.Volume;
import com.cloud.user.Account;
@@ -142,4 +143,14 @@ public class MigrateVolumeCmd extends BaseAsyncCmd implements UserCmd {
}
return null;
}
+
+ @Override
+ public Long getApiResourceId() {
+ return volumeId;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Volume;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/volume/RecoverVolumeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/volume/RecoverVolumeCmd.java
index f5bb1ddd67..2589f816bc 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/volume/RecoverVolumeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/volume/RecoverVolumeCmd.java
@@ -16,6 +16,7 @@
// under the License.
package org.apache.cloudstack.api.command.user.volume;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.RoleType;
@@ -76,6 +77,16 @@ public class RecoverVolumeCmd extends BaseCmd {
return Account.ACCOUNT_ID_SYSTEM; // no account info given, parent this command to SYSTEM so ERROR events are tracked
}
+ @Override
+ public Long getApiResourceId() {
+ return id;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Volume;
+ }
+
@Override
public void execute() {
CallContext.current().setEventDetails("Volume Id: " + getId());
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/volume/RemoveResourceDetailCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/volume/RemoveResourceDetailCmd.java
index 703fe8a1bd..c2daa4ff31 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/volume/RemoveResourceDetailCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/volume/RemoveResourceDetailCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.user.volume;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.Parameter;
@@ -77,8 +77,8 @@ public class RemoveResourceDetailCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Volume;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Volume;
}
@Override
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/volume/ResizeVolumeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/volume/ResizeVolumeCmd.java
index ceb208b358..6ad512ad29 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/volume/ResizeVolumeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/volume/ResizeVolumeCmd.java
@@ -21,7 +21,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.Parameter;
@@ -133,8 +133,13 @@ public class ResizeVolumeCmd extends BaseAsyncCmd implements UserCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Volume;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Volume;
+ }
+
+ @Override
+ public Long getApiResourceId() {
+ return id;
}
public static String getResultObjectName() {
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/volume/UpdateVolumeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/volume/UpdateVolumeCmd.java
index 345221e1de..e778267482 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/volume/UpdateVolumeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/volume/UpdateVolumeCmd.java
@@ -22,7 +22,7 @@ import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCustomIdCmd;
@@ -121,12 +121,12 @@ public class UpdateVolumeCmd extends BaseAsyncCustomIdCmd implements UserCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.Volume;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Volume;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/volume/UploadVolumeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/volume/UploadVolumeCmd.java
index 236a4c8c7a..b40761d123 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/volume/UploadVolumeCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/volume/UploadVolumeCmd.java
@@ -16,10 +16,8 @@
// under the License.
package org.apache.cloudstack.api.command.user.volume;
-import com.cloud.dc.DataCenter;
-import org.apache.log4j.Logger;
-
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -33,7 +31,9 @@ import org.apache.cloudstack.api.response.ProjectResponse;
import org.apache.cloudstack.api.response.VolumeResponse;
import org.apache.cloudstack.api.response.ZoneResponse;
import org.apache.cloudstack.context.CallContext;
+import org.apache.log4j.Logger;
+import com.cloud.dc.DataCenter;
import com.cloud.event.EventTypes;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InsufficientCapacityException;
@@ -179,4 +179,8 @@ public class UploadVolumeCmd extends BaseAsyncCmd implements UserCmd {
return EventTypes.EVENT_VOLUME_UPLOAD;
}
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Volume;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/CreatePrivateGatewayCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/CreatePrivateGatewayCmd.java
index 5e5e43cf60..8527bd0e7f 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/CreatePrivateGatewayCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/CreatePrivateGatewayCmd.java
@@ -20,7 +20,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -211,7 +211,7 @@ public class CreatePrivateGatewayCmd extends BaseAsyncCreateCmd implements UserC
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.PrivateGateway;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.PrivateGateway;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/CreateStaticRouteCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/CreateStaticRouteCmd.java
index 849d1ecbc0..40e1932393 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/CreateStaticRouteCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/CreateStaticRouteCmd.java
@@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.user.vpc;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -144,7 +144,7 @@ public class CreateStaticRouteCmd extends BaseAsyncCreateCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.StaticRoute;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.StaticRoute;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/DeleteStaticRouteCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/DeleteStaticRouteCmd.java
index 9449e6d534..8065c2fbc3 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/DeleteStaticRouteCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/DeleteStaticRouteCmd.java
@@ -21,7 +21,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -121,7 +121,7 @@ public class DeleteStaticRouteCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.StaticRoute;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.StaticRoute;
}
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/DeleteVPCCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/DeleteVPCCmd.java
index 9d13b63e6a..89705524d4 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/DeleteVPCCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/DeleteVPCCmd.java
@@ -16,6 +16,7 @@
// under the License.
package org.apache.cloudstack.api.command.user.vpc;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
@@ -113,4 +114,14 @@ public class DeleteVPCCmd extends BaseAsyncCmd {
public Long getSyncObjId() {
return getId();
}
+
+ @Override
+ public Long getApiResourceId() {
+ return getId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Vpc;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/RestartVPCCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/RestartVPCCmd.java
index ac22e66915..a3fd58aa07 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/RestartVPCCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/RestartVPCCmd.java
@@ -19,6 +19,7 @@ package org.apache.cloudstack.api.command.user.vpc;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -137,4 +138,14 @@ public class RestartVPCCmd extends BaseAsyncCmd {
public Long getSyncObjId() {
return getId();
}
+
+ @Override
+ public Long getApiResourceId() {
+ return getId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Vpc;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/UpdateVPCCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/UpdateVPCCmd.java
index 92f02ca262..190a0e5cbc 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/UpdateVPCCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/UpdateVPCCmd.java
@@ -16,6 +16,7 @@
// under the License.
package org.apache.cloudstack.api.command.user.vpc;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.RoleType;
@@ -134,4 +135,14 @@ public class UpdateVPCCmd extends BaseAsyncCustomIdCmd implements UserCmd {
_uuidMgr.checkUuid(getCustomId(), Vpc.class);
}
}
+
+ @Override
+ public Long getApiResourceId() {
+ return getId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Vpc;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vpn/CreateRemoteAccessVpnCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vpn/CreateRemoteAccessVpnCmd.java
index 9508fa50e3..b6ea5cc426 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vpn/CreateRemoteAccessVpnCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vpn/CreateRemoteAccessVpnCmd.java
@@ -16,6 +16,7 @@
// under the License.
package org.apache.cloudstack.api.command.user.vpn;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.RoleType;
@@ -201,4 +202,14 @@ public class CreateRemoteAccessVpnCmd extends BaseAsyncCreateCmd {
else
return display;
}
+
+ @Override
+ public Long getApiResourceId() {
+ return getPublicIpId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.IpAddress;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vpn/CreateVpnCustomerGatewayCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vpn/CreateVpnCustomerGatewayCmd.java
index 36549e4d82..93cce3286e 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vpn/CreateVpnCustomerGatewayCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vpn/CreateVpnCustomerGatewayCmd.java
@@ -16,26 +16,27 @@
// under the License.
package org.apache.cloudstack.api.command.user.vpn;
-import org.apache.cloudstack.api.ApiArgValidator;
-import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiArgValidator;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
-import org.apache.cloudstack.api.BaseAsyncCmd;
+import org.apache.cloudstack.api.BaseAsyncCreateCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
-import org.apache.cloudstack.api.BaseCmd.CommandType;
import org.apache.cloudstack.api.response.DomainResponse;
import org.apache.cloudstack.api.response.ProjectResponse;
import org.apache.cloudstack.api.response.Site2SiteCustomerGatewayResponse;
import org.apache.cloudstack.context.CallContext;
+import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
+import com.cloud.exception.ResourceAllocationException;
import com.cloud.network.Site2SiteCustomerGateway;
@APICommand(name = "createVpnCustomerGateway", description = "Creates site to site vpn customer gateway", responseObject = Site2SiteCustomerGatewayResponse.class, entityType = {Site2SiteCustomerGateway.class},
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
-public class CreateVpnCustomerGatewayCmd extends BaseAsyncCmd {
+public class CreateVpnCustomerGatewayCmd extends BaseAsyncCreateCmd {
public static final Logger s_logger = Logger.getLogger(CreateVpnCustomerGatewayCmd.class.getName());
private static final String s_name = "createvpncustomergatewayresponse";
@@ -192,8 +193,19 @@ public class CreateVpnCustomerGatewayCmd extends BaseAsyncCmd {
}
@Override
- public void execute() {
+ public void create() throws ResourceAllocationException {
Site2SiteCustomerGateway result = _s2sVpnService.createCustomerGateway(this);
+ if (result != null) {
+ setEntityId(result.getId());
+ setEntityUuid(result.getUuid());
+ } else {
+ throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create customer VPN gateway");
+ }
+ }
+
+ @Override
+ public void execute() {
+ Site2SiteCustomerGateway result = _s2sVpnService.getCustomerGateway(getEntityId());
if (result != null) {
Site2SiteCustomerGatewayResponse response = _responseGenerator.createSite2SiteCustomerGatewayResponse(result);
response.setResponseName(getCommandName());
@@ -202,4 +214,9 @@ public class CreateVpnCustomerGatewayCmd extends BaseAsyncCmd {
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create customer VPN gateway");
}
}
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VpnCustomerGateway;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vpn/DeleteRemoteAccessVpnCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vpn/DeleteRemoteAccessVpnCmd.java
index daa305a950..17831d5c65 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vpn/DeleteRemoteAccessVpnCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vpn/DeleteRemoteAccessVpnCmd.java
@@ -16,6 +16,7 @@
// under the License.
package org.apache.cloudstack.api.command.user.vpn;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
@@ -110,4 +111,13 @@ public class DeleteRemoteAccessVpnCmd extends BaseAsyncCmd {
return _ravService.getRemoteAccessVpn(publicIpId).getNetworkId();
}
+ @Override
+ public Long getApiResourceId() {
+ return publicIpId;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.IpAddress;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vpn/DeleteVpnCustomerGatewayCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vpn/DeleteVpnCustomerGatewayCmd.java
index aad69ce0a9..cf2b895dd7 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vpn/DeleteVpnCustomerGatewayCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vpn/DeleteVpnCustomerGatewayCmd.java
@@ -16,6 +16,7 @@
// under the License.
package org.apache.cloudstack.api.command.user.vpn;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
@@ -97,4 +98,14 @@ public class DeleteVpnCustomerGatewayCmd extends BaseAsyncCmd {
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to delete customer VPN gateway");
}
}
+
+ @Override
+ public Long getApiResourceId() {
+ return getId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VpnCustomerGateway;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vpn/UpdateVpnCustomerGatewayCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vpn/UpdateVpnCustomerGatewayCmd.java
index 80a7156e78..247d970e7a 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vpn/UpdateVpnCustomerGatewayCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vpn/UpdateVpnCustomerGatewayCmd.java
@@ -17,6 +17,7 @@
package org.apache.cloudstack.api.command.user.vpn;
import org.apache.cloudstack.api.ApiArgValidator;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
@@ -196,4 +197,14 @@ public class UpdateVpnCustomerGatewayCmd extends BaseAsyncCmd {
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to update customer VPN gateway");
}
}
+
+ @Override
+ public Long getApiResourceId() {
+ return getId();
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VpnCustomerGateway;
+ }
}
diff --git a/api/src/main/java/org/apache/cloudstack/api/response/EventResponse.java b/api/src/main/java/org/apache/cloudstack/api/response/EventResponse.java
index da15434e6d..a3ca777be5 100644
--- a/api/src/main/java/org/apache/cloudstack/api/response/EventResponse.java
+++ b/api/src/main/java/org/apache/cloudstack/api/response/EventResponse.java
@@ -18,14 +18,13 @@ package org.apache.cloudstack.api.response;
import java.util.Date;
-import com.google.gson.annotations.SerializedName;
-
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseResponse;
import org.apache.cloudstack.api.EntityReference;
import com.cloud.event.Event;
import com.cloud.serializer.Param;
+import com.google.gson.annotations.SerializedName;
@EntityReference(value = Event.class)
@SuppressWarnings("unused")
@@ -70,6 +69,18 @@ public class EventResponse extends BaseResponse implements ControlledViewEntityR
@Param(description = "the name of the account's domain")
private String domainName;
+ @SerializedName(ApiConstants.RESOURCE_ID)
+ @Param(description = "the id of the resource", since = "4.17.0")
+ private String resourceId;
+
+ @SerializedName(ApiConstants.RESOURCE_TYPE)
+ @Param(description = "the type of the resource", since = "4.17.0")
+ private String resourceType;
+
+ @SerializedName(ApiConstants.RESOURCE_NAME)
+ @Param(description = "the name of the resource", since = "4.17.0")
+ private String resourceName;
+
@SerializedName(ApiConstants.CREATED)
@Param(description = "the date the event was created")
private Date created;
@@ -117,6 +128,30 @@ public class EventResponse extends BaseResponse implements ControlledViewEntityR
this.domainName = domainName;
}
+ public void setResourceId(String resourceId) {
+ this.resourceId = resourceId;
+ }
+
+ public String getResourceId() {
+ return resourceId;
+ }
+
+ public void setResourceType(String resourceType) {
+ this.resourceType = resourceType;
+ }
+
+ public String getResourceType() {
+ return resourceType;
+ }
+
+ public void setResourceName(String resourceName) {
+ this.resourceName = resourceName;
+ }
+
+ public String getResourceName() {
+ return resourceName;
+ }
+
public void setCreated(Date created) {
this.created = created;
}
diff --git a/api/src/main/java/org/apache/cloudstack/context/CallContext.java b/api/src/main/java/org/apache/cloudstack/context/CallContext.java
index 9df02dd320..d63ccefd4d 100644
--- a/api/src/main/java/org/apache/cloudstack/context/CallContext.java
+++ b/api/src/main/java/org/apache/cloudstack/context/CallContext.java
@@ -21,6 +21,7 @@ import java.util.Map;
import java.util.Stack;
import java.util.UUID;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.managed.threadlocal.ManagedThreadLocal;
import org.apache.log4j.Logger;
import org.apache.log4j.NDC;
@@ -56,6 +57,8 @@ public class CallContext {
private String eventDetails;
private String eventType;
private boolean isEventDisplayEnabled = true; // default to true unless specifically set
+ private Long eventResourceId;
+ private ApiCommandResourceType eventResourceType;
private User user;
private long userId;
private final Map<Object, Object> context = new HashMap<Object, Object>();
@@ -327,6 +330,22 @@ public class CallContext {
this.eventDescription = eventDescription;
}
+ public Long getEventResourceId() {
+ return eventResourceId;
+ }
+
+ public void setEventResourceId(Long eventResourceId) {
+ this.eventResourceId = eventResourceId;
+ }
+
+ public ApiCommandResourceType getEventResourceType() {
+ return eventResourceType;
+ }
+
+ public void setEventResourceType(ApiCommandResourceType eventResourceType) {
+ this.eventResourceType = eventResourceType;
+ }
+
public Project getProject() {
return this.project;
}
diff --git a/api/src/test/java/org/apache/cloudstack/api/ApiCommandResourceTypeTest.java b/api/src/test/java/org/apache/cloudstack/api/ApiCommandResourceTypeTest.java
new file mode 100644
index 0000000000..98c4b93803
--- /dev/null
+++ b/api/src/test/java/org/apache/cloudstack/api/ApiCommandResourceTypeTest.java
@@ -0,0 +1,71 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+package org.apache.cloudstack.api;
+
+import java.util.List;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import com.cloud.domain.Domain;
+import com.cloud.network.Network;
+import com.cloud.storage.Volume;
+import com.cloud.template.VirtualMachineTemplate;
+import com.cloud.user.Account;
+import com.cloud.vm.VirtualMachine;
+
+public class ApiCommandResourceTypeTest {
+
+ @Test
+ public void testGetAssociatedClass() {
+ Assert.assertNull(ApiCommandResourceType.None.getAssociatedClass());
+ Assert.assertEquals(Account.class, ApiCommandResourceType.Account.getAssociatedClass());
+ Assert.assertEquals(Domain.class, ApiCommandResourceType.Domain.getAssociatedClass());
+ Assert.assertEquals(VirtualMachineTemplate.class, ApiCommandResourceType.Template.getAssociatedClass());
+ Assert.assertEquals(VirtualMachine.class, ApiCommandResourceType.VirtualMachine.getAssociatedClass());
+ Assert.assertEquals(Network.class, ApiCommandResourceType.Network.getAssociatedClass());
+ Assert.assertEquals(Volume.class, ApiCommandResourceType.Volume.getAssociatedClass());
+ }
+
+ @Test
+ public void testValuesFromAssociatedClass() {
+ List<ApiCommandResourceType> types = ApiCommandResourceType.valuesFromAssociatedClass(Account.class);
+ Assert.assertNotNull(types);
+ Assert.assertTrue(types.size() > 0);
+ Assert.assertEquals(types.get(0), ApiCommandResourceType.Account);
+
+ types = ApiCommandResourceType.valuesFromAssociatedClass(ApiCommandResourceTypeTest.class);
+ Assert.assertNotNull(types);
+ Assert.assertEquals(0, types.size());
+ }
+
+ @Test
+ public void testValueFromAssociatedClass() {
+ Assert.assertEquals(ApiCommandResourceType.valueFromAssociatedClass(VirtualMachine.class), ApiCommandResourceType.VirtualMachine);
+ Assert.assertNull(ApiCommandResourceType.valueFromAssociatedClass(ApiCommandResourceTypeTest.class));
+ }
+
+ @Test
+ public void testFromString() {
+ Assert.assertNull(ApiCommandResourceType.fromString(null));
+ Assert.assertNull(ApiCommandResourceType.fromString(""));
+ Assert.assertNull(ApiCommandResourceType.fromString("Something"));
+ Assert.assertEquals(ApiCommandResourceType.Account, ApiCommandResourceType.fromString("Account"));
+ Assert.assertEquals(ApiCommandResourceType.Domain, ApiCommandResourceType.fromString("Domain"));
+ }
+}
diff --git a/engine/schema/src/main/java/com/cloud/event/EventVO.java b/engine/schema/src/main/java/com/cloud/event/EventVO.java
index e5cf2a2739..24c3e8cd06 100644
--- a/engine/schema/src/main/java/com/cloud/event/EventVO.java
+++ b/engine/schema/src/main/java/com/cloud/event/EventVO.java
@@ -61,6 +61,12 @@ public class EventVO implements Event {
@Column(name = "domain_id")
private long domainId;
+ @Column(name = "resource_id")
+ private long resourceId;
+
+ @Column(name = "resource_type")
+ private String resourceType;
+
@Column(name = "level")
private String level = LEVEL_INFO;
@@ -158,6 +164,24 @@ public class EventVO implements Event {
this.domainId = domainId;
}
+ @Override
+ public Long getResourceId() {
+ return resourceId;
+ }
+
+ public void setResourceId(long resourceId) {
+ this.resourceId = resourceId;
+ }
+
+ @Override
+ public String getResourceType() {
+ return resourceType;
+ }
+
+ public void setResourceType(String resourceType) {
+ this.resourceType = resourceType;
+ }
+
@Override
public int getTotalSize() {
return totalSize;
diff --git a/engine/schema/src/main/resources/META-INF/db/schema-41610to41700.sql b/engine/schema/src/main/resources/META-INF/db/schema-41610to41700.sql
index 32916f0c67..48f22f906e 100644
--- a/engine/schema/src/main/resources/META-INF/db/schema-41610to41700.sql
+++ b/engine/schema/src/main/resources/META-INF/db/schema-41610to41700.sql
@@ -746,3 +746,51 @@ from
(`cloud`.`mshost`
left join `cloud`.`mshost_status` on
((`cloud`.`mshost`.`uuid` = `cloud`.`mshost_status`.`ms_id`)));
+
+-- Alter event table to add resource_id and resource_type
+ALTER TABLE `cloud`.`event`
+ ADD COLUMN `resource_id` bigint unsigned COMMENT 'ID of the resource associated with the even' AFTER `domain_id`,
+ ADD COLUMN `resource_type` varchar(32) COMMENT 'Account role in the project (Owner or Regular)' AFTER `resource_id`;
+
+DROP VIEW IF EXISTS `cloud`.`event_view`;
+CREATE VIEW `cloud`.`event_view` AS
+ SELECT
+ event.id,
+ event.uuid,
+ event.type,
+ event.state,
+ event.description,
+ event.resource_id,
+ event.resource_type,
+ event.created,
+ event.level,
+ event.parameters,
+ event.start_id,
+ eve.uuid start_uuid,
+ event.user_id,
+ event.archived,
+ event.display,
+ user.username user_name,
+ account.id account_id,
+ account.uuid account_uuid,
+ account.account_name account_name,
+ account.type account_type,
+ domain.id domain_id,
+ domain.uuid domain_uuid,
+ domain.name domain_name,
+ domain.path domain_path,
+ projects.id project_id,
+ projects.uuid project_uuid,
+ projects.name project_name
+ FROM
+ `cloud`.`event`
+ INNER JOIN
+ `cloud`.`account` ON event.account_id = account.id
+ INNER JOIN
+ `cloud`.`domain` ON event.domain_id = domain.id
+ INNER JOIN
+ `cloud`.`user` ON event.user_id = user.id
+ LEFT JOIN
+ `cloud`.`projects` ON projects.project_account_id = event.account_id
+ LEFT JOIN
+ `cloud`.`event` eve ON event.start_id = eve.id;
diff --git a/framework/db/src/main/java/com/cloud/dao/EntityManagerImpl.java b/framework/db/src/main/java/com/cloud/dao/EntityManagerImpl.java
index 40bc5ebd6f..e738f1e99e 100644
--- a/framework/db/src/main/java/com/cloud/dao/EntityManagerImpl.java
+++ b/framework/db/src/main/java/com/cloud/dao/EntityManagerImpl.java
@@ -22,8 +22,6 @@ import java.util.Map;
import javax.naming.ConfigurationException;
-import net.sf.ehcache.Cache;
-
import com.cloud.utils.component.ManagerBase;
import com.cloud.utils.db.EntityManager;
import com.cloud.utils.db.GenericDao;
@@ -32,6 +30,8 @@ import com.cloud.utils.db.GenericSearchBuilder;
import com.cloud.utils.db.SearchBuilder;
import com.cloud.utils.db.SearchCriteria;
+import net.sf.ehcache.Cache;
+
@SuppressWarnings("unchecked")
public class EntityManagerImpl extends ManagerBase implements EntityManager {
String _name;
@@ -122,4 +122,9 @@ public class EntityManagerImpl extends ManagerBase implements EntityManager {
dao.remove(id);
}
+ @Override
+ public <T> boolean validEntityType(Class<T> entityType) {
+ GenericDao<T, ? extends Serializable> dao = (GenericDao<T, ? extends Serializable>)GenericDaoBase.getDao(entityType);
+ return dao != null;
+ }
}
diff --git a/framework/jobs/src/main/java/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java b/framework/jobs/src/main/java/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java
index 34f58933cd..a963357122 100644
--- a/framework/jobs/src/main/java/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java
+++ b/framework/jobs/src/main/java/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java
@@ -34,7 +34,7 @@ import javax.inject.Inject;
import javax.naming.ConfigurationException;
import com.cloud.storage.dao.VolumeDetailsDao;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.log4j.Logger;
import org.apache.log4j.NDC;
import org.apache.cloudstack.api.ApiErrorCode;
@@ -1084,7 +1084,7 @@ public class AsyncJobManagerImpl extends ManagerBase implements AsyncJobManager,
s_logger.debug("Purge queue item for cancelled job-" + job.getId());
}
_queueMgr.purgeAsyncJobQueueItemId(job.getId());
- if (ApiCommandJobType.Volume.toString().equals(job.getInstanceType())) {
+ if (ApiCommandResourceType.Volume.toString().equals(job.getInstanceType())) {
try {
_volumeDetailsDao.removeDetail(job.getInstanceId(), "SNAPSHOT_ID");
diff --git a/plugins/integrations/kubernetes-service/src/main/java/org/apache/cloudstack/api/command/user/kubernetes/cluster/CreateKubernetesClusterCmd.java b/plugins/integrations/kubernetes-service/src/main/java/org/apache/cloudstack/api/command/user/kubernetes/cluster/CreateKubernetesClusterCmd.java
index d767c2b52b..b634e73d49 100644
--- a/plugins/integrations/kubernetes-service/src/main/java/org/apache/cloudstack/api/command/user/kubernetes/cluster/CreateKubernetesClusterCmd.java
+++ b/plugins/integrations/kubernetes-service/src/main/java/org/apache/cloudstack/api/command/user/kubernetes/cluster/CreateKubernetesClusterCmd.java
@@ -16,15 +16,15 @@
// under the License.
package org.apache.cloudstack.api.command.user.kubernetes.cluster;
-import com.cloud.kubernetes.cluster.KubernetesCluster;
-import com.cloud.kubernetes.cluster.KubernetesClusterEventTypes;
-import com.cloud.kubernetes.cluster.KubernetesClusterService;
-import com.cloud.utils.exception.CloudRuntimeException;
+import java.security.InvalidParameterException;
+
+import javax.inject.Inject;
+
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCreateCmd;
@@ -41,8 +41,10 @@ import org.apache.cloudstack.api.response.ZoneResponse;
import org.apache.cloudstack.context.CallContext;
import org.apache.log4j.Logger;
-import javax.inject.Inject;
-import java.security.InvalidParameterException;
+import com.cloud.kubernetes.cluster.KubernetesCluster;
+import com.cloud.kubernetes.cluster.KubernetesClusterEventTypes;
+import com.cloud.kubernetes.cluster.KubernetesClusterService;
+import com.cloud.utils.exception.CloudRuntimeException;
@APICommand(name = CreateKubernetesClusterCmd.APINAME,
description = "Creates a Kubernetes cluster",
@@ -275,8 +277,8 @@ public class CreateKubernetesClusterCmd extends BaseAsyncCreateCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.VirtualMachine;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.VirtualMachine;
}
@Override
diff --git a/plugins/network-elements/bigswitch/src/main/java/com/cloud/network/guru/BigSwitchBcfGuestNetworkGuru.java b/plugins/network-elements/bigswitch/src/main/java/com/cloud/network/guru/BigSwitchBcfGuestNetworkGuru.java
index 45f4a1fceb..7cb50edb4e 100644
--- a/plugins/network-elements/bigswitch/src/main/java/com/cloud/network/guru/BigSwitchBcfGuestNetworkGuru.java
+++ b/plugins/network-elements/bigswitch/src/main/java/com/cloud/network/guru/BigSwitchBcfGuestNetworkGuru.java
@@ -23,6 +23,7 @@ import java.util.List;
import javax.inject.Inject;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.context.CallContext;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
@@ -205,7 +206,7 @@ public class BigSwitchBcfGuestNetworkGuru extends GuestNetworkGuru implements Ne
}
implemented.setBroadcastUri(BroadcastDomainType.Vlan.toUri(vnetId));
ActionEventUtils.onCompletedActionEvent(CallContext.current().getCallingUserId(), network.getAccountId(),
- EventVO.LEVEL_INFO, EventTypes.EVENT_ZONE_VLAN_ASSIGN, "Assigned Zone Vlan: " + vnetId + " Network Id: " + network.getId(), 0);
+ EventVO.LEVEL_INFO, EventTypes.EVENT_ZONE_VLAN_ASSIGN, "Assigned Zone Vlan: " + vnetId + " Network Id: " + network.getId(), network.getId(), ApiCommandResourceType.Network.toString(), 0);
} else {
implemented.setBroadcastUri(network.getBroadcastUri());
}
diff --git a/plugins/network-elements/juniper-contrail/src/main/java/org/apache/cloudstack/network/contrail/api/command/CreateServiceInstanceCmd.java b/plugins/network-elements/juniper-contrail/src/main/java/org/apache/cloudstack/network/contrail/api/command/CreateServiceInstanceCmd.java
index 59c4e6102a..3a48cc90c6 100644
--- a/plugins/network-elements/juniper-contrail/src/main/java/org/apache/cloudstack/network/contrail/api/command/CreateServiceInstanceCmd.java
+++ b/plugins/network-elements/juniper-contrail/src/main/java/org/apache/cloudstack/network/contrail/api/command/CreateServiceInstanceCmd.java
@@ -20,6 +20,7 @@ package org.apache.cloudstack.network.contrail.api.command;
import javax.inject.Inject;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCreateCmd;
@@ -199,4 +200,8 @@ public class CreateServiceInstanceCmd extends BaseAsyncCreateCmd {
return accountId;
}
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.SystemVm;
+ }
}
diff --git a/plugins/network-elements/netscaler/src/main/java/com/cloud/api/commands/StopNetScalerVMCmd.java b/plugins/network-elements/netscaler/src/main/java/com/cloud/api/commands/StopNetScalerVMCmd.java
index af95255da9..5d754168e4 100644
--- a/plugins/network-elements/netscaler/src/main/java/com/cloud/api/commands/StopNetScalerVMCmd.java
+++ b/plugins/network-elements/netscaler/src/main/java/com/cloud/api/commands/StopNetScalerVMCmd.java
@@ -23,7 +23,7 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
@@ -97,12 +97,12 @@ public class StopNetScalerVMCmd extends BaseAsyncCmd {
}
@Override
- public ApiCommandJobType getInstanceType() {
- return ApiCommandJobType.DomainRouter;
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.DomainRouter;
}
@Override
- public Long getInstanceId() {
+ public Long getApiResourceId() {
return getId();
}
diff --git a/plugins/network-elements/ovs/src/main/java/com/cloud/network/guru/OvsGuestNetworkGuru.java b/plugins/network-elements/ovs/src/main/java/com/cloud/network/guru/OvsGuestNetworkGuru.java
index 7b0ccdbc07..f8d851e586 100644
--- a/plugins/network-elements/ovs/src/main/java/com/cloud/network/guru/OvsGuestNetworkGuru.java
+++ b/plugins/network-elements/ovs/src/main/java/com/cloud/network/guru/OvsGuestNetworkGuru.java
@@ -17,6 +17,13 @@
package com.cloud.network.guru;
+import javax.inject.Inject;
+
+import org.apache.cloudstack.api.ApiCommandResourceType;
+import org.apache.cloudstack.context.CallContext;
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Component;
+
import com.cloud.dc.DataCenter;
import com.cloud.dc.DataCenter.NetworkType;
import com.cloud.deploy.DeployDestination;
@@ -45,11 +52,6 @@ import com.cloud.user.Account;
import com.cloud.vm.NicProfile;
import com.cloud.vm.ReservationContext;
import com.cloud.vm.VirtualMachineProfile;
-import org.apache.cloudstack.context.CallContext;
-import org.apache.log4j.Logger;
-import org.springframework.stereotype.Component;
-
-import javax.inject.Inject;
@Component
public class OvsGuestNetworkGuru extends GuestNetworkGuru {
@@ -228,7 +230,8 @@ public class OvsGuestNetworkGuru extends GuestNetworkGuru {
EventVO.LEVEL_INFO,
EventTypes.EVENT_ZONE_VLAN_ASSIGN,
"Assigned Zone Vlan: " + vnet + " Network Id: "
- + network.getId(), 0);
+ + network.getId(),
+ network.getId(), ApiCommandResourceType.Network.toString(), 0);
} else {
implemented.setBroadcastUri(network.getBroadcastUri());
}
diff --git a/plugins/network-elements/vxlan/src/main/java/com/cloud/network/guru/VxlanGuestNetworkGuru.java b/plugins/network-elements/vxlan/src/main/java/com/cloud/network/guru/VxlanGuestNetworkGuru.java
index 8a45f754fd..2f30e17e32 100644
--- a/plugins/network-elements/vxlan/src/main/java/com/cloud/network/guru/VxlanGuestNetworkGuru.java
+++ b/plugins/network-elements/vxlan/src/main/java/com/cloud/network/guru/VxlanGuestNetworkGuru.java
@@ -17,6 +17,11 @@
package com.cloud.network.guru;
+import org.apache.cloudstack.api.ApiCommandResourceType;
+import org.apache.cloudstack.context.CallContext;
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Component;
+
import com.cloud.dc.DataCenter;
import com.cloud.dc.DataCenter.NetworkType;
import com.cloud.deploy.DeployDestination;
@@ -39,9 +44,6 @@ import com.cloud.user.Account;
import com.cloud.vm.NicProfile;
import com.cloud.vm.ReservationContext;
import com.cloud.vm.VirtualMachineProfile;
-import org.apache.cloudstack.context.CallContext;
-import org.apache.log4j.Logger;
-import org.springframework.stereotype.Component;
@Component
public class VxlanGuestNetworkGuru extends GuestNetworkGuru {
@@ -102,7 +104,7 @@ public class VxlanGuestNetworkGuru extends GuestNetworkGuru {
protected void allocateVnetComplete(Network network, NetworkVO implemented, long dcId, long physicalNetworkId, String reservationId, String vnet) {
//TODO(VXLAN): Add new event type for vxlan?
ActionEventUtils.onCompletedActionEvent(CallContext.current().getCallingUserId(), network.getAccountId(), EventVO.LEVEL_INFO, EventTypes.EVENT_ZONE_VLAN_ASSIGN,
- "Assigned Zone vNet: " + vnet + " Network Id: " + network.getId(), 0);
+ "Assigned Zone vNet: " + vnet + " Network Id: " + network.getId(), network.getId(), ApiCommandResourceType.Network.toString(), 0);
}
@Override
diff --git a/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/api/command/LinkAccountToLdapCmd.java b/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/api/command/LinkAccountToLdapCmd.java
index c67e502a2c..62841501d7 100644
--- a/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/api/command/LinkAccountToLdapCmd.java
+++ b/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/api/command/LinkAccountToLdapCmd.java
@@ -18,12 +18,13 @@
*/
package org.apache.cloudstack.api.command;
-import com.cloud.exception.InvalidParameterValueException;
-import com.cloud.user.Account;
-import com.cloud.user.User;
-import com.cloud.user.UserAccount;
+import java.util.UUID;
+
+import javax.inject.Inject;
+
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseCmd;
@@ -37,8 +38,10 @@ import org.apache.cloudstack.ldap.LdapUser;
import org.apache.cloudstack.ldap.NoLdapUserMatchingQueryException;
import org.apache.log4j.Logger;
-import javax.inject.Inject;
-import java.util.UUID;
+import com.cloud.exception.InvalidParameterValueException;
+import com.cloud.user.Account;
+import com.cloud.user.User;
+import com.cloud.user.UserAccount;
@APICommand(name = LinkAccountToLdapCmd.APINAME, description = "link a cloudstack account to a group or OU in ldap", responseObject = LinkDomainToLdapResponse.class, since = "4.11.0",
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, authorized = {RoleType.Admin,RoleType.DomainAdmin})
@@ -139,4 +142,15 @@ public class LinkAccountToLdapCmd extends BaseCmd {
public Account.Type getAccountType() {
return Account.Type.getFromValue(accountType);
}
+
+ @Override
+ public Long getApiResourceId() {
+ Account account = _accountService.getActiveAccountByName(accountName, domainId);
+ return account != null ? account.getAccountId() : null;
+ }
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Account;
+ }
}
diff --git a/plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/api/command/ListAndSwitchSAMLAccountCmd.java b/plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/api/command/ListAndSwitchSAMLAccountCmd.java
index 46c9ae571e..a5ef8933eb 100644
--- a/plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/api/command/ListAndSwitchSAMLAccountCmd.java
+++ b/plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/api/command/ListAndSwitchSAMLAccountCmd.java
@@ -16,18 +16,19 @@
// under the License.
package org.apache.cloudstack.api.command;
-import com.cloud.api.response.ApiResponseSerializer;
-import com.cloud.domain.Domain;
-import com.cloud.domain.dao.DomainDao;
-import com.cloud.exception.CloudAuthenticationException;
-import com.cloud.user.Account;
-import com.cloud.user.User;
-import com.cloud.user.UserAccount;
-import com.cloud.user.UserAccountVO;
-import com.cloud.user.dao.UserAccountDao;
-import com.cloud.user.dao.UserDao;
-import com.cloud.utils.HttpUtils;
+import java.io.IOException;
+import java.net.InetAddress;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.ApiServerService;
@@ -47,15 +48,17 @@ import org.apache.cloudstack.saml.SAML2AuthManager;
import org.apache.cloudstack.saml.SAMLUtils;
import org.apache.log4j.Logger;
-import javax.inject.Inject;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-import java.io.IOException;
-import java.net.InetAddress;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import com.cloud.api.response.ApiResponseSerializer;
+import com.cloud.domain.Domain;
+import com.cloud.domain.dao.DomainDao;
+import com.cloud.exception.CloudAuthenticationException;
+import com.cloud.user.Account;
+import com.cloud.user.User;
+import com.cloud.user.UserAccount;
+import com.cloud.user.UserAccountVO;
+import com.cloud.user.dao.UserAccountDao;
+import com.cloud.user.dao.UserDao;
+import com.cloud.utils.HttpUtils;
@APICommand(name = "listAndSwitchSamlAccount", description = "Lists and switches to other SAML accounts owned by the SAML user", responseObject = SuccessResponse.class, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
public class ListAndSwitchSAMLAccountCmd extends BaseCmd implements APIAuthenticator {
@@ -204,4 +207,9 @@ public class ListAndSwitchSAMLAccountCmd extends BaseCmd implements APIAuthentic
s_logger.error("No suitable Pluggable Authentication Manager found for SAML2 listAndSwitchSamlAccount Cmd");
}
}
+
+ @Override
+ public ApiCommandResourceType getApiResourceType() {
+ return ApiCommandResourceType.Account;
+ }
}
\ No newline at end of file
diff --git a/server/src/main/java/com/cloud/api/ApiAsyncJobDispatcher.java b/server/src/main/java/com/cloud/api/ApiAsyncJobDispatcher.java
index 0b7d681ad9..196f640252 100644
--- a/server/src/main/java/com/cloud/api/ApiAsyncJobDispatcher.java
+++ b/server/src/main/java/com/cloud/api/ApiAsyncJobDispatcher.java
@@ -21,11 +21,6 @@ import java.util.Map;
import javax.inject.Inject;
-import org.apache.log4j.Logger;
-
-import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
-
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.BaseAsyncCreateCmd;
@@ -36,6 +31,7 @@ import org.apache.cloudstack.framework.jobs.AsyncJob;
import org.apache.cloudstack.framework.jobs.AsyncJobDispatcher;
import org.apache.cloudstack.framework.jobs.AsyncJobManager;
import org.apache.cloudstack.jobs.JobInfo;
+import org.apache.log4j.Logger;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.user.Account;
@@ -43,6 +39,8 @@ import com.cloud.user.User;
import com.cloud.utils.component.AdapterBase;
import com.cloud.utils.component.ComponentContext;
import com.cloud.utils.db.EntityManager;
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
public class ApiAsyncJobDispatcher extends AdapterBase implements AsyncJobDispatcher {
private static final Logger s_logger = Logger.getLogger(ApiAsyncJobDispatcher.class);
diff --git a/server/src/main/java/com/cloud/api/ApiDBUtils.java b/server/src/main/java/com/cloud/api/ApiDBUtils.java
index bd11136b63..c874aa19b5 100644
--- a/server/src/main/java/com/cloud/api/ApiDBUtils.java
+++ b/server/src/main/java/com/cloud/api/ApiDBUtils.java
@@ -278,7 +278,7 @@ import org.apache.cloudstack.acl.RoleService;
import org.apache.cloudstack.affinity.AffinityGroup;
import org.apache.cloudstack.affinity.AffinityGroupResponse;
import org.apache.cloudstack.affinity.dao.AffinityGroupDao;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants.DomainDetails;
import org.apache.cloudstack.api.ApiConstants.HostDetails;
import org.apache.cloudstack.api.ApiConstants.VMDetails;
@@ -1663,7 +1663,7 @@ public class ApiDBUtils {
return null;
}
String jobInstanceId = null;
- ApiCommandJobType jobInstanceType = EnumUtils.fromString(ApiCommandJobType.class, job.getInstanceType(), ApiCommandJobType.None);
+ ApiCommandResourceType jobInstanceType = EnumUtils.fromString(ApiCommandResourceType.class, job.getInstanceType(), ApiCommandResourceType.None);
if (job.getInstanceId() == null) {
// when assert is hit, implement 'getInstanceId' of BaseAsyncCmd and return appropriate instance id
@@ -1671,118 +1671,118 @@ public class ApiDBUtils {
return null;
}
- if (jobInstanceType == ApiCommandJobType.Volume) {
+ if (jobInstanceType == ApiCommandResourceType.Volume) {
VolumeVO volume = ApiDBUtils.findVolumeById(job.getInstanceId());
if (volume != null) {
jobInstanceId = volume.getUuid();
}
- } else if (jobInstanceType == ApiCommandJobType.Template || jobInstanceType == ApiCommandJobType.Iso) {
+ } else if (jobInstanceType == ApiCommandResourceType.Template || jobInstanceType == ApiCommandResourceType.Iso) {
VMTemplateVO template = ApiDBUtils.findTemplateById(job.getInstanceId());
if (template != null) {
jobInstanceId = template.getUuid();
}
- } else if (jobInstanceType == ApiCommandJobType.VirtualMachine || jobInstanceType == ApiCommandJobType.ConsoleProxy ||
- jobInstanceType == ApiCommandJobType.SystemVm || jobInstanceType == ApiCommandJobType.DomainRouter) {
+ } else if (jobInstanceType == ApiCommandResourceType.VirtualMachine || jobInstanceType == ApiCommandResourceType.ConsoleProxy ||
+ jobInstanceType == ApiCommandResourceType.SystemVm || jobInstanceType == ApiCommandResourceType.DomainRouter) {
VMInstanceVO vm = ApiDBUtils.findVMInstanceById(job.getInstanceId());
if (vm != null) {
jobInstanceId = vm.getUuid();
}
- } else if (jobInstanceType == ApiCommandJobType.Snapshot) {
+ } else if (jobInstanceType == ApiCommandResourceType.Snapshot) {
Snapshot snapshot = ApiDBUtils.findSnapshotById(job.getInstanceId());
if (snapshot != null) {
jobInstanceId = snapshot.getUuid();
}
- } else if (jobInstanceType == ApiCommandJobType.Host) {
+ } else if (jobInstanceType == ApiCommandResourceType.Host) {
Host host = ApiDBUtils.findHostById(job.getInstanceId());
if (host != null) {
jobInstanceId = host.getUuid();
}
- } else if (jobInstanceType == ApiCommandJobType.StoragePool) {
+ } else if (jobInstanceType == ApiCommandResourceType.StoragePool) {
StoragePoolVO spool = ApiDBUtils.findStoragePoolById(job.getInstanceId());
if (spool != null) {
jobInstanceId = spool.getUuid();
}
- } else if (jobInstanceType == ApiCommandJobType.IpAddress) {
+ } else if (jobInstanceType == ApiCommandResourceType.IpAddress) {
IPAddressVO ip = ApiDBUtils.findIpAddressById(job.getInstanceId());
if (ip != null) {
jobInstanceId = ip.getUuid();
}
- } else if (jobInstanceType == ApiCommandJobType.SecurityGroup) {
+ } else if (jobInstanceType == ApiCommandResourceType.SecurityGroup) {
SecurityGroup sg = ApiDBUtils.findSecurityGroupById(job.getInstanceId());
if (sg != null) {
jobInstanceId = sg.getUuid();
}
- } else if (jobInstanceType == ApiCommandJobType.PhysicalNetwork) {
+ } else if (jobInstanceType == ApiCommandResourceType.PhysicalNetwork) {
PhysicalNetworkVO pnet = ApiDBUtils.findPhysicalNetworkById(job.getInstanceId());
if (pnet != null) {
jobInstanceId = pnet.getUuid();
}
- } else if (jobInstanceType == ApiCommandJobType.TrafficType) {
+ } else if (jobInstanceType == ApiCommandResourceType.TrafficType) {
PhysicalNetworkTrafficTypeVO trafficType = ApiDBUtils.findPhysicalNetworkTrafficTypeById(job.getInstanceId());
if (trafficType != null) {
jobInstanceId = trafficType.getUuid();
}
- } else if (jobInstanceType == ApiCommandJobType.PhysicalNetworkServiceProvider) {
+ } else if (jobInstanceType == ApiCommandResourceType.PhysicalNetworkServiceProvider) {
PhysicalNetworkServiceProvider sp = ApiDBUtils.findPhysicalNetworkServiceProviderById(job.getInstanceId());
if (sp != null) {
jobInstanceId = sp.getUuid();
}
- } else if (jobInstanceType == ApiCommandJobType.FirewallRule) {
+ } else if (jobInstanceType == ApiCommandResourceType.FirewallRule) {
FirewallRuleVO fw = ApiDBUtils.findFirewallRuleById(job.getInstanceId());
if (fw != null) {
jobInstanceId = fw.getUuid();
}
- } else if (jobInstanceType == ApiCommandJobType.Account) {
+ } else if (jobInstanceType == ApiCommandResourceType.Account) {
Account acct = ApiDBUtils.findAccountById(job.getInstanceId());
if (acct != null) {
jobInstanceId = acct.getUuid();
}
- } else if (jobInstanceType == ApiCommandJobType.User) {
+ } else if (jobInstanceType == ApiCommandResourceType.User) {
User usr = ApiDBUtils.findUserById(job.getInstanceId());
if (usr != null) {
jobInstanceId = usr.getUuid();
}
- } else if (jobInstanceType == ApiCommandJobType.StaticRoute) {
+ } else if (jobInstanceType == ApiCommandResourceType.StaticRoute) {
StaticRouteVO route = ApiDBUtils.findStaticRouteById(job.getInstanceId());
if (route != null) {
jobInstanceId = route.getUuid();
}
- } else if (jobInstanceType == ApiCommandJobType.PrivateGateway) {
+ } else if (jobInstanceType == ApiCommandResourceType.PrivateGateway) {
VpcGatewayVO gateway = ApiDBUtils.findVpcGatewayById(job.getInstanceId());
if (gateway != null) {
jobInstanceId = gateway.getUuid();
}
- } else if (jobInstanceType == ApiCommandJobType.Counter) {
+ } else if (jobInstanceType == ApiCommandResourceType.Counter) {
CounterVO counter = ApiDBUtils.getCounter(job.getInstanceId());
if (counter != null) {
jobInstanceId = counter.getUuid();
}
- } else if (jobInstanceType == ApiCommandJobType.Condition) {
+ } else if (jobInstanceType == ApiCommandResourceType.Condition) {
ConditionVO condition = ApiDBUtils.findConditionById(job.getInstanceId());
if (condition != null) {
jobInstanceId = condition.getUuid();
}
- } else if (jobInstanceType == ApiCommandJobType.AutoScalePolicy) {
+ } else if (jobInstanceType == ApiCommandResourceType.AutoScalePolicy) {
AutoScalePolicyVO policy = ApiDBUtils.findAutoScalePolicyById(job.getInstanceId());
if (policy != null) {
jobInstanceId = policy.getUuid();
}
- } else if (jobInstanceType == ApiCommandJobType.AutoScaleVmProfile) {
+ } else if (jobInstanceType == ApiCommandResourceType.AutoScaleVmProfile) {
AutoScaleVmProfileVO profile = ApiDBUtils.findAutoScaleVmProfileById(job.getInstanceId());
if (profile != null) {
jobInstanceId = profile.getUuid();
}
- } else if (jobInstanceType == ApiCommandJobType.AutoScaleVmGroup) {
+ } else if (jobInstanceType == ApiCommandResourceType.AutoScaleVmGroup) {
AutoScaleVmGroupVO group = ApiDBUtils.findAutoScaleVmGroupById(job.getInstanceId());
if (group != null) {
jobInstanceId = group.getUuid();
}
- } else if (jobInstanceType == ApiCommandJobType.Network) {
+ } else if (jobInstanceType == ApiCommandResourceType.Network) {
NetworkVO networkVO = ApiDBUtils.findNetworkById(job.getInstanceId());
if(networkVO != null) {
jobInstanceId = networkVO.getUuid();
}
- } else if (jobInstanceType != ApiCommandJobType.None) {
+ } else if (jobInstanceType != ApiCommandResourceType.None) {
// TODO : when we hit here, we need to add instanceType -> UUID
// entity table mapping
assert (false);
diff --git a/server/src/main/java/com/cloud/api/ApiDispatcher.java b/server/src/main/java/com/cloud/api/ApiDispatcher.java
index 11615ea3f5..3880f2aa9d 100644
--- a/server/src/main/java/com/cloud/api/ApiDispatcher.java
+++ b/server/src/main/java/com/cloud/api/ApiDispatcher.java
@@ -21,14 +21,11 @@ import java.util.Map;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
-import com.cloud.projects.Project;
-import com.cloud.utils.db.EntityManager;
-import org.apache.log4j.Logger;
-
import org.apache.cloudstack.acl.ControlledEntity;
import org.apache.cloudstack.acl.InfrastructureEntity;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.BaseAsyncCreateCmd;
@@ -38,12 +35,15 @@ import org.apache.cloudstack.api.BaseCustomIdCmd;
import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.framework.jobs.AsyncJob;
import org.apache.cloudstack.framework.jobs.AsyncJobManager;
+import org.apache.log4j.Logger;
import com.cloud.api.dispatch.DispatchChain;
import com.cloud.api.dispatch.DispatchChainFactory;
import com.cloud.api.dispatch.DispatchTask;
+import com.cloud.projects.Project;
import com.cloud.user.Account;
import com.cloud.user.AccountManager;
+import com.cloud.utils.db.EntityManager;
public class ApiDispatcher {
private static final Logger s_logger = Logger.getLogger(ApiDispatcher.class.getName());
@@ -115,6 +115,13 @@ public class ApiDispatcher {
Project project = _entityMgr.findByUuidIncludingRemoved(Project.class, params.get(ApiConstants.PROJECT_ID));
ctx.setProject(project);
}
+ if (cmd.getApiResourceId() != null) {
+ ctx.setEventResourceId(cmd.getApiResourceId());
+ }
+ final ApiCommandResourceType resourceType = cmd.getApiResourceType();
+ if (resourceType != null && !ApiCommandResourceType.None.equals(resourceType)) {
+ ctx.setEventResourceType(resourceType);
+ }
// TODO This if shouldn't be here. Use polymorphism and move it to validateSpecificParameters
if (cmd instanceof BaseAsyncCmd) {
diff --git a/server/src/main/java/com/cloud/api/ApiServer.java b/server/src/main/java/com/cloud/api/ApiServer.java
index f5eaf30510..76b592a9d9 100644
--- a/server/src/main/java/com/cloud/api/ApiServer.java
+++ b/server/src/main/java/com/cloud/api/ApiServer.java
@@ -728,7 +728,7 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer
// save the scheduled event
final Long eventId =
ActionEventUtils.onScheduledActionEvent((callerUserId == null) ? (Long)User.UID_SYSTEM : callerUserId, asyncCmd.getEntityOwnerId(), asyncCmd.getEventType(),
- asyncCmd.getEventDescription(), asyncCmd.isDisplay(), startEventId);
+ asyncCmd.getEventDescription(), asyncCmd.getApiResourceId(), asyncCmd.getApiResourceType().toString(), asyncCmd.isDisplay(), startEventId);
if (startEventId == 0) {
// There was no create event before, set current event id as start eventId
startEventId = eventId;
@@ -738,7 +738,7 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer
params.put("cmdEventType", asyncCmd.getEventType().toString());
params.put("ctxDetails", ApiGsonHelper.getBuilder().create().toJson(ctx.getContextParameters()));
- Long instanceId = (objectId == null) ? asyncCmd.getInstanceId() : objectId;
+ Long instanceId = (objectId == null) ? asyncCmd.getApiResourceId() : objectId;
// users can provide the job id they want to use, so log as it is a uuid and is unique
String injectedJobId = asyncCmd.getInjectedJobId();
@@ -746,7 +746,7 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer
AsyncJobVO job = new AsyncJobVO("", callerUserId, caller.getId(), cmdObj.getClass().getName(),
ApiGsonHelper.getBuilder().create().toJson(params), instanceId,
- asyncCmd.getInstanceType() != null ? asyncCmd.getInstanceType().toString() : null,
+ asyncCmd.getApiResourceType() != null ? asyncCmd.getApiResourceType().toString() : null,
injectedJobId);
job.setDispatcher(asyncDispatcher.getName());
@@ -801,9 +801,9 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer
// list all jobs for ROOT admin
if (accountMgr.isRootAdmin(account.getId())) {
- jobs = asyncMgr.findInstancePendingAsyncJobs(command.getInstanceType().toString(), null);
+ jobs = asyncMgr.findInstancePendingAsyncJobs(command.getApiResourceType().toString(), null);
} else {
- jobs = asyncMgr.findInstancePendingAsyncJobs(command.getInstanceType().toString(), account.getId());
+ jobs = asyncMgr.findInstancePendingAsyncJobs(command.getApiResourceType().toString(), account.getId());
}
if (jobs.size() == 0) {
diff --git a/server/src/main/java/com/cloud/api/dispatch/ParamProcessWorker.java b/server/src/main/java/com/cloud/api/dispatch/ParamProcessWorker.java
index 45c1d7cb59..b3dd82425d 100644
--- a/server/src/main/java/com/cloud/api/dispatch/ParamProcessWorker.java
+++ b/server/src/main/java/com/cloud/api/dispatch/ParamProcessWorker.java
@@ -38,7 +38,7 @@ import org.apache.cloudstack.acl.SecurityChecker;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.ACL;
import org.apache.cloudstack.api.ApiArgValidator;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.BaseAsyncCreateCmd;
@@ -49,6 +49,7 @@ import org.apache.cloudstack.api.InternalIdentity;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.context.CallContext;
+import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
import com.cloud.exception.InvalidParameterValueException;
@@ -58,7 +59,6 @@ import com.cloud.utils.DateUtil;
import com.cloud.utils.UuidUtils;
import com.cloud.utils.db.EntityManager;
import com.cloud.utils.exception.CloudRuntimeException;
-import org.apache.commons.lang3.StringUtils;
public class ParamProcessWorker implements DispatchWorker {
@@ -293,7 +293,7 @@ public class ParamProcessWorker implements DispatchWorker {
if (entityOwners != null) {
owners = entityOwners.stream().map(id -> _accountMgr.getAccount(id)).toArray(Account[]::new);
} else {
- if (cmd.getEntityOwnerId() == Account.ACCOUNT_ID_SYSTEM && cmd instanceof BaseAsyncCmd && ((BaseAsyncCmd)cmd).getInstanceType() == ApiCommandJobType.Network) {
+ if (cmd.getEntityOwnerId() == Account.ACCOUNT_ID_SYSTEM && cmd instanceof BaseAsyncCmd && ((BaseAsyncCmd)cmd).getApiResourceType() == ApiCommandResourceType.Network) {
if (s_logger.isDebugEnabled()) {
s_logger.debug("Skipping access check on the network owner if the owner is ROOT/system.");
}
diff --git a/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java b/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java
index 4bc5ccd56d..430bb0e117 100644
--- a/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java
+++ b/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java
@@ -26,21 +26,25 @@ import java.util.List;
import java.util.ListIterator;
import java.util.Map;
import java.util.Set;
+import java.util.UUID;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import javax.inject.Inject;
-import com.cloud.storage.VolumeApiServiceImpl;
+import org.apache.cloudstack.acl.ControlledEntity;
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
+import org.apache.cloudstack.acl.SecurityChecker;
import org.apache.cloudstack.affinity.AffinityGroupDomainMapVO;
import org.apache.cloudstack.affinity.AffinityGroupResponse;
import org.apache.cloudstack.affinity.AffinityGroupVMMapVO;
import org.apache.cloudstack.affinity.dao.AffinityGroupDomainMapDao;
import org.apache.cloudstack.affinity.dao.AffinityGroupVMMapDao;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseListProjectAndAccountResourcesCmd;
+import org.apache.cloudstack.api.InternalIdentity;
import org.apache.cloudstack.api.ResourceDetail;
import org.apache.cloudstack.api.ResponseGenerator;
import org.apache.cloudstack.api.ResponseObject.ResponseView;
@@ -126,6 +130,7 @@ import org.apache.cloudstack.storage.datastore.db.StoragePoolDetailVO;
import org.apache.cloudstack.storage.datastore.db.StoragePoolDetailsDao;
import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
@@ -195,8 +200,8 @@ import com.cloud.network.dao.RouterHealthCheckResultVO;
import com.cloud.network.router.VirtualNetworkApplianceManager;
import com.cloud.network.security.SecurityGroupVMMapVO;
import com.cloud.network.security.dao.SecurityGroupVMMapDao;
-import com.cloud.org.Grouping;
import com.cloud.offering.DiskOffering;
+import com.cloud.org.Grouping;
import com.cloud.projects.Project;
import com.cloud.projects.Project.ListProjectResourcesCriteria;
import com.cloud.projects.ProjectInvitation;
@@ -215,17 +220,18 @@ import com.cloud.service.ServiceOfferingVO;
import com.cloud.service.dao.ServiceOfferingDao;
import com.cloud.service.dao.ServiceOfferingDetailsDao;
import com.cloud.storage.DataStoreRole;
+import com.cloud.storage.DiskOfferingVO;
import com.cloud.storage.ScopeType;
import com.cloud.storage.Storage;
import com.cloud.storage.Storage.ImageFormat;
import com.cloud.storage.Storage.TemplateType;
import com.cloud.storage.StoragePoolTagVO;
-import com.cloud.storage.DiskOfferingVO;
import com.cloud.storage.VMTemplateVO;
import com.cloud.storage.Volume;
+import com.cloud.storage.VolumeApiServiceImpl;
+import com.cloud.storage.dao.DiskOfferingDao;
import com.cloud.storage.dao.StoragePoolTagsDao;
import com.cloud.storage.dao.VMTemplateDao;
-import com.cloud.storage.dao.DiskOfferingDao;
import com.cloud.storage.dao.VolumeDao;
import com.cloud.tags.ResourceTagVO;
import com.cloud.tags.dao.ResourceTagDao;
@@ -241,6 +247,7 @@ import com.cloud.utils.DateUtil;
import com.cloud.utils.NumbersUtil;
import com.cloud.utils.Pair;
import com.cloud.utils.Ternary;
+import com.cloud.utils.db.EntityManager;
import com.cloud.utils.db.Filter;
import com.cloud.utils.db.GenericSearchBuilder;
import com.cloud.utils.db.JoinBuilder;
@@ -258,7 +265,6 @@ import com.cloud.vm.VmDetailConstants;
import com.cloud.vm.dao.DomainRouterDao;
import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.VMInstanceDao;
-import org.apache.commons.lang3.StringUtils;
@Component
public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements QueryService, Configurable {
@@ -445,6 +451,9 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q
@Inject
private ResourceIconDao resourceIconDao;
+ @Inject
+ EntityManager entityManager;
+
private SearchCriteria<ServiceOfferingJoinVO> getMinimumCpuServiceOfferingJoinSearchCriteria(int cpu) {
SearchCriteria<ServiceOfferingJoinVO> sc = _srvOfferingJoinDao.createSearchCriteria();
SearchCriteria<ServiceOfferingJoinVO> sc1 = _srvOfferingJoinDao.createSearchCriteria();
@@ -654,6 +663,7 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q
private Pair<List<EventJoinVO>, Integer> searchForEventsInternal(ListEventsCmd cmd) {
Account caller = CallContext.current().getCallingAccount();
+ boolean isRootAdmin = _accountMgr.isRootAdmin(caller.getId());
List<Long> permittedAccounts = new ArrayList<Long>();
Long id = cmd.getId();
@@ -665,6 +675,37 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q
Integer entryTime = cmd.getEntryTime();
Integer duration = cmd.getDuration();
Long startId = cmd.getStartId();
+ final String resourceUuid = cmd.getResourceId();
+ final String resourceTypeStr = cmd.getResourceType();
+ ApiCommandResourceType resourceType = null;
+ Long resourceId = null;
+ if (resourceTypeStr != null) {
+ resourceType = ApiCommandResourceType.fromString(resourceTypeStr);
+ if (resourceType == null) {
+ throw new InvalidParameterValueException(String.format("Invalid %s", ApiConstants.RESOURCE_TYPE));
+ }
+ }
+ if (resourceUuid != null) {
+ if (resourceTypeStr == null) {
+ throw new InvalidParameterValueException(String.format("%s parameter must be used with %s parameter", ApiConstants.RESOURCE_ID, ApiConstants.RESOURCE_TYPE));
+ }
+ try {
+ UUID.fromString(resourceUuid);
+ } catch (IllegalArgumentException ex) {
+ throw new InvalidParameterValueException(String.format("Invalid %s", ApiConstants.RESOURCE_ID));
+ }
+ Object object = entityManager.findByUuidIncludingRemoved(resourceType.getAssociatedClass(), resourceUuid);
+ if (object instanceof InternalIdentity) {
+ resourceId = ((InternalIdentity)object).getId();
+ }
+ if (resourceId == null) {
+ throw new InvalidParameterValueException(String.format("Invalid %s", ApiConstants.RESOURCE_ID));
+ }
+ if (!isRootAdmin && object instanceof ControlledEntity) {
+ ControlledEntity entity = (ControlledEntity)object;
+ _accountMgr.checkAccess(CallContext.current().getCallingAccount(), SecurityChecker.AccessType.ListEntry, entity.getAccountId() == caller.getId(), entity);
+ }
+ }
Ternary<Long, Boolean, ListProjectResourcesCriteria> domainIdRecursiveListProject = new Ternary<Long, Boolean, ListProjectResourcesCriteria>(cmd.getDomainId(), cmd.isRecursive(), null);
_accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false);
@@ -688,6 +729,8 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q
sb.and("createDate", sb.entity().getCreateDate(), SearchCriteria.Op.BETWEEN);
sb.and("displayEvent", sb.entity().getDisplay(), SearchCriteria.Op.EQ);
sb.and("archived", sb.entity().getArchived(), SearchCriteria.Op.EQ);
+ sb.and("resourceId", sb.entity().getResourceId(), SearchCriteria.Op.EQ);
+ sb.and("resourceType", sb.entity().getResourceType(), SearchCriteria.Op.EQ);
SearchCriteria<EventJoinVO> sc = sb.create();
// building ACL condition
@@ -733,6 +776,14 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q
sc.setParameters("createDateL", endDate);
}
+ if (resourceId != null) {
+ sc.setParameters("resourceId", resourceId);
+ }
+
+ if (resourceType != null) {
+ sc.setParameters("resourceType", resourceType.toString());
+ }
+
sc.setParameters("archived", false);
Pair<List<EventJoinVO>, Integer> eventPair = null;
diff --git a/server/src/main/java/com/cloud/api/query/vo/AsyncJobJoinVO.java b/server/src/main/java/com/cloud/api/query/vo/AsyncJobJoinVO.java
index d68987b465..a4db864367 100644
--- a/server/src/main/java/com/cloud/api/query/vo/AsyncJobJoinVO.java
+++ b/server/src/main/java/com/cloud/api/query/vo/AsyncJobJoinVO.java
@@ -25,10 +25,10 @@ import javax.persistence.Enumerated;
import javax.persistence.Id;
import javax.persistence.Table;
-import com.cloud.user.Account;
-import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.framework.jobs.AsyncJob;
+import com.cloud.user.Account;
import com.cloud.utils.db.GenericDao;
@Entity
@@ -95,7 +95,7 @@ public class AsyncJobJoinVO extends BaseViewVO implements ControlledViewEntity {
@Enumerated(value = EnumType.STRING)
@Column(name = "instance_type", length = 64)
- private ApiCommandJobType instanceType;
+ private ApiCommandResourceType instanceType;
@Column(name = "instance_id", length = 64)
private Long instanceId;
@@ -192,7 +192,7 @@ public class AsyncJobJoinVO extends BaseViewVO implements ControlledViewEntity {
return removed;
}
- public ApiCommandJobType getInstanceType() {
+ public ApiCommandResourceType getInstanceType() {
return instanceType;
}
diff --git a/server/src/main/java/com/cloud/api/query/vo/EventJoinVO.java b/server/src/main/java/com/cloud/api/query/vo/EventJoinVO.java
index d94e7b28ca..bf731e0dbd 100644
--- a/server/src/main/java/com/cloud/api/query/vo/EventJoinVO.java
+++ b/server/src/main/java/com/cloud/api/query/vo/EventJoinVO.java
@@ -97,6 +97,12 @@ public class EventJoinVO extends BaseViewVO implements ControlledViewEntity {
@Column(name = "domain_path")
private String domainPath = null;
+ @Column(name = "resource_id")
+ private Long resourceId;
+
+ @Column(name = "resource_type")
+ private String resourceType;
+
@Column(name = "project_id")
private long projectId;
@@ -165,6 +171,14 @@ public class EventJoinVO extends BaseViewVO implements ControlledViewEntity {
return domainPath;
}
+ public Long getResourceId() {
+ return resourceId;
+ }
+
+ public String getResourceType() {
+ return resourceType;
+ }
+
public long getProjectId() {
return projectId;
}
diff --git a/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java
index d954f71556..e1c02e16d5 100755
--- a/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java
+++ b/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java
@@ -117,6 +117,7 @@ import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.ObjectUtils;
+import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
import com.cloud.agent.AgentManager;
@@ -269,7 +270,6 @@ import com.cloud.vm.dao.VMInstanceDao;
import com.google.common.base.Enums;
import com.google.common.base.MoreObjects;
import com.google.common.base.Preconditions;
-import org.apache.commons.lang3.StringUtils;
import com.google.common.collect.Sets;
import com.googlecode.ipv6.IPv6Address;
@@ -1390,6 +1390,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
@Override
@DB
+ @ActionEvent(eventType = EventTypes.EVENT_POD_DELETE, eventDescription = "deleting pod", async = false)
public boolean deletePod(final DeletePodCmd cmd) {
final Long podId = cmd.getId();
@@ -1897,6 +1898,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
}
@Override
+ @ActionEvent(eventType = EventTypes.EVENT_POD_EDIT, eventDescription = "updating pod", async = false)
public Pod editPod(final UpdatePodCmd cmd) {
return editPod(cmd.getId(), cmd.getPodName(), null, null, cmd.getGateway(), cmd.getNetmask(), cmd.getAllocationState());
}
@@ -2010,6 +2012,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
}
@Override
+ @ActionEvent(eventType = EventTypes.EVENT_POD_CREATE, eventDescription = "creating pod", async = false)
public Pod createPod(final long zoneId, final String name, final String startIp, final String endIp, final String gateway, final String netmask, String allocationState) {
// Check if the gateway is a valid IP address
if (!NetUtils.isValidIp4(gateway)) {
@@ -2095,6 +2098,8 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
_zoneDao.addLinkLocalIpAddress(zoneId, pod.getId(), linkLocalIpRanges[0], linkLocalIpRanges[1]);
}
+ CallContext.current().putContextParameter(Pod.class, pod.getUuid());
+
return pod;
}
});
@@ -3028,6 +3033,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
}
CallContext.current().setEventDetails("Service offering id=" + serviceOffering.getId());
+ CallContext.current().putContextParameter(ServiceOffering.class, serviceOffering.getId());
return serviceOffering;
} else {
return null;
@@ -3451,6 +3457,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
diskOfferingDetailsDao.saveDetails(detailsVO);
}
CallContext.current().setEventDetails("Disk offering id=" + newDiskOffering.getId());
+ CallContext.current().putContextParameter(DiskOffering.class, newDiskOffering.getId());
return offering;
}
return null;
@@ -5891,6 +5898,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
final NetworkOfferingVO offering = createNetworkOffering(name, displayText, trafficType, tags, specifyVlan, availability, networkRate, serviceProviderMap, false, guestType, false,
serviceOfferingId, conserveMode, serviceCapabilityMap, specifyIpRanges, isPersistent, details, egressDefaultPolicy, maxconn, enableKeepAlive, forVpc, domainIds, zoneIds, enable);
CallContext.current().setEventDetails(" Id: " + offering.getId() + " Name: " + name);
+ CallContext.current().putContextParameter(NetworkOffering.class, offering.getId());
return offering;
}
diff --git a/server/src/main/java/com/cloud/event/ActionEventInterceptor.java b/server/src/main/java/com/cloud/event/ActionEventInterceptor.java
index d2dacd98a4..30ff61b3e7 100644
--- a/server/src/main/java/com/cloud/event/ActionEventInterceptor.java
+++ b/server/src/main/java/com/cloud/event/ActionEventInterceptor.java
@@ -22,8 +22,9 @@ import java.util.List;
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
-
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.context.CallContext;
+import org.apache.commons.lang3.StringUtils;
import com.cloud.utils.component.ComponentMethodInterceptor;
@@ -70,10 +71,13 @@ public class ActionEventInterceptor implements ComponentMethodInterceptor, Metho
CallContext ctx = CallContext.current();
String eventDescription = getEventDescription(actionEvent, ctx);
+ Long eventResourceId = getEventResourceId(actionEvent, ctx);
+ String eventResourceType = getEventResourceType(actionEvent, ctx);
String eventType = getEventType(actionEvent, ctx);
boolean isEventDisplayEnabled = ctx.isEventDisplayEnabled();
- ActionEventUtils.onStartedActionEventFromContext(eventType, eventDescription, isEventDisplayEnabled);
+ ActionEventUtils.onStartedActionEventFromContext(eventType, eventDescription,
+ eventResourceId, eventResourceType, isEventDisplayEnabled);
}
}
return event;
@@ -87,6 +91,8 @@ public class ActionEventInterceptor implements ComponentMethodInterceptor, Metho
long accountId = ctx.getProject() != null ? ctx.getProject().getProjectAccountId() : ctx.getCallingAccountId(); //This should be the entity owner id rather than the Calling User Account Id.
long startEventId = ctx.getStartEventId();
String eventDescription = getEventDescription(actionEvent, ctx);
+ Long eventResourceId = getEventResourceId(actionEvent, ctx);
+ String eventResourceType = getEventResourceType(actionEvent, ctx);
String eventType = getEventType(actionEvent, ctx);
boolean isEventDisplayEnabled = ctx.isEventDisplayEnabled();
@@ -96,11 +102,13 @@ public class ActionEventInterceptor implements ComponentMethodInterceptor, Metho
if (actionEvent.create()) {
//This start event has to be used for subsequent events of this action
startEventId = ActionEventUtils.onCreatedActionEvent(userId, accountId, EventVO.LEVEL_INFO, eventType,
- isEventDisplayEnabled, "Successfully created entity for " + eventDescription);
+ isEventDisplayEnabled, "Successfully created entity for " + eventDescription,
+ eventResourceId, eventResourceType);
ctx.setStartEventId(startEventId);
} else {
ActionEventUtils.onCompletedActionEvent(userId, accountId, EventVO.LEVEL_INFO, eventType,
- isEventDisplayEnabled, "Successfully completed " + eventDescription, startEventId);
+ isEventDisplayEnabled, "Successfully completed " + eventDescription,
+ eventResourceId, eventResourceType, startEventId);
}
}
}
@@ -113,6 +121,8 @@ public class ActionEventInterceptor implements ComponentMethodInterceptor, Metho
long accountId = ctx.getCallingAccountId();
long startEventId = ctx.getStartEventId();
String eventDescription = getEventDescription(actionEvent, ctx);
+ Long eventResourceId = getEventResourceId(actionEvent, ctx);
+ String eventResourceType = getEventResourceType(actionEvent, ctx);
String eventType = getEventType(actionEvent, ctx);
boolean isEventDisplayEnabled = ctx.isEventDisplayEnabled();
@@ -121,11 +131,13 @@ public class ActionEventInterceptor implements ComponentMethodInterceptor, Metho
if (actionEvent.create()) {
long eventId = ActionEventUtils.onCreatedActionEvent(userId, accountId, EventVO.LEVEL_ERROR, eventType,
- isEventDisplayEnabled, "Error while creating entity for " + eventDescription);
+ isEventDisplayEnabled, "Error while creating entity for " + eventDescription,
+ eventResourceId, eventResourceType);
ctx.setStartEventId(eventId);
} else {
ActionEventUtils.onCompletedActionEvent(userId, accountId, EventVO.LEVEL_ERROR, eventType, isEventDisplayEnabled,
- "Error while " + eventDescription, startEventId);
+ "Error while " + eventDescription,
+ eventResourceId, eventResourceType, startEventId);
}
}
}
@@ -183,4 +195,20 @@ public class ActionEventInterceptor implements ComponentMethodInterceptor, Metho
return eventDescription;
}
+
+ protected Long getEventResourceId(ActionEvent actionEvent, CallContext ctx) {
+ Long resourceId = ctx.getEventResourceId();
+ if (resourceId != null) {
+ return resourceId;
+ }
+ return actionEvent.resourceId() == -1? null : actionEvent.resourceId();
+ }
+
+ protected String getEventResourceType(ActionEvent actionEvent, CallContext ctx) {
+ ApiCommandResourceType resourceType = ctx.getEventResourceType();
+ if (resourceType != null) {
+ return resourceType.toString();
+ }
+ return StringUtils.isEmpty(actionEvent.resourceType()) ? null : actionEvent.resourceType();
+ }
}
diff --git a/server/src/main/java/com/cloud/event/ActionEventUtils.java b/server/src/main/java/com/cloud/event/ActionEventUtils.java
index b1dd8fdbaa..bac216e35c 100644
--- a/server/src/main/java/com/cloud/event/ActionEventUtils.java
+++ b/server/src/main/java/com/cloud/event/ActionEventUtils.java
@@ -17,6 +17,8 @@
package com.cloud.event;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
@@ -25,28 +27,33 @@ import java.util.Map;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
-import com.cloud.utils.ReflectUtil;
-import com.cloud.utils.db.EntityManager;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.Identity;
-import org.apache.log4j.Logger;
-import org.springframework.beans.factory.NoSuchBeanDefinitionException;
-
+import org.apache.cloudstack.api.InternalIdentity;
import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
import org.apache.cloudstack.framework.events.EventBus;
import org.apache.cloudstack.framework.events.EventBusException;
+import org.apache.commons.lang3.ObjectUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.log4j.Logger;
+import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import com.cloud.configuration.Config;
import com.cloud.event.dao.EventDao;
+import com.cloud.projects.Project;
+import com.cloud.projects.dao.ProjectDao;
import com.cloud.server.ManagementService;
import com.cloud.user.Account;
import com.cloud.user.AccountVO;
import com.cloud.user.User;
import com.cloud.user.dao.AccountDao;
import com.cloud.user.dao.UserDao;
-import com.cloud.projects.dao.ProjectDao;
-import com.cloud.projects.Project;
+import com.cloud.utils.Pair;
+import com.cloud.utils.ReflectUtil;
+import com.cloud.utils.Ternary;
import com.cloud.utils.component.ComponentContext;
+import com.cloud.utils.db.EntityManager;
public class ActionEventUtils {
private static final Logger s_logger = Logger.getLogger(ActionEventUtils.class);
@@ -91,79 +98,71 @@ public class ActionEventUtils {
s_configDao = configDao;
}
- public static Long onActionEvent(Long userId, Long accountId, Long domainId, String type, String description) {
-
- publishOnEventBus(userId, accountId, EventCategory.ACTION_EVENT.getName(), type, com.cloud.event.Event.State.Completed, description);
-
- Event event = persistActionEvent(userId, accountId, domainId, null, type, Event.State.Completed, true, description, null);
-
+ public static Long onActionEvent(Long userId, Long accountId, Long domainId, String type, String description, Long resourceId, String resourceType) {
+ Ternary<Long, String, String> resourceDetails = getResourceDetails(resourceId, resourceType, type);
+ publishOnEventBus(userId, accountId, EventCategory.ACTION_EVENT.getName(), type, com.cloud.event.Event.State.Completed, description, resourceDetails.second(), resourceDetails.third());
+ Event event = persistActionEvent(userId, accountId, domainId, null, type, Event.State.Completed, true, description, resourceDetails.first(), resourceDetails.third(), null);
return event.getId();
}
/*
* Save event after scheduling an async job
*/
- public static Long onScheduledActionEvent(Long userId, Long accountId, String type, String description, boolean eventDisplayEnabled, long startEventId) {
-
- publishOnEventBus(userId, accountId, EventCategory.ACTION_EVENT.getName(), type, com.cloud.event.Event.State.Scheduled, description);
-
- Event event = persistActionEvent(userId, accountId, null, null, type, Event.State.Scheduled, eventDisplayEnabled, description, startEventId);
-
+ public static Long onScheduledActionEvent(Long userId, Long accountId, String type, String description, Long resourceId, String resourceType, boolean eventDisplayEnabled, long startEventId) {
+ Ternary<Long, String, String> resourceDetails = getResourceDetails(resourceId, resourceType, type);
+ publishOnEventBus(userId, accountId, EventCategory.ACTION_EVENT.getName(), type, com.cloud.event.Event.State.Scheduled, description, resourceDetails.second(), resourceDetails.third());
+ Event event = persistActionEvent(userId, accountId, null, null, type, Event.State.Scheduled, eventDisplayEnabled, description, resourceDetails.first(), resourceDetails.third(), startEventId);
return event.getId();
}
- public static void startNestedActionEvent(String eventType, String eventDescription) {
+ public static void startNestedActionEvent(String eventType, String eventDescription, Long resourceId, String resourceType) {
CallContext.setActionEventInfo(eventType, eventDescription);
- onStartedActionEventFromContext(eventType, eventDescription, true);
+ onStartedActionEventFromContext(eventType, eventDescription, resourceId, resourceType, true);
}
- public static void onStartedActionEventFromContext(String eventType, String eventDescription, boolean eventDisplayEnabled) {
+ public static void onStartedActionEventFromContext(String eventType, String eventDescription, Long resourceId, String resourceType, boolean eventDisplayEnabled) {
CallContext ctx = CallContext.current();
long userId = ctx.getCallingUserId();
long accountId = ctx.getProject() != null ? ctx.getProject().getProjectAccountId() : ctx.getCallingAccountId(); //This should be the entity owner id rather than the Calling User Account Id.
long startEventId = ctx.getStartEventId();
if (!eventType.equals(""))
- ActionEventUtils.onStartedActionEvent(userId, accountId, eventType, eventDescription, eventDisplayEnabled, startEventId);
+ ActionEventUtils.onStartedActionEvent(userId, accountId, eventType, eventDescription, resourceId, resourceType, eventDisplayEnabled, startEventId);
}
/*
* Save event after starting execution of an async job
*/
- public static Long onStartedActionEvent(Long userId, Long accountId, String type, String description, boolean eventDisplayEnabled, long startEventId) {
-
- publishOnEventBus(userId, accountId, EventCategory.ACTION_EVENT.getName(), type, com.cloud.event.Event.State.Started, description);
-
- Event event = persistActionEvent(userId, accountId, null, null, type, Event.State.Started, eventDisplayEnabled, description, startEventId);
-
+ public static Long onStartedActionEvent(Long userId, Long accountId, String type, String description, Long resourceId, String resourceType, boolean eventDisplayEnabled, long startEventId) {
+ Ternary<Long, String, String> resourceDetails = getResourceDetails(resourceId, resourceType, type);
+ publishOnEventBus(userId, accountId, EventCategory.ACTION_EVENT.getName(), type, com.cloud.event.Event.State.Started, description, resourceDetails.second(), resourceDetails.third());
+ Event event = persistActionEvent(userId, accountId, null, null, type, Event.State.Started, eventDisplayEnabled, description, resourceDetails.first(), resourceDetails.third(), startEventId);
return event.getId();
}
- public static Long onCompletedActionEvent(Long userId, Long accountId, String level, String type, String description, long startEventId) {
+ public static Long onCompletedActionEvent(Long userId, Long accountId, String level, String type, String description, Long resourceId, String resourceType, long startEventId) {
- return onCompletedActionEvent(userId, accountId, level, type, true, description, startEventId);
+ return onCompletedActionEvent(userId, accountId, level, type, true, description, resourceId, resourceType, startEventId);
}
- public static Long onCompletedActionEvent(Long userId, Long accountId, String level, String type, boolean eventDisplayEnabled, String description, long startEventId) {
- publishOnEventBus(userId, accountId, EventCategory.ACTION_EVENT.getName(), type, com.cloud.event.Event.State.Completed, description);
-
- Event event = persistActionEvent(userId, accountId, null, level, type, Event.State.Completed, eventDisplayEnabled, description, startEventId);
-
+ public static Long onCompletedActionEvent(Long userId, Long accountId, String level, String type, boolean eventDisplayEnabled, String description, Long resourceId, String resourceType, long startEventId) {
+ Ternary<Long, String, String> resourceDetails = getResourceDetails(resourceId, resourceType, type);
+ publishOnEventBus(userId, accountId, EventCategory.ACTION_EVENT.getName(), type, com.cloud.event.Event.State.Completed, description, resourceDetails.second(), resourceDetails.third());
+ Event event = persistActionEvent(userId, accountId, null, level, type, Event.State.Completed, eventDisplayEnabled, description, resourceDetails.first(), resourceDetails.third(), startEventId);
return event.getId();
}
- public static Long onCreatedActionEvent(Long userId, Long accountId, String level, String type, boolean eventDisplayEnabled, String description) {
-
- publishOnEventBus(userId, accountId, EventCategory.ACTION_EVENT.getName(), type, com.cloud.event.Event.State.Created, description);
-
- Event event = persistActionEvent(userId, accountId, null, level, type, Event.State.Created, eventDisplayEnabled, description, null);
-
+ public static Long onCreatedActionEvent(Long userId, Long accountId, String level, String type, boolean eventDisplayEnabled, String description, Long resourceId, String resourceType) {
+ Ternary<Long, String, String> resourceDetails = getResourceDetails(resourceId, resourceType, type);
+ publishOnEventBus(userId, accountId, EventCategory.ACTION_EVENT.getName(), type, com.cloud.event.Event.State.Created, description, resourceDetails.second(), resourceDetails.third());
+ Event event = persistActionEvent(userId, accountId, null, level, type, Event.State.Created, eventDisplayEnabled, description, resourceDetails.first(), resourceDetails.third(), null);
return event.getId();
}
private static Event persistActionEvent(Long userId, Long accountId, Long domainId, String level, String type,
- Event.State state, boolean eventDisplayEnabled, String description, Long startEventId) {
+ Event.State state, boolean eventDisplayEnabled, String description,
+ Long resourceId, String resourceType, Long startEventId) {
EventVO event = new EventVO();
event.setUserId(userId);
event.setAccountId(accountId);
@@ -177,6 +176,12 @@ public class ActionEventUtils {
} else {
event.setDomainId(getDomainId(accountId));
}
+ if (resourceId != null) {
+ event.setResourceId(resourceId);
+ }
+ if (resourceType != null) {
+ event.setResourceType(resourceType);
+ }
if (level != null && !level.isEmpty()) {
event.setLevel(level);
}
@@ -187,7 +192,7 @@ public class ActionEventUtils {
return event;
}
- private static void publishOnEventBus(long userId, long accountId, String eventCategory, String eventType, Event.State state, String description) {
+ private static void publishOnEventBus(long userId, long accountId, String eventCategory, String eventType, Event.State state, String description, String resourceUuid, String resourceType) {
String configKey = Config.PublishActionEvent.key();
String value = s_configDao.getValue(configKey);
boolean configValue = Boolean.parseBoolean(value);
@@ -199,27 +204,8 @@ public class ActionEventUtils {
return; // no provider is configured to provide events bus, so just return
}
- // get the entity details for which ActionEvent is generated
- String entityType = null;
- String entityUuid = null;
- CallContext context = CallContext.current();
- //Get entity Class(Example - VirtualMachine.class) from the event Type eg. - VM.CREATE
- Class<?> entityClass = EventTypes.getEntityClassForEvent(eventType);
- if (entityClass != null){
- //Get uuid from id
- Object param = context.getContextParameter(entityClass);
- if(param != null){
- try {
- entityUuid = getEntityUuid(entityClass, param);
- entityType = entityClass.getName();
- } catch (Exception e){
- s_logger.debug("Caught exception while finding entityUUID, moving on");
- }
- }
- }
-
org.apache.cloudstack.framework.events.Event event =
- new org.apache.cloudstack.framework.events.Event(ManagementService.Name, eventCategory, eventType, EventTypes.getEntityForEvent(eventType), entityUuid);
+ new org.apache.cloudstack.framework.events.Event(ManagementService.Name, eventCategory, eventType, resourceType, resourceUuid);
Map<String, String> eventDescription = new HashMap<String, String>();
Project project = s_projectDao.findByProjectAccountId(accountId);
@@ -236,8 +222,8 @@ public class ActionEventUtils {
eventDescription.put("account", account.getUuid());
eventDescription.put("event", eventType);
eventDescription.put("status", state.toString());
- eventDescription.put("entity", entityType);
- eventDescription.put("entityuuid", entityUuid);
+ eventDescription.put("entity", resourceType);
+ eventDescription.put("entityuuid", resourceUuid);
//Put all the first class entities that are touched during the action. For now atleast put in the vmid.
populateFirstClassEntities(eventDescription);
eventDescription.put("description", description);
@@ -254,21 +240,71 @@ public class ActionEventUtils {
}
}
+ private static Ternary<Long, String, String> getResourceDetailsUsingEntityClassAndContext(Class<?> entityClass, ApiCommandResourceType resourceType) {
+ CallContext context = CallContext.current();
+ ApiCommandResourceType alternateResourceType = ApiCommandResourceType.valueFromAssociatedClass(entityClass);
+ if (resourceType == null ||
+ (ObjectUtils.allNotNull(resourceType, alternateResourceType) &&
+ resourceType.getAssociatedClass() != alternateResourceType.getAssociatedClass())) {
+ resourceType = alternateResourceType;
+ }
+ String entityType = resourceType == null ? entityClass.getSimpleName() : resourceType.toString();
+ String entityUuid = null;
+ Long entityId = null;
+ Object param = context.getContextParameter(entityClass);
+ if(param != null){
+ try {
+ entityUuid = getEntityUuid(entityClass, param);
+ } catch (Exception e){
+ s_logger.debug("Caught exception while finding entityUUID, moving on");
+ }
+ }
+ if (param instanceof Long) {
+ entityId = (Long)param;
+ } else if (entityUuid != null) {
+ Object obj = s_entityMgr.findByUuidIncludingRemoved(entityClass, entityUuid);
+ if (obj instanceof InternalIdentity) {
+ entityId = ((InternalIdentity)obj).getId();
+ }
+ }
+ return new Ternary<>(entityId, entityUuid, entityType);
+ }
+
+ private static Ternary<Long, String, String> getResourceDetailsUsingEventTypeAndContext(ApiCommandResourceType resourceType, String eventType) {
+ Class<?> entityClass = EventTypes.getEntityClassForEvent(eventType);
+ if (entityClass != null && s_entityMgr.validEntityType(entityClass)) {
+ return getResourceDetailsUsingEntityClassAndContext(entityClass, resourceType);
+ } else if (resourceType != null && resourceType.getAssociatedClass() != null && s_entityMgr.validEntityType(resourceType.getAssociatedClass())) {
+ return getResourceDetailsUsingEntityClassAndContext(resourceType.getAssociatedClass(), resourceType);
+ }
+ return new Ternary<Long, String, String>(null, null, null);
+ }
+
private static String getEntityUuid(Class<?> entityType, Object entityId){
- // entityId can be internal db id or UUID so accordingly call findbyId or return uuid directly
+ // entityId can be internal db id or UUID so accordingly call findById or return uuid directly
if (entityId instanceof Long){
// Its internal db id - use findById
- final Object objVO = s_entityMgr.findById(entityType, (Long)entityId);
- return ((Identity)objVO).getUuid();
- } else if(entityId instanceof String){
+ if (!s_entityMgr.validEntityType(entityType)) {
+ return null;
+ }
+ final Object objVO = s_entityMgr.findByIdIncludingRemoved(entityType, (Long)entityId);
+ if (objVO != null) {
+ return ((Identity) objVO).getUuid();
+ }
+ } else if(entityId instanceof String) {
try{
// In case its an async job the internal db id would be a string because of json deserialization
Long internalId = Long.valueOf((String) entityId);
- final Object objVO = s_entityMgr.findById(entityType, internalId);
- return ((Identity)objVO).getUuid();
- } catch (NumberFormatException e){
+ if (!s_entityMgr.validEntityType(entityType)) {
+ return null;
+ }
+ final Object objVO = s_entityMgr.findByIdIncludingRemoved(entityType, internalId);
+ if (objVO != null) {
+ return ((Identity) objVO).getUuid();
+ }
+ } catch (NumberFormatException e) {
// It is uuid - so return it
return (String)entityId;
}
@@ -277,6 +313,62 @@ public class ActionEventUtils {
return null;
}
+ private static Ternary<Long, String, String> updateParentResourceCases(Ternary<Long, String, String> details) {
+ if (!ObjectUtils.allNotNull(details, details.first(), details.second(), details.third())) {
+ return details;
+ }
+ HashMap<String, Pair<ApiCommandResourceType, String>> typeParentMethodMap = new HashMap<>();
+ typeParentMethodMap.put(ApiCommandResourceType.Snapshot.toString(), new Pair<>(ApiCommandResourceType.Volume, "getVolumeId"));
+ typeParentMethodMap.put(ApiCommandResourceType.VmSnapshot.toString(), new Pair<>(ApiCommandResourceType.VirtualMachine, "getVmId"));
+ if (!typeParentMethodMap.containsKey(details.third())) {
+ return details;
+ }
+ ApiCommandResourceType type = ApiCommandResourceType.fromString(details.third());
+ if (type == null || !s_entityMgr.validEntityType(type.getAssociatedClass())) {
+ return details;
+ }
+ Object objVO = s_entityMgr.findByIdIncludingRemoved(type.getAssociatedClass(), details.first());
+ if (objVO == null) {
+ return details;
+ }
+ String methodName = typeParentMethodMap.get(type.toString()).second();
+ try {
+ Method m = objVO.getClass().getMethod(methodName);
+ Long id = (Long)m.invoke(objVO);
+ if (id == null) {
+ return details;
+ }
+ type = typeParentMethodMap.get(type.toString()).first();
+ objVO = s_entityMgr.findByIdIncludingRemoved(type.getAssociatedClass(), id);
+ if (objVO == null) {
+ return details;
+ }
+ return new Ternary<>(id, ((Identity)objVO).getUuid(), type.toString());
+ } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
+ s_logger.debug(String.format("Parent resource for resource ID: %d, type: %s can not be found using method %s", details.first(), type, methodName));
+ }
+ return details;
+ }
+
+ private static Ternary<Long, String, String> getResourceDetails(Long resourceId, String resourceType, String eventType) {
+ Ternary<Long, String, String> details;
+ Class<?> clazz = null;
+ ApiCommandResourceType type = null;
+ if (StringUtils.isNotEmpty(resourceType)) {
+ type = ApiCommandResourceType.fromString(resourceType);
+ if (type != null) {
+ clazz = type.getAssociatedClass();
+ }
+ }
+ if (ObjectUtils.allNotNull(resourceId, clazz)) {
+ String uuid = getEntityUuid(clazz, resourceId);
+ details = new Ternary<>(resourceId, uuid, resourceType);
+ } else {
+ details = getResourceDetailsUsingEventTypeAndContext(type, eventType);
+ }
+ return updateParentResourceCases(details);
+ }
+
private static long getDomainId(long accountId) {
AccountVO account = s_accountDao.findByIdIncludingRemoved(accountId);
if (account == null) {
diff --git a/server/src/main/java/com/cloud/event/dao/EventJoinDaoImpl.java b/server/src/main/java/com/cloud/event/dao/EventJoinDaoImpl.java
index 8a78a6934f..a177d8d556 100644
--- a/server/src/main/java/com/cloud/event/dao/EventJoinDaoImpl.java
+++ b/server/src/main/java/com/cloud/event/dao/EventJoinDaoImpl.java
@@ -16,18 +16,25 @@
// under the License.
package com.cloud.event.dao;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
import java.util.List;
+import javax.inject.Inject;
+import org.apache.cloudstack.api.ApiCommandResourceType;
+import org.apache.cloudstack.api.Identity;
+import org.apache.cloudstack.api.response.EventResponse;
+import org.apache.commons.lang3.ObjectUtils;
+import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
-import org.apache.cloudstack.api.response.EventResponse;
-
import com.cloud.api.ApiResponseHelper;
import com.cloud.api.query.vo.EventJoinVO;
import com.cloud.event.Event;
import com.cloud.event.Event.State;
+import com.cloud.utils.db.EntityManager;
import com.cloud.utils.db.Filter;
import com.cloud.utils.db.GenericDaoBase;
import com.cloud.utils.db.SearchBuilder;
@@ -43,6 +50,24 @@ public class EventJoinDaoImpl extends GenericDaoBase<EventJoinVO, Long> implemen
private SearchBuilder<EventJoinVO> CompletedEventSearch;
+ @Inject
+ EntityManager entityMgr;
+
+ private String getResourceName(Object obj) {
+ String[] possibleMethods = {"getDisplayName", "getHostName","getName", "getAccountName", "getUsername"};
+ for (String possibleMethodName : possibleMethods) {
+ try {
+ Method m = obj.getClass().getMethod(possibleMethodName);
+ String name = (String)m.invoke(obj);
+ if (StringUtils.isEmpty(name)) {
+ continue;
+ }
+ return name;
+ } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException ignored) {}
+ }
+ return null;
+ }
+
protected EventJoinDaoImpl() {
vrSearch = createSearchBuilder();
@@ -85,7 +110,19 @@ public class EventJoinDaoImpl extends GenericDaoBase<EventJoinVO, Long> implemen
responseEvent.setParentId(event.getStartUuid());
responseEvent.setState(event.getState());
responseEvent.setUsername(event.getUserName());
-
+ Long resourceId = event.getResourceId();
+ responseEvent.setResourceType(event.getResourceType());
+ ApiCommandResourceType resourceType = ApiCommandResourceType.fromString(event.getResourceType());
+ Class<?> clazz = resourceType != null ? resourceType.getAssociatedClass() : null;
+ if (ObjectUtils.allNotNull(resourceId, clazz) && entityMgr.validEntityType(clazz)) {
+ final Object objVO = entityMgr.findByIdIncludingRemoved(clazz, resourceId);
+ if (objVO instanceof Identity) {
+ responseEvent.setResourceId(((Identity)objVO).getUuid());
+ }
+ if (objVO != null) {
+ responseEvent.setResourceName(getResourceName(objVO));
+ }
+ }
ApiResponseHelper.populateOwner(responseEvent, event);
responseEvent.setObjectName("event");
return responseEvent;
diff --git a/server/src/main/java/com/cloud/network/IpAddressManagerImpl.java b/server/src/main/java/com/cloud/network/IpAddressManagerImpl.java
index dcd89fa569..ccba7f54b5 100644
--- a/server/src/main/java/com/cloud/network/IpAddressManagerImpl.java
+++ b/server/src/main/java/com/cloud/network/IpAddressManagerImpl.java
@@ -34,6 +34,7 @@ import org.apache.cloudstack.acl.ControlledEntity.ACLType;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.annotation.AnnotationService;
import org.apache.cloudstack.annotation.dao.AnnotationDao;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.response.AcquirePodIpCmdResponse;
import org.apache.cloudstack.context.CallContext;
@@ -1720,7 +1721,7 @@ public class IpAddressManagerImpl extends ManagerBase implements IpAddressManage
// trigger an action event for the transfer of portable IP across the networks, so that external entities
// monitoring for this event can initiate the route advertisement for the availability of IP from the zoe
ActionEventUtils.onActionEvent(User.UID_SYSTEM, Account.ACCOUNT_ID_SYSTEM, Domain.ROOT_DOMAIN, EventTypes.EVENT_PORTABLE_IP_TRANSFER,
- "Portable IP associated is transferred from network " + currentNetworkId + " to " + newNetworkId);
+ "Portable IP associated is transferred from network " + currentNetworkId + " to " + newNetworkId, newNetworkId, ApiCommandResourceType.Network.toString());
}
protected List<? extends Network> getIsolatedNetworksWithSourceNATOwnedByAccountInZone(long zoneId, Account owner) {
diff --git a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java
index 3a87cee0b1..8cb2866464 100644
--- a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java
+++ b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java
@@ -601,7 +601,11 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService, C
_accountMgr.checkAccess(caller, null, false, ipOwner);
}
- return _ipAddrMgr.allocateIp(ipOwner, false, caller, callerUserId, zone, displayIp, ipaddress);
+ IpAddress address = _ipAddrMgr.allocateIp(ipOwner, false, caller, callerUserId, zone, displayIp, ipaddress);
+ if (address != null) {
+ CallContext.current().putContextParameter(IpAddress.class, address.getUuid());
+ }
+ return address;
}
@Override
@@ -3474,6 +3478,8 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService, C
// Add the config drive provider
addConfigDriveToPhysicalNetwork(pNetwork.getId());
+ CallContext.current().putContextParameter(PhysicalNetwork.class, pNetwork.getUuid());
+
return pNetwork;
}
});
@@ -4854,8 +4860,11 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService, C
releaseIpAddress(ipId);
throw new InvalidParameterValueException("Can't assign ip to the network directly when network belongs" + " to VPC.Specify vpcId to associate ip address to VPC");
}
- return _ipAddrMgr.associateIPToGuestNetwork(ipId, networkId, true);
-
+ IpAddress address = _ipAddrMgr.associateIPToGuestNetwork(ipId, networkId, true);
+ if (address != null) {
+ CallContext.current().putContextParameter(IpAddress.class, address.getUuid());
+ }
+ return address;
}
@Override
diff --git a/server/src/main/java/com/cloud/network/firewall/FirewallManagerImpl.java b/server/src/main/java/com/cloud/network/firewall/FirewallManagerImpl.java
index 7608627100..0d13712679 100644
--- a/server/src/main/java/com/cloud/network/firewall/FirewallManagerImpl.java
+++ b/server/src/main/java/com/cloud/network/firewall/FirewallManagerImpl.java
@@ -256,6 +256,7 @@ public class FirewallManagerImpl extends ManagerBase implements FirewallService,
throw new CloudRuntimeException("Unable to update the state to add for " + newRule);
}
CallContext.current().setEventDetails("Rule Id: " + newRule.getId());
+ CallContext.current().putContextParameter(FirewallRule.class, newRule.getId());
return newRule;
}
diff --git a/server/src/main/java/com/cloud/network/guru/ExternalGuestNetworkGuru.java b/server/src/main/java/com/cloud/network/guru/ExternalGuestNetworkGuru.java
index 5da0952b0d..09824a0735 100644
--- a/server/src/main/java/com/cloud/network/guru/ExternalGuestNetworkGuru.java
+++ b/server/src/main/java/com/cloud/network/guru/ExternalGuestNetworkGuru.java
@@ -17,6 +17,15 @@
package com.cloud.network.guru;
+import java.util.List;
+
+import javax.inject.Inject;
+
+import org.apache.cloudstack.api.ApiCommandResourceType;
+import org.apache.cloudstack.context.CallContext;
+import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
+import org.apache.log4j.Logger;
+
import com.cloud.dc.DataCenter;
import com.cloud.dc.DataCenter.NetworkType;
import com.cloud.dc.dao.DataCenterDao;
@@ -60,12 +69,6 @@ import com.cloud.vm.NicVO;
import com.cloud.vm.ReservationContext;
import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachineProfile;
-import org.apache.cloudstack.context.CallContext;
-import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
-import org.apache.log4j.Logger;
-
-import javax.inject.Inject;
-import java.util.List;
public class ExternalGuestNetworkGuru extends GuestNetworkGuru {
private static final Logger s_logger = Logger.getLogger(ExternalGuestNetworkGuru.class);
@@ -158,7 +161,7 @@ public class ExternalGuestNetworkGuru extends GuestNetworkGuru {
implemented.setBroadcastUri(BroadcastDomainType.Vlan.toUri(vlanTag));
ActionEventUtils.onCompletedActionEvent(CallContext.current().getCallingUserId(), config.getAccountId(), EventVO.LEVEL_INFO,
- EventTypes.EVENT_ZONE_VLAN_ASSIGN, "Assigned Zone Vlan: " + vnet + " Network Id: " + config.getId(), 0);
+ EventTypes.EVENT_ZONE_VLAN_ASSIGN, "Assigned Zone Vlan: " + vnet + " Network Id: " + config.getId(), config.getId(), ApiCommandResourceType.Network.toString(), 0);
} else {
vlanTag = Integer.parseInt(BroadcastDomainType.getValue(config.getBroadcastUri()));
implemented.setBroadcastUri(config.getBroadcastUri());
diff --git a/server/src/main/java/com/cloud/network/guru/GuestNetworkGuru.java b/server/src/main/java/com/cloud/network/guru/GuestNetworkGuru.java
index a29afa775e..0ff82f5473 100644
--- a/server/src/main/java/com/cloud/network/guru/GuestNetworkGuru.java
+++ b/server/src/main/java/com/cloud/network/guru/GuestNetworkGuru.java
@@ -22,7 +22,7 @@ import java.util.Random;
import javax.inject.Inject;
-import com.cloud.network.Network.GuestType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
import org.apache.cloudstack.framework.config.ConfigKey;
@@ -45,6 +45,7 @@ import com.cloud.exception.InsufficientVirtualNetworkCapacityException;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.network.IpAddressManager;
import com.cloud.network.Network;
+import com.cloud.network.Network.GuestType;
import com.cloud.network.Network.Provider;
import com.cloud.network.Network.Service;
import com.cloud.network.Network.State;
@@ -299,7 +300,7 @@ public abstract class GuestNetworkGuru extends AdapterBase implements NetworkGur
}
implemented.setBroadcastUri(BroadcastDomainType.Vlan.toUri(vnet));
ActionEventUtils.onCompletedActionEvent(CallContext.current().getCallingUserId(), network.getAccountId(), EventVO.LEVEL_INFO,
- EventTypes.EVENT_ZONE_VLAN_ASSIGN, "Assigned Zone Vlan: " + vnet + " Network Id: " + network.getId(), 0);
+ EventTypes.EVENT_ZONE_VLAN_ASSIGN, "Assigned Zone Vlan: " + vnet + " Network Id: " + network.getId(), network.getId(), ApiCommandResourceType.Network.toString(), 0);
} else {
implemented.setBroadcastUri(network.getBroadcastUri());
}
@@ -455,7 +456,8 @@ public abstract class GuestNetworkGuru extends AdapterBase implements NetworkGur
_dcDao.releaseVnet(BroadcastDomainType.getValue(profile.getBroadcastUri()), profile.getDataCenterId(), profile.getPhysicalNetworkId(), profile.getAccountId(),
profile.getReservationId());
ActionEventUtils.onCompletedActionEvent(CallContext.current().getCallingUserId(), profile.getAccountId(), EventVO.LEVEL_INFO, EventTypes.EVENT_ZONE_VLAN_RELEASE,
- "Released Zone Vnet: " + BroadcastDomainType.getValue(profile.getBroadcastUri()) + " for Network: " + profile.getId(), 0);
+ "Released Zone Vnet: " + BroadcastDomainType.getValue(profile.getBroadcastUri()) + " for Network: " + profile.getId(),
+ profile.getDataCenterId(), ApiCommandResourceType.Zone.toString(), 0);
}
profile.setBroadcastUri(null);
diff --git a/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
index cd676aa629..2512e9c520 100644
--- a/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
+++ b/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
@@ -17,6 +17,8 @@
package com.cloud.network.router;
+import static com.cloud.utils.NumbersUtil.toHumanReadableSize;
+
import java.lang.reflect.Type;
import java.math.BigInteger;
import java.nio.charset.Charset;
@@ -45,10 +47,9 @@ import java.util.concurrent.TimeUnit;
import javax.inject.Inject;
import javax.naming.ConfigurationException;
-import com.cloud.offering.DiskOffering;
-import com.cloud.server.ManagementServer;
import org.apache.cloudstack.alert.AlertService;
import org.apache.cloudstack.alert.AlertService.AlertType;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.command.admin.router.RebootRouterCmd;
import org.apache.cloudstack.api.command.admin.router.UpgradeRouterCmd;
import org.apache.cloudstack.api.command.admin.router.UpgradeRouterTemplateCmd;
@@ -209,6 +210,7 @@ import com.cloud.network.vpc.Vpc;
import com.cloud.network.vpc.VpcService;
import com.cloud.network.vpc.dao.VpcDao;
import com.cloud.network.vpn.Site2SiteVpnManager;
+import com.cloud.offering.DiskOffering;
import com.cloud.offering.NetworkOffering;
import com.cloud.offering.ServiceOffering;
import com.cloud.offerings.NetworkOfferingVO;
@@ -216,6 +218,7 @@ import com.cloud.offerings.dao.NetworkOfferingDao;
import com.cloud.resource.ResourceManager;
import com.cloud.serializer.GsonHelper;
import com.cloud.server.ConfigurationServer;
+import com.cloud.server.ManagementServer;
import com.cloud.service.ServiceOfferingVO;
import com.cloud.service.dao.ServiceOfferingDao;
import com.cloud.storage.Storage.ProvisioningType;
@@ -274,8 +277,6 @@ import com.cloud.vm.dao.VMInstanceDao;
import com.google.gson.JsonSyntaxException;
import com.google.gson.reflect.TypeToken;
-import static com.cloud.utils.NumbersUtil.toHumanReadableSize;
-
/**
* VirtualNetworkApplianceManagerImpl manages the different types of virtual
* network appliances available in the Cloud Stack.
@@ -1247,7 +1248,7 @@ Configurable, StateListener<VirtualMachine.State, VirtualMachine.Event, VirtualM
}
ActionEventUtils.onActionEvent(User.UID_SYSTEM, Account.ACCOUNT_ID_SYSTEM,
- Domain.ROOT_DOMAIN, EventTypes.EVENT_ROUTER_HEALTH_CHECKS, failingChecksEvent.toString());
+ Domain.ROOT_DOMAIN, EventTypes.EVENT_ROUTER_HEALTH_CHECKS, failingChecksEvent.toString(), router.getId(), ApiCommandResourceType.DomainRouter.toString());
if (recreateRouter) {
s_logger.warn("Health Check Alert: Found failing checks in " +
@@ -1271,7 +1272,7 @@ Configurable, StateListener<VirtualMachine.State, VirtualMachine.Event, VirtualM
s_logger.debug("Attempting restart VPC " + router.getVpcName() + " for router recreation " + router.getUuid());
ActionEventUtils.onActionEvent(User.UID_SYSTEM, Account.ACCOUNT_ID_SYSTEM,
Domain.ROOT_DOMAIN, EventTypes.EVENT_ROUTER_HEALTH_CHECKS,
- "Recreating router " + router.getUuid() + " by restarting VPC " + router.getVpcUuid());
+ "Recreating router " + router.getUuid() + " by restarting VPC " + router.getVpcUuid(), router.getId(), ApiCommandResourceType.DomainRouter.toString());
return vpcService.restartVpc(router.getVpcId(), true, false, false, user);
} catch (Exception e) {
s_logger.error("Failed to restart VPC for router recreation " +
@@ -1295,7 +1296,7 @@ Configurable, StateListener<VirtualMachine.State, VirtualMachine.Event, VirtualM
s_logger.info("Attempting restart network " + router.getNetworkName() + " for router recreation " + router.getUuid());
ActionEventUtils.onActionEvent(User.UID_SYSTEM, Account.ACCOUNT_ID_SYSTEM,
Domain.ROOT_DOMAIN, EventTypes.EVENT_ROUTER_HEALTH_CHECKS,
- "Recreating router " + router.getUuid() + " by restarting network " + router.getNetworkUuid());
+ "Recreating router " + router.getUuid() + " by restarting network " + router.getNetworkUuid(), router.getId(), ApiCommandResourceType.DomainRouter.toString());
return networkService.restartNetwork(router.getNetworkId(), true, false, false, user);
} catch (Exception e) {
s_logger.error("Failed to restart network " + router.getNetworkName() +
@@ -3228,7 +3229,7 @@ Configurable, StateListener<VirtualMachine.State, VirtualMachine.Event, VirtualM
params.put("id", "" + router.getId());
params.put("ctxStartEventId", "1");
final AsyncJobVO job = new AsyncJobVO("", User.UID_SYSTEM, router.getAccountId(), RebootRouterCmd.class.getName(), ApiGsonHelper.getBuilder().create().toJson(params),
- router.getId(), cmd.getInstanceType() != null ? cmd.getInstanceType().toString() : null, null);
+ router.getId(), cmd.getApiResourceType() != null ? cmd.getApiResourceType().toString() : null, null);
job.setDispatcher(_asyncDispatcher.getName());
final long jobId = _asyncMgr.submitAsyncJob(job);
jobIds.add(jobId);
diff --git a/server/src/main/java/com/cloud/network/vpc/NetworkACLManagerImpl.java b/server/src/main/java/com/cloud/network/vpc/NetworkACLManagerImpl.java
index d5f31d6275..55e65689de 100644
--- a/server/src/main/java/com/cloud/network/vpc/NetworkACLManagerImpl.java
+++ b/server/src/main/java/com/cloud/network/vpc/NetworkACLManagerImpl.java
@@ -227,7 +227,7 @@ public class NetworkACLManagerImpl extends ManagerBase implements NetworkACLMana
throw new CloudRuntimeException("Unable to update the state to add for " + networkACLItemVOFromDatabase);
}
CallContext.current().setEventDetails("ACL Item Id: " + networkACLItemVOFromDatabase.getId());
-
+ CallContext.current().putContextParameter(NetworkACLItem.class, networkACLItemVOFromDatabase.getAclId());
return networkACLItemVOFromDatabase;
}
});
diff --git a/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java b/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java
index 6120b46802..eda1d2d4d8 100644
--- a/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java
+++ b/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java
@@ -503,6 +503,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
}
}
CallContext.current().setEventDetails(" Id: " + offering.getId() + " Name: " + name);
+ CallContext.current().putContextParameter(VpcOffering.class, offering.getUuid());
return offering;
}
@@ -1046,7 +1047,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
final VpcVO persistedVpc = _vpcDao.persist(vpc, finalizeServicesAndProvidersForVpc(vpc.getZoneId(), vpc.getVpcOfferingId()));
_resourceLimitMgr.incrementResourceCount(vpc.getAccountId(), ResourceType.vpc);
s_logger.debug("Created VPC " + persistedVpc);
-
+ CallContext.current().putContextParameter(Vpc.class, persistedVpc.getUuid());
return persistedVpc;
}
});
@@ -2630,7 +2631,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
});
s_logger.debug("Successfully assigned ip " + ipToAssoc + " to vpc " + vpc);
-
+ CallContext.current().putContextParameter(IpAddress.class, ipToAssoc.getUuid());
return _ipAddressDao.findById(ipId);
}
diff --git a/server/src/main/java/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java b/server/src/main/java/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java
index 8b20072cf3..51d5f9cf97 100644
--- a/server/src/main/java/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java
+++ b/server/src/main/java/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java
@@ -248,7 +248,8 @@ public class Site2SiteVpnManagerImpl extends ManagerBase implements Site2SiteVpn
Site2SiteCustomerGatewayVO gw =
new Site2SiteCustomerGatewayVO(name, accountId, owner.getDomainId(), gatewayIp, peerCidrList, ipsecPsk, ikePolicy, espPolicy, ikeLifetime, espLifetime, dpd, encap, splitConnections, ikeVersion);
- _customerGatewayDao.persist(gw);
+ gw = _customerGatewayDao.persist(gw);
+ CallContext.current().putContextParameter(Site2SiteCustomerGateway.class, gw.getUuid());
return gw;
}
@@ -369,6 +370,11 @@ public class Site2SiteVpnManagerImpl extends ManagerBase implements Site2SiteVpn
return _vpnGatewayDao.findById(vpnGatewayId);
}
+ @Override
+ public Site2SiteCustomerGateway getCustomerGateway(Long customerGatewayId) {
+ return _customerGatewayDao.findById(customerGatewayId);
+ }
+
@Override
@ActionEvent(eventType = EventTypes.EVENT_S2S_VPN_CUSTOMER_GATEWAY_DELETE, eventDescription = "deleting s2s vpn customer gateway", create = true)
public boolean deleteCustomerGateway(DeleteVpnCustomerGatewayCmd cmd) {
diff --git a/server/src/main/java/com/cloud/resource/ResourceManagerImpl.java b/server/src/main/java/com/cloud/resource/ResourceManagerImpl.java
index b891e00f90..25689c9ce5 100755
--- a/server/src/main/java/com/cloud/resource/ResourceManagerImpl.java
+++ b/server/src/main/java/com/cloud/resource/ResourceManagerImpl.java
@@ -580,6 +580,7 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
}
s_logger.info("External cluster has been successfully discovered by " + discoverer.getName());
success = true;
+ CallContext.current().putContextParameter(Cluster.class, cluster.getUuid());
return result;
}
@@ -1331,7 +1332,7 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
throw new CloudRuntimeException(err + e.getMessage());
}
- ActionEventUtils.onStartedActionEvent(CallContext.current().getCallingUserId(), CallContext.current().getCallingAccountId(), EventTypes.EVENT_MAINTENANCE_PREPARE, "starting maintenance for host " + hostId, true, 0);
+ ActionEventUtils.onStartedActionEvent(CallContext.current().getCallingUserId(), CallContext.current().getCallingAccountId(), EventTypes.EVENT_MAINTENANCE_PREPARE, "starting maintenance for host " + hostId, hostId, null, true, 0);
_agentMgr.pullAgentToMaintenance(hostId);
/* TODO: move below to listener */
@@ -1652,7 +1653,7 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
resourceStateTransitTo(host, ResourceState.Event.InternalEnterMaintenance, _nodeId);
ActionEventUtils.onCompletedActionEvent(CallContext.current().getCallingUserId(), CallContext.current().getCallingAccountId(),
EventVO.LEVEL_INFO, EventTypes.EVENT_MAINTENANCE_PREPARE,
- "completed maintenance for host " + host.getId(), 0);
+ "completed maintenance for host " + host.getId(), host.getId(), null, 0);
return true;
}
diff --git a/server/src/main/java/com/cloud/resource/RollingMaintenanceManagerImpl.java b/server/src/main/java/com/cloud/resource/RollingMaintenanceManagerImpl.java
index f298d25782..96b34b7f07 100644
--- a/server/src/main/java/com/cloud/resource/RollingMaintenanceManagerImpl.java
+++ b/server/src/main/java/com/cloud/resource/RollingMaintenanceManagerImpl.java
@@ -16,6 +16,29 @@
// under the License.
package com.cloud.resource;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import javax.inject.Inject;
+import javax.naming.ConfigurationException;
+
+import org.apache.cloudstack.affinity.AffinityGroupProcessor;
+import org.apache.cloudstack.api.ApiCommandResourceType;
+import org.apache.cloudstack.api.command.admin.cluster.UpdateClusterCmd;
+import org.apache.cloudstack.api.command.admin.host.PrepareForMaintenanceCmd;
+import org.apache.cloudstack.api.command.admin.resource.StartRollingMaintenanceCmd;
+import org.apache.cloudstack.context.CallContext;
+import org.apache.cloudstack.framework.config.ConfigKey;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.log4j.Logger;
+
import com.cloud.agent.AgentManager;
import com.cloud.agent.api.Answer;
import com.cloud.agent.api.RollingMaintenanceAnswer;
@@ -48,26 +71,6 @@ import com.cloud.vm.VMInstanceVO;
import com.cloud.vm.VirtualMachine.State;
import com.cloud.vm.VirtualMachineProfileImpl;
import com.cloud.vm.dao.VMInstanceDao;
-import org.apache.cloudstack.affinity.AffinityGroupProcessor;
-import org.apache.cloudstack.api.command.admin.cluster.UpdateClusterCmd;
-import org.apache.cloudstack.api.command.admin.host.PrepareForMaintenanceCmd;
-import org.apache.cloudstack.api.command.admin.resource.StartRollingMaintenanceCmd;
-import org.apache.cloudstack.context.CallContext;
-import org.apache.cloudstack.framework.config.ConfigKey;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.log4j.Logger;
-
-import javax.inject.Inject;
-import javax.naming.ConfigurationException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.stream.Collectors;
public class RollingMaintenanceManagerImpl extends ManagerBase implements RollingMaintenanceManager {
@@ -131,12 +134,12 @@ public class RollingMaintenanceManagerImpl extends ManagerBase implements Rollin
Pair<ResourceType, List<Long>> pair = getResourceTypeIdPair(cmd);
ResourceType entity = pair.first();
List<Long> ids = pair.second();
-
+ String cmdResourceType = ApiCommandResourceType.fromString(entity.name()) != null ? ApiCommandResourceType.fromString(entity.name()).toString() : null;
String description = String.format("Success: %s, details: %s, hosts updated: %s, hosts skipped: %s", success, details,
generateReportHostsUpdated(hostsUpdated), generateReportHostsSkipped(hostsSkipped));
ActionEventUtils.onCompletedActionEvent(CallContext.current().getCallingUserId(), CallContext.current().getCallingAccountId(),
EventVO.LEVEL_INFO, cmd.getEventType(),
- "Completed rolling maintenance for entity " + entity + " with IDs: " + ids + " - " + description, 0);
+ "Completed rolling maintenance for entity " + entity + " with IDs: " + ids + " - " + description, ids.get(0), cmdResourceType, 0);
}
private String generateReportHostsUpdated(List<HostUpdated> hostsUpdated) {
diff --git a/server/src/main/java/com/cloud/resourceicon/ResourceIconManagerImpl.java b/server/src/main/java/com/cloud/resourceicon/ResourceIconManagerImpl.java
index 137f655459..41d6c1f52a 100644
--- a/server/src/main/java/com/cloud/resourceicon/ResourceIconManagerImpl.java
+++ b/server/src/main/java/com/cloud/resourceicon/ResourceIconManagerImpl.java
@@ -16,6 +16,17 @@
// under the License.
package com.cloud.resourceicon;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import javax.inject.Inject;
+import javax.persistence.EntityExistsException;
+
+import org.apache.cloudstack.api.ApiCommandResourceType;
+import org.apache.cloudstack.context.CallContext;
+import org.apache.log4j.Logger;
+
import com.cloud.domain.PartOf;
import com.cloud.event.ActionEvent;
import com.cloud.event.EventTypes;
@@ -27,13 +38,12 @@ import com.cloud.network.vpc.NetworkACLItemVO;
import com.cloud.network.vpc.NetworkACLVO;
import com.cloud.network.vpc.VpcVO;
import com.cloud.projects.ProjectVO;
+import com.cloud.resource.icon.ResourceIconVO;
import com.cloud.resource.icon.dao.ResourceIconDao;
import com.cloud.server.ResourceIcon;
import com.cloud.server.ResourceIconManager;
-
import com.cloud.server.ResourceManagerUtil;
import com.cloud.server.ResourceTag;
-import com.cloud.resource.icon.ResourceIconVO;
import com.cloud.storage.SnapshotPolicyVO;
import com.cloud.storage.VolumeVO;
import com.cloud.tags.ResourceManagerUtilImpl;
@@ -52,14 +62,6 @@ import com.cloud.utils.db.Transaction;
import com.cloud.utils.db.TransactionCallbackNoReturn;
import com.cloud.utils.db.TransactionStatus;
import com.cloud.utils.exception.CloudRuntimeException;
-import org.apache.cloudstack.context.CallContext;
-import org.apache.log4j.Logger;
-
-import javax.inject.Inject;
-import javax.persistence.EntityExistsException;
-import java.util.Date;
-import java.util.List;
-import java.util.stream.Collectors;
public class ResourceIconManagerImpl extends ManagerBase implements ResourceIconManager {
public static final Logger s_logger = Logger.getLogger(ResourceMetaDataManagerImpl.class);
@@ -137,6 +139,25 @@ public class ResourceIconManagerImpl extends ManagerBase implements ResourceIcon
return new Pair<>(accountId, domainId);
}
+ private void updateResourceDetailsInContext(Long resourceId, ResourceTag.ResourceObjectType resourceType) {
+ Class<?> clazz = ResourceManagerUtilImpl.s_typeMap.get(resourceType);
+ ApiCommandResourceType type = ApiCommandResourceType.valueFromAssociatedClass(clazz);
+ int depth = 5;
+ while (type == null && depth > 0) {
+ Class<?>[] clazzes = clazz.getInterfaces();
+ if (clazzes.length == 0) {
+ break;
+ }
+ depth--;
+ clazz = clazzes[0];
+ type = ApiCommandResourceType.valueFromAssociatedClass(clazz);
+ }
+ CallContext.current().setEventResourceId(resourceId);
+ if (!ApiCommandResourceType.None.equals(type)) {
+ CallContext.current().setEventResourceType(type);
+ }
+ }
+
@Override
@DB
@ActionEvent(eventType = EventTypes.EVENT_RESOURCE_ICON_UPLOAD, eventDescription = "uploading resource icon")
@@ -157,6 +178,7 @@ public class ResourceIconManagerImpl extends ManagerBase implements ResourceIcon
long id = resourceManagerUtil.getResourceId(resourceId, resourceType);
String resourceUuid = resourceManagerUtil.getUuid(resourceId, resourceType);
+ updateResourceDetailsInContext(id, resourceType);
ResourceIconVO existingResourceIcon = resourceIconDao.findByResourceUuid(resourceUuid, resourceType);
ResourceIconVO resourceIcon = null;
Pair<Long, Long> accountDomainPair = getAccountDomain(id, resourceType);
@@ -198,6 +220,7 @@ public class ResourceIconManagerImpl extends ManagerBase implements ResourceIcon
for (ResourceIcon resourceIcon : resourceIcons) {
String resourceId = resourceIcon.getResourceUuid();
long id = resourceManagerUtil.getResourceId(resourceId, resourceType);
+ updateResourceDetailsInContext(id, resourceType);
Pair<Long, Long> accountDomainPair = getAccountDomain(id, resourceType);
Long domainId = accountDomainPair.second();
Long accountId = accountDomainPair.first();
diff --git a/server/src/main/java/com/cloud/server/ManagementServerImpl.java b/server/src/main/java/com/cloud/server/ManagementServerImpl.java
index 4daca16be5..63489a11c8 100644
--- a/server/src/main/java/com/cloud/server/ManagementServerImpl.java
+++ b/server/src/main/java/com/cloud/server/ManagementServerImpl.java
@@ -65,6 +65,7 @@ import org.apache.cloudstack.affinity.AffinityGroupProcessor;
import org.apache.cloudstack.affinity.dao.AffinityGroupVMMapDao;
import org.apache.cloudstack.annotation.AnnotationService;
import org.apache.cloudstack.annotation.dao.AnnotationDao;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.command.admin.account.CreateAccountCmd;
import org.apache.cloudstack.api.command.admin.account.DeleteAccountCmd;
@@ -3861,10 +3862,10 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
}
if (systemVm.getType() == VirtualMachine.Type.ConsoleProxy) {
- ActionEventUtils.startNestedActionEvent(EventTypes.EVENT_PROXY_START, "starting console proxy Vm");
+ ActionEventUtils.startNestedActionEvent(EventTypes.EVENT_PROXY_START, "starting console proxy Vm", vmId, ApiCommandResourceType.ConsoleProxy.toString());
return startConsoleProxy(vmId);
} else if (systemVm.getType() == VirtualMachine.Type.SecondaryStorageVm) {
- ActionEventUtils.startNestedActionEvent(EventTypes.EVENT_SSVM_START, "starting secondary storage Vm");
+ ActionEventUtils.startNestedActionEvent(EventTypes.EVENT_SSVM_START, "starting secondary storage Vm", vmId, ApiCommandResourceType.SystemVm.toString());
return startSecondaryStorageVm(vmId);
} else {
final InvalidParameterValueException ex = new InvalidParameterValueException("Unable to find a system vm with specified vmId");
@@ -3888,10 +3889,10 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
try {
if (systemVm.getType() == VirtualMachine.Type.ConsoleProxy) {
- ActionEventUtils.startNestedActionEvent(EventTypes.EVENT_PROXY_STOP, "stopping console proxy Vm");
+ ActionEventUtils.startNestedActionEvent(EventTypes.EVENT_PROXY_STOP, "stopping console proxy Vm", systemVm.getId(), ApiCommandResourceType.ConsoleProxy.toString());
return stopConsoleProxy(systemVm, cmd.isForced());
} else if (systemVm.getType() == VirtualMachine.Type.SecondaryStorageVm) {
- ActionEventUtils.startNestedActionEvent(EventTypes.EVENT_SSVM_STOP, "stopping secondary storage Vm");
+ ActionEventUtils.startNestedActionEvent(EventTypes.EVENT_SSVM_STOP, "stopping secondary storage Vm", systemVm.getId(), ApiCommandResourceType.SystemVm.toString());
return stopSecondaryStorageVm(systemVm, cmd.isForced());
}
return null;
@@ -3912,13 +3913,13 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
try {
if (systemVm.getType().equals(VirtualMachine.Type.ConsoleProxy)) {
- ActionEventUtils.startNestedActionEvent(EventTypes.EVENT_PROXY_REBOOT, "rebooting console proxy Vm");
+ ActionEventUtils.startNestedActionEvent(EventTypes.EVENT_PROXY_REBOOT, "rebooting console proxy Vm", systemVm.getId(), ApiCommandResourceType.ConsoleProxy.toString());
if (cmd.isForced()) {
return forceRebootConsoleProxy(systemVm);
}
return rebootConsoleProxy(cmd.getId());
} else {
- ActionEventUtils.startNestedActionEvent(EventTypes.EVENT_SSVM_REBOOT, "rebooting secondary storage Vm");
+ ActionEventUtils.startNestedActionEvent(EventTypes.EVENT_SSVM_REBOOT, "rebooting secondary storage Vm", systemVm.getId(), ApiCommandResourceType.SystemVm.toString());
if (cmd.isForced()) {
return forceRebootSecondaryStorageVm(systemVm);
}
@@ -3943,10 +3944,10 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
}
if (systemVm.getType().equals(VirtualMachine.Type.ConsoleProxy)) {
- ActionEventUtils.startNestedActionEvent(EventTypes.EVENT_PROXY_DESTROY, "destroying console proxy Vm");
+ ActionEventUtils.startNestedActionEvent(EventTypes.EVENT_PROXY_DESTROY, "destroying console proxy Vm", systemVm.getId(), ApiCommandResourceType.ConsoleProxy.toString());
return destroyConsoleProxy(cmd.getId());
} else {
- ActionEventUtils.startNestedActionEvent(EventTypes.EVENT_SSVM_DESTROY, "destroying secondary storage Vm");
+ ActionEventUtils.startNestedActionEvent(EventTypes.EVENT_SSVM_DESTROY, "destroying secondary storage Vm", systemVm.getId(), ApiCommandResourceType.SystemVm.toString());
return destroySecondaryStorageVm(cmd.getId());
}
}
diff --git a/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java b/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java
index 8c6d5104e2..a8a8ec7424 100644
--- a/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java
+++ b/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java
@@ -33,13 +33,6 @@ import java.util.concurrent.ExecutionException;
import javax.inject.Inject;
-import com.cloud.api.query.dao.ServiceOfferingJoinDao;
-import com.cloud.api.query.vo.ServiceOfferingJoinVO;
-import com.cloud.server.ManagementService;
-import com.cloud.service.ServiceOfferingVO;
-import com.cloud.service.dao.ServiceOfferingDao;
-import com.cloud.vm.DiskProfile;
-import com.cloud.vm.UserVmDetailVO;
import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.command.user.volume.AttachVolumeCmd;
@@ -102,6 +95,7 @@ import org.apache.cloudstack.utils.imagestore.ImageStoreUtil;
import org.apache.cloudstack.utils.volume.VirtualMachineDiskInfo;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
+import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.apache.log4j.Logger;
@@ -114,6 +108,8 @@ import com.cloud.agent.api.ModifyTargetsCommand;
import com.cloud.agent.api.to.DataTO;
import com.cloud.agent.api.to.DiskTO;
import com.cloud.api.ApiDBUtils;
+import com.cloud.api.query.dao.ServiceOfferingJoinDao;
+import com.cloud.api.query.vo.ServiceOfferingJoinVO;
import com.cloud.configuration.Config;
import com.cloud.configuration.ConfigurationManager;
import com.cloud.configuration.Resource.ResourceType;
@@ -142,8 +138,11 @@ import com.cloud.offering.DiskOffering;
import com.cloud.org.Grouping;
import com.cloud.resource.ResourceState;
import com.cloud.serializer.GsonHelper;
+import com.cloud.server.ManagementService;
import com.cloud.server.ResourceTag;
import com.cloud.server.TaggedResourceService;
+import com.cloud.service.ServiceOfferingVO;
+import com.cloud.service.dao.ServiceOfferingDao;
import com.cloud.service.dao.ServiceOfferingDetailsDao;
import com.cloud.storage.Storage.ImageFormat;
import com.cloud.storage.dao.DiskOfferingDao;
@@ -183,6 +182,8 @@ import com.cloud.utils.db.UUIDManager;
import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.fsm.NoTransitionException;
import com.cloud.utils.fsm.StateMachine2;
+import com.cloud.vm.DiskProfile;
+import com.cloud.vm.UserVmDetailVO;
import com.cloud.vm.UserVmManager;
import com.cloud.vm.UserVmService;
import com.cloud.vm.UserVmVO;
@@ -207,7 +208,6 @@ import com.cloud.vm.dao.UserVmDetailsDao;
import com.cloud.vm.dao.VMInstanceDao;
import com.cloud.vm.snapshot.VMSnapshotVO;
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
-import org.apache.commons.lang3.StringUtils;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonParseException;
@@ -593,6 +593,7 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic
volume.setFormat(ImageFormat.valueOf(format));
volume = _volsDao.persist(volume);
CallContext.current().setEventDetails("Volume Id: " + volume.getUuid());
+ CallContext.current().putContextParameter(Volume.class, volume.getUuid());
// Increment resource count during allocation; if actual creation fails,
// decrement it
@@ -908,7 +909,7 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic
}
CallContext.current().setEventDetails("Volume Id: " + volume.getUuid());
-
+ CallContext.current().putContextParameter(Volume.class, volume.getId());
// Increment resource count during allocation; if actual creation fails,
// decrement it
_resourceLimitMgr.incrementResourceCount(volume.getAccountId(), ResourceType.volume, displayVolume);
diff --git a/server/src/main/java/com/cloud/storage/snapshot/SnapshotManagerImpl.java b/server/src/main/java/com/cloud/storage/snapshot/SnapshotManagerImpl.java
index 207cf5d762..961c042204 100755
--- a/server/src/main/java/com/cloud/storage/snapshot/SnapshotManagerImpl.java
+++ b/server/src/main/java/com/cloud/storage/snapshot/SnapshotManagerImpl.java
@@ -31,6 +31,7 @@ import javax.naming.ConfigurationException;
import org.apache.cloudstack.annotation.AnnotationService;
import org.apache.cloudstack.annotation.dao.AnnotationDao;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.command.user.snapshot.CreateSnapshotPolicyCmd;
import org.apache.cloudstack.api.command.user.snapshot.DeleteSnapshotPoliciesCmd;
import org.apache.cloudstack.api.command.user.snapshot.ListSnapshotPoliciesCmd;
@@ -60,8 +61,11 @@ import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
import org.apache.cloudstack.storage.datastore.db.SnapshotDataStoreDao;
import org.apache.cloudstack.storage.datastore.db.SnapshotDataStoreVO;
import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
+import org.apache.cloudstack.utils.reflectiontostringbuilderutils.ReflectionToStringBuilderUtils;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
+import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
@@ -143,9 +147,6 @@ import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.snapshot.VMSnapshot;
import com.cloud.vm.snapshot.VMSnapshotVO;
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
-import org.apache.cloudstack.utils.reflectiontostringbuilderutils.ReflectionToStringBuilderUtils;
-import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
@Component
public class SnapshotManagerImpl extends MutualExclusiveIdsManagerBase implements SnapshotManager, SnapshotApiService, Configurable {
@@ -561,7 +562,7 @@ public class SnapshotManagerImpl extends MutualExclusiveIdsManagerBase implement
if (deleteSnapshot(oldSnapId)) {
//log Snapshot delete event
ActionEventUtils.onCompletedActionEvent(User.UID_SYSTEM, oldestSnapshot.getAccountId(), EventVO.LEVEL_INFO, EventTypes.EVENT_SNAPSHOT_DELETE,
- "Successfully deleted oldest snapshot: " + oldSnapId, 0);
+ "Successfully deleted oldest snapshot: " + oldSnapId, oldSnapId, ApiCommandResourceType.Snapshot.toString(), 0);
}
snaps.remove(oldestSnapshot);
}
@@ -1525,6 +1526,7 @@ public class SnapshotManagerImpl extends MutualExclusiveIdsManagerBase implement
if (snapshot == null) {
throw new CloudRuntimeException("Failed to create snapshot for volume: " + volume.getId());
}
+ CallContext.current().putContextParameter(Snapshot.class, snapshot.getUuid());
_resourceLimitMgr.incrementResourceCount(volume.getAccountId(), ResourceType.snapshot);
_resourceLimitMgr.incrementResourceCount(volume.getAccountId(), ResourceType.secondary_storage, new Long(volume.getSize()));
return snapshot;
diff --git a/server/src/main/java/com/cloud/storage/snapshot/SnapshotSchedulerImpl.java b/server/src/main/java/com/cloud/storage/snapshot/SnapshotSchedulerImpl.java
index af4c16154d..a9c402c86b 100644
--- a/server/src/main/java/com/cloud/storage/snapshot/SnapshotSchedulerImpl.java
+++ b/server/src/main/java/com/cloud/storage/snapshot/SnapshotSchedulerImpl.java
@@ -27,9 +27,7 @@ import java.util.concurrent.TimeUnit;
import javax.inject.Inject;
import javax.naming.ConfigurationException;
-import org.apache.log4j.Logger;
-import org.springframework.stereotype.Component;
-
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.command.user.snapshot.CreateSnapshotCmd;
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
@@ -38,6 +36,8 @@ import org.apache.cloudstack.framework.jobs.AsyncJobManager;
import org.apache.cloudstack.framework.jobs.dao.AsyncJobDao;
import org.apache.cloudstack.framework.jobs.impl.AsyncJobVO;
import org.apache.cloudstack.managed.context.ManagedContextTimerTask;
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Component;
import com.cloud.api.ApiDispatcher;
import com.cloud.api.ApiGsonHelper;
@@ -301,7 +301,7 @@ public class SnapshotSchedulerImpl extends ManagerBase implements SnapshotSchedu
tmpSnapshotScheduleVO = _snapshotScheduleDao.acquireInLockTable(snapshotScheId);
final Long eventId =
ActionEventUtils.onScheduledActionEvent(User.UID_SYSTEM, volume.getAccountId(), EventTypes.EVENT_SNAPSHOT_CREATE, "creating snapshot for volume Id:" +
- volume.getUuid(), true, 0);
+ volume.getUuid(), volumeId, ApiCommandResourceType.Volume.toString(), true, 0);
final Map<String, String> params = new HashMap<String, String>();
params.put(ApiConstants.VOLUME_ID, "" + volumeId);
@@ -327,7 +327,7 @@ public class SnapshotSchedulerImpl extends ManagerBase implements SnapshotSchedu
AsyncJobVO job = new AsyncJobVO("", User.UID_SYSTEM, volume.getAccountId(), CreateSnapshotCmd.class.getName(),
ApiGsonHelper.getBuilder().create().toJson(params), cmd.getEntityId(),
- cmd.getInstanceType() != null ? cmd.getInstanceType().toString() : null, null);
+ cmd.getApiResourceType() != null ? cmd.getApiResourceType().toString() : null, null);
job.setDispatcher(_asyncDispatcher.getName());
final long jobId = _asyncMgr.submitAsyncJob(job);
diff --git a/server/src/main/java/com/cloud/tags/ResourceManagerUtilImpl.java b/server/src/main/java/com/cloud/tags/ResourceManagerUtilImpl.java
index bd324787ac..00d83aad65 100644
--- a/server/src/main/java/com/cloud/tags/ResourceManagerUtilImpl.java
+++ b/server/src/main/java/com/cloud/tags/ResourceManagerUtilImpl.java
@@ -16,6 +16,18 @@
// under the License.
package com.cloud.tags;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+import javax.inject.Inject;
+
+import org.apache.cloudstack.api.Identity;
+import org.apache.cloudstack.api.InternalIdentity;
+import org.apache.cloudstack.context.CallContext;
+import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
+import org.apache.commons.lang3.StringUtils;
+
import com.cloud.dc.DataCenterVO;
import com.cloud.domain.DomainVO;
import com.cloud.exception.InvalidParameterValueException;
@@ -23,11 +35,6 @@ import com.cloud.exception.PermissionDeniedException;
import com.cloud.network.LBHealthCheckPolicyVO;
import com.cloud.network.as.AutoScaleVmGroupVO;
import com.cloud.network.as.AutoScaleVmProfileVO;
-
-import com.cloud.network.rules.FirewallRuleVO;
-import com.cloud.network.rules.PortForwardingRuleVO;
-import com.cloud.network.security.SecurityGroupRuleVO;
-import com.cloud.network.security.SecurityGroupVO;
import com.cloud.network.dao.IPAddressVO;
import com.cloud.network.dao.LBStickinessPolicyVO;
import com.cloud.network.dao.LoadBalancerVO;
@@ -36,6 +43,10 @@ import com.cloud.network.dao.RemoteAccessVpnVO;
import com.cloud.network.dao.Site2SiteCustomerGatewayVO;
import com.cloud.network.dao.Site2SiteVpnConnectionVO;
import com.cloud.network.dao.Site2SiteVpnGatewayVO;
+import com.cloud.network.rules.FirewallRuleVO;
+import com.cloud.network.rules.PortForwardingRuleVO;
+import com.cloud.network.security.SecurityGroupRuleVO;
+import com.cloud.network.security.SecurityGroupVO;
import com.cloud.network.vpc.NetworkACLItemVO;
import com.cloud.network.vpc.NetworkACLVO;
import com.cloud.network.vpc.StaticRouteVO;
@@ -46,12 +57,11 @@ import com.cloud.projects.ProjectVO;
import com.cloud.server.ResourceManagerUtil;
import com.cloud.server.ResourceTag;
import com.cloud.service.ServiceOfferingVO;
+import com.cloud.storage.DiskOfferingVO;
+import com.cloud.storage.SnapshotPolicyVO;
import com.cloud.storage.SnapshotVO;
import com.cloud.storage.VMTemplateVO;
import com.cloud.storage.VolumeVO;
-import com.cloud.storage.DiskOfferingVO;
-import com.cloud.storage.SnapshotPolicyVO;
-
import com.cloud.user.Account;
import com.cloud.user.AccountManager;
import com.cloud.user.AccountVO;
@@ -62,16 +72,6 @@ import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.vm.NicVO;
import com.cloud.vm.UserVmVO;
import com.cloud.vm.snapshot.VMSnapshotVO;
-import org.apache.cloudstack.api.Identity;
-import org.apache.cloudstack.api.InternalIdentity;
-import org.apache.cloudstack.context.CallContext;
-import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
-import org.apache.commons.lang3.StringUtils;
-
-import javax.inject.Inject;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
public class ResourceManagerUtilImpl implements ResourceManagerUtil {
public static final Map<ResourceTag.ResourceObjectType, Class<?>> s_typeMap = new HashMap<>();
diff --git a/server/src/main/java/com/cloud/template/TemplateManagerImpl.java b/server/src/main/java/com/cloud/template/TemplateManagerImpl.java
index 3c70a2e7a0..c8b6cfdae4 100755
--- a/server/src/main/java/com/cloud/template/TemplateManagerImpl.java
+++ b/server/src/main/java/com/cloud/template/TemplateManagerImpl.java
@@ -325,6 +325,7 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager,
VMTemplateVO template = adapter.create(profile);
if (template != null) {
+ CallContext.current().putContextParameter(VirtualMachineTemplate.class, template.getUuid());
return template;
} else {
throw new CloudRuntimeException("Failed to create ISO");
@@ -351,6 +352,7 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager,
VMTemplateVO template = adapter.create(profile);
if (template != null) {
+ CallContext.current().putContextParameter(VirtualMachineTemplate.class, template.getUuid());
return template;
} else {
throw new CloudRuntimeException("Failed to create a template");
@@ -1933,6 +1935,7 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager,
}
if (template != null) {
+ CallContext.current().putContextParameter(VirtualMachineTemplate.class, template.getUuid());
return template;
} else {
throw new CloudRuntimeException("Failed to create a template");
diff --git a/server/src/main/java/com/cloud/user/AccountManagerImpl.java b/server/src/main/java/com/cloud/user/AccountManagerImpl.java
index 664bb1a499..2945580eff 100644
--- a/server/src/main/java/com/cloud/user/AccountManagerImpl.java
+++ b/server/src/main/java/com/cloud/user/AccountManagerImpl.java
@@ -40,7 +40,6 @@ import javax.crypto.spec.SecretKeySpec;
import javax.inject.Inject;
import javax.naming.ConfigurationException;
-import com.cloud.utils.component.PluggableService;
import org.apache.cloudstack.acl.APIChecker;
import org.apache.cloudstack.acl.ControlledEntity;
import org.apache.cloudstack.acl.QuerySelector;
@@ -52,6 +51,7 @@ import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.affinity.AffinityGroup;
import org.apache.cloudstack.affinity.dao.AffinityGroupDao;
import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.command.admin.account.CreateAccountCmd;
import org.apache.cloudstack.api.command.admin.account.UpdateAccountCmd;
import org.apache.cloudstack.api.command.admin.user.DeleteUserCmd;
@@ -74,6 +74,7 @@ import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
+import org.jetbrains.annotations.NotNull;
import com.cloud.api.ApiDBUtils;
import com.cloud.api.query.vo.ControlledViewEntity;
@@ -159,6 +160,7 @@ import com.cloud.utils.Pair;
import com.cloud.utils.Ternary;
import com.cloud.utils.component.Manager;
import com.cloud.utils.component.ManagerBase;
+import com.cloud.utils.component.PluggableService;
import com.cloud.utils.concurrency.NamedThreadFactory;
import com.cloud.utils.db.DB;
import com.cloud.utils.db.GlobalLock;
@@ -186,7 +188,6 @@ import com.cloud.vm.snapshot.VMSnapshot;
import com.cloud.vm.snapshot.VMSnapshotManager;
import com.cloud.vm.snapshot.VMSnapshotVO;
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
-import org.jetbrains.annotations.NotNull;
public class AccountManagerImpl extends ManagerBase implements AccountManager, Manager {
public static final Logger s_logger = Logger.getLogger(AccountManagerImpl.class);
@@ -1194,6 +1195,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
}
CallContext.current().putContextParameter(Account.class, account.getUuid());
+ CallContext.current().putContextParameter(User.class, userId);
// check success
return _userAccountDao.findById(userId);
@@ -2363,7 +2365,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
public void logoutUser(long userId) {
UserAccount userAcct = _userAccountDao.findById(userId);
if (userAcct != null) {
- ActionEventUtils.onActionEvent(userId, userAcct.getAccountId(), userAcct.getDomainId(), EventTypes.EVENT_USER_LOGOUT, "user has logged out");
+ ActionEventUtils.onActionEvent(userId, userAcct.getAccountId(), userAcct.getDomainId(), EventTypes.EVENT_USER_LOGOUT, "user has logged out", userId, ApiCommandResourceType.User.toString());
} // else log some kind of error event? This likely means the user doesn't exist, or has been deleted...
}
@@ -2502,7 +2504,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
s_logger.debug("User: " + username + " in domain " + domainId + " has successfully logged in");
}
- ActionEventUtils.onActionEvent(user.getId(), user.getAccountId(), user.getDomainId(), EventTypes.EVENT_USER_LOGIN, "user has logged in from IP Address " + loginIpAddress);
+ ActionEventUtils.onActionEvent(user.getId(), user.getAccountId(), user.getDomainId(), EventTypes.EVENT_USER_LOGIN, "user has logged in from IP Address " + loginIpAddress, user.getId(), ApiCommandResourceType.User.toString());
return user;
} else {
diff --git a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java
index 549f164297..899f27d79a 100644
--- a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java
+++ b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java
@@ -62,6 +62,7 @@ import org.apache.cloudstack.affinity.dao.AffinityGroupDao;
import org.apache.cloudstack.affinity.dao.AffinityGroupVMMapDao;
import org.apache.cloudstack.annotation.AnnotationService;
import org.apache.cloudstack.annotation.dao.AnnotationDao;
+import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseCmd.HTTPMethod;
import org.apache.cloudstack.api.command.admin.vm.AssignVMCmd;
@@ -741,7 +742,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
decrementCount = false;
ActionEventUtils.onActionEvent(User.UID_SYSTEM, Account.ACCOUNT_ID_SYSTEM,
Domain.ROOT_DOMAIN, EventTypes.EVENT_NETWORK_EXTERNAL_DHCP_VM_IPFETCH,
- "VM " + vmId + " nic id " + nicId + " ip address " + vmIp + " got fetched successfully");
+ "VM " + vmId + " nic id " + nicId + " ip address " + vmIp + " got fetched successfully", vmId, ApiCommandResourceType.VirtualMachine.toString());
}
}
} else {
@@ -2559,7 +2560,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
ActionEventUtils.onActionEvent(User.UID_SYSTEM, Account.ACCOUNT_ID_SYSTEM,
Domain.ROOT_DOMAIN, EventTypes.EVENT_NETWORK_EXTERNAL_DHCP_VM_IPFETCH,
- "VM " + vmId + " nic id "+ nicId + " ip addr fetch failed ");
+ "VM " + vmId + " nic id "+ nicId + " ip addr fetch failed ", vmId, ApiCommandResourceType.VirtualMachine.toString());
continue;
}
diff --git a/server/src/main/java/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java b/server/src/main/java/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java
index 41c4d491a2..aea16523d9 100644
--- a/server/src/main/java/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java
+++ b/server/src/main/java/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java
@@ -454,6 +454,7 @@ public class VMSnapshotManagerImpl extends MutualExclusiveIdsManagerBase impleme
throw new CloudRuntimeException("Failed to create snapshot for vm: " + vmId);
}
addSupportForCustomServiceOffering(vmId, serviceOfferingId, vmSnapshot.getId());
+ CallContext.current().putContextParameter(VMSnapshot.class, vmSnapshot.getUuid());
return vmSnapshot;
}
});
@@ -513,7 +514,11 @@ public class VMSnapshotManagerImpl extends MutualExclusiveIdsManagerBase impleme
VmWorkJobVO placeHolder = null;
placeHolder = createPlaceHolderWork(vmId);
try {
- return orchestrateCreateVMSnapshot(vmId, vmSnapshotId, quiescevm);
+ VMSnapshot snapshot = orchestrateCreateVMSnapshot(vmId, vmSnapshotId, quiescevm);
+ if (snapshot != null) {
+ CallContext.current().putContextParameter(VMSnapshot.class, snapshot.getUuid());
+ }
+ return snapshot;
} finally {
_workJobDao.expunge(placeHolder.getId());
}
@@ -539,7 +544,9 @@ public class VMSnapshotManagerImpl extends MutualExclusiveIdsManagerBase impleme
else if (jobResult instanceof Throwable)
throw new RuntimeException("Unexpected exception", (Throwable)jobResult);
}
-
+ if (result != null) {
+ CallContext.current().putContextParameter(VMSnapshot.class, result.getUuid());
+ }
return result;
}
}
diff --git a/server/src/main/java/org/apache/cloudstack/acl/RoleManagerImpl.java b/server/src/main/java/org/apache/cloudstack/acl/RoleManagerImpl.java
index dff79b1359..fc2a7e8616 100644
--- a/server/src/main/java/org/apache/cloudstack/acl/RoleManagerImpl.java
+++ b/server/src/main/java/org/apache/cloudstack/acl/RoleManagerImpl.java
@@ -148,7 +148,9 @@ public class RoleManagerImpl extends ManagerBase implements RoleService, Configu
return Transaction.execute(new TransactionCallback<RoleVO>() {
@Override
public RoleVO doInTransaction(TransactionStatus status) {
- return roleDao.persist(new RoleVO(name, roleType, description));
+ RoleVO role = roleDao.persist(new RoleVO(name, roleType, description));
+ CallContext.current().putContextParameter(Role.class, role.getUuid());
+ return role;
}
});
}
diff --git a/server/src/main/java/org/apache/cloudstack/affinity/AffinityGroupServiceImpl.java b/server/src/main/java/org/apache/cloudstack/affinity/AffinityGroupServiceImpl.java
index fd0b937e06..db16f7372f 100644
--- a/server/src/main/java/org/apache/cloudstack/affinity/AffinityGroupServiceImpl.java
+++ b/server/src/main/java/org/apache/cloudstack/affinity/AffinityGroupServiceImpl.java
@@ -25,9 +25,6 @@ import java.util.Set;
import javax.inject.Inject;
import javax.naming.ConfigurationException;
-import com.cloud.utils.fsm.StateMachine2;
-
-import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.ControlledEntity;
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
@@ -39,6 +36,7 @@ import org.apache.cloudstack.api.command.user.affinitygroup.CreateAffinityGroupC
import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.framework.messagebus.MessageBus;
import org.apache.cloudstack.framework.messagebus.PublishScope;
+import org.apache.log4j.Logger;
import com.cloud.domain.DomainVO;
import com.cloud.domain.dao.DomainDao;
@@ -62,6 +60,7 @@ import com.cloud.utils.db.TransactionCallback;
import com.cloud.utils.db.TransactionCallbackNoReturn;
import com.cloud.utils.db.TransactionStatus;
import com.cloud.utils.fsm.StateListener;
+import com.cloud.utils.fsm.StateMachine2;
import com.cloud.vm.UserVmVO;
import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachine.Event;
@@ -163,6 +162,7 @@ public class AffinityGroupServiceImpl extends ManagerBase implements AffinityGro
if (s_logger.isDebugEnabled()) {
s_logger.debug("Created affinity group =" + affinityGroupName);
}
+ CallContext.current().putContextParameter(AffinityGroup.class, group.getUuid());
return group;
}
diff --git a/server/src/main/java/org/apache/cloudstack/annotation/AnnotationManagerImpl.java b/server/src/main/java/org/apache/cloudstack/annotation/AnnotationManagerImpl.java
index e28f2f7662..1a60b66d9d 100644
--- a/server/src/main/java/org/apache/cloudstack/annotation/AnnotationManagerImpl.java
+++ b/server/src/main/java/org/apache/cloudstack/annotation/AnnotationManagerImpl.java
@@ -18,6 +18,7 @@ package org.apache.cloudstack.annotation;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -25,6 +26,29 @@ import java.util.stream.Collectors;
import javax.inject.Inject;
import javax.naming.ConfigurationException;
... 2854 lines suppressed ...