You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ed...@apache.org on 2013/06/27 20:10:52 UTC
git commit: updated refs/heads/master to 882e5fa
Updated Branches:
refs/heads/master 6ea38bff1 -> 882e5fa4e
FileUtil simplified
- writeToFile removed since no references to it
- readFileAsString replaced with FileUtils.readFileToString
- minor code duplication removed in dependent method getNicStats
- unit test 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/882e5fa4
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/882e5fa4
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/882e5fa4
Branch: refs/heads/master
Commit: 882e5fa4e0c54ff53172b132c6184edadbc38b42
Parents: 6ea38bf
Author: Laszlo Hornyak <la...@gmail.com>
Authored: Wed Jun 19 22:54:51 2013 +0200
Committer: Edison Su <su...@gmail.com>
Committed: Thu Jun 27 11:08:03 2013 -0700
----------------------------------------------------------------------
.../kvm/resource/LibvirtComputingResource.java | 28 ++++++-------
.../resource/LibvirtComputingResourceTest.java | 14 +++++++
utils/src/com/cloud/utils/FileUtil.java | 41 +-------------------
3 files changed, 26 insertions(+), 57 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/882e5fa4/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 b1bc99d..e0c00fc 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
@@ -64,6 +64,7 @@ import org.apache.cloudstack.utils.qemu.QemuImg.PhysicalDiskFormat;
import org.apache.cloudstack.utils.qemu.QemuImgException;
import org.apache.cloudstack.utils.qemu.QemuImgFile;
import org.apache.log4j.Logger;
+import org.apache.commons.io.FileUtils;
import org.libvirt.Connect;
import org.libvirt.Domain;
import org.libvirt.DomainBlockStats;
@@ -229,7 +230,6 @@ import com.cloud.storage.template.Processor.FormatInfo;
import com.cloud.storage.template.QCOW2Processor;
import com.cloud.storage.template.TemplateLocation;
import com.cloud.storage.template.TemplateProp;
-import com.cloud.utils.FileUtil;
import com.cloud.utils.NumbersUtil;
import com.cloud.utils.Pair;
import com.cloud.utils.PropertiesUtil;
@@ -4847,24 +4847,18 @@ ServerResource {
}
}
- private Pair<Double, Double> getNicStats(String nicName) {
- double rx = 0.0;
- String rxFile = "/sys/class/net/" + nicName + "/statistics/rx_bytes";
- String rxContent = FileUtil.readFileAsString(rxFile);
- if (rxContent == null) {
- s_logger.warn("Failed to read the rx_bytes for " + nicName + " from " + rxFile);
- }
- rx = Double.parseDouble(rxContent);
+ static Pair<Double, Double> getNicStats(String nicName) {
+ return new Pair<Double, Double>(readDouble(nicName, "rx_bytes"), readDouble(nicName, "tx_bytes"));
+ }
- double tx = 0.0;
- String txFile = "/sys/class/net/" + nicName + "/statistics/tx_bytes";
- String txContent = FileUtil.readFileAsString(txFile);
- if (txContent == null) {
- s_logger.warn("Failed to read the tx_bytes for " + nicName + " from " + txFile);
+ static double readDouble(String nicName, String fileName) {
+ final String path = "/sys/class/net/" + nicName + "/statistics/" + fileName;
+ try {
+ return Double.parseDouble(FileUtils.readFileToString(new File(path)));
+ } catch (IOException ioe) {
+ s_logger.warn("Failed to read the " + fileName + " for " + nicName + " from " + path, ioe);
+ return 0.0;
}
- tx = Double.parseDouble(txContent);
-
- return new Pair<Double, Double>(rx, tx);
}
private Answer execute(NetworkRulesSystemVmCommand cmd) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/882e5fa4/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 c82c31f..56d6536 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
@@ -21,12 +21,17 @@ 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 org.apache.commons.lang.SystemUtils;
+import org.junit.Assume;
import org.junit.Test;
import java.util.Random;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
public class LibvirtComputingResourceTest {
@@ -183,4 +188,13 @@ public class LibvirtComputingResourceTest {
assertEquals(vmStr, vm.toString());
}
+
+ @Test
+ public void testGetNicStats() {
+ //this test is only working on linux because of the loopback interface name
+ //also the tested code seems to work only on linux
+ Assume.assumeTrue(SystemUtils.IS_OS_LINUX);
+ Pair<Double, Double> stats = LibvirtComputingResource.getNicStats("lo");
+ assertNotNull(stats);
+ }
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/882e5fa4/utils/src/com/cloud/utils/FileUtil.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/FileUtil.java b/utils/src/com/cloud/utils/FileUtil.java
index 74f4088..a6f0c91 100644
--- a/utils/src/com/cloud/utils/FileUtil.java
+++ b/utils/src/com/cloud/utils/FileUtil.java
@@ -16,54 +16,15 @@
// under the License.
package com.cloud.utils;
-import java.io.BufferedInputStream;
-import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
-import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class FileUtil {
-
- public static String readFileAsString(String filePath) {
- File file = new File(filePath);
- if(!file.exists())
- return null;
-
- try {
- byte[] buffer = new byte[(int)file.length()];
- BufferedInputStream f = null;
- try {
- f = new BufferedInputStream(new FileInputStream(filePath));
- f.read(buffer);
- } finally {
- if (f != null) {
- try {
- f.close();
- } catch (IOException ignored) {
- }
- }
- }
- return new String(buffer);
- } catch(IOException e) {
- return null;
- }
- }
-
- public static void writeToFile(String content, String filePath) throws IOException {
- BufferedWriter out = null;
- try {
- out = new BufferedWriter(new FileWriter(filePath));
- out.write(content);
- } finally {
- if(out != null)
- out.close();
- }
- }
-
+
public static void copyfile(File f1, File f2) throws IOException {
InputStream in = new FileInputStream(f1);
OutputStream out = new FileOutputStream(f2);