blob: 5bbd6aa7cf7bd73216f3d4e6391cd3e03f6dfc44 [file] [log] [blame]
/*=========================================================================
* Copyright (c) 2010-2014 Pivotal Software, Inc. All Rights Reserved.
* This product is protected by U.S. and international copyright
* and intellectual property laws. Pivotal products are covered by
* one or more patents listed at http://www.pivotal.io/patents.
*=========================================================================
*/
package com.gemstone.gemfire.management.bean.stats;
import java.util.Set;
import javax.management.ObjectName;
import com.gemstone.gemfire.distributed.DistributedMember;
import com.gemstone.gemfire.internal.cache.DiskStoreStats;
import com.gemstone.gemfire.internal.cache.GemFireCacheImpl;
import com.gemstone.gemfire.management.DistributedSystemMXBean;
import com.gemstone.gemfire.management.ManagementTestBase;
import com.gemstone.gemfire.management.MemberMXBean;
import com.gemstone.gemfire.management.internal.SystemManagementService;
import com.gemstone.gemfire.management.internal.beans.MemberMBean;
import com.gemstone.gemfire.management.internal.beans.MemberMBeanBridge;
import dunit.SerializableRunnable;
import dunit.VM;
/**
* @author rishim
*/
public class DistributedSystemStatsDUnitTest extends ManagementTestBase{
private static final long serialVersionUID = 1L;
public DistributedSystemStatsDUnitTest(String name) {
super(name);
}
public void setUp() throws Exception {
super.setUp();
}
public void tearDown2() throws Exception {
super.tearDown2();
}
public void testDistributedSystemStats() throws Exception {
initManagement(true);
for(VM vm : managedNodeList){
setDiskStats(vm);
}
verifyDiskStats(managingNode);
}
@SuppressWarnings("serial")
public void setDiskStats(VM vm1) throws Exception {
vm1.invoke(new SerializableRunnable("Set Member Stats") {
public void run() {
MemberMBean bean = (MemberMBean) managementService.getMemberMXBean();
MemberMBeanBridge bridge = bean.getBridge();
DiskStoreStats diskStoreStats = new DiskStoreStats(system, "test");
bridge.addDiskStoreStats(diskStoreStats);
diskStoreStats.startRead();
diskStoreStats.startWrite();
diskStoreStats.startBackup();
diskStoreStats.startRecovery();
diskStoreStats.incWrittenBytes(20, true);
diskStoreStats.startFlush();
diskStoreStats.setQueueSize(10);
}
});
}
@SuppressWarnings("serial")
public void verifyDiskStats(VM vm1) throws Exception {
vm1.invoke(new SerializableRunnable("Set Member Stats") {
public void run() {
GemFireCacheImpl cache = GemFireCacheImpl.getInstance();
SystemManagementService service = (SystemManagementService) getManagementService();
DistributedSystemMXBean bean = service.getDistributedSystemMXBean();
assertNotNull(bean);
Set<DistributedMember> otherMemberSet = cache.getDistributionManager()
.getOtherNormalDistributionManagerIds();
for (DistributedMember member : otherMemberSet) {
ObjectName memberMBeanName;
try {
memberMBeanName = service.getMemberMBeanName(member);
waitForProxy(memberMBeanName, MemberMXBean.class);
MemberMXBean memberBean = service.getMBeanProxy(memberMBeanName, MemberMXBean.class);
waitForRefresh(2, memberMBeanName);
} catch (NullPointerException e) {
fail("FAILED WITH EXCEPION", e);
} catch (Exception e) {
fail("FAILED WITH EXCEPION", e);
}
}
}
});
}
}