|
17 | 17 |
|
18 | 18 | package com.cloud.resource; |
19 | 19 |
|
| 20 | +import static com.cloud.resource.ResourceState.Event.ErrorsCorrected; |
| 21 | +import static com.cloud.resource.ResourceState.Event.InternalEnterMaintenance; |
| 22 | +import static com.cloud.resource.ResourceState.Event.UnableToMaintain; |
| 23 | +import static com.cloud.resource.ResourceState.Event.UnableToMigrate; |
| 24 | +import static org.mockito.ArgumentMatchers.any; |
| 25 | +import static org.mockito.ArgumentMatchers.anyBoolean; |
| 26 | +import static org.mockito.ArgumentMatchers.anyLong; |
| 27 | +import static org.mockito.ArgumentMatchers.anyString; |
| 28 | +import static org.mockito.ArgumentMatchers.eq; |
| 29 | +import static org.mockito.Mockito.never; |
| 30 | +import static org.mockito.Mockito.times; |
| 31 | +import static org.mockito.Mockito.verify; |
| 32 | +import static org.mockito.Mockito.when; |
| 33 | + |
| 34 | +import java.lang.reflect.Field; |
| 35 | +import java.util.ArrayList; |
| 36 | +import java.util.Arrays; |
| 37 | +import java.util.Collections; |
| 38 | +import java.util.List; |
| 39 | +import java.util.UUID; |
| 40 | + |
| 41 | +import org.apache.cloudstack.api.command.admin.host.CancelHostAsDegradedCmd; |
| 42 | +import org.apache.cloudstack.api.command.admin.host.DeclareHostAsDegradedCmd; |
| 43 | +import org.apache.cloudstack.framework.config.ConfigKey; |
| 44 | +import org.apache.cloudstack.framework.config.dao.ConfigurationDao; |
| 45 | +import org.junit.After; |
| 46 | +import org.junit.Assert; |
| 47 | +import org.junit.Before; |
| 48 | +import org.junit.Test; |
| 49 | +import org.junit.runner.RunWith; |
| 50 | +import org.mockito.BDDMockito; |
| 51 | +import org.mockito.InjectMocks; |
| 52 | +import org.mockito.Mock; |
| 53 | +import org.mockito.MockedConstruction; |
| 54 | +import org.mockito.MockedStatic; |
| 55 | +import org.mockito.Mockito; |
| 56 | +import org.mockito.MockitoAnnotations; |
| 57 | +import org.mockito.Spy; |
| 58 | +import org.mockito.junit.MockitoJUnitRunner; |
| 59 | + |
20 | 60 | import com.cloud.agent.AgentManager; |
21 | 61 | import com.cloud.agent.api.GetVncPortAnswer; |
22 | 62 | import com.cloud.agent.api.GetVncPortCommand; |
|
43 | 83 | import com.cloud.vm.dao.UserVmDetailsDao; |
44 | 84 | import com.cloud.vm.dao.VMInstanceDao; |
45 | 85 | import com.trilead.ssh2.Connection; |
46 | | -import org.apache.cloudstack.api.command.admin.host.CancelHostAsDegradedCmd; |
47 | | -import org.apache.cloudstack.api.command.admin.host.DeclareHostAsDegradedCmd; |
48 | | -import org.apache.cloudstack.framework.config.ConfigKey; |
49 | | -import org.apache.cloudstack.framework.config.dao.ConfigurationDao; |
50 | | -import org.junit.After; |
51 | | -import org.junit.Assert; |
52 | | -import org.junit.Before; |
53 | | -import org.junit.Test; |
54 | | -import org.junit.runner.RunWith; |
55 | | -import org.mockito.BDDMockito; |
56 | | -import org.mockito.InjectMocks; |
57 | | -import org.mockito.Mock; |
58 | | -import org.mockito.MockedConstruction; |
59 | | -import org.mockito.MockedStatic; |
60 | | -import org.mockito.Mockito; |
61 | | -import org.mockito.MockitoAnnotations; |
62 | | -import org.mockito.Spy; |
63 | | -import org.mockito.junit.MockitoJUnitRunner; |
64 | | - |
65 | | -import java.lang.reflect.Field; |
66 | | -import java.util.ArrayList; |
67 | | -import java.util.Arrays; |
68 | | -import java.util.Collections; |
69 | | -import java.util.List; |
70 | | -import java.util.UUID; |
71 | | - |
72 | | -import static com.cloud.resource.ResourceState.Event.ErrorsCorrected; |
73 | | -import static com.cloud.resource.ResourceState.Event.InternalEnterMaintenance; |
74 | | -import static com.cloud.resource.ResourceState.Event.UnableToMaintain; |
75 | | -import static com.cloud.resource.ResourceState.Event.UnableToMigrate; |
76 | | -import static org.mockito.ArgumentMatchers.any; |
77 | | -import static org.mockito.ArgumentMatchers.anyBoolean; |
78 | | -import static org.mockito.ArgumentMatchers.anyLong; |
79 | | -import static org.mockito.ArgumentMatchers.anyString; |
80 | | -import static org.mockito.ArgumentMatchers.eq; |
81 | | -import static org.mockito.Mockito.never; |
82 | | -import static org.mockito.Mockito.times; |
83 | | -import static org.mockito.Mockito.verify; |
84 | | -import static org.mockito.Mockito.when; |
85 | 86 |
|
86 | 87 | @RunWith(MockitoJUnitRunner.class) |
87 | 88 | public class ResourceManagerImplTest { |
@@ -218,6 +219,19 @@ public void tearDown() throws Exception { |
218 | 219 | closeable.close(); |
219 | 220 | } |
220 | 221 |
|
| 222 | + @Test(expected = InvalidParameterValueException.class) |
| 223 | + public void testCheckForDuplicateHostThrowsWhenIpAlreadyExists() { |
| 224 | + when(hostDao.findByIp("10.0.0.10")).thenReturn(host); |
| 225 | + resourceManager.checkForDuplicateHost("http://10.0.0.10"); |
| 226 | + } |
| 227 | + |
| 228 | + @Test |
| 229 | + public void testCheckForDuplicateHostAllowsUniqueHost() { |
| 230 | + when(hostDao.findByIp("10.0.0.30")).thenReturn(null); |
| 231 | + resourceManager.checkForDuplicateHost("http://10.0.0.30"); |
| 232 | + verify(hostDao, times(1)).findByIp("10.0.0.30"); |
| 233 | + } |
| 234 | + |
221 | 235 | @Test |
222 | 236 | public void testCheckAndMaintainEnterMaintenanceModeNoVms() throws NoTransitionException { |
223 | 237 | // Test entering into maintenance with no VMs running on host. |
|
0 commit comments