mirror of https://github.com/apache/cloudstack.git
allow nic plug for stopped vm
This commit is contained in:
parent
5f627aa70a
commit
e997f4c227
|
|
@ -23,6 +23,7 @@ import static com.cloud.event.EventTypes.EVENT_NIC_UPDATE;
|
|||
import static com.cloud.event.EventTypes.EVENT_VM_UPDATE;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.EnumSet;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
|
|
@ -142,6 +143,8 @@ public class DnsProviderManagerImpl extends ManagerBase implements DnsProviderMa
|
|||
@Inject
|
||||
NicDnsJoinDao nicDnsJoinDao;
|
||||
|
||||
private static final Set<VirtualMachine.State> VM_ALLOWED_STATES = EnumSet.of(VirtualMachine.State.Running, VirtualMachine.State.Stopped);
|
||||
|
||||
private DnsProvider getProviderByType(DnsProviderType type) {
|
||||
if (type == null) {
|
||||
throw new CloudRuntimeException("Provider type cannot be null");
|
||||
|
|
@ -1056,7 +1059,7 @@ public class DnsProviderManagerImpl extends ManagerBase implements DnsProviderMa
|
|||
|
||||
void handleNicPlug(long instanceId, long nicId) {
|
||||
VirtualMachine instance = vmInstanceDao.findById(instanceId);
|
||||
if (instance == null || instance.getState() != VirtualMachine.State.Running) {
|
||||
if (instance == null || !VM_ALLOWED_STATES.contains(instance.getState())) {
|
||||
return;
|
||||
}
|
||||
NicDnsJoinVO nic = nicDnsJoinDao.findById(nicId);
|
||||
|
|
|
|||
|
|
@ -1129,11 +1129,9 @@ public class DnsProviderManagerImplTest {
|
|||
@Test
|
||||
public void testHandleNicPlugVmNotRunningExitsEarly() throws DnsProviderException {
|
||||
com.cloud.vm.VMInstanceVO instanceMock = mock(com.cloud.vm.VMInstanceVO.class);
|
||||
when(instanceMock.getState()).thenReturn(com.cloud.vm.VirtualMachine.State.Stopped);
|
||||
when(instanceMock.getState()).thenReturn(VirtualMachine.State.Destroyed);
|
||||
when(vmInstanceDao.findById(33L)).thenReturn(instanceMock);
|
||||
|
||||
manager.handleNicPlug(33L, 500L);
|
||||
|
||||
verify(nicDnsJoinDao, never()).findById(anyLong());
|
||||
verify(dnsProviderMock, never()).addRecord(any(), any(), any());
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue