From ac48aa8e0c10cdb37d355e0fa04479abdf785cc3 Mon Sep 17 00:00:00 2001 From: David Nalley Date: Sun, 12 Oct 2014 23:30:04 -0400 Subject: [PATCH] cleaning up some from a revert --- .../core/spring-baremetal-core-context.xml | 8 +- .../manager/BaremetalVlanManager.java | 3 - .../manager/BaremetalVlanManagerImpl.java | 12 +- .../networkservice/BareMetalResourceBase.java | 2 +- .../BaremetalKickStartServiceImpl.java | 17 +-- .../networkservice/BaremetalPxeElement.java | 5 +- .../Force10BaremetalSwitchBackend.java | 116 +++++------------- scripts/network/ping/baremetal_snat.sh | 21 +--- scripts/network/ping/prepare_pxe.sh | 28 ++--- .../debian/config/etc/dnsmasq.conf.tmpl | 6 +- .../com/cloud/utils/xmlobject/XmlObject.java | 15 +-- .../utils/xmlobject/XmlObjectParser.java | 22 ++-- .../cloud/utils/xmlobject/TestXmlObject.java | 5 - 13 files changed, 77 insertions(+), 183 deletions(-) mode change 100755 => 100644 plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/Force10BaremetalSwitchBackend.java mode change 100755 => 100644 utils/src/com/cloud/utils/xmlobject/XmlObjectParser.java mode change 100755 => 100644 utils/test/com/cloud/utils/xmlobject/TestXmlObject.java diff --git a/plugins/hypervisors/baremetal/resources/META-INF/cloudstack/core/spring-baremetal-core-context.xml b/plugins/hypervisors/baremetal/resources/META-INF/cloudstack/core/spring-baremetal-core-context.xml index a153e7fb0c6..ae28efad6db 100755 --- a/plugins/hypervisors/baremetal/resources/META-INF/cloudstack/core/spring-baremetal-core-context.xml +++ b/plugins/hypervisors/baremetal/resources/META-INF/cloudstack/core/spring-baremetal-core-context.xml @@ -28,13 +28,7 @@ > - - - - - - - + backends; + private Map backends = new HashMap<>(); private class RackPair { BaremetalRct.Rack rack; BaremetalRct.HostEntry host; } - public void setBackends(Map backends) { - this.backends = backends; - } - @Override public BaremetalRctResponse addRct(AddBaremetalRctCmd cmd) { try { @@ -164,11 +161,6 @@ public class BaremetalVlanManagerImpl extends ManagerBase implements BaremetalVl backend.removePortFromVlan(struct); } - @Override - public void registerSwitchBackend(BaremetalSwitchBackend backend) { - backends.put(backend.getSwitchBackendType(), backend); - } - private BaremetalSwitchBackend getSwitchBackend(String type) { BaremetalSwitchBackend backend = backends.get(type); if (backend == null) { diff --git a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BareMetalResourceBase.java b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BareMetalResourceBase.java index 26f42bee823..6a54527a860 100755 --- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BareMetalResourceBase.java +++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BareMetalResourceBase.java @@ -403,7 +403,7 @@ public class BareMetalResourceBase extends ManagerBase implements ServerResource VMInstanceVO vm = vms.get(0); SecurityGroupHttpClient client = new SecurityGroupHttpClient(); HashMap> nwGrpStates = client.sync(vm.getInstanceName(), vm.getId(), vm.getPrivateIpAddress()); - return new PingRoutingWithNwGroupsCommand(getType(), id, null, nwGrpStates); + return new PingRoutingWithNwGroupsCommand(getType(), id, getHostVmStateReport(), nwGrpStates); } } else { return new PingRoutingCommand(getType(), id, getHostVmStateReport()); diff --git a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalKickStartServiceImpl.java b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalKickStartServiceImpl.java index 3b88ca63f0c..58a05088f25 100755 --- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalKickStartServiceImpl.java +++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalKickStartServiceImpl.java @@ -225,18 +225,19 @@ public class BaremetalKickStartServiceImpl extends BareMetalPxeServiceBase imple } List tuple = parseKickstartUrl(profile); - String cmd = String.format("/usr/bin/prepare_pxe.sh %s %s %s %s %s %s", tuple.get(1), tuple.get(2), profile.getTemplate().getUuid(), - String.format("01-%s", nic.getMacAddress().replaceAll(":", "-")).toLowerCase(), tuple.get(0), nic.getMacAddress().toLowerCase()); - s_logger.debug(String.format("prepare pxe on virtual router[ip:%s], cmd: %s", mgmtNic.getIp4Address(), cmd)); - Pair ret = SshHelper.sshExecute(mgmtNic.getIp4Address(), 3922, "root", getSystemVMKeyFile(), null, cmd); + Pair ret = SshHelper.sshExecute(mgmtNic.getIp4Address(), 3922, "root", getSystemVMKeyFile(), null, + String.format("/usr/bin/prepare_pxe.sh %s %s %s %s %s", tuple.get(1), tuple.get(2), profile.getTemplate().getUuid(), + String.format("01-%s", nic.getMacAddress().replaceAll(":", "-")), tuple.get(0)) + ); if (!ret.first()) { throw new CloudRuntimeException(String.format("failed preparing PXE in virtual router[id:%s], because %s", vr.getId(), ret.second())); } - //String internalServerIp = "10.223.110.231"; - cmd = String.format("/usr/bin/baremetal_snat.sh %s %s %s", mgmtNic.getIp4Address(), internalServerIp, mgmtNic.getGateway()); - s_logger.debug(String.format("prepare SNAT on virtual router[ip:%s], cmd: %s", mgmtNic.getIp4Address(), cmd)); - ret = SshHelper.sshExecute(mgmtNic.getIp4Address(), 3922, "root", getSystemVMKeyFile(), null, cmd); + //String internalServerIp = _configDao.getValue(Config.BaremetalInternalStorageServer.key()); + String internalServerIp = "10.223.110.231"; + ret = SshHelper.sshExecute(mgmtNic.getIp4Address(), 3922, "root", getSystemVMKeyFile(), null, + String.format("/usr/bin/baremetal_snat.sh %s %s", mgmtNic.getIp4Address(), internalServerIp) + ); if (!ret.first()) { throw new CloudRuntimeException(String.format("failed preparing PXE in virtual router[id:%s], because %s", vr.getId(), ret.second())); } diff --git a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeElement.java b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeElement.java index 10b81c2b3d7..5d20d3130f5 100755 --- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeElement.java +++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeElement.java @@ -21,7 +21,6 @@ package com.cloud.baremetal.networkservice; import com.cloud.baremetal.database.BaremetalPxeVO; import com.cloud.baremetal.manager.BaremetalVlanManager; import com.cloud.dc.DataCenter; -import com.cloud.dc.DataCenterVO; import com.cloud.dc.Pod; import com.cloud.dc.dao.DataCenterDao; import com.cloud.deploy.DeployDestination; @@ -140,9 +139,11 @@ public class BaremetalPxeElement extends AdapterBase implements NetworkElement { } } + /* if (dest.getDataCenter().getNetworkType() == DataCenter.NetworkType.Advanced){ prepareVlan(network, dest); } + */ return true; } @@ -158,10 +159,12 @@ public class BaremetalPxeElement extends AdapterBase implements NetworkElement { return false; } + /* DataCenterVO dc = zoneDao.findById(vm.getVirtualMachine().getDataCenterId()); if (dc.getNetworkType() == DataCenter.NetworkType.Advanced) { releaseVlan(network, vm); } + */ return true; } diff --git a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/Force10BaremetalSwitchBackend.java b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/Force10BaremetalSwitchBackend.java old mode 100755 new mode 100644 index ceaf25cb57b..9009b02d3fb --- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/Force10BaremetalSwitchBackend.java +++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/Force10BaremetalSwitchBackend.java @@ -32,16 +32,11 @@ import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -import org.springframework.http.client.ClientHttpResponse; -import org.springframework.web.client.ResponseErrorHandler; import org.springframework.web.client.RestTemplate; import org.springframework.web.util.UriComponentsBuilder; -import java.io.IOException; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; /** @@ -51,38 +46,17 @@ public class Force10BaremetalSwitchBackend implements BaremetalSwitchBackend { private Logger logger = Logger.getLogger(Force10BaremetalSwitchBackend.class); public static final String TYPE = "Force10"; - private static List successHttpStatusCode = new ArrayList<>(); - { - successHttpStatusCode.add(HttpStatus.OK); - successHttpStatusCode.add(HttpStatus.ACCEPTED); - successHttpStatusCode.add(HttpStatus.CREATED); - successHttpStatusCode.add(HttpStatus.NO_CONTENT); - successHttpStatusCode.add(HttpStatus.PARTIAL_CONTENT); - successHttpStatusCode.add(HttpStatus.RESET_CONTENT); - successHttpStatusCode.add(HttpStatus.ALREADY_REPORTED); - } - RestTemplate rest = new RestTemplate(); - { - // fake error handler, we handle error in business logic code - rest.setErrorHandler(new ResponseErrorHandler() { - @Override - public boolean hasError(ClientHttpResponse clientHttpResponse) throws IOException { - return false; - } - @Override - public void handleError(ClientHttpResponse clientHttpResponse) throws IOException { - } - }); - } - - private String buildLink(String switchIp, String path) { + private String buildLink(String switchIp, Integer vlan) { UriComponentsBuilder builder = UriComponentsBuilder.newInstance(); builder.scheme("http"); builder.host(switchIp); builder.port(8008); - builder.path(path); + builder.path("/api/running/ftos/interface/vlan"); + if (vlan != null) { + builder.path(vlan.toString()); + } return builder.build().toUriString(); } @@ -93,36 +67,29 @@ public class Force10BaremetalSwitchBackend implements BaremetalSwitchBackend { @Override public void prepareVlan(BaremetalVlanStruct struct) { - String link = buildLink(struct.getSwitchIp(), String.format("/api/running/ftos/interface/vlan/%s", struct.getVlan())); + String link = buildLink(struct.getSwitchIp(), struct.getVlan()); HttpHeaders headers = createBasicAuthenticationHeader(struct); HttpEntity request = new HttpEntity<>(headers); ResponseEntity rsp = rest.exchange(link, HttpMethod.GET, request, String.class); - logger.debug(String.format("http get: %s", link)); if (rsp.getStatusCode() == HttpStatus.NOT_FOUND) { PortInfo port = new PortInfo(struct); - XmlObject xml = new XmlObject("vlan").putElement("vlan-id", - new XmlObject("vlan-id").setText(String.valueOf(struct.getVlan()))).putElement("untagged", - new XmlObject("untagged").putElement(port.interfaceType, new XmlObject(port.interfaceType) - .putElement("name", new XmlObject("name").setText(port.port))) - ).putElement("shutdown", new XmlObject("shutdown").setText("false")); - request = new HttpEntity<>(xml.dump(), headers); - link = buildLink(struct.getSwitchIp(), String.format("/api/running/ftos/interface/")); - logger.debug(String.format("http get: %s, body: %s", link, request)); - rsp = rest.exchange(link, HttpMethod.POST, request, String.class); - if (!successHttpStatusCode.contains(rsp.getStatusCode())) { + XmlObject xml = new XmlObject("vlan").putElement("vlan-id", String.valueOf(struct.getVlan())).putElement("tagged", + new XmlObject(port.interfaceType).putElement("name", port.port) + ).putElement("shutdown", "false"); + request = new HttpEntity<>(xml.toString(), headers); + link = buildLink(struct.getSwitchIp(), null); + rsp = rest.exchange(link, HttpMethod.GET, request, String.class); + if (rsp.getStatusCode() != HttpStatus.OK) { throw new CloudRuntimeException(String.format("unable to create vlan[%s] on force10 switch[ip:%s]. HTTP status code:%s, body dump:%s", - struct.getVlan(), struct.getSwitchIp(),rsp.getStatusCode(), rsp.getBody())); - } else { - logger.debug(String.format("successfully programmed vlan[%s] on Force10[ip:%s, port:%s]. http response[status code:%s, body:%s]", - struct.getVlan(), struct.getSwitchIp(), struct.getPort(), rsp.getStatusCode(), rsp.getBody())); + struct.getVlan(), rsp.getStatusCode(), struct.getSwitchIp(), rsp.getBody())); } - } else if (successHttpStatusCode.contains(rsp.getStatusCode())) { + } else if (rsp.getStatusCode() == HttpStatus.OK) { PortInfo port = new PortInfo(struct); XmlObject xml = XmlObjectParser.parseFromString((String)rsp.getBody()); - List ports = xml.getAsList("untagged.tengigabitethernet"); - ports.addAll(xml.getAsList("untagged.gigabitethernet")); - ports.addAll(xml.getAsList("untagged.fortyGigE")); + List ports = xml.getAsList("tagged.tengigabitethernet"); + ports.addAll(xml.getAsList("tagged.gigabitethernet")); + ports.addAll(xml.getAsList("tagged.fortyGigE")); for (XmlObject pxml : ports) { XmlObject name = pxml.get("name"); if (port.port.equals(name.getText())) { @@ -131,26 +98,14 @@ public class Force10BaremetalSwitchBackend implements BaremetalSwitchBackend { } } - xml.removeElement("mtu"); - xml.setText(null); - XmlObject tag = xml.get("untagged"); - if (tag == null) { - tag = new XmlObject("untagged"); - xml.putElement("untagged", tag); - } - - tag.putElement(port.interfaceType, new XmlObject(port.interfaceType) - .putElement("name", new XmlObject("name").setText(port.port))); - request = new HttpEntity<>(xml.dump(), headers); - link = buildLink(struct.getSwitchIp(), String.format("/api/running/ftos/interface/vlan/%s", struct.getVlan())); - logger.debug(String.format("http get: %s, body: %s", link, request)); + XmlObject tag = xml.get("tagged"); + tag.putElement(port.interfaceType, new XmlObject("name").setText(port.port)); + request = new HttpEntity<>(xml.toString(), headers); + link = buildLink(struct.getSwitchIp(), struct.getVlan()); rsp = rest.exchange(link, HttpMethod.PUT, request, String.class); - if (!successHttpStatusCode.contains(rsp.getStatusCode())) { + if (rsp.getStatusCode() != HttpStatus.NO_CONTENT) { throw new CloudRuntimeException(String.format("failed to program vlan[%s] for port[%s] on force10[ip:%s]. http status:%s, body dump:%s", struct.getVlan(), struct.getPort(), struct.getSwitchIp(), rsp.getStatusCode(), rsp.getBody())); - } else { - logger.debug(String.format("successfully join port[%s] into vlan[%s] on Force10[ip:%s]. http response[status code:%s, body:%s]", - struct.getPort(), struct.getVlan(), struct.getSwitchIp(), rsp.getStatusCode(), rsp.getBody())); } } else { throw new CloudRuntimeException(String.format("force10[ip:%s] returns unexpected error[%s] when http getting %s, body dump:%s", @@ -160,19 +115,18 @@ public class Force10BaremetalSwitchBackend implements BaremetalSwitchBackend { @Override public void removePortFromVlan(BaremetalVlanStruct struct) { - String link = buildLink(struct.getSwitchIp(), String.format("/api/running/ftos/interface/vlan/%s", struct.getVlan())); + String link = buildLink(struct.getSwitchIp(), struct.getVlan()); HttpHeaders headers = createBasicAuthenticationHeader(struct); HttpEntity request = new HttpEntity<>(headers); - logger.debug(String.format("http get: %s, body: %s", link, request)); ResponseEntity rsp = rest.exchange(link, HttpMethod.GET, request, String.class); if (rsp.getStatusCode() == HttpStatus.NOT_FOUND) { logger.debug(String.format("vlan[%s] has been deleted on force10[ip:%s], no need to remove the port[%s] anymore", struct.getVlan(), struct.getSwitchIp(), struct.getPort())); } else if (rsp.getStatusCode() == HttpStatus.OK) { PortInfo port = new PortInfo(struct); XmlObject xml = XmlObjectParser.parseFromString((String)rsp.getBody()); - List ports = xml.getAsList("untagged.tengigabitethernet"); - ports.addAll(xml.getAsList("untagged.gigabitethernet")); - ports.addAll(xml.getAsList("untagged.fortyGigE")); + List ports = xml.getAsList("tagged.tengigabitethernet"); + ports.addAll(xml.getAsList("tagged.gigabitethernet")); + ports.addAll(xml.getAsList("tagged.fortyGigE")); List newPorts = new ArrayList<>(); boolean needRemove = false; for (XmlObject pxml : ports) { @@ -189,19 +143,11 @@ public class Force10BaremetalSwitchBackend implements BaremetalSwitchBackend { return; } - xml.setText(null); - xml.removeElement("mtu"); - XmlObject tagged = xml.get("untagged"); - tagged.removeAllChildren(); - for (XmlObject p : newPorts) { - tagged.putElement(p.getTag(), p); - } + xml.putElement("tagged", newPorts); - - request = new HttpEntity<>(xml.dump(), headers); - logger.debug(String.format("http get: %s, body: %s", link, request)); + request = new HttpEntity<>(xml.toString(), headers); rsp = rest.exchange(link, HttpMethod.PUT, request, String.class); - if (!successHttpStatusCode.contains(rsp.getStatusCode())) { + if (rsp.getStatusCode() != HttpStatus.NO_CONTENT) { throw new CloudRuntimeException(String.format("failed to program vlan[%s] for port[%s] on force10[ip:%s]. http status:%s, body dump:%s", struct.getVlan(), struct.getPort(), struct.getSwitchIp(), rsp.getStatusCode(), rsp.getBody())); } else { @@ -220,8 +166,6 @@ public class Force10BaremetalSwitchBackend implements BaremetalSwitchBackend { String base64Creds = new String(base64CredsBytes); HttpHeaders headers = new HttpHeaders(); headers.add("Authorization", "Basic " + base64Creds); - headers.setAccept(Arrays.asList(MediaType.ALL)); - headers.setContentType(MediaType.valueOf("application/vnd.yang.data+xml")); return headers; } diff --git a/scripts/network/ping/baremetal_snat.sh b/scripts/network/ping/baremetal_snat.sh index 22e56692d7d..f35a16f8e96 100755 --- a/scripts/network/ping/baremetal_snat.sh +++ b/scripts/network/ping/baremetal_snat.sh @@ -21,12 +21,11 @@ set +u mgmt_nic_ip=$1 internal_server_ip=$2 -gateway_ip=$3 ip route | grep "$internal_server_ip" > /dev/null if [ $? -ne 0 ]; then - ip route add $internal_server_ip via $gateway_ip + ip route add $internal_server_ip via $mgmt_nic_ip fi iptables-save | grep -- "-A POSTROUTING -d $internal_server_ip" > /dev/null @@ -34,21 +33,3 @@ iptables-save | grep -- "-A POSTROUTING -d $internal_server_ip" > /dev/null if [ $? -ne 0 ]; then iptables -t nat -A POSTROUTING -d $internal_server_ip -j SNAT --to-source $mgmt_nic_ip fi - - -iptables-save | grep -- "-A INPUT -i eth0 -p udp -m udp --dport 69 -j ACCEPT" > /dev/null -if [ $? -ne 0 ]; then - iptables -I INPUT -i eth0 -p udp -m udp --dport 69 -j ACCEPT -fi - -iptables-save | grep -- "-A FORWARD -i eth1 -o eth0 -j ACCEPT" > /dev/null -if [ $? -ne 0 ]; then - iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT -fi - -rule="-A FORWARD -d $internal_server_ip/32 -i eth0 -o eth1 -j ACCEPT" -iptables-save | grep -- "$rule" > /dev/null -if [ $? -ne 0 ]; then - iptables -I FORWARD -d $internal_server_ip/32 -i eth0 -o eth1 -j ACCEPT -fi - diff --git a/scripts/network/ping/prepare_pxe.sh b/scripts/network/ping/prepare_pxe.sh index 5bc1a9380dc..bd9ece69f7a 100755 --- a/scripts/network/ping/prepare_pxe.sh +++ b/scripts/network/ping/prepare_pxe.sh @@ -40,20 +40,6 @@ tmpt_uuid=$3 pxe_cfg_filename=$4 ks_file=$5 -kernel_path=$tmpt_uuid/$kernel_file_name -initrd_path=$tmpt_uuid/$initrd_file_name - -cat > $PXELINUX_CFG_DIR/$pxe_cfg_filename < $PXELINUX_CFG_DIR/$pxe_cfg_filename < elements = new HashMap(); private String text; private String tag; @@ -40,10 +38,6 @@ public class XmlObject { XmlObject() { } - public void removeAllChildren() { - elements.clear(); - } - public XmlObject(String tag) { this.tag = tag; } @@ -105,12 +99,8 @@ public class XmlObject { if (e instanceof List) { return (List)e; } - List lst = new ArrayList(1); - if (e != null) { - lst.add(e); - } - + lst.add(e); return lst; } @@ -152,8 +142,7 @@ public class XmlObject { } if (!children.isEmpty() && text != null) { - logger.info(String.format("element %s cannot have both text[%s] and child elements, set text to null", tag, text)); - text = null; + throw new CloudRuntimeException(String.format("element %s cannot have both text[%s] and child elements", tag, text)); } if (!children.isEmpty()) { diff --git a/utils/src/com/cloud/utils/xmlobject/XmlObjectParser.java b/utils/src/com/cloud/utils/xmlobject/XmlObjectParser.java old mode 100755 new mode 100644 index f0e8ce31261..321af0ce9c8 --- a/utils/src/com/cloud/utils/xmlobject/XmlObjectParser.java +++ b/utils/src/com/cloud/utils/xmlobject/XmlObjectParser.java @@ -19,13 +19,6 @@ package com.cloud.utils.xmlobject; -import com.cloud.utils.exception.CloudRuntimeException; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.DefaultHandler; - -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; @@ -33,6 +26,15 @@ import java.io.FileNotFoundException; import java.io.InputStream; import java.util.Stack; +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; + +import org.xml.sax.Attributes; +import org.xml.sax.SAXException; +import org.xml.sax.helpers.DefaultHandler; + +import com.cloud.utils.exception.CloudRuntimeException; + public class XmlObjectParser { final private InputStream is; @@ -107,11 +109,7 @@ public class XmlObjectParser { public static XmlObject parseFromString(String xmlString) { InputStream stream = new ByteArrayInputStream(xmlString.getBytes()); XmlObjectParser p = new XmlObjectParser(stream); - XmlObject obj = p.parse(); - if (obj.getText() != null && obj.getText().replaceAll("\\n", "").replaceAll("\\r", "").replaceAll(" ", "").isEmpty()) { - obj.setText(null); - } - return obj; + return p.parse(); } private XmlObject parse() { diff --git a/utils/test/com/cloud/utils/xmlobject/TestXmlObject.java b/utils/test/com/cloud/utils/xmlobject/TestXmlObject.java old mode 100755 new mode 100644 index faaf9803c14..cbd24b029c4 --- a/utils/test/com/cloud/utils/xmlobject/TestXmlObject.java +++ b/utils/test/com/cloud/utils/xmlobject/TestXmlObject.java @@ -43,11 +43,6 @@ public class TestXmlObject { } } */ - - XmlObject xml = new XmlObject("vlan").putElement("vlan-id", String.valueOf(19)).putElement("tagged", - new XmlObject("teng").putElement("name", "0/0") - ).putElement("shutdown", "false"); - System.out.println(xml.toString()); } }