Skip to content

Commit e997f4c

Browse files
committed
allow nic plug for stopped vm
1 parent 5f627aa commit e997f4c

2 files changed

Lines changed: 5 additions & 4 deletions

File tree

server/src/main/java/org/apache/cloudstack/dns/DnsProviderManagerImpl.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import static com.cloud.event.EventTypes.EVENT_VM_UPDATE;
2424

2525
import java.util.ArrayList;
26+
import java.util.EnumSet;
2627
import java.util.HashMap;
2728
import java.util.HashSet;
2829
import java.util.List;
@@ -142,6 +143,8 @@ public class DnsProviderManagerImpl extends ManagerBase implements DnsProviderMa
142143
@Inject
143144
NicDnsJoinDao nicDnsJoinDao;
144145

146+
private static final Set<VirtualMachine.State> VM_ALLOWED_STATES = EnumSet.of(VirtualMachine.State.Running, VirtualMachine.State.Stopped);
147+
145148
private DnsProvider getProviderByType(DnsProviderType type) {
146149
if (type == null) {
147150
throw new CloudRuntimeException("Provider type cannot be null");
@@ -1056,7 +1059,7 @@ public void doInTransactionWithoutResult(TransactionStatus status) throws DnsPro
10561059

10571060
void handleNicPlug(long instanceId, long nicId) {
10581061
VirtualMachine instance = vmInstanceDao.findById(instanceId);
1059-
if (instance == null || instance.getState() != VirtualMachine.State.Running) {
1062+
if (instance == null || !VM_ALLOWED_STATES.contains(instance.getState())) {
10601063
return;
10611064
}
10621065
NicDnsJoinVO nic = nicDnsJoinDao.findById(nicId);

server/src/test/java/org/apache/cloudstack/dns/DnsProviderManagerImplTest.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1129,11 +1129,9 @@ public void testHandleVmDestroyEventWithValidDnsUrlTriggersCleanup() throws Exce
11291129
@Test
11301130
public void testHandleNicPlugVmNotRunningExitsEarly() throws DnsProviderException {
11311131
com.cloud.vm.VMInstanceVO instanceMock = mock(com.cloud.vm.VMInstanceVO.class);
1132-
when(instanceMock.getState()).thenReturn(com.cloud.vm.VirtualMachine.State.Stopped);
1132+
when(instanceMock.getState()).thenReturn(VirtualMachine.State.Destroyed);
11331133
when(vmInstanceDao.findById(33L)).thenReturn(instanceMock);
1134-
11351134
manager.handleNicPlug(33L, 500L);
1136-
11371135
verify(nicDnsJoinDao, never()).findById(anyLong());
11381136
verify(dnsProviderMock, never()).addRecord(any(), any(), any());
11391137
}

0 commit comments

Comments
 (0)