http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5e9a193f/agent/src/com/cloud/agent/resource/computing/LibvirtConnection.java
----------------------------------------------------------------------
diff --git 
a/agent/src/com/cloud/agent/resource/computing/LibvirtConnection.java 
b/agent/src/com/cloud/agent/resource/computing/LibvirtConnection.java
index 874ad98..d3a2318 100644
--- a/agent/src/com/cloud/agent/resource/computing/LibvirtConnection.java
+++ b/agent/src/com/cloud/agent/resource/computing/LibvirtConnection.java
@@ -21,28 +21,28 @@ import org.libvirt.Connect;
 import org.libvirt.LibvirtException;
 
 public class LibvirtConnection {
-       private static final Logger s_logger = Logger
-                       .getLogger(LibvirtConnection.class);
-       static private Connect _connection;
-       static private String _hypervisorURI;
+    private static final Logger s_logger = Logger
+            .getLogger(LibvirtConnection.class);
+    static private Connect _connection;
+    static private String _hypervisorURI;
 
-       static public Connect getConnection() throws LibvirtException {
-               if (_connection == null) {
-                       _connection = new Connect(_hypervisorURI, false);
-               } else {
-                       try {
-                               _connection.getVersion();
-                       } catch (LibvirtException e) {
-                               s_logger.debug("Connection with libvirtd is 
broken, due to "
-                                               + e.getMessage());
-                               _connection = new Connect(_hypervisorURI, 
false);
-                       }
-               }
+    static public Connect getConnection() throws LibvirtException {
+        if (_connection == null) {
+            _connection = new Connect(_hypervisorURI, false);
+        } else {
+            try {
+                _connection.getVersion();
+            } catch (LibvirtException e) {
+                s_logger.debug("Connection with libvirtd is broken, due to "
+                        + e.getMessage());
+                _connection = new Connect(_hypervisorURI, false);
+            }
+        }
 
-               return _connection;
-       }
+        return _connection;
+    }
 
-       static void initialize(String hypervisorURI) {
-               _hypervisorURI = hypervisorURI;
-       }
+    static void initialize(String hypervisorURI) {
+        _hypervisorURI = hypervisorURI;
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5e9a193f/agent/src/com/cloud/agent/resource/computing/LibvirtDomainXMLParser.java
----------------------------------------------------------------------
diff --git 
a/agent/src/com/cloud/agent/resource/computing/LibvirtDomainXMLParser.java 
b/agent/src/com/cloud/agent/resource/computing/LibvirtDomainXMLParser.java
index f51d7ae..6215534 100644
--- a/agent/src/com/cloud/agent/resource/computing/LibvirtDomainXMLParser.java
+++ b/agent/src/com/cloud/agent/resource/computing/LibvirtDomainXMLParser.java
@@ -45,209 +45,209 @@ import 
com.cloud.agent.resource.computing.LibvirtVMDef.InterfaceDef.nicModel;
  * 
  */
 public class LibvirtDomainXMLParser {
-       private static final Logger s_logger = Logger
-                       .getLogger(LibvirtDomainXMLParser.class);
-       private final List<InterfaceDef> interfaces = new 
ArrayList<InterfaceDef>();
-       private final List<DiskDef> diskDefs = new ArrayList<DiskDef>();
-       private Integer vncPort;
-       private String desc;
-
-       public boolean parseDomainXML(String domXML) {
-               DocumentBuilder builder;
-               try {
-                       builder = 
DocumentBuilderFactory.newInstance().newDocumentBuilder();
-
-                       InputSource is = new InputSource();
-                       is.setCharacterStream(new StringReader(domXML));
-                       Document doc = builder.parse(is);
-
-                       Element rootElement = doc.getDocumentElement();
-
-                       desc = getTagValue("description", rootElement);
-
-                       Element devices = (Element) 
rootElement.getElementsByTagName(
-                                       "devices").item(0);
-                       NodeList disks = devices.getElementsByTagName("disk");
-                       for (int i = 0; i < disks.getLength(); i++) {
-                               Element disk = (Element) disks.item(i);
-                               String diskFmtType = getAttrValue("driver", 
"type", disk);
-                               String diskFile = getAttrValue("source", 
"file", disk);
-                               String diskDev = getAttrValue("source", "dev", 
disk);
-
-                               String diskLabel = getAttrValue("target", 
"dev", disk);
-                               String bus = getAttrValue("target", "bus", 
disk);
-                               String type = disk.getAttribute("type");
-                               String device = disk.getAttribute("device");
-
-                               DiskDef def = new DiskDef();
-                               if (type.equalsIgnoreCase("file")) {
-                                       if (device.equalsIgnoreCase("disk")) {
-                                               DiskDef.diskFmtType fmt = null;
-                                               if (diskFmtType != null) {
-                                                       fmt = 
DiskDef.diskFmtType.valueOf(diskFmtType
-                                                                       
.toUpperCase());
-                                               }
-                                               def.defFileBasedDisk(diskFile, 
diskLabel,
-                                                               
DiskDef.diskBus.valueOf(bus.toUpperCase()), fmt);
-                                       } else if 
(device.equalsIgnoreCase("cdrom")) {
-                                               def.defISODisk(diskFile);
-                                       }
-                               } else if (type.equalsIgnoreCase("block")) {
-                                       def.defBlockBasedDisk(diskDev, 
diskLabel,
-                                                       
DiskDef.diskBus.valueOf(bus.toUpperCase()));
-                               }
-                               diskDefs.add(def);
-                       }
-
-                       NodeList nics = 
devices.getElementsByTagName("interface");
-                       for (int i = 0; i < nics.getLength(); i++) {
-                               Element nic = (Element) nics.item(i);
-
-                               String type = nic.getAttribute("type");
-                               String mac = getAttrValue("mac", "address", 
nic);
-                               String dev = getAttrValue("target", "dev", nic);
-                               String model = getAttrValue("model", "type", 
nic);
-                               InterfaceDef def = new InterfaceDef();
-
-                               if (type.equalsIgnoreCase("network")) {
-                                       String network = getAttrValue("source", 
"network", nic);
-                                       def.defPrivateNet(network, dev, mac,
-                                                       
nicModel.valueOf(model.toUpperCase()));
-                               } else if (type.equalsIgnoreCase("bridge")) {
-                                       String bridge = getAttrValue("source", 
"bridge", nic);
-                                       def.defBridgeNet(bridge, dev, mac,
-                                                       
nicModel.valueOf(model.toUpperCase()));
-                               }
-                               interfaces.add(def);
-                       }
-
-                       Element graphic = (Element) devices
-                                       
.getElementsByTagName("graphics").item(0);
-                       String port = graphic.getAttribute("port");
-                       if (port != null) {
-                               try {
-                                       vncPort = Integer.parseInt(port);
-                                       if (vncPort != -1) {
-                                               vncPort = vncPort - 5900;
-                                       } else {
-                                               vncPort = null;
-                                       }
-                               } catch (NumberFormatException nfe) {
-                                       vncPort = null;
-                               }
-                       }
-
-                       return true;
-               } catch (ParserConfigurationException e) {
-                       s_logger.debug(e.toString());
-               } catch (SAXException e) {
-                       s_logger.debug(e.toString());
-               } catch (IOException e) {
-                       s_logger.debug(e.toString());
-               }
-               return false;
-       }
-
-       private static String getTagValue(String tag, Element eElement) {
-               NodeList tagNodeList = eElement.getElementsByTagName(tag);
-               if (tagNodeList == null || tagNodeList.getLength() == 0) {
-                       return null;
-               }
-
-               NodeList nlList = tagNodeList.item(0).getChildNodes();
-
-               Node nValue = (Node) nlList.item(0);
-
-               return nValue.getNodeValue();
-       }
-
-       private static String getAttrValue(String tag, String attr, Element 
eElement) {
-               NodeList tagNode = eElement.getElementsByTagName(tag);
-               if (tagNode.getLength() == 0) {
-                       return null;
-               }
-               Element node = (Element) tagNode.item(0);
-               return node.getAttribute(attr);
-       }
-
-       public Integer getVncPort() {
-               return vncPort;
-       }
-
-       public List<InterfaceDef> getInterfaces() {
-               return interfaces;
-       }
-
-       public List<DiskDef> getDisks() {
-               return diskDefs;
-       }
-
-       public String getDescription() {
-               return desc;
-       }
-
-       public static void main(String[] args) {
-               LibvirtDomainXMLParser parser = new LibvirtDomainXMLParser();
-               parser.parseDomainXML("<domain type='kvm' id='12'>"
-                               + "<name>r-6-CV-5002-1</name>"
-                               + 
"<uuid>581b5a4b-b496-8d4d-e44e-a7dcbe9df0b5</uuid>"
-                               + "<description>testVM</description>"
-                               + "<memory>131072</memory>"
-                               + "<currentMemory>131072</currentMemory>"
-                               + "<vcpu>1</vcpu>"
-                               + "<os>"
-                               + "<type arch='i686' 
machine='pc-0.11'>hvm</type>"
-                               + 
"<kernel>/var/lib/libvirt/qemu/vmlinuz-2.6.31.6-166.fc12.i686</kernel>"
-                               + "<cmdline>ro root=/dev/sda1 acpi=force 
selinux=0 eth0ip=10.1.1.1 eth0mask=255.255.255.0 eth2ip=192.168.10.152 
eth2mask=255.255.255.0 gateway=192.168.10.1 dns1=72.52.126.11 dns2=72.52.126.12 
domain=v4.myvm.com</cmdline>"
-                               + "<boot dev='hd'/>"
-                               + "</os>"
-                               + "<features>"
-                               + "<acpi/>"
-                               + "<pae/>"
-                               + "</features>"
-                               + "<clock offset='utc'/>"
-                               + "<on_poweroff>destroy</on_poweroff>"
-                               + "<on_reboot>restart</on_reboot>"
-                               + "<on_crash>destroy</on_crash>"
-                               + "<devices>"
-                               + "<emulator>/usr/bin/qemu-kvm</emulator>"
-                               + "<disk type='file' device='disk'>"
-                               + "<driver name='qemu' type='raw'/>"
-                               + "<source 
file='/mnt/tank//vmops/CV/vm/u000004/r000006/rootdisk'/>"
-                               + "<target dev='hda' bus='ide'/>" + "</disk>"
-                               + "<interface type='bridge'>"
-                               + "<mac address='02:00:50:02:00:01'/>"
-                               + "<source bridge='vnbr5002'/>" + "<target 
dev='vtap5002'/>"
-                               + "<model type='e1000'/>" + "</interface>"
-                               + "<interface type='network'>"
-                               + "<mac address='00:16:3e:77:e2:a1'/>"
-                               + "<source network='vmops-private'/>" + 
"<target dev='vnet3'/>"
-                               + "<model type='e1000'/>" + "</interface>"
-                               + "<interface type='bridge'>"
-                               + "<mac address='06:85:00:00:00:04'/>"
-                               + "<source bridge='br0'/>" + "<target 
dev='tap5002'/>"
-                               + "<model type='e1000'/>" + "</interface>"
-                               + "<input type='mouse' bus='ps2'/>"
-                               + "<graphics type='vnc' port='6031' 
autoport='no' listen=''/>"
-                               + "<video>" + "<model type='cirrus' vram='9216' 
heads='1'/>"
-                               + "</video>" + "</devices>" + "</domain>"
-
-               );
-               for (InterfaceDef intf : parser.getInterfaces()) {
-                       System.out.println(intf);
-               }
-               for (DiskDef disk : parser.getDisks()) {
-                       System.out.println(disk);
-               }
-               System.out.println(parser.getVncPort());
-               System.out.println(parser.getDescription());
-
-               List<String> test = new ArrayList<String>(1);
-               test.add("1");
-               test.add("2");
-               if (test.contains("1")) {
-                       System.out.print("fdf");
-               }
-       }
+    private static final Logger s_logger = Logger
+            .getLogger(LibvirtDomainXMLParser.class);
+    private final List<InterfaceDef> interfaces = new 
ArrayList<InterfaceDef>();
+    private final List<DiskDef> diskDefs = new ArrayList<DiskDef>();
+    private Integer vncPort;
+    private String desc;
+
+    public boolean parseDomainXML(String domXML) {
+        DocumentBuilder builder;
+        try {
+            builder = 
DocumentBuilderFactory.newInstance().newDocumentBuilder();
+
+            InputSource is = new InputSource();
+            is.setCharacterStream(new StringReader(domXML));
+            Document doc = builder.parse(is);
+
+            Element rootElement = doc.getDocumentElement();
+
+            desc = getTagValue("description", rootElement);
+
+            Element devices = (Element) rootElement.getElementsByTagName(
+                    "devices").item(0);
+            NodeList disks = devices.getElementsByTagName("disk");
+            for (int i = 0; i < disks.getLength(); i++) {
+                Element disk = (Element) disks.item(i);
+                String diskFmtType = getAttrValue("driver", "type", disk);
+                String diskFile = getAttrValue("source", "file", disk);
+                String diskDev = getAttrValue("source", "dev", disk);
+
+                String diskLabel = getAttrValue("target", "dev", disk);
+                String bus = getAttrValue("target", "bus", disk);
+                String type = disk.getAttribute("type");
+                String device = disk.getAttribute("device");
+
+                DiskDef def = new DiskDef();
+                if (type.equalsIgnoreCase("file")) {
+                    if (device.equalsIgnoreCase("disk")) {
+                        DiskDef.diskFmtType fmt = null;
+                        if (diskFmtType != null) {
+                            fmt = DiskDef.diskFmtType.valueOf(diskFmtType
+                                    .toUpperCase());
+                        }
+                        def.defFileBasedDisk(diskFile, diskLabel,
+                                DiskDef.diskBus.valueOf(bus.toUpperCase()), 
fmt);
+                    } else if (device.equalsIgnoreCase("cdrom")) {
+                        def.defISODisk(diskFile);
+                    }
+                } else if (type.equalsIgnoreCase("block")) {
+                    def.defBlockBasedDisk(diskDev, diskLabel,
+                            DiskDef.diskBus.valueOf(bus.toUpperCase()));
+                }
+                diskDefs.add(def);
+            }
+
+            NodeList nics = devices.getElementsByTagName("interface");
+            for (int i = 0; i < nics.getLength(); i++) {
+                Element nic = (Element) nics.item(i);
+
+                String type = nic.getAttribute("type");
+                String mac = getAttrValue("mac", "address", nic);
+                String dev = getAttrValue("target", "dev", nic);
+                String model = getAttrValue("model", "type", nic);
+                InterfaceDef def = new InterfaceDef();
+
+                if (type.equalsIgnoreCase("network")) {
+                    String network = getAttrValue("source", "network", nic);
+                    def.defPrivateNet(network, dev, mac,
+                            nicModel.valueOf(model.toUpperCase()));
+                } else if (type.equalsIgnoreCase("bridge")) {
+                    String bridge = getAttrValue("source", "bridge", nic);
+                    def.defBridgeNet(bridge, dev, mac,
+                            nicModel.valueOf(model.toUpperCase()));
+                }
+                interfaces.add(def);
+            }
+
+            Element graphic = (Element) devices
+                    .getElementsByTagName("graphics").item(0);
+            String port = graphic.getAttribute("port");
+            if (port != null) {
+                try {
+                    vncPort = Integer.parseInt(port);
+                    if (vncPort != -1) {
+                        vncPort = vncPort - 5900;
+                    } else {
+                        vncPort = null;
+                    }
+                } catch (NumberFormatException nfe) {
+                    vncPort = null;
+                }
+            }
+
+            return true;
+        } catch (ParserConfigurationException e) {
+            s_logger.debug(e.toString());
+        } catch (SAXException e) {
+            s_logger.debug(e.toString());
+        } catch (IOException e) {
+            s_logger.debug(e.toString());
+        }
+        return false;
+    }
+
+    private static String getTagValue(String tag, Element eElement) {
+        NodeList tagNodeList = eElement.getElementsByTagName(tag);
+        if (tagNodeList == null || tagNodeList.getLength() == 0) {
+            return null;
+        }
+
+        NodeList nlList = tagNodeList.item(0).getChildNodes();
+
+        Node nValue = (Node) nlList.item(0);
+
+        return nValue.getNodeValue();
+    }
+
+    private static String getAttrValue(String tag, String attr, Element 
eElement) {
+        NodeList tagNode = eElement.getElementsByTagName(tag);
+        if (tagNode.getLength() == 0) {
+            return null;
+        }
+        Element node = (Element) tagNode.item(0);
+        return node.getAttribute(attr);
+    }
+
+    public Integer getVncPort() {
+        return vncPort;
+    }
+
+    public List<InterfaceDef> getInterfaces() {
+        return interfaces;
+    }
+
+    public List<DiskDef> getDisks() {
+        return diskDefs;
+    }
+
+    public String getDescription() {
+        return desc;
+    }
+
+    public static void main(String[] args) {
+        LibvirtDomainXMLParser parser = new LibvirtDomainXMLParser();
+        parser.parseDomainXML("<domain type='kvm' id='12'>"
+                + "<name>r-6-CV-5002-1</name>"
+                + "<uuid>581b5a4b-b496-8d4d-e44e-a7dcbe9df0b5</uuid>"
+                + "<description>testVM</description>"
+                + "<memory>131072</memory>"
+                + "<currentMemory>131072</currentMemory>"
+                + "<vcpu>1</vcpu>"
+                + "<os>"
+                + "<type arch='i686' machine='pc-0.11'>hvm</type>"
+                + 
"<kernel>/var/lib/libvirt/qemu/vmlinuz-2.6.31.6-166.fc12.i686</kernel>"
+                + "<cmdline>ro root=/dev/sda1 acpi=force selinux=0 
eth0ip=10.1.1.1 eth0mask=255.255.255.0 eth2ip=192.168.10.152 
eth2mask=255.255.255.0 gateway=192.168.10.1 dns1=72.52.126.11 dns2=72.52.126.12 
domain=v4.myvm.com</cmdline>"
+                + "<boot dev='hd'/>"
+                + "</os>"
+                + "<features>"
+                + "<acpi/>"
+                + "<pae/>"
+                + "</features>"
+                + "<clock offset='utc'/>"
+                + "<on_poweroff>destroy</on_poweroff>"
+                + "<on_reboot>restart</on_reboot>"
+                + "<on_crash>destroy</on_crash>"
+                + "<devices>"
+                + "<emulator>/usr/bin/qemu-kvm</emulator>"
+                + "<disk type='file' device='disk'>"
+                + "<driver name='qemu' type='raw'/>"
+                + "<source 
file='/mnt/tank//vmops/CV/vm/u000004/r000006/rootdisk'/>"
+                + "<target dev='hda' bus='ide'/>" + "</disk>"
+                + "<interface type='bridge'>"
+                + "<mac address='02:00:50:02:00:01'/>"
+                + "<source bridge='vnbr5002'/>" + "<target dev='vtap5002'/>"
+                + "<model type='e1000'/>" + "</interface>"
+                + "<interface type='network'>"
+                + "<mac address='00:16:3e:77:e2:a1'/>"
+                + "<source network='vmops-private'/>" + "<target dev='vnet3'/>"
+                + "<model type='e1000'/>" + "</interface>"
+                + "<interface type='bridge'>"
+                + "<mac address='06:85:00:00:00:04'/>"
+                + "<source bridge='br0'/>" + "<target dev='tap5002'/>"
+                + "<model type='e1000'/>" + "</interface>"
+                + "<input type='mouse' bus='ps2'/>"
+                + "<graphics type='vnc' port='6031' autoport='no' listen=''/>"
+                + "<video>" + "<model type='cirrus' vram='9216' heads='1'/>"
+                + "</video>" + "</devices>" + "</domain>"
+
+        );
+        for (InterfaceDef intf : parser.getInterfaces()) {
+            System.out.println(intf);
+        }
+        for (DiskDef disk : parser.getDisks()) {
+            System.out.println(disk);
+        }
+        System.out.println(parser.getVncPort());
+        System.out.println(parser.getDescription());
+
+        List<String> test = new ArrayList<String>(1);
+        test.add("1");
+        test.add("2");
+        if (test.contains("1")) {
+            System.out.print("fdf");
+        }
+    }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5e9a193f/agent/src/com/cloud/agent/resource/computing/LibvirtNetworkDef.java
----------------------------------------------------------------------
diff --git 
a/agent/src/com/cloud/agent/resource/computing/LibvirtNetworkDef.java 
b/agent/src/com/cloud/agent/resource/computing/LibvirtNetworkDef.java
index 4c3db46..7f757de 100644
--- a/agent/src/com/cloud/agent/resource/computing/LibvirtNetworkDef.java
+++ b/agent/src/com/cloud/agent/resource/computing/LibvirtNetworkDef.java
@@ -20,174 +20,174 @@ import java.util.ArrayList;
 import java.util.List;
 
 public class LibvirtNetworkDef {
-       enum netType {
-               BRIDGE, NAT, LOCAL
-       }
-
-       private final String _networkName;
-       private final String _uuid;
-       private netType _networkType;
-       private String _brName;
-       private boolean _stp;
-       private int _delay;
-       private String _fwDev;
-       private final String _domainName;
-       private String _brIPAddr;
-       private String _brNetMask;
-       private final List<IPRange> ipranges = new ArrayList<IPRange>();
-       private final List<dhcpMapping> dhcpMaps = new ArrayList<dhcpMapping>();
-
-       public static class dhcpMapping {
-               String _mac;
-               String _name;
-               String _ip;
-
-               public dhcpMapping(String mac, String name, String ip) {
-                       _mac = mac;
-                       _name = name;
-                       _ip = ip;
-               }
-       }
-
-       public static class IPRange {
-               String _start;
-               String _end;
-
-               public IPRange(String start, String end) {
-                       _start = start;
-                       _end = end;
-               }
-       }
-
-       public LibvirtNetworkDef(String netName, String uuid, String domName) {
-               _networkName = netName;
-               _uuid = uuid;
-               _domainName = domName;
-       }
-
-       public void defNATNetwork(String brName, boolean stp, int delay,
-                       String fwNic, String ipAddr, String netMask) {
-               _networkType = netType.NAT;
-               _brName = brName;
-               _stp = stp;
-               _delay = delay;
-               _fwDev = fwNic;
-               _brIPAddr = ipAddr;
-               _brNetMask = netMask;
-       }
-
-       public void defBrNetwork(String brName, boolean stp, int delay,
-                       String fwNic, String ipAddr, String netMask) {
-               _networkType = netType.BRIDGE;
-               _brName = brName;
-               _stp = stp;
-               _delay = delay;
-               _fwDev = fwNic;
-               _brIPAddr = ipAddr;
-               _brNetMask = netMask;
-       }
-
-       public void defLocalNetwork(String brName, boolean stp, int delay,
-                       String ipAddr, String netMask) {
-               _networkType = netType.LOCAL;
-               _brName = brName;
-               _stp = stp;
-               _delay = delay;
-               _brIPAddr = ipAddr;
-               _brNetMask = netMask;
-       }
-
-       public void adddhcpIPRange(String start, String end) {
-               IPRange ipr = new IPRange(start, end);
-               ipranges.add(ipr);
-       }
-
-       public void adddhcpMapping(String mac, String host, String ip) {
-               dhcpMapping map = new dhcpMapping(mac, host, ip);
-               dhcpMaps.add(map);
-       }
-
-       @Override
-       public String toString() {
-               StringBuilder netBuilder = new StringBuilder();
-               netBuilder.append("<network>\n");
-               netBuilder.append("<name>" + _networkName + "</name>\n");
-               if (_uuid != null)
-                       netBuilder.append("<uuid>" + _uuid + "</uuid>\n");
-               if (_brName != null) {
-                       netBuilder.append("<bridge name='" + _brName + "'");
-                       if (_stp) {
-                               netBuilder.append(" stp='on'");
-                       } else {
-                               netBuilder.append(" stp='off'");
-                       }
-                       if (_delay != -1) {
-                               netBuilder.append(" delay='" + _delay + "'");
-                       }
-                       netBuilder.append("/>\n");
-               }
-               if (_domainName != null) {
-                       netBuilder.append("<domain name='" + _domainName + 
"'/>\n");
-               }
-               if (_networkType == netType.BRIDGE) {
-                       netBuilder.append("<forward mode='route'");
-                       if (_fwDev != null) {
-                               netBuilder.append(" dev='" + _fwDev + "'");
-                       }
-                       netBuilder.append("/>\n");
-               } else if (_networkType == netType.NAT) {
-                       netBuilder.append("<forward mode='nat'");
-                       if (_fwDev != null) {
-                               netBuilder.append(" dev='" + _fwDev + "'");
-                       }
-                       netBuilder.append("/>\n");
-               }
-               if (_brIPAddr != null || _brNetMask != null || 
!ipranges.isEmpty()
-                               || !dhcpMaps.isEmpty()) {
-                       netBuilder.append("<ip");
-                       if (_brIPAddr != null)
-                               netBuilder.append(" address='" + _brIPAddr + 
"'");
-                       if (_brNetMask != null) {
-                               netBuilder.append(" netmask='" + _brNetMask + 
"'");
-                       }
-                       netBuilder.append(">\n");
-
-                       if (!ipranges.isEmpty() || !dhcpMaps.isEmpty()) {
-                               netBuilder.append("<dhcp>\n");
-                               for (IPRange ip : ipranges) {
-                                       netBuilder.append("<range start='" + 
ip._start + "'"
-                                                       + " end='" + ip._end + 
"'/>\n");
-                               }
-                               for (dhcpMapping map : dhcpMaps) {
-                                       netBuilder.append("<host mac='" + 
map._mac + "' name='"
-                                                       + map._name + "' ip='" 
+ map._ip + "'/>\n");
-                               }
-                               netBuilder.append("</dhcp>\n");
-                       }
-                       netBuilder.append("</ip>\n");
-               }
-               netBuilder.append("</network>\n");
-               return netBuilder.toString();
-       }
-
-       /**
-        * @param args
-        */
-       public static void main(String[] args) {
-               LibvirtNetworkDef net = new LibvirtNetworkDef("cloudPrivate", 
null,
-                               "cloud.com");
-               net.defNATNetwork("cloudbr0", false, 0, null, "192.168.168.1",
-                               "255.255.255.0");
-               net.adddhcpIPRange("192.168.168.100", "192.168.168.220");
-               net.adddhcpIPRange("192.168.168.10", "192.168.168.50");
-               net.adddhcpMapping("branch0.cloud.com", "00:16:3e:77:e2:ed",
-                               "192.168.168.100");
-               net.adddhcpMapping("branch1.cloud.com", "00:16:3e:77:e2:ef",
-                               "192.168.168.101");
-               net.adddhcpMapping("branch2.cloud.com", "00:16:3e:77:e2:f0",
-                               "192.168.168.102");
-               System.out.println(net.toString());
-
-       }
+    enum netType {
+        BRIDGE, NAT, LOCAL
+    }
+
+    private final String _networkName;
+    private final String _uuid;
+    private netType _networkType;
+    private String _brName;
+    private boolean _stp;
+    private int _delay;
+    private String _fwDev;
+    private final String _domainName;
+    private String _brIPAddr;
+    private String _brNetMask;
+    private final List<IPRange> ipranges = new ArrayList<IPRange>();
+    private final List<dhcpMapping> dhcpMaps = new ArrayList<dhcpMapping>();
+
+    public static class dhcpMapping {
+        String _mac;
+        String _name;
+        String _ip;
+
+        public dhcpMapping(String mac, String name, String ip) {
+            _mac = mac;
+            _name = name;
+            _ip = ip;
+        }
+    }
+
+    public static class IPRange {
+        String _start;
+        String _end;
+
+        public IPRange(String start, String end) {
+            _start = start;
+            _end = end;
+        }
+    }
+
+    public LibvirtNetworkDef(String netName, String uuid, String domName) {
+        _networkName = netName;
+        _uuid = uuid;
+        _domainName = domName;
+    }
+
+    public void defNATNetwork(String brName, boolean stp, int delay,
+            String fwNic, String ipAddr, String netMask) {
+        _networkType = netType.NAT;
+        _brName = brName;
+        _stp = stp;
+        _delay = delay;
+        _fwDev = fwNic;
+        _brIPAddr = ipAddr;
+        _brNetMask = netMask;
+    }
+
+    public void defBrNetwork(String brName, boolean stp, int delay,
+            String fwNic, String ipAddr, String netMask) {
+        _networkType = netType.BRIDGE;
+        _brName = brName;
+        _stp = stp;
+        _delay = delay;
+        _fwDev = fwNic;
+        _brIPAddr = ipAddr;
+        _brNetMask = netMask;
+    }
+
+    public void defLocalNetwork(String brName, boolean stp, int delay,
+            String ipAddr, String netMask) {
+        _networkType = netType.LOCAL;
+        _brName = brName;
+        _stp = stp;
+        _delay = delay;
+        _brIPAddr = ipAddr;
+        _brNetMask = netMask;
+    }
+
+    public void adddhcpIPRange(String start, String end) {
+        IPRange ipr = new IPRange(start, end);
+        ipranges.add(ipr);
+    }
+
+    public void adddhcpMapping(String mac, String host, String ip) {
+        dhcpMapping map = new dhcpMapping(mac, host, ip);
+        dhcpMaps.add(map);
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder netBuilder = new StringBuilder();
+        netBuilder.append("<network>\n");
+        netBuilder.append("<name>" + _networkName + "</name>\n");
+        if (_uuid != null)
+            netBuilder.append("<uuid>" + _uuid + "</uuid>\n");
+        if (_brName != null) {
+            netBuilder.append("<bridge name='" + _brName + "'");
+            if (_stp) {
+                netBuilder.append(" stp='on'");
+            } else {
+                netBuilder.append(" stp='off'");
+            }
+            if (_delay != -1) {
+                netBuilder.append(" delay='" + _delay + "'");
+            }
+            netBuilder.append("/>\n");
+        }
+        if (_domainName != null) {
+            netBuilder.append("<domain name='" + _domainName + "'/>\n");
+        }
+        if (_networkType == netType.BRIDGE) {
+            netBuilder.append("<forward mode='route'");
+            if (_fwDev != null) {
+                netBuilder.append(" dev='" + _fwDev + "'");
+            }
+            netBuilder.append("/>\n");
+        } else if (_networkType == netType.NAT) {
+            netBuilder.append("<forward mode='nat'");
+            if (_fwDev != null) {
+                netBuilder.append(" dev='" + _fwDev + "'");
+            }
+            netBuilder.append("/>\n");
+        }
+        if (_brIPAddr != null || _brNetMask != null || !ipranges.isEmpty()
+                || !dhcpMaps.isEmpty()) {
+            netBuilder.append("<ip");
+            if (_brIPAddr != null)
+                netBuilder.append(" address='" + _brIPAddr + "'");
+            if (_brNetMask != null) {
+                netBuilder.append(" netmask='" + _brNetMask + "'");
+            }
+            netBuilder.append(">\n");
+
+            if (!ipranges.isEmpty() || !dhcpMaps.isEmpty()) {
+                netBuilder.append("<dhcp>\n");
+                for (IPRange ip : ipranges) {
+                    netBuilder.append("<range start='" + ip._start + "'"
+                            + " end='" + ip._end + "'/>\n");
+                }
+                for (dhcpMapping map : dhcpMaps) {
+                    netBuilder.append("<host mac='" + map._mac + "' name='"
+                            + map._name + "' ip='" + map._ip + "'/>\n");
+                }
+                netBuilder.append("</dhcp>\n");
+            }
+            netBuilder.append("</ip>\n");
+        }
+        netBuilder.append("</network>\n");
+        return netBuilder.toString();
+    }
+
+    /**
+     * @param args
+     */
+    public static void main(String[] args) {
+        LibvirtNetworkDef net = new LibvirtNetworkDef("cloudPrivate", null,
+                "cloud.com");
+        net.defNATNetwork("cloudbr0", false, 0, null, "192.168.168.1",
+                "255.255.255.0");
+        net.adddhcpIPRange("192.168.168.100", "192.168.168.220");
+        net.adddhcpIPRange("192.168.168.10", "192.168.168.50");
+        net.adddhcpMapping("branch0.cloud.com", "00:16:3e:77:e2:ed",
+                "192.168.168.100");
+        net.adddhcpMapping("branch1.cloud.com", "00:16:3e:77:e2:ef",
+                "192.168.168.101");
+        net.adddhcpMapping("branch2.cloud.com", "00:16:3e:77:e2:f0",
+                "192.168.168.102");
+        System.out.println(net.toString());
+
+    }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5e9a193f/agent/src/com/cloud/agent/resource/computing/LibvirtStoragePoolDef.java
----------------------------------------------------------------------
diff --git 
a/agent/src/com/cloud/agent/resource/computing/LibvirtStoragePoolDef.java 
b/agent/src/com/cloud/agent/resource/computing/LibvirtStoragePoolDef.java
index 5e0a841..582cd2e 100644
--- a/agent/src/com/cloud/agent/resource/computing/LibvirtStoragePoolDef.java
+++ b/agent/src/com/cloud/agent/resource/computing/LibvirtStoragePoolDef.java
@@ -17,74 +17,74 @@
 package com.cloud.agent.resource.computing;
 
 public class LibvirtStoragePoolDef {
-       public enum poolType {
-               ISCSI("iscsi"), NETFS("netfs"), LOGICAL("logical"), DIR("dir");
-               String _poolType;
+    public enum poolType {
+        ISCSI("iscsi"), NETFS("netfs"), LOGICAL("logical"), DIR("dir");
+        String _poolType;
 
-               poolType(String poolType) {
-                       _poolType = poolType;
-               }
+        poolType(String poolType) {
+            _poolType = poolType;
+        }
 
-               @Override
-               public String toString() {
-                       return _poolType;
-               }
-       }
+        @Override
+        public String toString() {
+            return _poolType;
+        }
+    }
 
-       private poolType _poolType;
-       private String _poolName;
-       private String _uuid;
-       private String _sourceHost;
-       private String _sourceDir;
-       private String _targetPath;
+    private poolType _poolType;
+    private String _poolName;
+    private String _uuid;
+    private String _sourceHost;
+    private String _sourceDir;
+    private String _targetPath;
 
-       public LibvirtStoragePoolDef(poolType type, String poolName, String 
uuid,
-                       String host, String dir, String targetPath) {
-               _poolType = type;
-               _poolName = poolName;
-               _uuid = uuid;
-               _sourceHost = host;
-               _sourceDir = dir;
-               _targetPath = targetPath;
-       }
+    public LibvirtStoragePoolDef(poolType type, String poolName, String uuid,
+            String host, String dir, String targetPath) {
+        _poolType = type;
+        _poolName = poolName;
+        _uuid = uuid;
+        _sourceHost = host;
+        _sourceDir = dir;
+        _targetPath = targetPath;
+    }
 
-       public String getPoolName() {
-               return _poolName;
-       }
+    public String getPoolName() {
+        return _poolName;
+    }
 
-       public poolType getPoolType() {
-               return _poolType;
-       }
+    public poolType getPoolType() {
+        return _poolType;
+    }
 
-       public String getSourceHost() {
-               return _sourceHost;
-       }
+    public String getSourceHost() {
+        return _sourceHost;
+    }
 
-       public String getSourceDir() {
-               return _sourceDir;
-       }
+    public String getSourceDir() {
+        return _sourceDir;
+    }
 
-       public String getTargetPath() {
-               return _targetPath;
-       }
+    public String getTargetPath() {
+        return _targetPath;
+    }
 
-       @Override
-       public String toString() {
-               StringBuilder storagePoolBuilder = new StringBuilder();
-               storagePoolBuilder.append("<pool type='" + _poolType + "'>\n");
-               storagePoolBuilder.append("<name>" + _poolName + "</name>\n");
-               if (_uuid != null)
-                       storagePoolBuilder.append("<uuid>" + _uuid + 
"</uuid>\n");
-               if (_poolType == poolType.NETFS) {
-                       storagePoolBuilder.append("<source>\n");
-                       storagePoolBuilder.append("<host name='" + _sourceHost 
+ "'/>\n");
-                       storagePoolBuilder.append("<dir path='" + _sourceDir + 
"'/>\n");
-                       storagePoolBuilder.append("</source>\n");
-               }
-               storagePoolBuilder.append("<target>\n");
-               storagePoolBuilder.append("<path>" + _targetPath + "</path>\n");
-               storagePoolBuilder.append("</target>\n");
-               storagePoolBuilder.append("</pool>\n");
-               return storagePoolBuilder.toString();
-       }
+    @Override
+    public String toString() {
+        StringBuilder storagePoolBuilder = new StringBuilder();
+        storagePoolBuilder.append("<pool type='" + _poolType + "'>\n");
+        storagePoolBuilder.append("<name>" + _poolName + "</name>\n");
+        if (_uuid != null)
+            storagePoolBuilder.append("<uuid>" + _uuid + "</uuid>\n");
+        if (_poolType == poolType.NETFS) {
+            storagePoolBuilder.append("<source>\n");
+            storagePoolBuilder.append("<host name='" + _sourceHost + "'/>\n");
+            storagePoolBuilder.append("<dir path='" + _sourceDir + "'/>\n");
+            storagePoolBuilder.append("</source>\n");
+        }
+        storagePoolBuilder.append("<target>\n");
+        storagePoolBuilder.append("<path>" + _targetPath + "</path>\n");
+        storagePoolBuilder.append("</target>\n");
+        storagePoolBuilder.append("</pool>\n");
+        return storagePoolBuilder.toString();
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5e9a193f/agent/src/com/cloud/agent/resource/computing/LibvirtStoragePoolXMLParser.java
----------------------------------------------------------------------
diff --git 
a/agent/src/com/cloud/agent/resource/computing/LibvirtStoragePoolXMLParser.java 
b/agent/src/com/cloud/agent/resource/computing/LibvirtStoragePoolXMLParser.java
index 2adcfed..5c45d76 100644
--- 
a/agent/src/com/cloud/agent/resource/computing/LibvirtStoragePoolXMLParser.java
+++ 
b/agent/src/com/cloud/agent/resource/computing/LibvirtStoragePoolXMLParser.java
@@ -29,81 +29,81 @@ import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 
 public class LibvirtStoragePoolXMLParser {
-       private static final Logger s_logger = Logger
-                       .getLogger(LibvirtStoragePoolXMLParser.class);
-
-       public LibvirtStoragePoolDef parseStoragePoolXML(String poolXML) {
-               DocumentBuilder builder;
-               try {
-                       builder = 
DocumentBuilderFactory.newInstance().newDocumentBuilder();
-
-                       InputSource is = new InputSource();
-                       is.setCharacterStream(new StringReader(poolXML));
-                       Document doc = builder.parse(is);
-
-                       Element rootElement = doc.getDocumentElement();
-                       String type = rootElement.getAttribute("type");
-
-                       String uuid = getTagValue("uuid", rootElement);
-
-                       String poolName = getTagValue("name", rootElement);
-
-                       Element source = (Element) 
rootElement.getElementsByTagName(
-                                       "source").item(0);
-                       String host = getAttrValue("host", "name", source);
-                       String path = getAttrValue("dir", "path", source);
-
-                       Element target = (Element) 
rootElement.getElementsByTagName(
-                                       "target").item(0);
-                       String targetPath = getTagValue("path", target);
-
-                       return new LibvirtStoragePoolDef(
-                                       
LibvirtStoragePoolDef.poolType.valueOf(type.toUpperCase()),
-                                       poolName, uuid, host, path, targetPath);
-               } catch (ParserConfigurationException e) {
-                       s_logger.debug(e.toString());
-               } catch (SAXException e) {
-                       s_logger.debug(e.toString());
-               } catch (IOException e) {
-                       s_logger.debug(e.toString());
-               }
-               return null;
-       }
-
-       private static String getTagValue(String tag, Element eElement) {
-               NodeList nlList = eElement.getElementsByTagName(tag).item(0)
-                               .getChildNodes();
-               Node nValue = (Node) nlList.item(0);
-
-               return nValue.getNodeValue();
-       }
-
-       private static String getAttrValue(String tag, String attr, Element 
eElement) {
-               NodeList tagNode = eElement.getElementsByTagName(tag);
-               if (tagNode.getLength() == 0) {
-                       return null;
-               }
-               Element node = (Element) tagNode.item(0);
-               return node.getAttribute(attr);
-       }
-
-       public static void main(String[] args) {
-               s_logger.addAppender(new org.apache.log4j.ConsoleAppender(
-                               new org.apache.log4j.PatternLayout(), 
"System.out"));
-               String storagePool = "<pool type='dir'>" + "<name>test</name>"
-                               + 
"<uuid>bf723c83-4b95-259c-7089-60776e61a11f</uuid>"
-                               + "<capacity>20314165248</capacity>"
-                               + "<allocation>1955450880</allocation>"
-                               + "<available>18358714368</available>" + 
"<source>"
-                               + "<host name='nfs1.lab.vmops.com'/>"
-                               + "<dir 
path='/export/home/edison/kvm/primary'/>"
-                               + "<format type='auto'/>" + "</source>" + 
"<target>"
-                               + "<path>/media</path>" + "<permissions>" + 
"<mode>0700</mode>"
-                               + "<owner>0</owner>" + "<group>0</group>" + 
"</permissions>"
-                               + "</target>" + "</pool>";
-
-               LibvirtStoragePoolXMLParser parser = new 
LibvirtStoragePoolXMLParser();
-               LibvirtStoragePoolDef pool = 
parser.parseStoragePoolXML(storagePool);
-               s_logger.debug(pool.toString());
-       }
+    private static final Logger s_logger = Logger
+            .getLogger(LibvirtStoragePoolXMLParser.class);
+
+    public LibvirtStoragePoolDef parseStoragePoolXML(String poolXML) {
+        DocumentBuilder builder;
+        try {
+            builder = 
DocumentBuilderFactory.newInstance().newDocumentBuilder();
+
+            InputSource is = new InputSource();
+            is.setCharacterStream(new StringReader(poolXML));
+            Document doc = builder.parse(is);
+
+            Element rootElement = doc.getDocumentElement();
+            String type = rootElement.getAttribute("type");
+
+            String uuid = getTagValue("uuid", rootElement);
+
+            String poolName = getTagValue("name", rootElement);
+
+            Element source = (Element) rootElement.getElementsByTagName(
+                    "source").item(0);
+            String host = getAttrValue("host", "name", source);
+            String path = getAttrValue("dir", "path", source);
+
+            Element target = (Element) rootElement.getElementsByTagName(
+                    "target").item(0);
+            String targetPath = getTagValue("path", target);
+
+            return new LibvirtStoragePoolDef(
+                    LibvirtStoragePoolDef.poolType.valueOf(type.toUpperCase()),
+                    poolName, uuid, host, path, targetPath);
+        } catch (ParserConfigurationException e) {
+            s_logger.debug(e.toString());
+        } catch (SAXException e) {
+            s_logger.debug(e.toString());
+        } catch (IOException e) {
+            s_logger.debug(e.toString());
+        }
+        return null;
+    }
+
+    private static String getTagValue(String tag, Element eElement) {
+        NodeList nlList = eElement.getElementsByTagName(tag).item(0)
+                .getChildNodes();
+        Node nValue = (Node) nlList.item(0);
+
+        return nValue.getNodeValue();
+    }
+
+    private static String getAttrValue(String tag, String attr, Element 
eElement) {
+        NodeList tagNode = eElement.getElementsByTagName(tag);
+        if (tagNode.getLength() == 0) {
+            return null;
+        }
+        Element node = (Element) tagNode.item(0);
+        return node.getAttribute(attr);
+    }
+
+    public static void main(String[] args) {
+        s_logger.addAppender(new org.apache.log4j.ConsoleAppender(
+                new org.apache.log4j.PatternLayout(), "System.out"));
+        String storagePool = "<pool type='dir'>" + "<name>test</name>"
+                + "<uuid>bf723c83-4b95-259c-7089-60776e61a11f</uuid>"
+                + "<capacity>20314165248</capacity>"
+                + "<allocation>1955450880</allocation>"
+                + "<available>18358714368</available>" + "<source>"
+                + "<host name='nfs1.lab.vmops.com'/>"
+                + "<dir path='/export/home/edison/kvm/primary'/>"
+                + "<format type='auto'/>" + "</source>" + "<target>"
+                + "<path>/media</path>" + "<permissions>" + "<mode>0700</mode>"
+                + "<owner>0</owner>" + "<group>0</group>" + "</permissions>"
+                + "</target>" + "</pool>";
+
+        LibvirtStoragePoolXMLParser parser = new LibvirtStoragePoolXMLParser();
+        LibvirtStoragePoolDef pool = parser.parseStoragePoolXML(storagePool);
+        s_logger.debug(pool.toString());
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5e9a193f/agent/src/com/cloud/agent/resource/computing/LibvirtStorageVolumeDef.java
----------------------------------------------------------------------
diff --git 
a/agent/src/com/cloud/agent/resource/computing/LibvirtStorageVolumeDef.java 
b/agent/src/com/cloud/agent/resource/computing/LibvirtStorageVolumeDef.java
index e00ecaa..ef8e22e 100644
--- a/agent/src/com/cloud/agent/resource/computing/LibvirtStorageVolumeDef.java
+++ b/agent/src/com/cloud/agent/resource/computing/LibvirtStorageVolumeDef.java
@@ -17,75 +17,75 @@
 package com.cloud.agent.resource.computing;
 
 public class LibvirtStorageVolumeDef {
-       public enum volFormat {
-               RAW("raw"), QCOW2("qcow2"), DIR("dir");
-               private String _format;
+    public enum volFormat {
+        RAW("raw"), QCOW2("qcow2"), DIR("dir");
+        private String _format;
 
-               volFormat(String format) {
-                       _format = format;
-               }
+        volFormat(String format) {
+            _format = format;
+        }
 
-               @Override
-               public String toString() {
-                       return _format;
-               }
+        @Override
+        public String toString() {
+            return _format;
+        }
 
-               public static volFormat getFormat(String format) {
-                       if (format == null) {
-                               return null;
-                       }
-                       if (format.equalsIgnoreCase("raw")) {
-                               return RAW;
-                       } else if (format.equalsIgnoreCase("qcow2")) {
-                               return QCOW2;
-                       }
-                       return null;
-               }
-       }
+        public static volFormat getFormat(String format) {
+            if (format == null) {
+                return null;
+            }
+            if (format.equalsIgnoreCase("raw")) {
+                return RAW;
+            } else if (format.equalsIgnoreCase("qcow2")) {
+                return QCOW2;
+            }
+            return null;
+        }
+    }
 
-       private String _volName;
-       private Long _volSize;
-       private volFormat _volFormat;
-       private String _backingPath;
-       private volFormat _backingFormat;
+    private String _volName;
+    private Long _volSize;
+    private volFormat _volFormat;
+    private String _backingPath;
+    private volFormat _backingFormat;
 
-       public LibvirtStorageVolumeDef(String volName, Long size, volFormat 
format,
-                       String tmplPath, volFormat tmplFormat) {
-               _volName = volName;
-               _volSize = size;
-               _volFormat = format;
-               _backingPath = tmplPath;
-               _backingFormat = tmplFormat;
-       }
+    public LibvirtStorageVolumeDef(String volName, Long size, volFormat format,
+            String tmplPath, volFormat tmplFormat) {
+        _volName = volName;
+        _volSize = size;
+        _volFormat = format;
+        _backingPath = tmplPath;
+        _backingFormat = tmplFormat;
+    }
 
-       public volFormat getFormat() {
-               return this._volFormat;
-       }
+    public volFormat getFormat() {
+        return this._volFormat;
+    }
 
-       @Override
-       public String toString() {
-               StringBuilder storageVolBuilder = new StringBuilder();
-               storageVolBuilder.append("<volume>\n");
-               storageVolBuilder.append("<name>" + _volName + "</name>\n");
-               if (_volSize != null) {
-                       storageVolBuilder
-                                       .append("<capacity >" + _volSize + 
"</capacity>\n");
-               }
-               storageVolBuilder.append("<target>\n");
-               storageVolBuilder.append("<format type='" + _volFormat + 
"'/>\n");
-               storageVolBuilder.append("<permissions>");
-               storageVolBuilder.append("<mode>0744</mode>");
-               storageVolBuilder.append("</permissions>");
-               storageVolBuilder.append("</target>\n");
-               if (_backingPath != null) {
-                       storageVolBuilder.append("<backingStore>\n");
-                       storageVolBuilder.append("<path>" + _backingPath + 
"</path>\n");
-                       storageVolBuilder.append("<format type='" + 
_backingFormat
-                                       + "'/>\n");
-                       storageVolBuilder.append("</backingStore>\n");
-               }
-               storageVolBuilder.append("</volume>\n");
-               return storageVolBuilder.toString();
-       }
+    @Override
+    public String toString() {
+        StringBuilder storageVolBuilder = new StringBuilder();
+        storageVolBuilder.append("<volume>\n");
+        storageVolBuilder.append("<name>" + _volName + "</name>\n");
+        if (_volSize != null) {
+            storageVolBuilder
+                    .append("<capacity >" + _volSize + "</capacity>\n");
+        }
+        storageVolBuilder.append("<target>\n");
+        storageVolBuilder.append("<format type='" + _volFormat + "'/>\n");
+        storageVolBuilder.append("<permissions>");
+        storageVolBuilder.append("<mode>0744</mode>");
+        storageVolBuilder.append("</permissions>");
+        storageVolBuilder.append("</target>\n");
+        if (_backingPath != null) {
+            storageVolBuilder.append("<backingStore>\n");
+            storageVolBuilder.append("<path>" + _backingPath + "</path>\n");
+            storageVolBuilder.append("<format type='" + _backingFormat
+                    + "'/>\n");
+            storageVolBuilder.append("</backingStore>\n");
+        }
+        storageVolBuilder.append("</volume>\n");
+        return storageVolBuilder.toString();
+    }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5e9a193f/agent/src/com/cloud/agent/resource/computing/LibvirtStorageVolumeXMLParser.java
----------------------------------------------------------------------
diff --git 
a/agent/src/com/cloud/agent/resource/computing/LibvirtStorageVolumeXMLParser.java
 
b/agent/src/com/cloud/agent/resource/computing/LibvirtStorageVolumeXMLParser.java
index c4fe6df..163ca2b 100644
--- 
a/agent/src/com/cloud/agent/resource/computing/LibvirtStorageVolumeXMLParser.java
+++ 
b/agent/src/com/cloud/agent/resource/computing/LibvirtStorageVolumeXMLParser.java
@@ -32,73 +32,73 @@ import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 
 public class LibvirtStorageVolumeXMLParser {
-       private static final Logger s_logger = Logger
-                       .getLogger(LibvirtStorageVolumeXMLParser.class);
+    private static final Logger s_logger = Logger
+            .getLogger(LibvirtStorageVolumeXMLParser.class);
 
-       public LibvirtStorageVolumeDef parseStorageVolumeXML(String volXML) {
-               DocumentBuilder builder;
-               try {
-                       builder = 
DocumentBuilderFactory.newInstance().newDocumentBuilder();
+    public LibvirtStorageVolumeDef parseStorageVolumeXML(String volXML) {
+        DocumentBuilder builder;
+        try {
+            builder = 
DocumentBuilderFactory.newInstance().newDocumentBuilder();
 
-                       InputSource is = new InputSource();
-                       is.setCharacterStream(new StringReader(volXML));
-                       Document doc = builder.parse(is);
+            InputSource is = new InputSource();
+            is.setCharacterStream(new StringReader(volXML));
+            Document doc = builder.parse(is);
 
-                       Element rootElement = doc.getDocumentElement();
+            Element rootElement = doc.getDocumentElement();
 
-                       String VolName = getTagValue("name", rootElement);
-                       Element target = (Element) 
rootElement.getElementsByTagName(
-                                       "target").item(0);
-                       String format = getAttrValue("type", "format", target);
-                       Long capacity = Long
-                                       .parseLong(getTagValue("capacity", 
rootElement));
-                       return new LibvirtStorageVolumeDef(VolName, capacity,
-                                       
LibvirtStorageVolumeDef.volFormat.getFormat(format), null,
-                                       null);
-               } catch (ParserConfigurationException e) {
-                       s_logger.debug(e.toString());
-               } catch (SAXException e) {
-                       s_logger.debug(e.toString());
-               } catch (IOException e) {
-                       s_logger.debug(e.toString());
-               }
-               return null;
-       }
+            String VolName = getTagValue("name", rootElement);
+            Element target = (Element) rootElement.getElementsByTagName(
+                    "target").item(0);
+            String format = getAttrValue("type", "format", target);
+            Long capacity = Long
+                    .parseLong(getTagValue("capacity", rootElement));
+            return new LibvirtStorageVolumeDef(VolName, capacity,
+                    LibvirtStorageVolumeDef.volFormat.getFormat(format), null,
+                    null);
+        } catch (ParserConfigurationException e) {
+            s_logger.debug(e.toString());
+        } catch (SAXException e) {
+            s_logger.debug(e.toString());
+        } catch (IOException e) {
+            s_logger.debug(e.toString());
+        }
+        return null;
+    }
 
-       private static String getTagValue(String tag, Element eElement) {
-               NodeList nlList = eElement.getElementsByTagName(tag).item(0)
-                               .getChildNodes();
-               Node nValue = (Node) nlList.item(0);
+    private static String getTagValue(String tag, Element eElement) {
+        NodeList nlList = eElement.getElementsByTagName(tag).item(0)
+                .getChildNodes();
+        Node nValue = (Node) nlList.item(0);
 
-               return nValue.getNodeValue();
-       }
+        return nValue.getNodeValue();
+    }
 
-       private static String getAttrValue(String tag, String attr, Element 
eElement) {
-               NodeList tagNode = eElement.getElementsByTagName(tag);
-               if (tagNode.getLength() == 0) {
-                       return null;
-               }
-               Element node = (Element) tagNode.item(0);
-               return node.getAttribute(attr);
-       }
+    private static String getAttrValue(String tag, String attr, Element 
eElement) {
+        NodeList tagNode = eElement.getElementsByTagName(tag);
+        if (tagNode.getLength() == 0) {
+            return null;
+        }
+        Element node = (Element) tagNode.item(0);
+        return node.getAttribute(attr);
+    }
 
-       public static void main(String[] args) {
-               s_logger.addAppender(new org.apache.log4j.ConsoleAppender(
-                               new org.apache.log4j.PatternLayout(), 
"System.out"));
-               String storagePool = "<pool type='dir'>" + "<name>test</name>"
-                               + 
"<uuid>bf723c83-4b95-259c-7089-60776e61a11f</uuid>"
-                               + "<capacity>20314165248</capacity>"
-                               + "<allocation>1955450880</allocation>"
-                               + "<available>18358714368</available>" + 
"<source>"
-                               + "<host name='nfs1.lab.vmops.com'/>"
-                               + "<dir 
path='/export/home/edison/kvm/primary'/>"
-                               + "<format type='auto'/>" + "</source>" + 
"<target>"
-                               + "<path>/media</path>" + "<permissions>" + 
"<mode>0700</mode>"
-                               + "<owner>0</owner>" + "<group>0</group>" + 
"</permissions>"
-                               + "</target>" + "</pool>";
+    public static void main(String[] args) {
+        s_logger.addAppender(new org.apache.log4j.ConsoleAppender(
+                new org.apache.log4j.PatternLayout(), "System.out"));
+        String storagePool = "<pool type='dir'>" + "<name>test</name>"
+                + "<uuid>bf723c83-4b95-259c-7089-60776e61a11f</uuid>"
+                + "<capacity>20314165248</capacity>"
+                + "<allocation>1955450880</allocation>"
+                + "<available>18358714368</available>" + "<source>"
+                + "<host name='nfs1.lab.vmops.com'/>"
+                + "<dir path='/export/home/edison/kvm/primary'/>"
+                + "<format type='auto'/>" + "</source>" + "<target>"
+                + "<path>/media</path>" + "<permissions>" + "<mode>0700</mode>"
+                + "<owner>0</owner>" + "<group>0</group>" + "</permissions>"
+                + "</target>" + "</pool>";
 
-               LibvirtStoragePoolXMLParser parser = new 
LibvirtStoragePoolXMLParser();
-               LibvirtStoragePoolDef pool = 
parser.parseStoragePoolXML(storagePool);
-               s_logger.debug(pool.toString());
-       }
+        LibvirtStoragePoolXMLParser parser = new LibvirtStoragePoolXMLParser();
+        LibvirtStoragePoolDef pool = parser.parseStoragePoolXML(storagePool);
+        s_logger.debug(pool.toString());
+    }
 }

Reply via email to