Skip to content

Commit c40614e

Browse files
harikrishna-patnalasureshanapartiDaanHoogland
authored andcommitted
Added events for snapshots, vmsnapshots, internalLB operations (apache#11230)
* Added events for snapshots, vmsnapshots, internalLB operations * Update server/src/main/java/com/cloud/resource/ResourceManagerImpl.java Co-authored-by: Suresh Kumar Anaparti <[email protected]> * small fix * Unit test - ArgumentMatchers change Co-authored-by: dahn <[email protected]> * Unit test - ArgumentMatchers change Co-authored-by: dahn <[email protected]> --------- Co-authored-by: Suresh Kumar Anaparti <[email protected]> Co-authored-by: dahn <[email protected]>
1 parent c813c76 commit c40614e

File tree

5 files changed

+33
-4
lines changed

5 files changed

+33
-4
lines changed

api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/CreateSnapshotFromVMSnapshotCmd.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,4 +209,9 @@ public Long getSyncObjId() {
209209
}
210210
return null;
211211
}
212+
213+
@Override
214+
public Long getApiResourceId() {
215+
return getEntityId();
216+
}
212217
}

plugins/network-elements/internal-loadbalancer/src/main/java/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232
import javax.inject.Inject;
3333
import javax.naming.ConfigurationException;
3434

35+
import com.cloud.event.ActionEvent;
36+
import com.cloud.event.EventTypes;
3537
import org.apache.cloudstack.context.CallContext;
3638
import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
3739
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
@@ -545,6 +547,7 @@ public boolean destroyInternalLbVm(final long vmId, final Account caller, final
545547
}
546548

547549
@Override
550+
@ActionEvent(eventType = EventTypes.EVENT_INTERNAL_LB_VM_STOP, eventDescription = "stopping internal LB VM", async = true)
548551
public VirtualRouter stopInternalLbVm(final long vmId, final boolean forced, final Account caller, final long callerUserId) throws ConcurrentOperationException, ResourceUnavailableException {
549552
final DomainRouterVO internalLbVm = _internalLbVmDao.findById(vmId);
550553
if (internalLbVm == null || internalLbVm.getRole() != Role.INTERNAL_LB_VM) {
@@ -974,6 +977,7 @@ protected boolean sendCommandsToInternalLbVm(final VirtualRouter internalLbVm, f
974977
}
975978

976979
@Override
980+
@ActionEvent(eventType = EventTypes.EVENT_INTERNAL_LB_VM_START, eventDescription = "starting internal LB VM", async = true)
977981
public VirtualRouter startInternalLbVm(final long internalLbVmId, final Account caller, final long callerUserId) throws StorageUnavailableException, InsufficientCapacityException,
978982
ConcurrentOperationException, ResourceUnavailableException {
979983

plugins/network-elements/internal-loadbalancer/src/test/java/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616
// under the License.
1717
package org.apache.cloudstack.internallbvmmgr;
1818

19+
import static org.mockito.ArgumentMatchers.anyBoolean;
20+
import static org.mockito.ArgumentMatchers.anyLong;
21+
import static org.mockito.ArgumentMatchers.anyString;
1922
import static org.mockito.ArgumentMatchers.nullable;
2023

2124
import java.lang.reflect.Field;
@@ -24,13 +27,15 @@
2427

2528
import javax.inject.Inject;
2629

30+
import com.cloud.event.ActionEventUtils;
2731
import org.apache.cloudstack.context.CallContext;
2832
import org.apache.cloudstack.network.lb.InternalLoadBalancerVMService;
2933
import org.junit.After;
3034
import org.junit.Before;
3135
import org.junit.Test;
3236
import org.junit.runner.RunWith;
33-
import org.mockito.ArgumentMatchers;
37+
import org.mockito.BDDMockito;
38+
import org.mockito.MockedStatic;
3439
import org.mockito.Mockito;
3540
import org.springframework.test.context.ContextConfiguration;
3641
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@@ -82,6 +87,8 @@ public class InternalLBVMServiceTest extends TestCase {
8287
@Inject
8388
AccountDao _accountDao;
8489

90+
private MockedStatic<ActionEventUtils> actionEventUtilsMocked;
91+
8592
long validVmId = 1L;
8693
long nonExistingVmId = 2L;
8794
long nonInternalLbVmId = 3L;
@@ -105,7 +112,7 @@ public void setUp() {
105112

106113
Mockito.when(_accountMgr.getSystemUser()).thenReturn(new UserVO(1));
107114
Mockito.when(_accountMgr.getSystemAccount()).thenReturn(new AccountVO(2));
108-
Mockito.when(_accountDao.findByIdIncludingRemoved(ArgumentMatchers.anyLong())).thenReturn(new AccountVO(2));
115+
Mockito.when(_accountDao.findByIdIncludingRemoved(anyLong())).thenReturn(new AccountVO(2));
109116
CallContext.register(_accountMgr.getSystemUser(), _accountMgr.getSystemAccount());
110117

111118
final DomainRouterVO validVm =
@@ -120,11 +127,16 @@ public void setUp() {
120127
Mockito.when(_domainRouterDao.findById(validVmId)).thenReturn(validVm);
121128
Mockito.when(_domainRouterDao.findById(nonExistingVmId)).thenReturn(null);
122129
Mockito.when(_domainRouterDao.findById(nonInternalLbVmId)).thenReturn(nonInternalLbVm);
130+
131+
actionEventUtilsMocked = Mockito.mockStatic(ActionEventUtils.class);
132+
BDDMockito.given(ActionEventUtils.onStartedActionEvent(anyLong(), anyLong(), anyString(), anyString(), anyLong(), anyString(), anyBoolean(), anyLong()))
133+
.willReturn(1L);
123134
}
124135

125136
@Override
126137
@After
127138
public void tearDown() {
139+
actionEventUtilsMocked.close();
128140
CallContext.unregister();
129141
}
130142

server/src/main/java/com/cloud/resource/ResourceManagerImpl.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1401,7 +1401,9 @@ public Cluster updateCluster(UpdateClusterCmd cmd) {
14011401
}
14021402

14031403
@Override
1404-
public Host cancelMaintenance(final CancelHostMaintenanceCmd cmd) {
1404+
@DB
1405+
@ActionEvent(eventType = EventTypes.EVENT_MAINTENANCE_CANCEL, eventDescription = "cancel maintenance for host", async = true)
1406+
public Host cancelMaintenance(final CancelMaintenanceCmd cmd) {
14051407
final Long hostId = cmd.getId();
14061408

14071409
// verify input parameters
@@ -1424,6 +1426,8 @@ public Host cancelMaintenance(final CancelHostMaintenanceCmd cmd) {
14241426
}
14251427

14261428
@Override
1429+
@DB
1430+
@ActionEvent(eventType = EventTypes.EVENT_HOST_RECONNECT, eventDescription = "reconnecting host", async = true)
14271431
public Host reconnectHost(ReconnectHostCmd cmd) throws AgentUnavailableException {
14281432
Long hostId = cmd.getId();
14291433

@@ -1628,7 +1632,9 @@ public boolean maintain(final long hostId) throws AgentUnavailableException {
16281632
}
16291633

16301634
@Override
1631-
public Host maintain(final PrepareForHostMaintenanceCmd cmd) {
1635+
@DB
1636+
@ActionEvent(eventType = EventTypes.EVENT_MAINTENANCE_PREPARE, eventDescription = "prepare maintenance for host", async = true)
1637+
public Host maintain(final PrepareForMaintenanceCmd cmd) {
16321638
final Long hostId = cmd.getId();
16331639
final HostVO host = _hostDao.findById(hostId);
16341640

server/src/main/java/com/cloud/storage/snapshot/SnapshotManagerImpl.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -622,6 +622,8 @@ public Snapshot archiveSnapshot(Long snapshotId) {
622622
}
623623

624624
@Override
625+
@DB
626+
@ActionEvent(eventType = EventTypes.EVENT_SNAPSHOT_CREATE, eventDescription = "creating snapshot from VM snapshot", async = true)
625627
public Snapshot backupSnapshotFromVmSnapshot(Long snapshotId, Long vmId, Long volumeId, Long vmSnapshotId) {
626628
VMInstanceVO vm = _vmDao.findById(vmId);
627629
if (vm == null) {

0 commit comments

Comments
 (0)