Updated Branches: refs/heads/4.2-forward 18aacd48a -> 667776a9e
CloudStack CLOUDSTACK-1365 UI support for baremetal PXE server CloudStack CLOUDSTACK-1364 UI support for baremetal DHCP server Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/667776a9 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/667776a9 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/667776a9 Branch: refs/heads/4.2-forward Commit: 667776a9e426dc1e04a3c67e6d70e3b7c256d948 Parents: 18aacd4 Author: frank <[email protected]> Authored: Thu Aug 22 16:30:49 2013 -0700 Committer: frank <[email protected]> Committed: Thu Aug 22 16:31:31 2013 -0700 ---------------------------------------------------------------------- client/tomcatconf/commands.properties.in | 4 +- .../com/cloud/upgrade/dao/Upgrade410to420.java | 2 - .../BareMetalPingServiceImpl.java | 29 +----- .../BaremetalDhcpManagerImpl.java | 43 ++++----- .../BaremetalDhcpResourceBase.java | 13 --- .../networkservice/BaremetalDhcpResponse.java | 11 +++ .../BaremetalDnsmasqResource.java | 4 +- .../BaremetalKickStartServiceImpl.java | 38 ++++---- .../networkservice/BaremetalPxeManager.java | 5 +- .../networkservice/BaremetalPxeManagerImpl.java | 8 +- .../networkservice/BaremetalPxeResponse.java | 18 ++-- .../networkservice/BaremetalPxeService.java | 5 +- .../cloudstack/api/AddBaremetalDhcpCmd.java | 13 +-- .../cloudstack/api/AddBaremetalPxeCmd.java | 7 +- .../cloudstack/api/ListBaremetalDhcpCmd.java | 14 +-- .../api/ListBaremetalPxePingServersCmd.java | 97 -------------------- .../api/ListBaremetalPxeServersCmd.java | 79 ++++++++++++++++ 17 files changed, 168 insertions(+), 222 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/667776a9/client/tomcatconf/commands.properties.in ---------------------------------------------------------------------- diff --git a/client/tomcatconf/commands.properties.in b/client/tomcatconf/commands.properties.in index 66782e0..d4e55f7 100644 --- a/client/tomcatconf/commands.properties.in +++ b/client/tomcatconf/commands.properties.in @@ -609,7 +609,7 @@ addBaremetalPxeKickStartServer=1 addBaremetalPxePingServer=1 addBaremetalDhcp=1 listBaremetalDhcp=1 -listBaremetalPxePingServer=1 +listBaremetalPxeServers=1 #### UCS commands addUcsManager=1 @@ -617,7 +617,7 @@ listUcsManagers=1 listUcsProfiles=1 listUcsBlades=1 associateUcsProfileToBlade=1 -deleteUcsManager=1 +removedeleteUcsManager=1 #### New Load Balancer commands createLoadBalancer=15 http://git-wip-us.apache.org/repos/asf/cloudstack/blob/667776a9/engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java ---------------------------------------------------------------------- diff --git a/engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java b/engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java old mode 100644 new mode 100755 index 47c9130..c3276ef --- a/engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java +++ b/engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java @@ -423,8 +423,6 @@ public class Upgrade410to420 implements DbUpgrade { pstmt = conn.prepareStatement("ALTER TABLE `cloud`.`baremetal_dhcp_devices` ADD CONSTRAINT `fk_external_dhcp_devices_host_id` FOREIGN KEY (`host_id`) REFERENCES `host`(`id`) ON DELETE CASCADE"); pstmt.executeUpdate(); pstmt.close(); - pstmt = conn.prepareStatement("ALTER TABLE `cloud`.`baremetal_dhcp_devices` ADD CONSTRAINT `fk_external_dhcp_devices_pod_id` FOREIGN KEY (`pod_id`) REFERENCES `host_pod_ref`(`id`) ON DELETE CASCADE"); - pstmt.executeUpdate(); pstmt.close(); pstmt = conn.prepareStatement("ALTER TABLE `cloud`.`baremetal_dhcp_devices` ADD CONSTRAINT `fk_external_dhcp_devices_physical_network_id` FOREIGN KEY (`physical_network_id`) REFERENCES `physical_network`(`id`) ON DELETE CASCADE"); pstmt.executeUpdate(); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/667776a9/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BareMetalPingServiceImpl.java ---------------------------------------------------------------------- diff --git a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BareMetalPingServiceImpl.java b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BareMetalPingServiceImpl.java index 77958ae..55a63bb 100755 --- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BareMetalPingServiceImpl.java +++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BareMetalPingServiceImpl.java @@ -33,7 +33,7 @@ import javax.inject.Inject; import org.apache.cloudstack.api.AddBaremetalPxeCmd; import org.apache.cloudstack.api.AddBaremetalPxePingServerCmd; -import org.apache.cloudstack.api.ListBaremetalPxePingServersCmd; +import org.apache.cloudstack.api.ListBaremetalPxeServersCmd; import org.apache.log4j.Logger; import com.cloud.agent.api.Answer; @@ -271,34 +271,13 @@ public class BareMetalPingServiceImpl extends BareMetalPxeServiceBase implements @Override public BaremetalPxeResponse getApiResponse(BaremetalPxeVO vo) { - BaremetalPxePingResponse response = new BaremetalPxePingResponse(); - 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.setPingStorageServerIp(details.get(BaremetalPxeService.PXE_PARAM_PING_STORAGE_SERVER_IP)); - response.setPingDir(details.get(BaremetalPxeService.PXE_PARAM_PING_ROOT_DIR)); - response.setTftpDir(details.get(BaremetalPxeService.PXE_PARAM_TFTP_DIR)); - return response; + return null; } @Override - public List<BaremetalPxeResponse> listPxeServers(ListBaremetalPxePingServersCmd cmd) { - SearchCriteriaService<BaremetalPxeVO, BaremetalPxeVO> sc = SearchCriteria2.create(BaremetalPxeVO.class); - sc.addAnd(sc.getEntity().getDeviceType(), Op.EQ, BaremetalPxeType.PING.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; + public List<BaremetalPxeResponse> listPxeServers(ListBaremetalPxeServersCmd cmd) { + return null; } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/667776a9/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalDhcpManagerImpl.java ---------------------------------------------------------------------- diff --git a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalDhcpManagerImpl.java b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalDhcpManagerImpl.java index 17e4481..9d18478 100755 --- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalDhcpManagerImpl.java +++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalDhcpManagerImpl.java @@ -223,14 +223,9 @@ public class BaremetalDhcpManagerImpl extends ManagerBase implements BaremetalDh + " is in shutdown state in the physical network: " + cmd.getPhysicalNetworkId() + "to add this device"); } - HostPodVO pod = _podDao.findById(cmd.getPodId()); - if (pod == null) { - throw new IllegalArgumentException("Could not find pod with ID: " + cmd.getPodId()); - } - - List<HostVO> dhcps = _resourceMgr.listAllUpAndEnabledHosts(Host.Type.BaremetalDhcp, null, cmd.getPodId(), zoneId); + List<HostVO> dhcps = _resourceMgr.listAllUpAndEnabledHosts(Host.Type.BaremetalDhcp, null, null, zoneId); if (dhcps.size() != 0) { - throw new IllegalArgumentException("Already had a DHCP server in Pod: " + cmd.getPodId() + " zone: " + zoneId); + throw new IllegalArgumentException("Already had a DHCP server in zone: " + zoneId); } URI uri; @@ -242,16 +237,17 @@ public class BaremetalDhcpManagerImpl extends ManagerBase implements BaremetalDh } String ipAddress = uri.getHost(); - String guid = getDhcpServerGuid(Long.toString(zoneId) + "-" + Long.toString(cmd.getPodId()), "ExternalDhcp", ipAddress); + if (ipAddress == null) { + ipAddress = cmd.getUrl(); // the url is raw ip. For backforward compatibility, we have to support http://ip format as well + } + String guid = getDhcpServerGuid(Long.toString(zoneId), "ExternalDhcp", ipAddress); Map params = new HashMap<String, String>(); params.put("type", cmd.getDhcpType()); params.put("zone", Long.toString(zoneId)); - params.put("pod", cmd.getPodId().toString()); params.put("ip", ipAddress); params.put("username", cmd.getUsername()); params.put("password", cmd.getPassword()); params.put("guid", guid); - params.put("gateway", pod.getGateway()); String dns = zone.getDns1(); if (dns == null) { dns = zone.getDns2(); @@ -284,7 +280,6 @@ public class BaremetalDhcpManagerImpl extends ManagerBase implements BaremetalDh vo.setHostId(dhcpServer.getId()); vo.setNetworkServiceProviderId(ntwkSvcProvider.getId()); vo.setPhysicalNetworkId(cmd.getPhysicalNetworkId()); - vo.setPodId(cmd.getPodId()); Transaction txn = Transaction.currentTxn(); txn.start(); _extDhcpDao.persist(vo); @@ -296,26 +291,32 @@ public class BaremetalDhcpManagerImpl extends ManagerBase implements BaremetalDh public BaremetalDhcpResponse generateApiResponse(BaremetalDhcpVO vo) { BaremetalDhcpResponse response = new BaremetalDhcpResponse(); response.setDeviceType(vo.getDeviceType()); - response.setId(String.valueOf(vo.getId())); - response.setPhysicalNetworkId(String.valueOf(vo.getPhysicalNetworkId())); - response.setProviderId(String.valueOf(vo.getNetworkServiceProviderId())); + response.setId(vo.getUuid()); + HostVO host = _hostDao.findById(vo.getHostId()); + response.setUrl(host.getPrivateIpAddress()); + PhysicalNetworkVO nwVO = _physicalNetworkDao.findById(vo.getPhysicalNetworkId()); + response.setPhysicalNetworkId(nwVO.getUuid()); + PhysicalNetworkServiceProviderVO providerVO = _physicalNetworkServiceProviderDao.findById(vo.getNetworkServiceProviderId()); + response.setProviderId(providerVO.getUuid()); + response.setObjectName("baremetaldhcp"); return response; } @Override public List<BaremetalDhcpResponse> listBaremetalDhcps(ListBaremetalDhcpCmd cmd) { + List<BaremetalDhcpResponse> responses = new ArrayList<BaremetalDhcpResponse>(); + if (cmd.getId() != null) { + BaremetalDhcpVO vo = _extDhcpDao.findById(cmd.getId()); + responses.add(generateApiResponse(vo)); + return responses; + } + SearchCriteriaService<BaremetalDhcpVO, BaremetalDhcpVO> sc = SearchCriteria2.create(BaremetalDhcpVO.class); if (cmd.getDeviceType() != null) { sc.addAnd(sc.getEntity().getDeviceType(), Op.EQ, cmd.getDeviceType()); } - 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<BaremetalDhcpVO> vos = sc.list(); - List<BaremetalDhcpResponse> responses = new ArrayList<BaremetalDhcpResponse>(vos.size()); for (BaremetalDhcpVO vo : vos) { responses.add(generateApiResponse(vo)); } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/667776a9/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalDhcpResourceBase.java ---------------------------------------------------------------------- diff --git a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalDhcpResourceBase.java b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalDhcpResourceBase.java old mode 100644 new mode 100755 index 4496d5d..2a17a43 --- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalDhcpResourceBase.java +++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalDhcpResourceBase.java @@ -55,8 +55,6 @@ public class BaremetalDhcpResourceBase extends ManagerBase implements ServerReso String _password; String _ip; String _zoneId; - String _podId; - String _gateway; String _dns; @Override @@ -67,8 +65,6 @@ public class BaremetalDhcpResourceBase extends ManagerBase implements ServerReso _username = (String)params.get("username"); _password = (String)params.get("password"); _zoneId = (String)params.get("zone"); - _podId = (String)params.get("pod"); - _gateway = (String)params.get("gateway"); _dns = (String)params.get("dns"); if (_guid == null) { @@ -79,10 +75,6 @@ public class BaremetalDhcpResourceBase extends ManagerBase implements ServerReso throw new ConfigurationException("No Zone specified"); } - if (_podId == null) { - throw new ConfigurationException("No Pod specified"); - } - if (_ip == null) { throw new ConfigurationException("No IP specified"); } @@ -95,10 +87,6 @@ public class BaremetalDhcpResourceBase extends ManagerBase implements ServerReso throw new ConfigurationException("No password specified"); } - if (_gateway == null) { - throw new ConfigurationException("No gateway specified"); - } - if (_dns == null) { throw new ConfigurationException("No dns specified"); } @@ -131,7 +119,6 @@ public class BaremetalDhcpResourceBase extends ManagerBase implements ServerReso StartupExternalDhcpCommand cmd = new StartupExternalDhcpCommand(); cmd.setName(_name); cmd.setDataCenter(_zoneId); - cmd.setPod(_podId); cmd.setPrivateIpAddress(_ip); cmd.setStorageIpAddress(""); cmd.setVersion(""); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/667776a9/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalDhcpResponse.java ---------------------------------------------------------------------- diff --git a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalDhcpResponse.java b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalDhcpResponse.java index 1875d39..8250647 100755 --- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalDhcpResponse.java +++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalDhcpResponse.java @@ -41,6 +41,9 @@ public class BaremetalDhcpResponse extends BaseResponse { @SerializedName(ApiConstants.DHCP_SERVER_TYPE) @Param(description="name of the provider") private String deviceType; + @SerializedName(ApiConstants.URL) @Param(description="url") + private String url; + public String getId() { return id; } @@ -72,4 +75,12 @@ public class BaremetalDhcpResponse extends BaseResponse { public void setDeviceType(String deviceType) { this.deviceType = deviceType; } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/667776a9/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalDnsmasqResource.java ---------------------------------------------------------------------- diff --git a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalDnsmasqResource.java b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalDnsmasqResource.java old mode 100644 new mode 100755 index 6841c525..d0fb2b4 --- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalDnsmasqResource.java +++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalDnsmasqResource.java @@ -73,11 +73,13 @@ public class BaremetalDnsmasqResource extends BaremetalDhcpResourceBase { throw new ConfigurationException("Can not find script prepare_dnsmasq.sh at " + prepareDnsmasq); } scp.put(prepareDnsmasqPath, "/usr/bin/", "0755"); - + + /* String prepareCmd = String.format("sh /usr/bin/prepare_dnsmasq.sh %1$s %2$s %3$s", _gateway, _dns, _ip); if (!SSHCmdHelper.sshExecuteCmd(sshConnection, prepareCmd)) { throw new ConfigurationException("prepare dnsmasq at " + _ip + " failed"); } + */ s_logger.debug("Dnsmasq resource configure successfully"); return true; http://git-wip-us.apache.org/repos/asf/cloudstack/blob/667776a9/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 5858e7e..582841c 100755 --- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalKickStartServiceImpl.java +++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalKickStartServiceImpl.java @@ -29,7 +29,7 @@ import javax.inject.Inject; import org.apache.cloudstack.api.AddBaremetalKickStartPxeCmd; import org.apache.cloudstack.api.AddBaremetalPxeCmd; -import org.apache.cloudstack.api.ListBaremetalPxePingServersCmd; +import org.apache.cloudstack.api.ListBaremetalPxeServersCmd; import org.apache.log4j.Logger; import com.cloud.agent.api.Answer; @@ -199,6 +199,9 @@ public class BaremetalKickStartServiceImpl extends BareMetalPxeServiceBase imple throw new IllegalArgumentException(e.getMessage()); } String ipAddress = uri.getHost(); + if (ipAddress == null) { + ipAddress = cmd.getUrl(); + } String guid = getPxeServerGuid(Long.toString(zoneId), BaremetalPxeType.KICK_START.toString(), ipAddress); @@ -236,27 +239,28 @@ public class BaremetalKickStartServiceImpl extends BareMetalPxeServiceBase imple @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)); + BaremetalPxeResponse response = new BaremetalPxeResponse(); + response.setId(vo.getUuid()); + HostVO host = _hostDao.findById(vo.getHostId()); + response.setUrl(host.getPrivateIpAddress()); + PhysicalNetworkServiceProviderVO providerVO = _physicalNetworkServiceProviderDao.findById(vo.getNetworkServiceProviderId()); + response.setPhysicalNetworkId(providerVO.getUuid()); + PhysicalNetworkVO nwVO = _physicalNetworkDao.findById(vo.getPhysicalNetworkId()); + response.setPhysicalNetworkId(nwVO.getUuid()); + response.setObjectName("baremetalpxeserver"); 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()); - } + public List<BaremetalPxeResponse> listPxeServers(ListBaremetalPxeServersCmd cmd) { + List<BaremetalPxeResponse> responses = new ArrayList<BaremetalPxeResponse>(); + if (cmd.getId() != null) { + BaremetalPxeVO vo = _pxeDao.findById(cmd.getId()); + responses.add(getApiResponse(vo)); + return responses; } - List<BaremetalPxeVO> vos = sc.list(); - List<BaremetalPxeResponse> responses = new ArrayList<BaremetalPxeResponse>(vos.size()); + + List<BaremetalPxeVO> vos = _pxeDao.listAll(); for (BaremetalPxeVO vo : vos) { responses.add(getApiResponse(vo)); } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/667776a9/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeManager.java ---------------------------------------------------------------------- diff --git a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeManager.java b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeManager.java index 7984ddd..7289eb2 100755 --- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeManager.java +++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeManager.java @@ -25,7 +25,7 @@ package com.cloud.baremetal.networkservice; import java.util.List; import org.apache.cloudstack.api.AddBaremetalPxeCmd; -import org.apache.cloudstack.api.ListBaremetalPxePingServersCmd; +import org.apache.cloudstack.api.ListBaremetalPxeServersCmd; import com.cloud.baremetal.database.BaremetalPxeVO; import com.cloud.deploy.DeployDestination; @@ -37,7 +37,6 @@ import com.cloud.utils.component.Manager; import com.cloud.utils.component.PluggableService; import com.cloud.vm.NicProfile; import com.cloud.vm.ReservationContext; -import com.cloud.vm.UserVmVO; import com.cloud.vm.VirtualMachineProfile; public interface BaremetalPxeManager extends Manager, PluggableService { @@ -56,7 +55,7 @@ public interface BaremetalPxeManager extends Manager, PluggableService { BaremetalPxeResponse getApiResponse(BaremetalPxeVO vo); - List<BaremetalPxeResponse> listPxeServers(ListBaremetalPxePingServersCmd cmd); + List<BaremetalPxeResponse> listPxeServers(ListBaremetalPxeServersCmd cmd); boolean addUserData(NicProfile nic, VirtualMachineProfile<UserVm> vm); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/667776a9/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 555adf7..6ed1a8b 100755 --- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeManagerImpl.java +++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeManagerImpl.java @@ -34,7 +34,7 @@ import javax.naming.ConfigurationException; import org.apache.cloudstack.api.AddBaremetalKickStartPxeCmd; import org.apache.cloudstack.api.AddBaremetalPxeCmd; import org.apache.cloudstack.api.AddBaremetalPxePingServerCmd; -import org.apache.cloudstack.api.ListBaremetalPxePingServersCmd; +import org.apache.cloudstack.api.ListBaremetalPxeServersCmd; import org.apache.log4j.Logger; import com.cloud.agent.AgentManager; @@ -178,8 +178,8 @@ public class BaremetalPxeManagerImpl extends ManagerBase implements BaremetalPxe } @Override - public List<BaremetalPxeResponse> listPxeServers(ListBaremetalPxePingServersCmd cmd) { - return getServiceByType(BaremetalPxeManager.BaremetalPxeType.PING.toString()).listPxeServers(cmd); + public List<BaremetalPxeResponse> listPxeServers(ListBaremetalPxeServersCmd cmd) { + return getServiceByType(BaremetalPxeType.KICK_START.toString()).listPxeServers(cmd); } @Override @@ -246,7 +246,7 @@ public class BaremetalPxeManagerImpl extends ManagerBase implements BaremetalPxe List<Class<?>> cmds = new ArrayList<Class<?>>(); cmds.add(AddBaremetalKickStartPxeCmd.class); cmds.add(AddBaremetalPxePingServerCmd.class); - cmds.add(ListBaremetalPxePingServersCmd.class); + cmds.add(ListBaremetalPxeServersCmd.class); return cmds; } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/667776a9/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeResponse.java ---------------------------------------------------------------------- diff --git a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeResponse.java b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeResponse.java index 2103020..ef4fd57 100755 --- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeResponse.java +++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeResponse.java @@ -33,9 +33,9 @@ public class BaremetalPxeResponse extends BaseResponse { @SerializedName(ApiConstants.PROVIDER) @Param(description="name of the provider") private String providerId; - - @SerializedName(ApiConstants.POD_ID) @Param(description="pod id where the device is in") - private String podId; + + @SerializedName(ApiConstants.URL) @Param(description="url") + private String url; public String getId() { return id; @@ -61,11 +61,11 @@ public class BaremetalPxeResponse extends BaseResponse { this.providerId = providerId; } - public String getPodId() { - return podId; - } + public String getUrl() { + return url; + } - public void setPodId(String podId) { - this.podId = podId; - } + public void setUrl(String url) { + this.url = url; + } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/667776a9/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeService.java ---------------------------------------------------------------------- diff --git a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeService.java b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeService.java index af6a6c8..0a0a91b 100755 --- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeService.java +++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeService.java @@ -25,11 +25,10 @@ package com.cloud.baremetal.networkservice; import java.util.List; import org.apache.cloudstack.api.AddBaremetalPxeCmd; -import org.apache.cloudstack.api.ListBaremetalPxePingServersCmd; +import org.apache.cloudstack.api.ListBaremetalPxeServersCmd; import com.cloud.baremetal.database.BaremetalPxeVO; import com.cloud.deploy.DeployDestination; -import com.cloud.host.Host; import com.cloud.uservm.UserVm; import com.cloud.utils.component.Adapter; import com.cloud.vm.NicProfile; @@ -47,7 +46,7 @@ public interface BaremetalPxeService extends Adapter { BaremetalPxeResponse getApiResponse(BaremetalPxeVO vo); - List<BaremetalPxeResponse> listPxeServers(ListBaremetalPxePingServersCmd cmd); + List<BaremetalPxeResponse> listPxeServers(ListBaremetalPxeServersCmd cmd); String getPxeServiceType(); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/667776a9/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/AddBaremetalDhcpCmd.java ---------------------------------------------------------------------- diff --git a/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/AddBaremetalDhcpCmd.java b/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/AddBaremetalDhcpCmd.java index 7c56a8a..4116731 100755 --- a/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/AddBaremetalDhcpCmd.java +++ b/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/AddBaremetalDhcpCmd.java @@ -44,7 +44,7 @@ import com.cloud.exception.ResourceUnavailableException; import com.cloud.user.UserContext; @APICommand(name="addBaremetalDhcp", description="adds a baremetal dhcp server", responseObject = BaremetalDhcpResponse.class) public class AddBaremetalDhcpCmd extends BaseAsyncCmd { - private static final String s_name = "addexternaldhcpresponse"; + private static final String s_name = "addbaremetaldhcpresponse"; public static final Logger s_logger = Logger.getLogger(AddBaremetalDhcpCmd.class); @Inject BaremetalDhcpManager mgr; @@ -55,9 +55,6 @@ public class AddBaremetalDhcpCmd extends BaseAsyncCmd { @Parameter(name=ApiConstants.PHYSICAL_NETWORK_ID, type=CommandType.UUID, entityType=PhysicalNetworkResponse.class, required=true, description="the Physical Network ID") private Long physicalNetworkId; - @Parameter(name=ApiConstants.POD_ID, type=CommandType.UUID, entityType=PodResponse.class, required = true, description="Pod Id") - private Long podId; - @Parameter(name=ApiConstants.DHCP_SERVER_TYPE, type=CommandType.STRING, required = true, description="Type of dhcp device") private String dhcpType; @@ -105,14 +102,6 @@ public class AddBaremetalDhcpCmd extends BaseAsyncCmd { return UserContext.current().getCaller().getId(); } - public Long getPodId() { - return podId; - } - - public void setPodId(Long podId) { - this.podId = podId; - } - public String getDhcpType() { return dhcpType; } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/667776a9/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/AddBaremetalPxeCmd.java ---------------------------------------------------------------------- diff --git a/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/AddBaremetalPxeCmd.java b/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/AddBaremetalPxeCmd.java index e1b39e9..dc412fc 100755 --- a/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/AddBaremetalPxeCmd.java +++ b/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/AddBaremetalPxeCmd.java @@ -20,6 +20,7 @@ package org.apache.cloudstack.api; import javax.inject.Inject; +import com.cloud.baremetal.networkservice.BaremetalPxeResponse; import org.apache.cloudstack.api.APICommand; import org.apache.cloudstack.api.ApiConstants; import org.apache.cloudstack.api.ApiErrorCode; @@ -42,7 +43,7 @@ import com.cloud.exception.ResourceAllocationException; import com.cloud.exception.ResourceUnavailableException; import com.cloud.user.UserContext; public class AddBaremetalPxeCmd extends BaseAsyncCmd { - private static final String s_name = "addexternalpxeresponse"; + private static final String s_name = "addbaremetalpxeresponse"; public static final Logger s_logger = Logger.getLogger(AddBaremetalPxeCmd.class); @Inject BaremetalPxeManager pxeMgr; @@ -82,6 +83,10 @@ public class AddBaremetalPxeCmd extends BaseAsyncCmd { ResourceAllocationException, NetworkRuleConflictException { try { BaremetalPxeVO vo = pxeMgr.addPxeServer(this); + BaremetalPxeResponse rsp = pxeMgr.getApiResponse(vo); + rsp.setObjectName(s_name); + rsp.setResponseName(getCommandName()); + this.setResponseObject(rsp); } catch (Exception e) { s_logger.warn("Unable to add external pxe server with url: " + getUrl(), e); throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.getMessage()); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/667776a9/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/ListBaremetalDhcpCmd.java ---------------------------------------------------------------------- diff --git a/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/ListBaremetalDhcpCmd.java b/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/ListBaremetalDhcpCmd.java index a147ca2..412a3d4 100755 --- a/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/ListBaremetalDhcpCmd.java +++ b/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/ListBaremetalDhcpCmd.java @@ -43,7 +43,7 @@ import com.cloud.exception.ResourceUnavailableException; @APICommand(name="listBaremetalDhcp", description="list baremetal dhcp servers", responseObject = BaremetalDhcpResponse.class) public class ListBaremetalDhcpCmd extends BaseListCmd { private static final Logger s_logger = Logger.getLogger(ListBaremetalDhcpCmd.class); - private static final String s_name = "listexternaldhcpresponse"; + private static final String s_name = "listbaremetaldhcpresponse"; @Inject BaremetalDhcpManager _dhcpMgr; // /////////////////////////////////////////////////// @@ -52,9 +52,6 @@ public class ListBaremetalDhcpCmd extends BaseListCmd { @Parameter(name = ApiConstants.ID, type = CommandType.LONG, description = "DHCP server device ID") private Long id; - @Parameter(name = ApiConstants.POD_ID, type = CommandType.LONG, description = "Pod ID where pxe server is in") - private Long podId; - @Parameter(name = ApiConstants.DHCP_SERVER_TYPE, type = CommandType.STRING, description = "Type of DHCP device") private String deviceType; @@ -66,14 +63,6 @@ public class ListBaremetalDhcpCmd extends BaseListCmd { this.id = id; } - public Long getPodId() { - return podId; - } - - public void setPodId(Long podId) { - this.podId = podId; - } - public String getDeviceType() { return deviceType; } @@ -90,6 +79,7 @@ public class ListBaremetalDhcpCmd extends BaseListCmd { List<BaremetalDhcpResponse> dhcpResponses = _dhcpMgr.listBaremetalDhcps(this); response.setResponses(dhcpResponses); response.setResponseName(getCommandName()); + response.setObjectName("baremetaldhcps"); this.setResponseObject(response); } catch (Exception e) { s_logger.debug("Exception happend while executing ListBaremetalDhcpCmd"); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/667776a9/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/ListBaremetalPxePingServersCmd.java ---------------------------------------------------------------------- diff --git a/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/ListBaremetalPxePingServersCmd.java b/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/ListBaremetalPxePingServersCmd.java deleted file mode 100755 index 926ad1d..0000000 --- a/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/ListBaremetalPxePingServersCmd.java +++ /dev/null @@ -1,97 +0,0 @@ -// 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 -package org.apache.cloudstack.api; - -import java.util.List; - -import javax.inject.Inject; - -import org.apache.cloudstack.api.APICommand; -import org.apache.cloudstack.api.ApiConstants; -import org.apache.cloudstack.api.ApiErrorCode; -import org.apache.cloudstack.api.BaseCmd; -import org.apache.cloudstack.api.BaseCmd.CommandType; -import org.apache.cloudstack.api.BaseListCmd; -import org.apache.cloudstack.api.Parameter; -import org.apache.cloudstack.api.ServerApiException; -import org.apache.cloudstack.api.response.ListResponse; -import org.apache.log4j.Logger; - -import com.cloud.baremetal.networkservice.BaremetalPxeManager; -import com.cloud.baremetal.networkservice.BaremetalPxePingResponse; -import com.cloud.baremetal.networkservice.BaremetalPxeResponse; -import com.cloud.exception.ConcurrentOperationException; -import com.cloud.exception.InsufficientCapacityException; -import com.cloud.exception.NetworkRuleConflictException; -import com.cloud.exception.ResourceAllocationException; -import com.cloud.exception.ResourceUnavailableException; -@APICommand(name="listBaremetalPxePingServer", description="list baremetal ping pxe server", responseObject = BaremetalPxePingResponse.class) -public class ListBaremetalPxePingServersCmd extends BaseListCmd { - private static final Logger s_logger = Logger.getLogger(ListBaremetalPxePingServersCmd.class); - private static final String s_name = "listpingpxeserverresponse"; - - @Inject - BaremetalPxeManager _pxeMgr; - // /////////////////////////////////////////////////// - // ////////////// API parameters ///////////////////// - // /////////////////////////////////////////////////// - - @Parameter(name = ApiConstants.ID, type = CommandType.LONG, description = "Ping pxe server device ID") - private Long id; - - @Parameter(name = ApiConstants.POD_ID, type = CommandType.LONG, description = "Pod ID where pxe server is in") - private Long podId; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getPodId() { - return podId; - } - - public void setPodId(Long podId) { - this.podId = podId; - } - - @Override - public void execute() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException, ConcurrentOperationException, - ResourceAllocationException, NetworkRuleConflictException { - try { - ListResponse<BaremetalPxeResponse> response = new ListResponse<BaremetalPxeResponse>(); - List<BaremetalPxeResponse> pxeResponses = _pxeMgr.listPxeServers(this); - response.setResponses(pxeResponses); - response.setResponseName(getCommandName()); - this.setResponseObject(response); - } catch (Exception e) { - s_logger.debug("Exception happend while executing ListPingPxeServersCmd" ,e); - throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.getMessage()); - } - } - - @Override - public String getCommandName() { - return s_name; - } - -} http://git-wip-us.apache.org/repos/asf/cloudstack/blob/667776a9/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/ListBaremetalPxeServersCmd.java ---------------------------------------------------------------------- diff --git a/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/ListBaremetalPxeServersCmd.java b/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/ListBaremetalPxeServersCmd.java new file mode 100755 index 0000000..3463024 --- /dev/null +++ b/plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/ListBaremetalPxeServersCmd.java @@ -0,0 +1,79 @@ +// 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 +package org.apache.cloudstack.api; + +import java.util.List; + +import javax.inject.Inject; + +import org.apache.cloudstack.api.response.ListResponse; +import org.apache.cloudstack.api.response.PhysicalNetworkResponse; +import org.apache.log4j.Logger; + +import com.cloud.baremetal.networkservice.BaremetalPxeManager; +import com.cloud.baremetal.networkservice.BaremetalPxePingResponse; +import com.cloud.baremetal.networkservice.BaremetalPxeResponse; +import com.cloud.exception.ConcurrentOperationException; +import com.cloud.exception.InsufficientCapacityException; +import com.cloud.exception.NetworkRuleConflictException; +import com.cloud.exception.ResourceAllocationException; +import com.cloud.exception.ResourceUnavailableException; +@APICommand(name="listBaremetalPxeServers", description="list baremetal pxe server", responseObject = BaremetalPxeResponse.class) +public class ListBaremetalPxeServersCmd extends BaseListCmd { + private static final Logger s_logger = Logger.getLogger(ListBaremetalPxeServersCmd.class); + private static final String s_name = "listbaremetalpxeserversresponse"; + + @Inject + BaremetalPxeManager _pxeMgr; + // /////////////////////////////////////////////////// + // ////////////// API parameters ///////////////////// + // /////////////////////////////////////////////////// + + @Parameter(name = ApiConstants.ID, type = CommandType.LONG, description = "Pxe server device ID") + private Long id; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + @Override + public void execute() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException, ConcurrentOperationException, + ResourceAllocationException, NetworkRuleConflictException { + try { + ListResponse<BaremetalPxeResponse> response = new ListResponse<BaremetalPxeResponse>(); + List<BaremetalPxeResponse> pxeResponses = _pxeMgr.listPxeServers(this); + response.setResponses(pxeResponses); + response.setResponseName(getCommandName()); + response.setObjectName("baremetalpxeservers"); + this.setResponseObject(response); + } catch (Exception e) { + s_logger.debug("Exception happened while executing ListPingPxeServersCmd" ,e); + throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.getMessage()); + } + } + + @Override + public String getCommandName() { + return s_name; + } +}
