You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ts...@apache.org on 2013/04/03 21:28:54 UTC

[6/9] Removing ^M's from code.

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/469c4dd1/plugins/hypervisors/baremetal/src/com/cloud/baremetal/manager/BaremetalPlannerSelector.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/manager/BaremetalPlannerSelector.java b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/manager/BaremetalPlannerSelector.java
index 9daee3f..45fbeb7 100755
--- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/manager/BaremetalPlannerSelector.java
+++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/manager/BaremetalPlannerSelector.java
@@ -1,39 +1,39 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-package com.cloud.baremetal.manager;
-
-import java.util.Map;
-
-import javax.ejb.Local;
-import javax.naming.ConfigurationException;
-
-import com.cloud.deploy.AbstractDeployPlannerSelector;
-import com.cloud.deploy.DeployPlannerSelector;
-import com.cloud.hypervisor.Hypervisor.HypervisorType;
-import com.cloud.vm.UserVmVO;
-@Local(value = {DeployPlannerSelector.class})
-public class BaremetalPlannerSelector extends AbstractDeployPlannerSelector{
-    
-    @Override
-    public String selectPlanner(UserVmVO vm) {
-        if (vm.getHypervisorType() == HypervisorType.BareMetal) {
-            return "BareMetalPlanner";
-        }
-        return null;
-    }
-
-}
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package com.cloud.baremetal.manager;
+
+import java.util.Map;
+
+import javax.ejb.Local;
+import javax.naming.ConfigurationException;
+
+import com.cloud.deploy.AbstractDeployPlannerSelector;
+import com.cloud.deploy.DeployPlannerSelector;
+import com.cloud.hypervisor.Hypervisor.HypervisorType;
+import com.cloud.vm.UserVmVO;
+@Local(value = {DeployPlannerSelector.class})
+public class BaremetalPlannerSelector extends AbstractDeployPlannerSelector{
+
+    @Override
+    public String selectPlanner(UserVmVO vm) {
+        if (vm.getHypervisorType() == HypervisorType.BareMetal) {
+            return "BareMetalPlanner";
+        }
+        return null;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/469c4dd1/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/AddBaremetalKickStartPxeCmd.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/AddBaremetalKickStartPxeCmd.java b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/AddBaremetalKickStartPxeCmd.java
index 596a86d..8bcc7c1 100755
--- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/AddBaremetalKickStartPxeCmd.java
+++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/AddBaremetalKickStartPxeCmd.java
@@ -14,24 +14,24 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-// 
+//
 // Automatically generated by addcopyright.py at 01/29/2013
-package com.cloud.baremetal.networkservice;
-
+package com.cloud.baremetal.networkservice;
+
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
 import org.apache.cloudstack.api.BaseCmd.CommandType;
 import org.apache.cloudstack.api.Parameter;
 @APICommand(name="addBaremetalPxeKickStartServer", description="add a baremetal pxe server", responseObject = BaremetalPxeKickStartResponse.class)
-public class AddBaremetalKickStartPxeCmd extends AddBaremetalPxeCmd {
-    @Parameter(name=ApiConstants.TFTP_DIR, type=CommandType.STRING, required = true, description="Tftp root directory of PXE server")
-    private String tftpDir;
-
-    public String getTftpDir() {
-        return tftpDir;
-    }
-
-    public void setTftpDir(String tftpDir) {
-        this.tftpDir = tftpDir;
+public class AddBaremetalKickStartPxeCmd extends AddBaremetalPxeCmd {
+    @Parameter(name=ApiConstants.TFTP_DIR, type=CommandType.STRING, required = true, description="Tftp root directory of PXE server")
+    private String tftpDir;
+
+    public String getTftpDir() {
+        return tftpDir;
+    }
+
+    public void setTftpDir(String tftpDir) {
+        this.tftpDir = tftpDir;
     }
-}
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/469c4dd1/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BareMetalResourceBase.java
----------------------------------------------------------------------
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 4c99f6b..86e41fe 100755
--- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BareMetalResourceBase.java
+++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BareMetalResourceBase.java
@@ -97,7 +97,7 @@ public class BareMetalResourceBase extends ManagerBase implements ServerResource
 	protected String _mac;
 	protected String _username;
 	protected String _password;
-	protected String _ip;
+	protected String _ip;
 	protected boolean _isEchoScAgent;
 	protected IAgentControl _agentControl;
 	protected Script2 _pingCommand;
@@ -146,7 +146,7 @@ public class BareMetalResourceBase extends ManagerBase implements ServerResource
 		_mac = (String) params.get(ApiConstants.HOST_MAC);
 		_username = (String) params.get(ApiConstants.USERNAME);
 		_password = (String) params.get(ApiConstants.PASSWORD);
-		_vmName = (String) params.get("vmName");
+		_vmName = (String) params.get("vmName");
 		String echoScAgent = (String) params.get(BaremetalManager.EchoSecurityGroupAgent);
 
 		if (_pod == null) {
@@ -172,9 +172,9 @@ public class BareMetalResourceBase extends ManagerBase implements ServerResource
 
 		if (_uuid == null) {
 			throw new ConfigurationException("Unable to get the uuid");
-		}
-		
-		if (echoScAgent != null) {
+		}
+
+		if (echoScAgent != null) {
 		    _isEchoScAgent = Boolean.valueOf(echoScAgent);
 		}
 
@@ -416,9 +416,9 @@ public class BareMetalResourceBase extends ManagerBase implements ServerResource
 	protected CheckNetworkAnswer execute(CheckNetworkCommand cmd) {
 		return new CheckNetworkAnswer(cmd, true, "Success");
 	}
-	
-	protected Answer execute(SecurityGroupRulesCmd cmd) {
-	    SecurityGroupHttpClient hc = new SecurityGroupHttpClient();
+
+	protected Answer execute(SecurityGroupRulesCmd cmd) {
+	    SecurityGroupHttpClient hc = new SecurityGroupHttpClient();
 	    return hc.call(cmd.getGuestIp(), cmd);
 	}
 
@@ -531,13 +531,13 @@ public class BareMetalResourceBase extends ManagerBase implements ServerResource
 				if (!doScript(_powerOnCommand)) {
 					return new StartAnswer(cmd, "IPMI power on failed");
 				}
-			}
-			
-			if (_isEchoScAgent) {
-			    SecurityGroupHttpClient hc = new SecurityGroupHttpClient();
-			    boolean echoRet = hc.echo(vm.getNics()[0].getIp(), TimeUnit.MINUTES.toMillis(30), TimeUnit.MINUTES.toMillis(1));
+			}
+
+			if (_isEchoScAgent) {
+			    SecurityGroupHttpClient hc = new SecurityGroupHttpClient();
+			    boolean echoRet = hc.echo(vm.getNics()[0].getIp(), TimeUnit.MINUTES.toMillis(30), TimeUnit.MINUTES.toMillis(1));
 			    if (!echoRet) {
-			        return new StartAnswer(cmd, String.format("Call security group agent on vm[%s] timeout", vm.getNics()[0].getIp()));
+			        return new StartAnswer(cmd, String.format("Call security group agent on vm[%s] timeout", vm.getNics()[0].getIp()));
 			    }
 			}
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/469c4dd1/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetaNetworkGuru.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetaNetworkGuru.java b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetaNetworkGuru.java
index bec6e38..6d14e3f 100755
--- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetaNetworkGuru.java
+++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetaNetworkGuru.java
@@ -14,10 +14,10 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-// 
+//
 // Automatically generated by addcopyright.py at 01/29/2013
-package com.cloud.baremetal.networkservice;
-
+package com.cloud.baremetal.networkservice;
+
 import java.net.URI;
 
 import javax.ejb.Local;
@@ -56,11 +56,11 @@ import com.cloud.vm.NicProfile;
 import com.cloud.vm.ReservationContext;
 import com.cloud.vm.VirtualMachine;
 import com.cloud.vm.VirtualMachineProfile;
-
-@Local(value = { NetworkGuru.class })
-public class BaremetaNetworkGuru extends DirectPodBasedNetworkGuru {
-    private static final Logger s_logger = Logger.getLogger(BaremetaNetworkGuru.class);
-    @Inject
+
+@Local(value = { NetworkGuru.class })
+public class BaremetaNetworkGuru extends DirectPodBasedNetworkGuru {
+    private static final Logger s_logger = Logger.getLogger(BaremetaNetworkGuru.class);
+    @Inject
     private HostDao _hostDao;
     @Inject
     DataCenterDao _dcDao;
@@ -73,101 +73,101 @@ public class BaremetaNetworkGuru extends DirectPodBasedNetworkGuru {
     @Inject
     NetworkOfferingDao _networkOfferingDao;
     @Inject
-    PodVlanMapDao _podVlanDao;
-
-    @Override
-    public void reserve(NicProfile nic, Network network, VirtualMachineProfile<? extends VirtualMachine> vm, DeployDestination dest, ReservationContext context)
-            throws InsufficientVirtualNetworkCapcityException, InsufficientAddressCapacityException, ConcurrentOperationException {
-        if (dest.getHost().getHypervisorType() != HypervisorType.BareMetal) {
-            super.reserve(nic, network, vm, dest, context);
-            return;
-        }
-
+    PodVlanMapDao _podVlanDao;
+
+    @Override
+    public void reserve(NicProfile nic, Network network, VirtualMachineProfile<? extends VirtualMachine> vm, DeployDestination dest, ReservationContext context)
+            throws InsufficientVirtualNetworkCapcityException, InsufficientAddressCapacityException, ConcurrentOperationException {
+        if (dest.getHost().getHypervisorType() != HypervisorType.BareMetal) {
+            super.reserve(nic, network, vm, dest, context);
+            return;
+        }
+
         HostVO host = _hostDao.findById(dest.getHost().getId());
-        _hostDao.loadDetails(host);
-        String intentIp = host.getDetail(ApiConstants.IP_ADDRESS);
-        if (intentIp == null) {
-            super.reserve(nic, network, vm, dest, context);
-            return;
+        _hostDao.loadDetails(host);
+        String intentIp = host.getDetail(ApiConstants.IP_ADDRESS);
+        if (intentIp == null) {
+            super.reserve(nic, network, vm, dest, context);
+            return;
+        }
+
+        String oldIp = nic.getIp4Address();
+        boolean getNewIp = false;
+        if (oldIp == null) {
+            getNewIp = true;
+        } else {
+            // we need to get a new ip address if we try to deploy a vm in a
+            // different pod
+            IPAddressVO ipVO = _ipAddressDao.findByIpAndSourceNetworkId(network.getId(), oldIp);
+            if (ipVO != null) {
+                PodVlanMapVO mapVO = _podVlanDao.listPodVlanMapsByVlan(ipVO.getVlanId());
+                if (mapVO.getPodId() != dest.getPod().getId()) {
+                    Transaction txn = Transaction.currentTxn();
+                    txn.start();
+
+                    // release the old ip here
+                    _networkMgr.markIpAsUnavailable(ipVO.getId());
+                    _ipAddressDao.unassignIpAddress(ipVO.getId());
+
+                    txn.commit();
+
+                    nic.setIp4Address(null);
+                    getNewIp = true;
+                }
+            }
+        }
+
+        if (getNewIp) {
+            // we don't set reservationStrategy to Create because we need this
+            // method to be called again for the case when vm fails to deploy in
+            // Pod1, and we try to redeploy it in Pod2
+            getBaremetalIp(nic, dest.getPod(), vm, network, intentIp);
+        }
+
+        DataCenter dc = _dcDao.findById(network.getDataCenterId());
+        nic.setDns1(dc.getDns1());
+        nic.setDns2(dc.getDns2());
+
+        /*
+         * Pod pod = dest.getPod(); Pair<String, Long> ip =
+         * _dcDao.allocatePrivateIpAddress(dest.getDataCenter().getId(),
+         * dest.getPod().getId(), nic.getId(), context.getReservationId(),
+         * intentIp); if (ip == null) { throw new
+         * InsufficientAddressCapacityException
+         * ("Unable to get a management ip address", Pod.class, pod.getId()); }
+         *
+         * nic.setIp4Address(ip.first());
+         * nic.setMacAddress(NetUtils.long2Mac(NetUtils
+         * .createSequenceBasedMacAddress(ip.second())));
+         * nic.setGateway(pod.getGateway()); nic.setFormat(AddressFormat.Ip4);
+         * String netmask = NetUtils.getCidrNetmask(pod.getCidrSize());
+         * nic.setNetmask(netmask);
+         * nic.setBroadcastType(BroadcastDomainType.Native);
+         * nic.setBroadcastUri(null); nic.setIsolationUri(null);
+         */
+
+        s_logger.debug("Allocated a nic " + nic + " for " + vm);
+    }
+
+    private void getBaremetalIp(NicProfile nic, Pod pod, VirtualMachineProfile<? extends VirtualMachine> vm, Network network, String requiredIp)
+            throws InsufficientVirtualNetworkCapcityException, InsufficientAddressCapacityException, ConcurrentOperationException {
+        DataCenter dc = _dcDao.findById(pod.getDataCenterId());
+        if (nic.getIp4Address() == null) {
+            s_logger.debug(String.format("Requiring ip address: %s", nic.getIp4Address()));
+            PublicIp ip = _networkMgr.assignPublicIpAddress(dc.getId(), pod.getId(), vm.getOwner(), VlanType.DirectAttached, network.getId(), requiredIp, false);
+            nic.setIp4Address(ip.getAddress().toString());
+            nic.setFormat(AddressFormat.Ip4);
+            nic.setGateway(ip.getGateway());
+            nic.setNetmask(ip.getNetmask());
+            if (ip.getVlanTag() != null && ip.getVlanTag().equalsIgnoreCase(Vlan.UNTAGGED)) {
+                nic.setIsolationUri(URI.create("ec2://" + Vlan.UNTAGGED));
+                nic.setBroadcastUri(URI.create("vlan://" + Vlan.UNTAGGED));
+                nic.setBroadcastType(BroadcastDomainType.Native);
+            }
+            nic.setReservationId(String.valueOf(ip.getVlanTag()));
+            nic.setMacAddress(ip.getMacAddress());
         }
-        
-        String oldIp = nic.getIp4Address();
-        boolean getNewIp = false;
-        if (oldIp == null) {
-            getNewIp = true;
-        } else {
-            // we need to get a new ip address if we try to deploy a vm in a
-            // different pod
-            IPAddressVO ipVO = _ipAddressDao.findByIpAndSourceNetworkId(network.getId(), oldIp);
-            if (ipVO != null) {
-                PodVlanMapVO mapVO = _podVlanDao.listPodVlanMapsByVlan(ipVO.getVlanId());
-                if (mapVO.getPodId() != dest.getPod().getId()) {
-                    Transaction txn = Transaction.currentTxn();
-                    txn.start();
-
-                    // release the old ip here
-                    _networkMgr.markIpAsUnavailable(ipVO.getId());
-                    _ipAddressDao.unassignIpAddress(ipVO.getId());
-
-                    txn.commit();
-
-                    nic.setIp4Address(null);
-                    getNewIp = true;
-                }
-            }
-        }
-
-        if (getNewIp) {
-            // we don't set reservationStrategy to Create because we need this
-            // method to be called again for the case when vm fails to deploy in
-            // Pod1, and we try to redeploy it in Pod2
-            getBaremetalIp(nic, dest.getPod(), vm, network, intentIp);
-        }
-
-        DataCenter dc = _dcDao.findById(network.getDataCenterId());
-        nic.setDns1(dc.getDns1());
-        nic.setDns2(dc.getDns2());
-
-        /*
-         * Pod pod = dest.getPod(); Pair<String, Long> ip =
-         * _dcDao.allocatePrivateIpAddress(dest.getDataCenter().getId(),
-         * dest.getPod().getId(), nic.getId(), context.getReservationId(),
-         * intentIp); if (ip == null) { throw new
-         * InsufficientAddressCapacityException
-         * ("Unable to get a management ip address", Pod.class, pod.getId()); }
-         * 
-         * nic.setIp4Address(ip.first());
-         * nic.setMacAddress(NetUtils.long2Mac(NetUtils
-         * .createSequenceBasedMacAddress(ip.second())));
-         * nic.setGateway(pod.getGateway()); nic.setFormat(AddressFormat.Ip4);
-         * String netmask = NetUtils.getCidrNetmask(pod.getCidrSize());
-         * nic.setNetmask(netmask);
-         * nic.setBroadcastType(BroadcastDomainType.Native);
-         * nic.setBroadcastUri(null); nic.setIsolationUri(null);
-         */
-
-        s_logger.debug("Allocated a nic " + nic + " for " + vm);
-    }
-
-    private void getBaremetalIp(NicProfile nic, Pod pod, VirtualMachineProfile<? extends VirtualMachine> vm, Network network, String requiredIp)
-            throws InsufficientVirtualNetworkCapcityException, InsufficientAddressCapacityException, ConcurrentOperationException {
-        DataCenter dc = _dcDao.findById(pod.getDataCenterId());
-        if (nic.getIp4Address() == null) {
-            s_logger.debug(String.format("Requiring ip address: %s", nic.getIp4Address()));
-            PublicIp ip = _networkMgr.assignPublicIpAddress(dc.getId(), pod.getId(), vm.getOwner(), VlanType.DirectAttached, network.getId(), requiredIp, false);
-            nic.setIp4Address(ip.getAddress().toString());
-            nic.setFormat(AddressFormat.Ip4);
-            nic.setGateway(ip.getGateway());
-            nic.setNetmask(ip.getNetmask());
-            if (ip.getVlanTag() != null && ip.getVlanTag().equalsIgnoreCase(Vlan.UNTAGGED)) {
-                nic.setIsolationUri(URI.create("ec2://" + Vlan.UNTAGGED));
-                nic.setBroadcastUri(URI.create("vlan://" + Vlan.UNTAGGED));
-                nic.setBroadcastType(BroadcastDomainType.Native);
-            }
-            nic.setReservationId(String.valueOf(ip.getVlanTag()));
-            nic.setMacAddress(ip.getMacAddress());
-        }
-        nic.setDns1(dc.getDns1());
-        nic.setDns2(dc.getDns2());
-    }
-}
+        nic.setDns1(dc.getDns1());
+        nic.setDns2(dc.getDns2());
+    }
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/469c4dd1/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalKickStartPxeResource.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalKickStartPxeResource.java b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalKickStartPxeResource.java
index 58c6e86..7a7a515 100755
--- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalKickStartPxeResource.java
+++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalKickStartPxeResource.java
@@ -14,10 +14,10 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-// 
+//
 // Automatically generated by addcopyright.py at 01/29/2013
-package com.cloud.baremetal.networkservice;
-
+package com.cloud.baremetal.networkservice;
+
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -37,166 +37,166 @@ import com.cloud.utils.script.Script;
 import com.cloud.utils.ssh.SSHCmdHelper;
 import com.cloud.vm.VirtualMachine.State;
 import com.trilead.ssh2.SCPClient;
-
-public class BaremetalKickStartPxeResource extends BaremetalPxeResourceBase {
-    private static final Logger s_logger = Logger.getLogger(BaremetalKickStartPxeResource.class);
-    private static final String _name = "BaremetalKickStartPxeResource";
-    String _tftpDir;
-
-    @Override
-    public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
-        super.configure(name, params);
-        _tftpDir = (String) params.get(BaremetalPxeService.PXE_PARAM_TFTP_DIR);
-        if (_tftpDir == null) {
-            throw new ConfigurationException("No tftp directory specified");
-        }
-
-        com.trilead.ssh2.Connection sshConnection = new com.trilead.ssh2.Connection(_ip, 22);
-
-        s_logger.debug(String.format("Trying to connect to kickstart PXE server(IP=%1$s, username=%2$s, password=%3$s", _ip, _username, "******"));
-        try {
-            sshConnection.connect(null, 60000, 60000);
-            if (!sshConnection.authenticateWithPassword(_username, _password)) {
-                s_logger.debug("SSH Failed to authenticate");
-                throw new ConfigurationException(String.format("Cannot connect to kickstart PXE server(IP=%1$s, username=%2$s, password=%3$s", _ip, _username,
-                        "******"));
-            }
-
-            String cmd = String.format("[ -f /%1$s/pxelinux.0 ]", _tftpDir);
-            if (!SSHCmdHelper.sshExecuteCmd(sshConnection, cmd)) {
-                throw new ConfigurationException("Miss files in TFTP directory at " + _tftpDir + " check if pxelinux.0 are here");
-            }
-
-            SCPClient scp = new SCPClient(sshConnection);
-            String prepareScript = "scripts/network/ping/prepare_kickstart_bootfile.py";
-            String prepareScriptPath = Script.findScript("", prepareScript);
-            if (prepareScriptPath == null) {
-                throw new ConfigurationException("Can not find prepare_kickstart_bootfile.py at " + prepareScript);
-            }
-            scp.put(prepareScriptPath, "/usr/bin/", "0755");
-
-            String cpScript = "scripts/network/ping/prepare_kickstart_kernel_initrd.py";
-            String cpScriptPath = Script.findScript("", cpScript);
-            if (cpScriptPath == null) {
-                throw new ConfigurationException("Can not find prepare_kickstart_kernel_initrd.py at " + cpScript);
-            }
-            scp.put(cpScriptPath, "/usr/bin/", "0755");
-            
-            String userDataScript = "scripts/network/ping/baremetal_user_data.py";
-            String userDataScriptPath = Script.findScript("", userDataScript);
-            if (userDataScriptPath == null) {
-                throw new ConfigurationException("Can not find baremetal_user_data.py at " + userDataScript);
-            }
-            scp.put(userDataScriptPath, "/usr/bin/", "0755");
-
-            return true;
-        } catch (Exception e) {
-            throw new CloudRuntimeException(e);
-        } finally {
-            if (sshConnection != null) {
-                sshConnection.close();
-            }
-        }
+
+public class BaremetalKickStartPxeResource extends BaremetalPxeResourceBase {
+    private static final Logger s_logger = Logger.getLogger(BaremetalKickStartPxeResource.class);
+    private static final String _name = "BaremetalKickStartPxeResource";
+    String _tftpDir;
+
+    @Override
+    public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
+        super.configure(name, params);
+        _tftpDir = (String) params.get(BaremetalPxeService.PXE_PARAM_TFTP_DIR);
+        if (_tftpDir == null) {
+            throw new ConfigurationException("No tftp directory specified");
+        }
+
+        com.trilead.ssh2.Connection sshConnection = new com.trilead.ssh2.Connection(_ip, 22);
+
+        s_logger.debug(String.format("Trying to connect to kickstart PXE server(IP=%1$s, username=%2$s, password=%3$s", _ip, _username, "******"));
+        try {
+            sshConnection.connect(null, 60000, 60000);
+            if (!sshConnection.authenticateWithPassword(_username, _password)) {
+                s_logger.debug("SSH Failed to authenticate");
+                throw new ConfigurationException(String.format("Cannot connect to kickstart PXE server(IP=%1$s, username=%2$s, password=%3$s", _ip, _username,
+                        "******"));
+            }
+
+            String cmd = String.format("[ -f /%1$s/pxelinux.0 ]", _tftpDir);
+            if (!SSHCmdHelper.sshExecuteCmd(sshConnection, cmd)) {
+                throw new ConfigurationException("Miss files in TFTP directory at " + _tftpDir + " check if pxelinux.0 are here");
+            }
+
+            SCPClient scp = new SCPClient(sshConnection);
+            String prepareScript = "scripts/network/ping/prepare_kickstart_bootfile.py";
+            String prepareScriptPath = Script.findScript("", prepareScript);
+            if (prepareScriptPath == null) {
+                throw new ConfigurationException("Can not find prepare_kickstart_bootfile.py at " + prepareScript);
+            }
+            scp.put(prepareScriptPath, "/usr/bin/", "0755");
+
+            String cpScript = "scripts/network/ping/prepare_kickstart_kernel_initrd.py";
+            String cpScriptPath = Script.findScript("", cpScript);
+            if (cpScriptPath == null) {
+                throw new ConfigurationException("Can not find prepare_kickstart_kernel_initrd.py at " + cpScript);
+            }
+            scp.put(cpScriptPath, "/usr/bin/", "0755");
+
+            String userDataScript = "scripts/network/ping/baremetal_user_data.py";
+            String userDataScriptPath = Script.findScript("", userDataScript);
+            if (userDataScriptPath == null) {
+                throw new ConfigurationException("Can not find baremetal_user_data.py at " + userDataScript);
+            }
+            scp.put(userDataScriptPath, "/usr/bin/", "0755");
+
+            return true;
+        } catch (Exception e) {
+            throw new CloudRuntimeException(e);
+        } finally {
+            if (sshConnection != null) {
+                sshConnection.close();
+            }
+        }
     }
-    
-    @Override
-    public PingCommand getCurrentStatus(long id) {
-        com.trilead.ssh2.Connection sshConnection = SSHCmdHelper.acquireAuthorizedConnection(_ip, _username, _password);
-        if (sshConnection == null) {
-            return null;
-        } else {
-            SSHCmdHelper.releaseSshConnection(sshConnection);
-            return new PingRoutingCommand(getType(), id, new HashMap<String, State>());
-        }
+
+    @Override
+    public PingCommand getCurrentStatus(long id) {
+        com.trilead.ssh2.Connection sshConnection = SSHCmdHelper.acquireAuthorizedConnection(_ip, _username, _password);
+        if (sshConnection == null) {
+            return null;
+        } else {
+            SSHCmdHelper.releaseSshConnection(sshConnection);
+            return new PingRoutingCommand(getType(), id, new HashMap<String, State>());
+        }
     }
-    
-    private Answer execute(VmDataCommand cmd) {
-        com.trilead.ssh2.Connection sshConnection = new com.trilead.ssh2.Connection(_ip, 22);
-        try {
-            List<String[]> vmData = cmd.getVmData();
-            StringBuilder sb = new StringBuilder();
-            for (String[] data : vmData) {
-                String folder = data[0];
-                String file = data[1];
-                String contents = (data[2] == null) ? "none" : data[2];
-                sb.append(cmd.getVmIpAddress());
-                sb.append(",");
-                sb.append(folder);
-                sb.append(",");
-                sb.append(file);
-                sb.append(",");
-                sb.append(contents);
-                sb.append(";");
-            }
-            String arg = StringUtils.stripEnd(sb.toString(), ";");
-            
-            sshConnection.connect(null, 60000, 60000);
-            if (!sshConnection.authenticateWithPassword(_username, _password)) {
-                s_logger.debug("SSH Failed to authenticate");
-                throw new ConfigurationException(String.format("Cannot connect to PING PXE server(IP=%1$s, username=%2$s, password=%3$s", _ip, _username,
-                        _password));
-            }
-            
-            String script = String.format("python /usr/bin/baremetal_user_data.py '%s'", arg);
-            if (!SSHCmdHelper.sshExecuteCmd(sshConnection, script)) {
-                return new Answer(cmd, false, "Failed to add user data, command:" + script);
-            }
-            
-            return new Answer(cmd, true, "Success");
-        }  catch (Exception e){
-            s_logger.debug("Prepare for creating baremetal template failed", e);
-            return new Answer(cmd, false, e.getMessage());
-        } finally {
-            if (sshConnection != null) {
-                sshConnection.close();
-            }
-        }
+
+    private Answer execute(VmDataCommand cmd) {
+        com.trilead.ssh2.Connection sshConnection = new com.trilead.ssh2.Connection(_ip, 22);
+        try {
+            List<String[]> vmData = cmd.getVmData();
+            StringBuilder sb = new StringBuilder();
+            for (String[] data : vmData) {
+                String folder = data[0];
+                String file = data[1];
+                String contents = (data[2] == null) ? "none" : data[2];
+                sb.append(cmd.getVmIpAddress());
+                sb.append(",");
+                sb.append(folder);
+                sb.append(",");
+                sb.append(file);
+                sb.append(",");
+                sb.append(contents);
+                sb.append(";");
+            }
+            String arg = StringUtils.stripEnd(sb.toString(), ";");
+
+            sshConnection.connect(null, 60000, 60000);
+            if (!sshConnection.authenticateWithPassword(_username, _password)) {
+                s_logger.debug("SSH Failed to authenticate");
+                throw new ConfigurationException(String.format("Cannot connect to PING PXE server(IP=%1$s, username=%2$s, password=%3$s", _ip, _username,
+                        _password));
+            }
+
+            String script = String.format("python /usr/bin/baremetal_user_data.py '%s'", arg);
+            if (!SSHCmdHelper.sshExecuteCmd(sshConnection, script)) {
+                return new Answer(cmd, false, "Failed to add user data, command:" + script);
+            }
+
+            return new Answer(cmd, true, "Success");
+        }  catch (Exception e){
+            s_logger.debug("Prepare for creating baremetal template failed", e);
+            return new Answer(cmd, false, e.getMessage());
+        } finally {
+            if (sshConnection != null) {
+                sshConnection.close();
+            }
+        }
+    }
+
+    @Override
+    public Answer executeRequest(Command cmd) {
+        if (cmd instanceof PrepareKickstartPxeServerCommand) {
+            return execute((PrepareKickstartPxeServerCommand) cmd);
+        } else if (cmd instanceof VmDataCommand) {
+            return execute((VmDataCommand)cmd);
+        } else {
+            return super.executeRequest(cmd);
+        }
     }
-    
-    @Override
-    public Answer executeRequest(Command cmd) {
-        if (cmd instanceof PrepareKickstartPxeServerCommand) {
-            return execute((PrepareKickstartPxeServerCommand) cmd);
-        } else if (cmd instanceof VmDataCommand) {
-            return execute((VmDataCommand)cmd);
-        } else {
-            return super.executeRequest(cmd);
-        }
-    }
-
-    private Answer execute(PrepareKickstartPxeServerCommand cmd) {
-        com.trilead.ssh2.Connection sshConnection = new com.trilead.ssh2.Connection(_ip, 22);
-        try {
-            sshConnection.connect(null, 60000, 60000);
-            if (!sshConnection.authenticateWithPassword(_username, _password)) {
-                s_logger.debug("SSH Failed to authenticate");
-                throw new ConfigurationException(String.format("Cannot connect to PING PXE server(IP=%1$s, username=%2$s, password=%3$s", _ip, _username,
-                        _password));
+
+    private Answer execute(PrepareKickstartPxeServerCommand cmd) {
+        com.trilead.ssh2.Connection sshConnection = new com.trilead.ssh2.Connection(_ip, 22);
+        try {
+            sshConnection.connect(null, 60000, 60000);
+            if (!sshConnection.authenticateWithPassword(_username, _password)) {
+                s_logger.debug("SSH Failed to authenticate");
+                throw new ConfigurationException(String.format("Cannot connect to PING PXE server(IP=%1$s, username=%2$s, password=%3$s", _ip, _username,
+                        _password));
             }
-            
+
             String copyTo = String.format("%s/%s", _tftpDir, cmd.getTemplateUuid());
-            String script = String.format("python /usr/bin/prepare_kickstart_kernel_initrd.py %s %s %s", cmd.getKernel(), cmd.getInitrd(), copyTo);
-            
-            if (!SSHCmdHelper.sshExecuteCmd(sshConnection, script)) {
-                return new Answer(cmd, false, "prepare kickstart at pxe server " + _ip + " failed, command:" + script);
-            }   
-            
-            String kernelPath = String.format("%s/vmlinuz", cmd.getTemplateUuid());
-            String initrdPath = String.format("%s/initrd.img", cmd.getTemplateUuid());
-            script = String.format("python /usr/bin/prepare_kickstart_bootfile.py %s %s %s %s %s %s", _tftpDir, cmd.getMac(), kernelPath, initrdPath, cmd.getKsFile(), cmd.getMac());
-            if (!SSHCmdHelper.sshExecuteCmd(sshConnection, script)) {
-                return new Answer(cmd, false, "prepare kickstart at pxe server " + _ip + " failed, command:" + script);
-            }   
-            
-            s_logger.debug("Prepare kickstart PXE server successfully");
-            return new Answer(cmd, true, "Success");
-        }  catch (Exception e){
-            s_logger.debug("Prepare for kickstart server failed", e);
-            return new Answer(cmd, false, e.getMessage());
-        } finally {
-            if (sshConnection != null) {
-                sshConnection.close();
-            }
-        }
-    }
-}
+            String script = String.format("python /usr/bin/prepare_kickstart_kernel_initrd.py %s %s %s", cmd.getKernel(), cmd.getInitrd(), copyTo);
+
+            if (!SSHCmdHelper.sshExecuteCmd(sshConnection, script)) {
+                return new Answer(cmd, false, "prepare kickstart at pxe server " + _ip + " failed, command:" + script);
+            }
+
+            String kernelPath = String.format("%s/vmlinuz", cmd.getTemplateUuid());
+            String initrdPath = String.format("%s/initrd.img", cmd.getTemplateUuid());
+            script = String.format("python /usr/bin/prepare_kickstart_bootfile.py %s %s %s %s %s %s", _tftpDir, cmd.getMac(), kernelPath, initrdPath, cmd.getKsFile(), cmd.getMac());
+            if (!SSHCmdHelper.sshExecuteCmd(sshConnection, script)) {
+                return new Answer(cmd, false, "prepare kickstart at pxe server " + _ip + " failed, command:" + script);
+            }
+
+            s_logger.debug("Prepare kickstart PXE server successfully");
+            return new Answer(cmd, true, "Success");
+        }  catch (Exception e){
+            s_logger.debug("Prepare for kickstart server failed", e);
+            return new Answer(cmd, false, e.getMessage());
+        } finally {
+            if (sshConnection != null) {
+                sshConnection.close();
+            }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/469c4dd1/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalKickStartServiceImpl.java
----------------------------------------------------------------------
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 8a5ac78..49582b0 100755
--- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalKickStartServiceImpl.java
+++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalKickStartServiceImpl.java
@@ -14,87 +14,87 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-// 
+//
 // Automatically generated by addcopyright.py at 01/29/2013
-package com.cloud.baremetal.networkservice;
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.ejb.Local;
+package com.cloud.baremetal.networkservice;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.ejb.Local;
 import javax.inject.Inject;
-
-import org.apache.log4j.Logger;
-
-import com.cloud.agent.api.Answer;
-import com.cloud.agent.api.baremetal.IpmISetBootDevCommand;
-import com.cloud.agent.api.baremetal.IpmISetBootDevCommand.BootDev;
-import com.cloud.baremetal.database.BaremetalPxeDao;
-import com.cloud.baremetal.database.BaremetalPxeVO;
-import com.cloud.baremetal.networkservice.BaremetalPxeManager.BaremetalPxeType;
-import com.cloud.deploy.DeployDestination;
-import com.cloud.host.Host;
-import com.cloud.host.HostVO;
-import com.cloud.host.dao.HostDetailsDao;
-import com.cloud.network.PhysicalNetworkServiceProvider;
-import com.cloud.network.dao.NetworkDao;
+
+import org.apache.log4j.Logger;
+
+import com.cloud.agent.api.Answer;
+import com.cloud.agent.api.baremetal.IpmISetBootDevCommand;
+import com.cloud.agent.api.baremetal.IpmISetBootDevCommand.BootDev;
+import com.cloud.baremetal.database.BaremetalPxeDao;
+import com.cloud.baremetal.database.BaremetalPxeVO;
+import com.cloud.baremetal.networkservice.BaremetalPxeManager.BaremetalPxeType;
+import com.cloud.deploy.DeployDestination;
+import com.cloud.host.Host;
+import com.cloud.host.HostVO;
+import com.cloud.host.dao.HostDetailsDao;
+import com.cloud.network.PhysicalNetworkServiceProvider;
+import com.cloud.network.dao.NetworkDao;
 import com.cloud.network.dao.NetworkVO;
-import com.cloud.network.dao.PhysicalNetworkDao;
-import com.cloud.network.dao.PhysicalNetworkServiceProviderDao;
-import com.cloud.network.dao.PhysicalNetworkServiceProviderVO;
+import com.cloud.network.dao.PhysicalNetworkDao;
+import com.cloud.network.dao.PhysicalNetworkServiceProviderDao;
+import com.cloud.network.dao.PhysicalNetworkServiceProviderVO;
 import com.cloud.network.dao.PhysicalNetworkVO;
-import com.cloud.resource.ResourceManager;
-import com.cloud.resource.ServerResource;
-import com.cloud.storage.VMTemplateVO;
-import com.cloud.storage.dao.VMTemplateDao;
-import com.cloud.uservm.UserVm;
-import com.cloud.utils.db.DB;
-import com.cloud.utils.db.SearchCriteria.Op;
-import com.cloud.utils.db.SearchCriteria2;
-import com.cloud.utils.db.SearchCriteriaService;
-import com.cloud.utils.db.Transaction;
-import com.cloud.utils.exception.CloudRuntimeException;
-import com.cloud.vm.NicProfile;
-import com.cloud.vm.ReservationContext;
-import com.cloud.vm.UserVmVO;
-import com.cloud.vm.VirtualMachineProfile;
-
-@Local(value = BaremetalPxeService.class)
-public class BaremetalKickStartServiceImpl extends BareMetalPxeServiceBase implements BaremetalPxeService {
-    private static final Logger s_logger = Logger.getLogger(BaremetalKickStartServiceImpl.class);
-    @Inject
-    ResourceManager _resourceMgr;
-    @Inject
-    PhysicalNetworkDao _physicalNetworkDao;
-    @Inject
-    PhysicalNetworkServiceProviderDao _physicalNetworkServiceProviderDao;
-    @Inject
-    HostDetailsDao _hostDetailsDao;
-    @Inject
-    BaremetalPxeDao _pxeDao;
+import com.cloud.resource.ResourceManager;
+import com.cloud.resource.ServerResource;
+import com.cloud.storage.VMTemplateVO;
+import com.cloud.storage.dao.VMTemplateDao;
+import com.cloud.uservm.UserVm;
+import com.cloud.utils.db.DB;
+import com.cloud.utils.db.SearchCriteria.Op;
+import com.cloud.utils.db.SearchCriteria2;
+import com.cloud.utils.db.SearchCriteriaService;
+import com.cloud.utils.db.Transaction;
+import com.cloud.utils.exception.CloudRuntimeException;
+import com.cloud.vm.NicProfile;
+import com.cloud.vm.ReservationContext;
+import com.cloud.vm.UserVmVO;
+import com.cloud.vm.VirtualMachineProfile;
+
+@Local(value = BaremetalPxeService.class)
+public class BaremetalKickStartServiceImpl extends BareMetalPxeServiceBase implements BaremetalPxeService {
+    private static final Logger s_logger = Logger.getLogger(BaremetalKickStartServiceImpl.class);
+    @Inject
+    ResourceManager _resourceMgr;
     @Inject
-    NetworkDao _nwDao;
+    PhysicalNetworkDao _physicalNetworkDao;
+    @Inject
+    PhysicalNetworkServiceProviderDao _physicalNetworkServiceProviderDao;
+    @Inject
+    HostDetailsDao _hostDetailsDao;
+    @Inject
+    BaremetalPxeDao _pxeDao;
+    @Inject
+    NetworkDao _nwDao;
     @Inject
     VMTemplateDao _tmpDao;
-
-    @Override
+
+    @Override
     public boolean prepare(VirtualMachineProfile<UserVmVO> profile, NicProfile nic, DeployDestination dest, ReservationContext context) {
         NetworkVO nwVO = _nwDao.findById(nic.getNetworkId());
-        SearchCriteriaService<BaremetalPxeVO, BaremetalPxeVO> sc = SearchCriteria2.create(BaremetalPxeVO.class);
+        SearchCriteriaService<BaremetalPxeVO, BaremetalPxeVO> sc = SearchCriteria2.create(BaremetalPxeVO.class);
         sc.addAnd(sc.getEntity().getDeviceType(), Op.EQ, BaremetalPxeType.KICK_START.toString());
-        sc.addAnd(sc.getEntity().getPhysicalNetworkId(), Op.EQ, nwVO.getPhysicalNetworkId());
-        BaremetalPxeVO pxeVo = sc.find();
-        if (pxeVo == null) {
-            throw new CloudRuntimeException("No kickstart PXE server found in pod: " + dest.getPod().getId() + ", you need to add it before starting VM");
+        sc.addAnd(sc.getEntity().getPhysicalNetworkId(), Op.EQ, nwVO.getPhysicalNetworkId());
+        BaremetalPxeVO pxeVo = sc.find();
+        if (pxeVo == null) {
+            throw new CloudRuntimeException("No kickstart PXE server found in pod: " + dest.getPod().getId() + ", you need to add it before starting VM");
         }
-        VMTemplateVO template = _tmpDao.findById(profile.getTemplateId());
-
-        try {
-            String tpl = profile.getTemplate().getUrl();
-            assert tpl != null : "How can a null template get here!!!";
+        VMTemplateVO template = _tmpDao.findById(profile.getTemplateId());
+
+        try {
+            String tpl = profile.getTemplate().getUrl();
+            assert tpl != null : "How can a null template get here!!!";
             String[] tpls = tpl.split(";");
             CloudRuntimeException err = new CloudRuntimeException(String.format("template url[%s] is not correctly encoded. it must be in format of ks=http_link_to_kickstartfile;kernel=nfs_path_to_pxe_kernel;initrd=nfs_path_to_pxe_initrd", tpl));
             if (tpls.length != 3) {
@@ -120,149 +120,149 @@ public class BaremetalKickStartServiceImpl extends BareMetalPxeServiceBase imple
                     throw err;
                 }
             }
-            
-            PrepareKickstartPxeServerCommand cmd = new PrepareKickstartPxeServerCommand();
+
+            PrepareKickstartPxeServerCommand cmd = new PrepareKickstartPxeServerCommand();
             cmd.setKsFile(ks);
             cmd.setInitrd(initrd);
-            cmd.setKernel(kernel);
+            cmd.setKernel(kernel);
             cmd.setMac(nic.getMacAddress());
-            cmd.setTemplateUuid(template.getUuid());
-            Answer aws = _agentMgr.send(pxeVo.getHostId(), cmd);
-            if (!aws.getResult()) {
-                s_logger.warn("Unable to set host: " + dest.getHost().getId() + " to PXE boot because " + aws.getDetails());
-                return aws.getResult();
+            cmd.setTemplateUuid(template.getUuid());
+            Answer aws = _agentMgr.send(pxeVo.getHostId(), cmd);
+            if (!aws.getResult()) {
+                s_logger.warn("Unable to set host: " + dest.getHost().getId() + " to PXE boot because " + aws.getDetails());
+                return aws.getResult();
             }
-            
-            IpmISetBootDevCommand bootCmd = new IpmISetBootDevCommand(BootDev.pxe);
-            aws = _agentMgr.send(dest.getHost().getId(), bootCmd);
-            if (!aws.getResult()) {
-                s_logger.warn("Unable to set host: " + dest.getHost().getId() + " to PXE boot because " + aws.getDetails());
+
+            IpmISetBootDevCommand bootCmd = new IpmISetBootDevCommand(BootDev.pxe);
+            aws = _agentMgr.send(dest.getHost().getId(), bootCmd);
+            if (!aws.getResult()) {
+                s_logger.warn("Unable to set host: " + dest.getHost().getId() + " to PXE boot because " + aws.getDetails());
             }
-            
-            return aws.getResult();
-        } catch (Exception e) {
-            s_logger.warn("Cannot prepare PXE server", e);
-            return false;
-        }
-    }
-
-    @Override
-    public boolean prepareCreateTemplate(Long pxeServerId, UserVm vm, String templateUrl) {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
+
+            return aws.getResult();
+        } catch (Exception e) {
+            s_logger.warn("Cannot prepare PXE server", e);
+            return false;
+        }
+    }
+
     @Override
-    @DB
-    public BaremetalPxeVO addPxeServer(AddBaremetalPxeCmd cmd) {
-        AddBaremetalKickStartPxeCmd kcmd = (AddBaremetalKickStartPxeCmd)cmd;
-        PhysicalNetworkVO pNetwork = null;
-        long zoneId;
-        
-        if (cmd.getPhysicalNetworkId() == null || cmd.getUrl() == null || cmd.getUsername() == null || cmd.getPassword() == null) {
-            throw new IllegalArgumentException("At least one of the required parameters(physical network id, url, username, password) is null");
-        } 
-        
-        pNetwork = _physicalNetworkDao.findById(cmd.getPhysicalNetworkId());
-        if (pNetwork == null) {
-            throw new IllegalArgumentException("Could not find phyical network with ID: " + cmd.getPhysicalNetworkId());
-        }
-        zoneId = pNetwork.getDataCenterId();
-        
-        PhysicalNetworkServiceProviderVO ntwkSvcProvider = _physicalNetworkServiceProviderDao.findByServiceProvider(pNetwork.getId(), BaremetalPxeManager.BAREMETAL_PXE_SERVICE_PROVIDER.getName());
-        if (ntwkSvcProvider == null) {
-            throw new CloudRuntimeException("Network Service Provider: " + BaremetalPxeManager.BAREMETAL_PXE_SERVICE_PROVIDER.getName() +
-                    " is not enabled in the physical network: " + cmd.getPhysicalNetworkId() + "to add this device");
-        } else if (ntwkSvcProvider.getState() == PhysicalNetworkServiceProvider.State.Shutdown) {
-            throw new CloudRuntimeException("Network Service Provider: " + ntwkSvcProvider.getProviderName() +
-                    " is in shutdown state in the physical network: " + cmd.getPhysicalNetworkId() + "to add this device");
-        }
-        
-        List<HostVO> pxes = _resourceMgr.listAllHostsInOneZoneByType(Host.Type.BaremetalPxe, zoneId);
-        if (!pxes.isEmpty()) {
+    public boolean prepareCreateTemplate(Long pxeServerId, UserVm vm, String templateUrl) {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    @Override
+    @DB
+    public BaremetalPxeVO addPxeServer(AddBaremetalPxeCmd cmd) {
+        AddBaremetalKickStartPxeCmd kcmd = (AddBaremetalKickStartPxeCmd)cmd;
+        PhysicalNetworkVO pNetwork = null;
+        long zoneId;
+
+        if (cmd.getPhysicalNetworkId() == null || cmd.getUrl() == null || cmd.getUsername() == null || cmd.getPassword() == null) {
+            throw new IllegalArgumentException("At least one of the required parameters(physical network id, url, username, password) is null");
+        }
+
+        pNetwork = _physicalNetworkDao.findById(cmd.getPhysicalNetworkId());
+        if (pNetwork == null) {
+            throw new IllegalArgumentException("Could not find phyical network with ID: " + cmd.getPhysicalNetworkId());
+        }
+        zoneId = pNetwork.getDataCenterId();
+
+        PhysicalNetworkServiceProviderVO ntwkSvcProvider = _physicalNetworkServiceProviderDao.findByServiceProvider(pNetwork.getId(), BaremetalPxeManager.BAREMETAL_PXE_SERVICE_PROVIDER.getName());
+        if (ntwkSvcProvider == null) {
+            throw new CloudRuntimeException("Network Service Provider: " + BaremetalPxeManager.BAREMETAL_PXE_SERVICE_PROVIDER.getName() +
+                    " is not enabled in the physical network: " + cmd.getPhysicalNetworkId() + "to add this device");
+        } else if (ntwkSvcProvider.getState() == PhysicalNetworkServiceProvider.State.Shutdown) {
+            throw new CloudRuntimeException("Network Service Provider: " + ntwkSvcProvider.getProviderName() +
+                    " is in shutdown state in the physical network: " + cmd.getPhysicalNetworkId() + "to add this device");
+        }
+
+        List<HostVO> pxes = _resourceMgr.listAllHostsInOneZoneByType(Host.Type.BaremetalPxe, zoneId);
+        if (!pxes.isEmpty()) {
             throw new IllegalArgumentException("Already had a PXE server zone: " + zoneId);
-        }
-        
-        String tftpDir = kcmd.getTftpDir();
-        if (tftpDir == null) {
-            throw new IllegalArgumentException("No TFTP directory specified");
-        }
-        
-        URI uri;
-        try {
-            uri = new URI(cmd.getUrl());
-        } catch (Exception e) {
-            s_logger.debug(e);
-            throw new IllegalArgumentException(e.getMessage());
-        }
-        String ipAddress = uri.getHost();
-        
-        String guid = getPxeServerGuid(Long.toString(zoneId), BaremetalPxeType.KICK_START.toString(), ipAddress);
-        
-        ServerResource resource = null;
-        Map params = new HashMap<String, String>();
-        params.put(BaremetalPxeService.PXE_PARAM_ZONE, Long.toString(zoneId));
-        params.put(BaremetalPxeService.PXE_PARAM_IP, ipAddress);
-        params.put(BaremetalPxeService.PXE_PARAM_USERNAME, cmd.getUsername());
-        params.put(BaremetalPxeService.PXE_PARAM_PASSWORD, cmd.getPassword());
-        params.put(BaremetalPxeService.PXE_PARAM_TFTP_DIR, tftpDir);
+        }
+
+        String tftpDir = kcmd.getTftpDir();
+        if (tftpDir == null) {
+            throw new IllegalArgumentException("No TFTP directory specified");
+        }
+
+        URI uri;
+        try {
+            uri = new URI(cmd.getUrl());
+        } catch (Exception e) {
+            s_logger.debug(e);
+            throw new IllegalArgumentException(e.getMessage());
+        }
+        String ipAddress = uri.getHost();
+
+        String guid = getPxeServerGuid(Long.toString(zoneId), BaremetalPxeType.KICK_START.toString(), ipAddress);
+
+        ServerResource resource = null;
+        Map params = new HashMap<String, String>();
+        params.put(BaremetalPxeService.PXE_PARAM_ZONE, Long.toString(zoneId));
+        params.put(BaremetalPxeService.PXE_PARAM_IP, ipAddress);
+        params.put(BaremetalPxeService.PXE_PARAM_USERNAME, cmd.getUsername());
+        params.put(BaremetalPxeService.PXE_PARAM_PASSWORD, cmd.getPassword());
+        params.put(BaremetalPxeService.PXE_PARAM_TFTP_DIR, tftpDir);
         params.put(BaremetalPxeService.PXE_PARAM_GUID, guid);
         resource = new BaremetalKickStartPxeResource();
         try {
-            resource.configure("KickStart PXE resource", params);
-        } catch (Exception e) {
-            throw new CloudRuntimeException(e.getMessage(), e);
+            resource.configure("KickStart PXE resource", params);
+        } catch (Exception e) {
+            throw new CloudRuntimeException(e.getMessage(), e);
+        }
+
+        Host pxeServer = _resourceMgr.addHost(zoneId, resource, Host.Type.BaremetalPxe, params);
+        if (pxeServer == null) {
+            throw new CloudRuntimeException("Cannot add PXE server as a host");
         }
-        
-        Host pxeServer = _resourceMgr.addHost(zoneId, resource, Host.Type.BaremetalPxe, params);
-        if (pxeServer == null) {
-            throw new CloudRuntimeException("Cannot add PXE server as a host");
+
+        BaremetalPxeVO vo = new BaremetalPxeVO();
+        Transaction txn = Transaction.currentTxn();
+        vo.setHostId(pxeServer.getId());
+        vo.setNetworkServiceProviderId(ntwkSvcProvider.getId());
+        vo.setPhysicalNetworkId(kcmd.getPhysicalNetworkId());
+        vo.setDeviceType(BaremetalPxeType.KICK_START.toString());
+        txn.start();
+        _pxeDao.persist(vo);
+        txn.commit();
+        return vo;
+    }
+
+    @Override
+    public BaremetalPxeResponse getApiResponse(BaremetalPxeVO vo) {
+        BaremetalPxeKickStartResponse response = new BaremetalPxeKickStartResponse();
+        response.setId(String.valueOf(vo.getId()));
+        response.setPhysicalNetworkId(String.valueOf(vo.getPhysicalNetworkId()));
+        response.setPodId(String.valueOf(vo.getPodId()));
+        Map<String, String> details = _hostDetailsDao.findDetails(vo.getHostId());
+        response.setTftpDir(details.get(BaremetalPxeService.PXE_PARAM_TFTP_DIR));
+        return response;
+    }
+
+    @Override
+    public List<BaremetalPxeResponse> listPxeServers(ListBaremetalPxePingServersCmd cmd) {
+        SearchCriteriaService<BaremetalPxeVO, BaremetalPxeVO> sc = SearchCriteria2.create(BaremetalPxeVO.class);
+        sc.addAnd(sc.getEntity().getDeviceType(), Op.EQ, BaremetalPxeType.KICK_START.toString());
+        if (cmd.getPodId() != null) {
+            sc.addAnd(sc.getEntity().getPodId(), Op.EQ, cmd.getPodId());
+            if (cmd.getId() != null) {
+                sc.addAnd(sc.getEntity().getId(), Op.EQ, cmd.getId());
+            }
         }
-        
-        BaremetalPxeVO vo = new BaremetalPxeVO();
-        Transaction txn = Transaction.currentTxn();
-        vo.setHostId(pxeServer.getId());
-        vo.setNetworkServiceProviderId(ntwkSvcProvider.getId());
-        vo.setPhysicalNetworkId(kcmd.getPhysicalNetworkId());
-        vo.setDeviceType(BaremetalPxeType.KICK_START.toString());
-        txn.start();
-        _pxeDao.persist(vo);
-        txn.commit();
-        return vo;
-    }
-
-    @Override
-    public BaremetalPxeResponse getApiResponse(BaremetalPxeVO vo) {
-        BaremetalPxeKickStartResponse response = new BaremetalPxeKickStartResponse();
-        response.setId(String.valueOf(vo.getId()));
-        response.setPhysicalNetworkId(String.valueOf(vo.getPhysicalNetworkId()));
-        response.setPodId(String.valueOf(vo.getPodId()));
-        Map<String, String> details = _hostDetailsDao.findDetails(vo.getHostId());
-        response.setTftpDir(details.get(BaremetalPxeService.PXE_PARAM_TFTP_DIR));
-        return response;
-    }
-
-    @Override
-    public List<BaremetalPxeResponse> listPxeServers(ListBaremetalPxePingServersCmd cmd) {
-        SearchCriteriaService<BaremetalPxeVO, BaremetalPxeVO> sc = SearchCriteria2.create(BaremetalPxeVO.class);
-        sc.addAnd(sc.getEntity().getDeviceType(), Op.EQ, BaremetalPxeType.KICK_START.toString());
-        if (cmd.getPodId() != null) {
-            sc.addAnd(sc.getEntity().getPodId(), Op.EQ, cmd.getPodId());
-            if (cmd.getId() != null) {
-                sc.addAnd(sc.getEntity().getId(), Op.EQ, cmd.getId());
-            }
-        }
-        List<BaremetalPxeVO> vos = sc.list();
-        List<BaremetalPxeResponse> responses = new ArrayList<BaremetalPxeResponse>(vos.size());
-        for (BaremetalPxeVO vo : vos) {
-            responses.add(getApiResponse(vo));
-        }
-        return responses;
+        List<BaremetalPxeVO> vos = sc.list();
+        List<BaremetalPxeResponse> responses = new ArrayList<BaremetalPxeResponse>(vos.size());
+        for (BaremetalPxeVO vo : vos) {
+            responses.add(getApiResponse(vo));
+        }
+        return responses;
     }
 
     @Override
     public String getPxeServiceType() {
         return BaremetalPxeManager.BaremetalPxeType.KICK_START.toString();
-    }
-
-}
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/469c4dd1/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeKickStartResponse.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeKickStartResponse.java b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeKickStartResponse.java
index 64f22e0..116de44 100755
--- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeKickStartResponse.java
+++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeKickStartResponse.java
@@ -14,10 +14,10 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-// 
+//
 // Automatically generated by addcopyright.py at 01/29/2013
-package com.cloud.baremetal.networkservice;
-
+package com.cloud.baremetal.networkservice;
+
 import org.apache.cloudstack.api.ApiConstants;
 import org.apache.cloudstack.api.EntityReference;
 
@@ -25,16 +25,16 @@ import com.cloud.baremetal.database.BaremetalPxeVO;
 import com.cloud.serializer.Param;
 import com.google.gson.annotations.SerializedName;
 
-@EntityReference(value=BaremetalPxeVO.class)
-public class BaremetalPxeKickStartResponse extends BaremetalPxeResponse {
-    @SerializedName(ApiConstants.TFTP_DIR) @Param(description="Tftp root directory of PXE server")
-    private String tftpDir;
-
-    public String getTftpDir() {
-        return tftpDir;
-    }
-
-    public void setTftpDir(String tftpDir) {
-        this.tftpDir = tftpDir;
-    }
-}
+@EntityReference(value=BaremetalPxeVO.class)
+public class BaremetalPxeKickStartResponse extends BaremetalPxeResponse {
+    @SerializedName(ApiConstants.TFTP_DIR) @Param(description="Tftp root directory of PXE server")
+    private String tftpDir;
+
+    public String getTftpDir() {
+        return tftpDir;
+    }
+
+    public void setTftpDir(String tftpDir) {
+        this.tftpDir = tftpDir;
+    }
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/469c4dd1/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeManagerImpl.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeManagerImpl.java b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeManagerImpl.java
index 6288f91..59a2811 100755
--- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeManagerImpl.java
+++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeManagerImpl.java
@@ -110,11 +110,11 @@ public class BaremetalPxeManagerImpl extends ManagerBase implements BaremetalPxe
 		    if (service.getPxeServiceType().equals(type)) {
 		        return service;
 		    }
-		}
-		
+		}
+
 		throw new CloudRuntimeException("Cannot find PXE service for " + type);
 	}
-	
+
 	@Override
 	public boolean prepare(VirtualMachineProfile profile, NicProfile nic, DeployDestination dest, ReservationContext context) {
 	    //TODO: select type from template

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/469c4dd1/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalUserdataElement.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalUserdataElement.java b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalUserdataElement.java
index 3d9f581..49c6fd9 100755
--- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalUserdataElement.java
+++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalUserdataElement.java
@@ -14,144 +14,144 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-// 
+//
 // Automatically generated by addcopyright.py at 01/29/2013
-package com.cloud.baremetal.networkservice;
-
+package com.cloud.baremetal.networkservice;
+
 import java.util.HashMap;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.ejb.Local;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.ejb.Local;
 import javax.inject.Inject;
-
-import com.cloud.baremetal.manager.BaremetalManager;
-import com.cloud.dc.DataCenter.NetworkType;
-import com.cloud.deploy.DeployDestination;
-import com.cloud.exception.ConcurrentOperationException;
-import com.cloud.exception.InsufficientCapacityException;
-import com.cloud.exception.ResourceUnavailableException;
-import com.cloud.hypervisor.Hypervisor.HypervisorType;
-import com.cloud.network.Network;
-import com.cloud.network.Network.Capability;
-import com.cloud.network.Network.GuestType;
-import com.cloud.network.Network.Provider;
-import com.cloud.network.Network.Service;
-import com.cloud.network.Networks.TrafficType;
-import com.cloud.network.PhysicalNetworkServiceProvider;
-import com.cloud.network.element.IpDeployer;
-import com.cloud.network.element.NetworkElement;
-import com.cloud.network.element.UserDataServiceProvider;
-import com.cloud.offering.NetworkOffering;
-import com.cloud.uservm.UserVm;
-import com.cloud.utils.component.AdapterBase;
-import com.cloud.vm.NicProfile;
-import com.cloud.vm.ReservationContext;
-import com.cloud.vm.VirtualMachine;
+
+import com.cloud.baremetal.manager.BaremetalManager;
+import com.cloud.dc.DataCenter.NetworkType;
+import com.cloud.deploy.DeployDestination;
+import com.cloud.exception.ConcurrentOperationException;
+import com.cloud.exception.InsufficientCapacityException;
+import com.cloud.exception.ResourceUnavailableException;
+import com.cloud.hypervisor.Hypervisor.HypervisorType;
+import com.cloud.network.Network;
+import com.cloud.network.Network.Capability;
+import com.cloud.network.Network.GuestType;
+import com.cloud.network.Network.Provider;
+import com.cloud.network.Network.Service;
+import com.cloud.network.Networks.TrafficType;
+import com.cloud.network.PhysicalNetworkServiceProvider;
+import com.cloud.network.element.IpDeployer;
+import com.cloud.network.element.NetworkElement;
+import com.cloud.network.element.UserDataServiceProvider;
+import com.cloud.offering.NetworkOffering;
+import com.cloud.uservm.UserVm;
+import com.cloud.utils.component.AdapterBase;
+import com.cloud.vm.NicProfile;
+import com.cloud.vm.ReservationContext;
+import com.cloud.vm.VirtualMachine;
 import com.cloud.vm.VirtualMachineProfile;
-
-@Local(value = NetworkElement.class)
-public class BaremetalUserdataElement extends AdapterBase implements NetworkElement, UserDataServiceProvider {
+
+@Local(value = NetworkElement.class)
+public class BaremetalUserdataElement extends AdapterBase implements NetworkElement, UserDataServiceProvider {
     private static Map<Service, Map<Capability, String>> capabilities;
-    
-    @Inject
+
+    @Inject
     private BaremetalPxeManager pxeMgr;
-    
-    static {
+
+    static {
         capabilities = new HashMap<Service, Map<Capability, String>>();
-        capabilities.put(Service.UserData, null);
+        capabilities.put(Service.UserData, null);
     }
-    
-    private boolean canHandle(DeployDestination dest)  {
-        if (dest.getDataCenter().getNetworkType() == NetworkType.Basic && dest.getHost().getHypervisorType() == HypervisorType.BareMetal) {
-            return true;
+
+    private boolean canHandle(DeployDestination dest)  {
+        if (dest.getDataCenter().getNetworkType() == NetworkType.Basic && dest.getHost().getHypervisorType() == HypervisorType.BareMetal) {
+            return true;
         }
-        return false;
+        return false;
     }
-    
-    @Override
-    public boolean addPasswordAndUserdata(Network network, NicProfile nic, VirtualMachineProfile<? extends VirtualMachine> vm, DeployDestination dest,
+
+    @Override
+    public boolean addPasswordAndUserdata(Network network, NicProfile nic, VirtualMachineProfile<? extends VirtualMachine> vm, DeployDestination dest,
             ReservationContext context) throws ConcurrentOperationException, InsufficientCapacityException, ResourceUnavailableException {
-        if (!canHandle(dest)) {
-            return false;
+        if (!canHandle(dest)) {
+            return false;
         }
-        
-        if (vm.getType() != VirtualMachine.Type.User) {
-            return false;
+
+        if (vm.getType() != VirtualMachine.Type.User) {
+            return false;
         }
-        
-        return pxeMgr.addUserData(nic, (VirtualMachineProfile<UserVm>) vm);
-    }
-
-    @Override
-    public boolean savePassword(Network network, NicProfile nic, VirtualMachineProfile<? extends VirtualMachine> vm) throws ResourceUnavailableException {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    @Override
+
+        return pxeMgr.addUserData(nic, (VirtualMachineProfile<UserVm>) vm);
+    }
+
+    @Override
+    public boolean savePassword(Network network, NicProfile nic, VirtualMachineProfile<? extends VirtualMachine> vm) throws ResourceUnavailableException {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    @Override
     public boolean saveSSHKey(Network network, NicProfile nic, VirtualMachineProfile<? extends VirtualMachine> vm, String SSHPublicKey) throws ResourceUnavailableException {
         // TODO Auto-generated method stub
         return false;
     }
 
     @Override
-    public Map<Service, Map<Capability, String>> getCapabilities() {
-        return capabilities;
-    }
-
-    @Override
-    public Provider getProvider() {
-        return BaremetalPxeManager.BAREMETAL_USERDATA_PROVIDER;
-    }
-
-    @Override
-    public boolean implement(Network network, NetworkOffering offering, DeployDestination dest, ReservationContext context)
-            throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    @Override
-    public boolean prepare(Network network, NicProfile nic, VirtualMachineProfile<? extends VirtualMachine> vm, DeployDestination dest,
-            ReservationContext context) throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    @Override
-    public boolean release(Network network, NicProfile nic, VirtualMachineProfile<? extends VirtualMachine> vm, ReservationContext context)
-            throws ConcurrentOperationException, ResourceUnavailableException {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    @Override
-    public boolean shutdown(Network network, ReservationContext context, boolean cleanup) throws ConcurrentOperationException, ResourceUnavailableException {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    @Override
-    public boolean isReady(PhysicalNetworkServiceProvider provider) {
-        return true;
-    }
-
-    @Override
-    public boolean shutdownProviderInstances(PhysicalNetworkServiceProvider provider, ReservationContext context) throws ConcurrentOperationException,
-            ResourceUnavailableException {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    @Override
-    public boolean canEnableIndividualServices() {
-        // TODO Auto-generated method stub
-        return true;
-    }
-
+    public Map<Service, Map<Capability, String>> getCapabilities() {
+        return capabilities;
+    }
+
+    @Override
+    public Provider getProvider() {
+        return BaremetalPxeManager.BAREMETAL_USERDATA_PROVIDER;
+    }
+
+    @Override
+    public boolean implement(Network network, NetworkOffering offering, DeployDestination dest, ReservationContext context)
+            throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    @Override
+    public boolean prepare(Network network, NicProfile nic, VirtualMachineProfile<? extends VirtualMachine> vm, DeployDestination dest,
+            ReservationContext context) throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    @Override
+    public boolean release(Network network, NicProfile nic, VirtualMachineProfile<? extends VirtualMachine> vm, ReservationContext context)
+            throws ConcurrentOperationException, ResourceUnavailableException {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    @Override
+    public boolean shutdown(Network network, ReservationContext context, boolean cleanup) throws ConcurrentOperationException, ResourceUnavailableException {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    @Override
+    public boolean isReady(PhysicalNetworkServiceProvider provider) {
+        return true;
+    }
+
+    @Override
+    public boolean shutdownProviderInstances(PhysicalNetworkServiceProvider provider, ReservationContext context) throws ConcurrentOperationException,
+            ResourceUnavailableException {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    @Override
+    public boolean canEnableIndividualServices() {
+        // TODO Auto-generated method stub
+        return true;
+    }
+
 
     @Override
     public boolean saveUserData(Network network, NicProfile nic, VirtualMachineProfile<? extends VirtualMachine> vm)
@@ -162,12 +162,12 @@ public class BaremetalUserdataElement extends AdapterBase implements NetworkElem
 
     @Override
     public boolean destroy(Network network, ReservationContext context) throws ConcurrentOperationException, ResourceUnavailableException {
-        return true;
-    }
-
-    @Override
-    public boolean verifyServicesCombination(Set<Service> services) {
-        return true;
-    }
-
-}
+        return true;
+    }
+
+    @Override
+    public boolean verifyServicesCombination(Set<Service> services) {
+        return true;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/469c4dd1/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/PrepareKickstartPxeServerCommand.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/PrepareKickstartPxeServerCommand.java b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/PrepareKickstartPxeServerCommand.java
index 25dfeb7..a989979 100755
--- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/PrepareKickstartPxeServerCommand.java
+++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/PrepareKickstartPxeServerCommand.java
@@ -14,32 +14,32 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-// 
+//
 // Automatically generated by addcopyright.py at 01/29/2013
-package com.cloud.baremetal.networkservice;
-
-import com.cloud.agent.api.Command;
-
-public class PrepareKickstartPxeServerCommand extends Command {
+package com.cloud.baremetal.networkservice;
+
+import com.cloud.agent.api.Command;
+
+public class PrepareKickstartPxeServerCommand extends Command {
     private String ksFile;
-    private String templateUuid;
-    private String mac;
+    private String templateUuid;
+    private String mac;
     private String ksDevice;
     private String kernel;
-    private String initrd;
-    
-    @Override
-    public boolean executeInSequence() {
-        return true;
-    }
-
-    public String getKsFile() {
-        return ksFile;
-    }
-
-    public void setKsFile(String ksFile) {
-        this.ksFile = ksFile;
-    }
+    private String initrd;
+
+    @Override
+    public boolean executeInSequence() {
+        return true;
+    }
+
+    public String getKsFile() {
+        return ksFile;
+    }
+
+    public void setKsFile(String ksFile) {
+        this.ksFile = ksFile;
+    }
 
     public String getKernel() {
         return kernel;
@@ -57,27 +57,27 @@ public class PrepareKickstartPxeServerCommand extends Command {
         this.initrd = initrd;
     }
 
-    public String getTemplateUuid() {
-        return templateUuid;
-    }
-
-    public void setTemplateUuid(String templateUuid) {
-        this.templateUuid = templateUuid;
-    }
-
-    public String getMac() {
-        return mac;
-    }
-
-    public void setMac(String mac) {
-        this.mac = mac;
-    }
-
-    public String getKsDevice() {
-        return ksDevice;
-    }
-
-    public void setKsDevice(String ksDevice) {
-        this.ksDevice = ksDevice;
-    }
-}
+    public String getTemplateUuid() {
+        return templateUuid;
+    }
+
+    public void setTemplateUuid(String templateUuid) {
+        this.templateUuid = templateUuid;
+    }
+
+    public String getMac() {
+        return mac;
+    }
+
+    public void setMac(String mac) {
+        this.mac = mac;
+    }
+
+    public String getKsDevice() {
+        return ksDevice;
+    }
+
+    public void setKsDevice(String ksDevice) {
+        this.ksDevice = ksDevice;
+    }
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/469c4dd1/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/SecurityGroupHttpClient.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/SecurityGroupHttpClient.java b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/SecurityGroupHttpClient.java
index 7ad351c..b9c2e84 100755
--- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/SecurityGroupHttpClient.java
+++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/SecurityGroupHttpClient.java
@@ -1,38 +1,38 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-// 
-//   http://www.apache.org/licenses/LICENSE-2.0
-// 
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-// 
-// Automatically generated by addcopyright.py at 01/29/2013
-// Apache License, Version 2.0 (the "License"); you may not use this
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-package com.cloud.baremetal.networkservice;
-
-import com.cloud.agent.api.Answer;
-import com.cloud.agent.api.SecurityGroupRulesCmd;
-
-public class SecurityGroupHttpClient {
-
-	public Answer call(String guestIp, SecurityGroupRulesCmd cmd) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	public boolean echo(String ip, long millis, long millis2) {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-}
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+// Automatically generated by addcopyright.py at 01/29/2013
+// Apache License, Version 2.0 (the "License"); you may not use this
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+package com.cloud.baremetal.networkservice;
+
+import com.cloud.agent.api.Answer;
+import com.cloud.agent.api.SecurityGroupRulesCmd;
+
+public class SecurityGroupHttpClient {
+
+	public Answer call(String guestIp, SecurityGroupRulesCmd cmd) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public boolean echo(String ip, long millis, long millis2) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/469c4dd1/plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsBladeDao.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsBladeDao.java b/plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsBladeDao.java
index 581096d..e32fbc5 100644
--- a/plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsBladeDao.java
+++ b/plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsBladeDao.java
@@ -14,11 +14,11 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-// 
-package com.cloud.ucs.database;
-
-import com.cloud.utils.db.GenericDao;
-
-public interface UcsBladeDao extends GenericDao<UcsBladeVO, Long> {
-
-}
+//
+package com.cloud.ucs.database;
+
+import com.cloud.utils.db.GenericDao;
+
+public interface UcsBladeDao extends GenericDao<UcsBladeVO, Long> {
+
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/469c4dd1/plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsBladeDaoImpl.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsBladeDaoImpl.java b/plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsBladeDaoImpl.java
index ae0980c..5cb9b02 100644
--- a/plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsBladeDaoImpl.java
+++ b/plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsBladeDaoImpl.java
@@ -14,17 +14,17 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-// 
-package com.cloud.ucs.database;
-
-import javax.ejb.Local;
+//
+package com.cloud.ucs.database;
+
+import javax.ejb.Local;
 
 import org.springframework.stereotype.Component;
-
-import com.cloud.utils.db.DB;
-import com.cloud.utils.db.GenericDaoBase;
+
+import com.cloud.utils.db.DB;
+import com.cloud.utils.db.GenericDaoBase;
 @Local(value = { UcsBladeDao.class })
-@DB(txn = false)
-public class UcsBladeDaoImpl extends GenericDaoBase<UcsBladeVO, Long> implements UcsBladeDao {
-
-}
+@DB(txn = false)
+public class UcsBladeDaoImpl extends GenericDaoBase<UcsBladeVO, Long> implements UcsBladeDao {
+
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/469c4dd1/plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsBladeVO.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsBladeVO.java b/plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsBladeVO.java
index a8c6fd7..9f97b1a 100755
--- a/plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsBladeVO.java
+++ b/plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsBladeVO.java
@@ -14,80 +14,80 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-// 
-package com.cloud.ucs.database;
-
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.Table;
+//
+package com.cloud.ucs.database;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
 
 import org.apache.cloudstack.api.Identity;
 import org.apache.cloudstack.api.InternalIdentity;
-
-@Entity
-@Table(name="ucs_blade")
-public class UcsBladeVO implements InternalIdentity, Identity  {
-    @Id
-    @GeneratedValue(strategy=GenerationType.IDENTITY)
-    @Column(name="id")
-    private long id;
-    
-    @Column(name="uuid")
-    private String uuid;
-    
-    @Column(name="ucs_manager_id")
-    private long ucsManagerId;
-    
-    @Column(name="host_id")
-    private Long hostId;
-    
-    @Column(name="dn")
+
+@Entity
+@Table(name="ucs_blade")
+public class UcsBladeVO implements InternalIdentity, Identity  {
+    @Id
+    @GeneratedValue(strategy=GenerationType.IDENTITY)
+    @Column(name="id")
+    private long id;
+
+    @Column(name="uuid")
+    private String uuid;
+
+    @Column(name="ucs_manager_id")
+    private long ucsManagerId;
+
+    @Column(name="host_id")
+    private Long hostId;
+
+    @Column(name="dn")
     private String dn;
-    
-    @Column(name="profile_dn")
+
+    @Column(name="profile_dn")
     private String profileDn;
-    
-    public long getId() {
-        return id;
-    }
-
-    public void setId(long id) {
-        this.id = id;
-    }
-
-    public long getUcsManagerId() {
-        return ucsManagerId;
-    }
-
-    public void setUcsManagerId(long ucsManagerId) {
-        this.ucsManagerId = ucsManagerId;
-    }
-
-    public Long getHostId() {
-        return hostId;
-    }
-
-    public void setHostId(Long hostId) {
-        this.hostId = hostId;
-    }
-
-    public String getDn() {
-        return dn;
-    }
-
-    public void setDn(String dn) {
-        this.dn = dn;
-    }
-
-    public String getUuid() {
-        return uuid;
-    }
-
-    public void setUuid(String uuid) {
-        this.uuid = uuid;
+
+    public long getId() {
+        return id;
+    }
+
+    public void setId(long id) {
+        this.id = id;
+    }
+
+    public long getUcsManagerId() {
+        return ucsManagerId;
+    }
+
+    public void setUcsManagerId(long ucsManagerId) {
+        this.ucsManagerId = ucsManagerId;
+    }
+
+    public Long getHostId() {
+        return hostId;
+    }
+
+    public void setHostId(Long hostId) {
+        this.hostId = hostId;
+    }
+
+    public String getDn() {
+        return dn;
+    }
+
+    public void setDn(String dn) {
+        this.dn = dn;
+    }
+
+    public String getUuid() {
+        return uuid;
+    }
+
+    public void setUuid(String uuid) {
+        this.uuid = uuid;
     }
 
     public String getProfileDn() {
@@ -97,4 +97,4 @@ public class UcsBladeVO implements InternalIdentity, Identity  {
     public void setProfileDn(String profileDn) {
         this.profileDn = profileDn;
     }
-}
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/469c4dd1/plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsManagerDao.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsManagerDao.java b/plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsManagerDao.java
index 84fe29c..f1664a1 100644
--- a/plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsManagerDao.java
+++ b/plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsManagerDao.java
@@ -14,20 +14,20 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-// 
-package com.cloud.ucs.database;
-
-import java.util.List;
-import java.util.Map;
-
-import javax.naming.ConfigurationException;
-
-import com.cloud.utils.db.Filter;
-import com.cloud.utils.db.GenericDao;
-import com.cloud.utils.db.GenericSearchBuilder;
-import com.cloud.utils.db.SearchBuilder;
-import com.cloud.utils.db.SearchCriteria;
-import com.cloud.utils.db.SearchCriteria2;
-
+//
+package com.cloud.ucs.database;
+
+import java.util.List;
+import java.util.Map;
+
+import javax.naming.ConfigurationException;
+
+import com.cloud.utils.db.Filter;
+import com.cloud.utils.db.GenericDao;
+import com.cloud.utils.db.GenericSearchBuilder;
+import com.cloud.utils.db.SearchBuilder;
+import com.cloud.utils.db.SearchCriteria;
+import com.cloud.utils.db.SearchCriteria2;
+
 public interface UcsManagerDao extends GenericDao<UcsManagerVO, Long> {
-}
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/469c4dd1/plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsManagerDaoImpl.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsManagerDaoImpl.java b/plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsManagerDaoImpl.java
index 39f9782..93c0885 100644
--- a/plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsManagerDaoImpl.java
+++ b/plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsManagerDaoImpl.java
@@ -14,18 +14,17 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-// 
-package com.cloud.ucs.database;
-
-import javax.ejb.Local;
+//
+package com.cloud.ucs.database;
+
+import javax.ejb.Local;
 
 import org.springframework.stereotype.Component;
-
-import com.cloud.utils.db.DB;
-import com.cloud.utils.db.GenericDaoBase;
-
+
+import com.cloud.utils.db.DB;
+import com.cloud.utils.db.GenericDaoBase;
+
 @Local(value = { UcsManagerDao.class })
-@DB(txn = false)
+@DB(txn = false)
 public class UcsManagerDaoImpl  extends GenericDaoBase<UcsManagerVO, Long> implements UcsManagerDao {
-}
-
+}