You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ko...@apache.org on 2013/11/09 09:07:35 UTC
[1/2] git commit: updated refs/heads/master to b33a837
Updated Branches:
refs/heads/master ded8d6592 -> b33a8371b
fix long cast to double
- the result of dividing long with long resulted in loss of precision both for network and IO
- unit tests included
Signed-off-by: Laszlo Hornyak <la...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/b2f06aae
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/b2f06aae
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/b2f06aae
Branch: refs/heads/master
Commit: b2f06aae68b0da523fe274c78222abe809af92a7
Parents: ded8d65
Author: Laszlo Hornyak <la...@gmail.com>
Authored: Fri Nov 8 23:15:19 2013 +0100
Committer: Laszlo Hornyak <la...@gmail.com>
Committed: Sat Nov 9 09:04:05 2013 +0100
----------------------------------------------------------------------
.../kvm/resource/LibvirtComputingResource.java | 10 +-
.../resource/LibvirtComputingResourceTest.java | 109 +++++++++++++++++--
2 files changed, 105 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b2f06aae/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
index 63bd5dc..eda311f 100755
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
@@ -4776,7 +4776,7 @@ ServerResource {
Calendar _timestamp;
}
- private VmStatsEntry getVmStat(Connect conn, String vmName)
+ VmStatsEntry getVmStat(Connect conn, String vmName)
throws LibvirtException {
Domain dm = null;
try {
@@ -4821,10 +4821,10 @@ ServerResource {
}
if (oldStats != null) {
- long deltarx = rx - oldStats._rx;
+ double deltarx = rx - oldStats._rx;
if (deltarx > 0)
stats.setNetworkReadKBs(deltarx / 1024);
- long deltatx = tx - oldStats._tx;
+ double deltatx = tx - oldStats._tx;
if (deltatx > 0)
stats.setNetworkWriteKBs(deltatx / 1024);
}
@@ -4850,10 +4850,10 @@ ServerResource {
long deltaiowr = io_wr - oldStats._io_wr;
if (deltaiowr > 0)
stats.setDiskWriteIOs(deltaiowr);
- long deltabytesrd = bytes_rd - oldStats._bytes_rd;
+ double deltabytesrd = bytes_rd - oldStats._bytes_rd;
if (deltabytesrd > 0)
stats.setDiskReadKBs(deltabytesrd / 1024);
- long deltabyteswr = bytes_wr - oldStats._bytes_wr;
+ double deltabyteswr = bytes_wr - oldStats._bytes_wr;
if (deltabyteswr > 0)
stats.setDiskWriteKBs(deltabyteswr / 1024);
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b2f06aae/plugins/hypervisors/kvm/test/com/cloud/hypervisor/kvm/resource/LibvirtComputingResourceTest.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/kvm/test/com/cloud/hypervisor/kvm/resource/LibvirtComputingResourceTest.java b/plugins/hypervisors/kvm/test/com/cloud/hypervisor/kvm/resource/LibvirtComputingResourceTest.java
index d6e8dc2..803ac32 100644
--- a/plugins/hypervisors/kvm/test/com/cloud/hypervisor/kvm/resource/LibvirtComputingResourceTest.java
+++ b/plugins/hypervisors/kvm/test/com/cloud/hypervisor/kvm/resource/LibvirtComputingResourceTest.java
@@ -19,21 +19,37 @@
package com.cloud.hypervisor.kvm.resource;
-import com.cloud.agent.api.to.VirtualMachineTO;
-import com.cloud.template.VirtualMachineTemplate.BootloaderType;
-import com.cloud.utils.Pair;
-import com.cloud.vm.VirtualMachine;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Random;
+import java.util.UUID;
import junit.framework.Assert;
+
import org.apache.commons.lang.SystemUtils;
import org.junit.Assume;
import org.junit.Test;
+import org.libvirt.Connect;
+import org.libvirt.Domain;
+import org.libvirt.DomainBlockStats;
+import org.libvirt.DomainInfo;
+import org.libvirt.DomainInterfaceStats;
+import org.libvirt.LibvirtException;
+import org.libvirt.NodeInfo;
+import org.mockito.Mockito;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
-import java.util.Random;
-import java.util.UUID;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
+import com.cloud.agent.api.VmStatsEntry;
+import com.cloud.agent.api.to.VirtualMachineTO;
+import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.DiskDef;
+import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.InterfaceDef;
+import com.cloud.template.VirtualMachineTemplate.BootloaderType;
+import com.cloud.utils.Pair;
+import com.cloud.vm.VirtualMachine;
public class LibvirtComputingResourceTest {
@@ -210,4 +226,79 @@ public class LibvirtComputingResourceTest {
uuid = lcr.getUuid(uuid);
Assert.assertTrue(uuid.equals(oldUuid));
}
+
+ private static final String VMNAME = "test";
+
+ @Test
+ public void testGetVmStat() throws LibvirtException {
+ Connect connect = Mockito.mock(Connect.class);
+ Domain domain = Mockito.mock(Domain.class);
+ DomainInfo domainInfo = new DomainInfo();
+ Mockito.when(domain.getInfo()).thenReturn(domainInfo);
+ Mockito.when(connect.domainLookupByName(VMNAME)).thenReturn(domain);
+ NodeInfo nodeInfo = new NodeInfo();
+ nodeInfo.cpus = 8;
+ nodeInfo.memory = 8 * 1024 * 1024;
+ nodeInfo.sockets = 2;
+ nodeInfo.threads = 2;
+ nodeInfo.model = "Foo processor";
+ Mockito.when(connect.nodeInfo()).thenReturn(nodeInfo);
+ // this is testing the interface stats, returns an increasing number of sent and received bytes
+ Mockito.when(domain.interfaceStats(Mockito.anyString())).thenAnswer(new Answer<DomainInterfaceStats>() {
+ // increment with less than a KB, so this should be less than 1 KB
+ final static int increment = 1000;
+ int rx_bytes = 1000;
+ int tx_bytes = 1000;
+
+ @Override
+ public DomainInterfaceStats answer(InvocationOnMock invocation) throws Throwable {
+ DomainInterfaceStats domainInterfaceStats = new DomainInterfaceStats();
+ domainInterfaceStats.rx_bytes = (this.rx_bytes += increment);
+ domainInterfaceStats.tx_bytes = (this.tx_bytes += increment);
+ return domainInterfaceStats;
+
+ }
+
+ });
+
+ Mockito.when(domain.blockStats(Mockito.anyString())).thenAnswer(new Answer<DomainBlockStats>() {
+ // a little less than a KB
+ final static int increment = 1000;
+
+ int rd_bytes = 0;
+ int wr_bytes = 1024;
+ @Override
+ public DomainBlockStats answer(InvocationOnMock invocation) throws Throwable {
+ DomainBlockStats domainBlockStats = new DomainBlockStats();
+
+ domainBlockStats.rd_bytes = (rd_bytes += increment);
+ domainBlockStats.wr_bytes = (wr_bytes += increment);
+ return domainBlockStats;
+ }
+
+ });
+
+ LibvirtComputingResource libvirtComputingResource = new LibvirtComputingResource() {
+ @Override
+ protected List<InterfaceDef> getInterfaces(Connect conn, String vmName) {
+ InterfaceDef interfaceDef = new InterfaceDef();
+ return Arrays.asList(interfaceDef);
+ }
+
+ @Override
+ public List<DiskDef> getDisks(Connect conn, String vmName) {
+ DiskDef diskDef = new DiskDef();
+ return Arrays.asList(diskDef);
+ }
+
+ };
+ libvirtComputingResource.getVmStat(connect, VMNAME);
+ VmStatsEntry vmStat = libvirtComputingResource.getVmStat(connect, VMNAME);
+ // network traffic as generated by the logic above, must be greater than zero
+ Assert.assertTrue(vmStat.getNetworkReadKBs() > 0);
+ Assert.assertTrue(vmStat.getNetworkWriteKBs() > 0);
+ // IO traffic as generated by the logic above, must be greater than zero
+ Assert.assertTrue(vmStat.getDiskReadKBs() > 0);
+ Assert.assertTrue(vmStat.getDiskWriteKBs() > 0);
+ }
}
[2/2] git commit: updated refs/heads/master to b33a837
Posted by ko...@apache.org.
license headers added
Signed-off-by: Laszlo Hornyak <la...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/b33a8371
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/b33a8371
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/b33a8371
Branch: refs/heads/master
Commit: b33a8371bc5cce4c64b30c0eeffe8dff751be85b
Parents: b2f06aa
Author: Laszlo Hornyak <la...@gmail.com>
Authored: Sat Nov 9 09:06:01 2013 +0100
Committer: Laszlo Hornyak <la...@gmail.com>
Committed: Sat Nov 9 09:06:01 2013 +0100
----------------------------------------------------------------------
api/src/com/cloud/network/lb/SslCert.java | 16 ++++++++++++++++
.../src/com/cloud/network/dao/SslCertDaoImpl.java | 16 ++++++++++++++++
2 files changed, 32 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b33a8371/api/src/com/cloud/network/lb/SslCert.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/lb/SslCert.java b/api/src/com/cloud/network/lb/SslCert.java
index f7a7c4b..56555b6 100644
--- a/api/src/com/cloud/network/lb/SslCert.java
+++ b/api/src/com/cloud/network/lb/SslCert.java
@@ -1,3 +1,19 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
package com.cloud.network.lb;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b33a8371/engine/schema/src/com/cloud/network/dao/SslCertDaoImpl.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/network/dao/SslCertDaoImpl.java b/engine/schema/src/com/cloud/network/dao/SslCertDaoImpl.java
index 483c28d..af0d970 100644
--- a/engine/schema/src/com/cloud/network/dao/SslCertDaoImpl.java
+++ b/engine/schema/src/com/cloud/network/dao/SslCertDaoImpl.java
@@ -1,3 +1,19 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
package com.cloud.network.dao;
import com.cloud.utils.db.GenericDaoBase;