mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Improve logs on ConsoleProxyManagerImpl and refactor a few process (#4959)
This commit is contained in:
parent
c6cb30d1ea
commit
1f5ee5b3e3
@ -149,4 +149,8 @@ public class ConsoleProxyVO extends VMInstanceVO implements ConsoleProxy {
|
|||||||
return port;
|
return port;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return String.format("Console %s", super.toString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -39,38 +39,42 @@ import com.cloud.dc.DataCenterVO;
|
|||||||
import com.cloud.dc.DataCenter;
|
import com.cloud.dc.DataCenter;
|
||||||
import com.cloud.dc.DataCenter.NetworkType;
|
import com.cloud.dc.DataCenter.NetworkType;
|
||||||
import com.cloud.dc.dao.DataCenterDao;
|
import com.cloud.dc.dao.DataCenterDao;
|
||||||
|
import com.cloud.info.ConsoleProxyStatus;
|
||||||
import com.cloud.network.Networks.TrafficType;
|
import com.cloud.network.Networks.TrafficType;
|
||||||
import com.cloud.network.dao.NetworkDao;
|
import com.cloud.network.dao.NetworkDao;
|
||||||
import com.cloud.network.dao.NetworkVO;
|
import com.cloud.network.dao.NetworkVO;
|
||||||
import com.cloud.utils.db.GlobalLock;
|
import com.cloud.utils.db.GlobalLock;
|
||||||
import com.cloud.utils.exception.CloudRuntimeException;
|
import com.cloud.utils.exception.CloudRuntimeException;
|
||||||
import com.cloud.vm.ConsoleProxyVO;
|
import com.cloud.vm.ConsoleProxyVO;
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import com.google.gson.GsonBuilder;
|
||||||
|
import com.google.gson.JsonParseException;
|
||||||
|
|
||||||
public class ConsoleProxyManagerTest {
|
public class ConsoleProxyManagerTest {
|
||||||
|
|
||||||
private static final Logger s_logger = Logger.getLogger(ConsoleProxyManagerTest.class);
|
private static final Logger s_logger = Logger.getLogger(ConsoleProxyManagerTest.class);
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
GlobalLock globalLock;
|
GlobalLock globalLockMock;
|
||||||
@Mock
|
@Mock
|
||||||
ConsoleProxyVO proxyVO;
|
ConsoleProxyVO consoleProxyVOMock;
|
||||||
@Mock
|
@Mock
|
||||||
DataCenterDao _dcDao;
|
DataCenterDao dataCenterDaoMock;
|
||||||
@Mock
|
@Mock
|
||||||
NetworkDao _networkDao;
|
NetworkDao networkDaoMock;
|
||||||
@Mock
|
@Mock
|
||||||
ConsoleProxyManagerImpl cpvmManager;
|
ConsoleProxyManagerImpl consoleProxyManagerImplMock;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setup() throws Exception {
|
public void setup() throws Exception {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
ReflectionTestUtils.setField(cpvmManager, "_allocProxyLock", globalLock);
|
ReflectionTestUtils.setField(consoleProxyManagerImplMock, "allocProxyLock", globalLockMock);
|
||||||
ReflectionTestUtils.setField(cpvmManager, "_dcDao", _dcDao);
|
ReflectionTestUtils.setField(consoleProxyManagerImplMock, "dataCenterDao", dataCenterDaoMock);
|
||||||
ReflectionTestUtils.setField(cpvmManager, "_networkDao", _networkDao);
|
ReflectionTestUtils.setField(consoleProxyManagerImplMock, "networkDao", networkDaoMock);
|
||||||
Mockito.doCallRealMethod().when(cpvmManager).expandPool(Mockito.anyLong(), Mockito.anyObject());
|
Mockito.doCallRealMethod().when(consoleProxyManagerImplMock).expandPool(Mockito.anyLong(), Mockito.anyObject());
|
||||||
Mockito.doCallRealMethod().when(cpvmManager).getDefaultNetworkForCreation(Mockito.any(DataCenter.class));
|
Mockito.doCallRealMethod().when(consoleProxyManagerImplMock).getDefaultNetworkForCreation(Mockito.any(DataCenter.class));
|
||||||
Mockito.doCallRealMethod().when(cpvmManager).getDefaultNetworkForAdvancedZone(Mockito.any(DataCenter.class));
|
Mockito.doCallRealMethod().when(consoleProxyManagerImplMock).getDefaultNetworkForAdvancedZone(Mockito.any(DataCenter.class));
|
||||||
Mockito.doCallRealMethod().when(cpvmManager).getDefaultNetworkForBasicZone(Mockito.any(DataCenter.class));
|
Mockito.doCallRealMethod().when(consoleProxyManagerImplMock).getDefaultNetworkForBasicZone(Mockito.any(DataCenter.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -78,15 +82,15 @@ public class ConsoleProxyManagerTest {
|
|||||||
s_logger.info("Running test for new CPVM creation");
|
s_logger.info("Running test for new CPVM creation");
|
||||||
|
|
||||||
// No existing CPVM
|
// No existing CPVM
|
||||||
Mockito.when(cpvmManager.assignProxyFromStoppedPool(Mockito.anyLong())).thenReturn(null);
|
Mockito.when(consoleProxyManagerImplMock.assignProxyFromStoppedPool(Mockito.anyLong())).thenReturn(null);
|
||||||
// Allocate a new one
|
// Allocate a new one
|
||||||
Mockito.when(globalLock.lock(Mockito.anyInt())).thenReturn(true);
|
Mockito.when(globalLockMock.lock(Mockito.anyInt())).thenReturn(true);
|
||||||
Mockito.when(globalLock.unlock()).thenReturn(true);
|
Mockito.when(globalLockMock.unlock()).thenReturn(true);
|
||||||
Mockito.when(cpvmManager.startNew(Mockito.anyLong())).thenReturn(proxyVO);
|
Mockito.when(consoleProxyManagerImplMock.startNew(Mockito.anyLong())).thenReturn(consoleProxyVOMock);
|
||||||
// Start CPVM
|
// Start CPVM
|
||||||
Mockito.when(cpvmManager.startProxy(Mockito.anyLong(), Mockito.anyBoolean())).thenReturn(proxyVO);
|
Mockito.when(consoleProxyManagerImplMock.startProxy(Mockito.anyLong(), Mockito.anyBoolean())).thenReturn(consoleProxyVOMock);
|
||||||
|
|
||||||
cpvmManager.expandPool(new Long(1), new Object());
|
consoleProxyManagerImplMock.expandPool(new Long(1), new Object());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -94,11 +98,11 @@ public class ConsoleProxyManagerTest {
|
|||||||
s_logger.info("Running test for existing CPVM start");
|
s_logger.info("Running test for existing CPVM start");
|
||||||
|
|
||||||
// CPVM already exists
|
// CPVM already exists
|
||||||
Mockito.when(cpvmManager.assignProxyFromStoppedPool(Mockito.anyLong())).thenReturn(proxyVO);
|
Mockito.when(consoleProxyManagerImplMock.assignProxyFromStoppedPool(Mockito.anyLong())).thenReturn(consoleProxyVOMock);
|
||||||
// Start CPVM
|
// Start CPVM
|
||||||
Mockito.when(cpvmManager.startProxy(Mockito.anyLong(), Mockito.anyBoolean())).thenReturn(proxyVO);
|
Mockito.when(consoleProxyManagerImplMock.startProxy(Mockito.anyLong(), Mockito.anyBoolean())).thenReturn(consoleProxyVOMock);
|
||||||
|
|
||||||
cpvmManager.expandPool(new Long(1), new Object());
|
consoleProxyManagerImplMock.expandPool(new Long(1), new Object());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -106,13 +110,13 @@ public class ConsoleProxyManagerTest {
|
|||||||
s_logger.info("Running test for existing CPVM start failure");
|
s_logger.info("Running test for existing CPVM start failure");
|
||||||
|
|
||||||
// CPVM already exists
|
// CPVM already exists
|
||||||
Mockito.when(cpvmManager.assignProxyFromStoppedPool(Mockito.anyLong())).thenReturn(proxyVO);
|
Mockito.when(consoleProxyManagerImplMock.assignProxyFromStoppedPool(Mockito.anyLong())).thenReturn(consoleProxyVOMock);
|
||||||
// Start CPVM
|
// Start CPVM
|
||||||
Mockito.when(cpvmManager.startProxy(Mockito.anyLong(), Mockito.anyBoolean())).thenReturn(null);
|
Mockito.when(consoleProxyManagerImplMock.startProxy(Mockito.anyLong(), Mockito.anyBoolean())).thenReturn(null);
|
||||||
// Destroy existing CPVM, so that a new one is created subsequently
|
// Destroy existing CPVM, so that a new one is created subsequently
|
||||||
Mockito.when(cpvmManager.destroyProxy(Mockito.anyLong())).thenReturn(true);
|
Mockito.when(consoleProxyManagerImplMock.destroyProxy(Mockito.anyLong())).thenReturn(true);
|
||||||
|
|
||||||
cpvmManager.expandPool(new Long(1), new Object());
|
consoleProxyManagerImplMock.expandPool(new Long(1), new Object());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -121,20 +125,20 @@ public class ConsoleProxyManagerTest {
|
|||||||
when(dc.getNetworkType()).thenReturn(NetworkType.Advanced);
|
when(dc.getNetworkType()).thenReturn(NetworkType.Advanced);
|
||||||
when(dc.isSecurityGroupEnabled()).thenReturn(false);
|
when(dc.isSecurityGroupEnabled()).thenReturn(false);
|
||||||
|
|
||||||
when(_dcDao.findById(Mockito.anyLong())).thenReturn(dc);
|
when(dataCenterDaoMock.findById(Mockito.anyLong())).thenReturn(dc);
|
||||||
|
|
||||||
NetworkVO network = Mockito.mock(NetworkVO.class);
|
NetworkVO network = Mockito.mock(NetworkVO.class);
|
||||||
NetworkVO badNetwork = Mockito.mock(NetworkVO.class);
|
NetworkVO badNetwork = Mockito.mock(NetworkVO.class);
|
||||||
when(_networkDao.listByZoneAndTrafficType(anyLong(), eq(TrafficType.Public)))
|
when(networkDaoMock.listByZoneAndTrafficType(anyLong(), eq(TrafficType.Public)))
|
||||||
.thenReturn(Collections.singletonList(network));
|
.thenReturn(Collections.singletonList(network));
|
||||||
|
|
||||||
when(_networkDao.listByZoneAndTrafficType(anyLong(), not(eq(TrafficType.Public))))
|
when(networkDaoMock.listByZoneAndTrafficType(anyLong(), not(eq(TrafficType.Public))))
|
||||||
.thenReturn(Collections.singletonList(badNetwork));
|
.thenReturn(Collections.singletonList(badNetwork));
|
||||||
|
|
||||||
when(_networkDao.listByZoneSecurityGroup(anyLong()))
|
when(networkDaoMock.listByZoneSecurityGroup(anyLong()))
|
||||||
.thenReturn(Collections.singletonList(badNetwork));
|
.thenReturn(Collections.singletonList(badNetwork));
|
||||||
|
|
||||||
NetworkVO returnedNetwork = cpvmManager.getDefaultNetworkForAdvancedZone(dc);
|
NetworkVO returnedNetwork = consoleProxyManagerImplMock.getDefaultNetworkForAdvancedZone(dc);
|
||||||
|
|
||||||
Assert.assertNotNull(returnedNetwork);
|
Assert.assertNotNull(returnedNetwork);
|
||||||
Assert.assertEquals(network, returnedNetwork);
|
Assert.assertEquals(network, returnedNetwork);
|
||||||
@ -147,17 +151,17 @@ public class ConsoleProxyManagerTest {
|
|||||||
when(dc.getNetworkType()).thenReturn(NetworkType.Advanced);
|
when(dc.getNetworkType()).thenReturn(NetworkType.Advanced);
|
||||||
when(dc.isSecurityGroupEnabled()).thenReturn(true);
|
when(dc.isSecurityGroupEnabled()).thenReturn(true);
|
||||||
|
|
||||||
when(_dcDao.findById(Mockito.anyLong())).thenReturn(dc);
|
when(dataCenterDaoMock.findById(Mockito.anyLong())).thenReturn(dc);
|
||||||
|
|
||||||
NetworkVO network = Mockito.mock(NetworkVO.class);
|
NetworkVO network = Mockito.mock(NetworkVO.class);
|
||||||
NetworkVO badNetwork = Mockito.mock(NetworkVO.class);
|
NetworkVO badNetwork = Mockito.mock(NetworkVO.class);
|
||||||
when(_networkDao.listByZoneAndTrafficType(anyLong(), any(TrafficType.class)))
|
when(networkDaoMock.listByZoneAndTrafficType(anyLong(), any(TrafficType.class)))
|
||||||
.thenReturn(Collections.singletonList(badNetwork));
|
.thenReturn(Collections.singletonList(badNetwork));
|
||||||
|
|
||||||
when(_networkDao.listByZoneSecurityGroup(anyLong()))
|
when(networkDaoMock.listByZoneSecurityGroup(anyLong()))
|
||||||
.thenReturn(Collections.singletonList(network));
|
.thenReturn(Collections.singletonList(network));
|
||||||
|
|
||||||
NetworkVO returnedNetwork = cpvmManager.getDefaultNetworkForAdvancedZone(dc);
|
NetworkVO returnedNetwork = consoleProxyManagerImplMock.getDefaultNetworkForAdvancedZone(dc);
|
||||||
|
|
||||||
Assert.assertEquals(network, returnedNetwork);
|
Assert.assertEquals(network, returnedNetwork);
|
||||||
Assert.assertNotEquals(badNetwork, returnedNetwork);
|
Assert.assertNotEquals(badNetwork, returnedNetwork);
|
||||||
@ -169,17 +173,17 @@ public class ConsoleProxyManagerTest {
|
|||||||
when(dc.getNetworkType()).thenReturn(NetworkType.Basic);
|
when(dc.getNetworkType()).thenReturn(NetworkType.Basic);
|
||||||
when(dc.isSecurityGroupEnabled()).thenReturn(false);
|
when(dc.isSecurityGroupEnabled()).thenReturn(false);
|
||||||
|
|
||||||
when(_dcDao.findById(Mockito.anyLong())).thenReturn(dc);
|
when(dataCenterDaoMock.findById(Mockito.anyLong())).thenReturn(dc);
|
||||||
|
|
||||||
NetworkVO network = Mockito.mock(NetworkVO.class);
|
NetworkVO network = Mockito.mock(NetworkVO.class);
|
||||||
NetworkVO badNetwork = Mockito.mock(NetworkVO.class);
|
NetworkVO badNetwork = Mockito.mock(NetworkVO.class);
|
||||||
when(_networkDao.listByZoneAndTrafficType(anyLong(), eq(TrafficType.Guest)))
|
when(networkDaoMock.listByZoneAndTrafficType(anyLong(), eq(TrafficType.Guest)))
|
||||||
.thenReturn(Collections.singletonList(network));
|
.thenReturn(Collections.singletonList(network));
|
||||||
|
|
||||||
when(_networkDao.listByZoneAndTrafficType(anyLong(), not(eq(TrafficType.Guest))))
|
when(networkDaoMock.listByZoneAndTrafficType(anyLong(), not(eq(TrafficType.Guest))))
|
||||||
.thenReturn(Collections.singletonList(badNetwork));
|
.thenReturn(Collections.singletonList(badNetwork));
|
||||||
|
|
||||||
NetworkVO returnedNetwork = cpvmManager.getDefaultNetworkForBasicZone(dc);
|
NetworkVO returnedNetwork = consoleProxyManagerImplMock.getDefaultNetworkForBasicZone(dc);
|
||||||
Assert.assertNotNull(returnedNetwork);
|
Assert.assertNotNull(returnedNetwork);
|
||||||
Assert.assertEquals(network, returnedNetwork);
|
Assert.assertEquals(network, returnedNetwork);
|
||||||
Assert.assertNotEquals(badNetwork, returnedNetwork);
|
Assert.assertNotEquals(badNetwork, returnedNetwork);
|
||||||
@ -191,17 +195,17 @@ public class ConsoleProxyManagerTest {
|
|||||||
when(dc.getNetworkType()).thenReturn(NetworkType.Basic);
|
when(dc.getNetworkType()).thenReturn(NetworkType.Basic);
|
||||||
when(dc.isSecurityGroupEnabled()).thenReturn(true);
|
when(dc.isSecurityGroupEnabled()).thenReturn(true);
|
||||||
|
|
||||||
when(_dcDao.findById(Mockito.anyLong())).thenReturn(dc);
|
when(dataCenterDaoMock.findById(Mockito.anyLong())).thenReturn(dc);
|
||||||
|
|
||||||
NetworkVO network = Mockito.mock(NetworkVO.class);
|
NetworkVO network = Mockito.mock(NetworkVO.class);
|
||||||
NetworkVO badNetwork = Mockito.mock(NetworkVO.class);
|
NetworkVO badNetwork = Mockito.mock(NetworkVO.class);
|
||||||
when(_networkDao.listByZoneAndTrafficType(anyLong(), eq(TrafficType.Guest)))
|
when(networkDaoMock.listByZoneAndTrafficType(anyLong(), eq(TrafficType.Guest)))
|
||||||
.thenReturn(Collections.singletonList(network));
|
.thenReturn(Collections.singletonList(network));
|
||||||
|
|
||||||
when(_networkDao.listByZoneAndTrafficType(anyLong(), not(eq(TrafficType.Guest))))
|
when(networkDaoMock.listByZoneAndTrafficType(anyLong(), not(eq(TrafficType.Guest))))
|
||||||
.thenReturn(Collections.singletonList(badNetwork));
|
.thenReturn(Collections.singletonList(badNetwork));
|
||||||
|
|
||||||
NetworkVO returnedNetwork = cpvmManager.getDefaultNetworkForBasicZone(dc);
|
NetworkVO returnedNetwork = consoleProxyManagerImplMock.getDefaultNetworkForBasicZone(dc);
|
||||||
|
|
||||||
Assert.assertNotNull(returnedNetwork);
|
Assert.assertNotNull(returnedNetwork);
|
||||||
Assert.assertEquals(network, returnedNetwork);
|
Assert.assertEquals(network, returnedNetwork);
|
||||||
@ -215,17 +219,17 @@ public class ConsoleProxyManagerTest {
|
|||||||
when(dc.getNetworkType()).thenReturn(NetworkType.Advanced);
|
when(dc.getNetworkType()).thenReturn(NetworkType.Advanced);
|
||||||
when(dc.isSecurityGroupEnabled()).thenReturn(true);
|
when(dc.isSecurityGroupEnabled()).thenReturn(true);
|
||||||
|
|
||||||
when(_dcDao.findById(Mockito.anyLong())).thenReturn(dc);
|
when(dataCenterDaoMock.findById(Mockito.anyLong())).thenReturn(dc);
|
||||||
|
|
||||||
NetworkVO network = Mockito.mock(NetworkVO.class);
|
NetworkVO network = Mockito.mock(NetworkVO.class);
|
||||||
NetworkVO badNetwork = Mockito.mock(NetworkVO.class);
|
NetworkVO badNetwork = Mockito.mock(NetworkVO.class);
|
||||||
when(_networkDao.listByZoneAndTrafficType(anyLong(), eq(TrafficType.Guest)))
|
when(networkDaoMock.listByZoneAndTrafficType(anyLong(), eq(TrafficType.Guest)))
|
||||||
.thenReturn(Collections.singletonList(network));
|
.thenReturn(Collections.singletonList(network));
|
||||||
|
|
||||||
when(_networkDao.listByZoneAndTrafficType(anyLong(), not(eq(TrafficType.Guest))))
|
when(networkDaoMock.listByZoneAndTrafficType(anyLong(), not(eq(TrafficType.Guest))))
|
||||||
.thenReturn(Collections.singletonList(badNetwork));
|
.thenReturn(Collections.singletonList(badNetwork));
|
||||||
|
|
||||||
cpvmManager.getDefaultNetworkForBasicZone(dc);
|
consoleProxyManagerImplMock.getDefaultNetworkForBasicZone(dc);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(expected=CloudRuntimeException.class)
|
@Test(expected=CloudRuntimeException.class)
|
||||||
@ -234,16 +238,41 @@ public class ConsoleProxyManagerTest {
|
|||||||
when(dc.getNetworkType()).thenReturn(NetworkType.Basic);
|
when(dc.getNetworkType()).thenReturn(NetworkType.Basic);
|
||||||
when(dc.isSecurityGroupEnabled()).thenReturn(true);
|
when(dc.isSecurityGroupEnabled()).thenReturn(true);
|
||||||
|
|
||||||
when(_dcDao.findById(Mockito.anyLong())).thenReturn(dc);
|
when(dataCenterDaoMock.findById(Mockito.anyLong())).thenReturn(dc);
|
||||||
|
|
||||||
NetworkVO network = Mockito.mock(NetworkVO.class);
|
NetworkVO network = Mockito.mock(NetworkVO.class);
|
||||||
NetworkVO badNetwork = Mockito.mock(NetworkVO.class);
|
NetworkVO badNetwork = Mockito.mock(NetworkVO.class);
|
||||||
when(_networkDao.listByZoneAndTrafficType(anyLong(), any(TrafficType.class)))
|
when(networkDaoMock.listByZoneAndTrafficType(anyLong(), any(TrafficType.class)))
|
||||||
.thenReturn(Collections.singletonList(badNetwork));
|
.thenReturn(Collections.singletonList(badNetwork));
|
||||||
|
|
||||||
when(_networkDao.listByZoneSecurityGroup(anyLong()))
|
when(networkDaoMock.listByZoneSecurityGroup(anyLong()))
|
||||||
.thenReturn(Collections.singletonList(network));
|
.thenReturn(Collections.singletonList(network));
|
||||||
|
|
||||||
cpvmManager.getDefaultNetworkForAdvancedZone(dc);
|
consoleProxyManagerImplMock.getDefaultNetworkForAdvancedZone(dc);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void validateParseJsonToConsoleProxyStatusWithValidParamMustReturnValue() {
|
||||||
|
ConsoleProxyStatus expectedResult = new ConsoleProxyStatus();
|
||||||
|
|
||||||
|
GsonBuilder gb = new GsonBuilder();
|
||||||
|
gb.setVersion(1.3);
|
||||||
|
Gson gson = gb.create();
|
||||||
|
|
||||||
|
ConsoleProxyStatus result = new ConsoleProxyManagerImpl().parseJsonToConsoleProxyStatus(gson.toJson(expectedResult));
|
||||||
|
|
||||||
|
Assert.assertArrayEquals(expectedResult.getConnections(), result.getConnections());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test (expected = JsonParseException.class)
|
||||||
|
public void validateParseJsonToConsoleProxyStatusWithInvalidParamMustThrowJsonParseException() {
|
||||||
|
new ConsoleProxyManagerImpl().parseJsonToConsoleProxyStatus("Invalid format to throw exception");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void validateParseJsonToConsoleProxyStatusWithNullParamMustReturnNull() {
|
||||||
|
ConsoleProxyStatus expectedResult = null;
|
||||||
|
ConsoleProxyStatus result = new ConsoleProxyManagerImpl().parseJsonToConsoleProxyStatus(null);
|
||||||
|
Assert.assertEquals(expectedResult, result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user