mirror of https://github.com/apache/cloudstack.git
able to add/list baremetaldhcp/baremetalpxe
This commit is contained in:
parent
57e37be6f2
commit
3de476340e
|
|
@ -16,6 +16,6 @@ import com.cloud.host.Host;
|
|||
|
||||
public class StartupExternalDhcpCommand extends StartupCommand {
|
||||
public StartupExternalDhcpCommand() {
|
||||
super(Host.Type.ExternalDhcp);
|
||||
super(Host.Type.BaremetalDhcp);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,6 @@ import com.cloud.host.Host;
|
|||
|
||||
public class StartupPxeServerCommand extends StartupCommand {
|
||||
public StartupPxeServerCommand() {
|
||||
super(Host.Type.PxeServer);
|
||||
super(Host.Type.BaremetalPxe);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,10 +32,10 @@ public interface Host extends StateObject<Status> {
|
|||
ExternalFirewall(false),
|
||||
ExternalLoadBalancer(false),
|
||||
ExternalVirtualSwitchSupervisor(false),
|
||||
PxeServer(false),
|
||||
TrafficMonitor(false),
|
||||
|
||||
ExternalDhcp(false),
|
||||
BaremetalPxe(false),
|
||||
BaremetalDhcp(false),
|
||||
SecondaryStorageVM(true),
|
||||
LocalSecondaryStorage(false);
|
||||
boolean _virtual;
|
||||
|
|
|
|||
|
|
@ -56,13 +56,13 @@ public class BareMetalTemplateAdapter extends TemplateAdapterBase implements Tem
|
|||
if (profile.getZoneId() == null || profile.getZoneId() == -1) {
|
||||
List<DataCenterVO> dcs = _dcDao.listAllIncludingRemoved();
|
||||
for (DataCenterVO dc : dcs) {
|
||||
List<HostVO> pxeServers = _resourceMgr.listAllHostsInOneZoneByType(Host.Type.PxeServer, dc.getId());
|
||||
List<HostVO> pxeServers = _resourceMgr.listAllHostsInOneZoneByType(Host.Type.BaremetalPxe, dc.getId());
|
||||
if (pxeServers.size() == 0) {
|
||||
throw new CloudRuntimeException("Please add PXE server before adding baremetal template in zone " + dc.getName());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
List<HostVO> pxeServers = _resourceMgr.listAllHostsInOneZoneByType(Host.Type.PxeServer, profile.getZoneId());
|
||||
List<HostVO> pxeServers = _resourceMgr.listAllHostsInOneZoneByType(Host.Type.BaremetalPxe, profile.getZoneId());
|
||||
if (pxeServers.size() == 0) {
|
||||
throw new CloudRuntimeException("Please add PXE server before adding baremetal template in zone " + profile.getZoneId());
|
||||
}
|
||||
|
|
@ -99,7 +99,7 @@ public class BareMetalTemplateAdapter extends TemplateAdapterBase implements Tem
|
|||
if (zoneId == null || zoneId == -1) {
|
||||
List<DataCenterVO> dcs = _dcDao.listAllIncludingRemoved();
|
||||
for (DataCenterVO dc : dcs) {
|
||||
HostVO pxe = _resourceMgr.listAllHostsInOneZoneByType(Host.Type.PxeServer, dc.getId()).get(0);
|
||||
HostVO pxe = _resourceMgr.listAllHostsInOneZoneByType(Host.Type.BaremetalPxe, dc.getId()).get(0);
|
||||
|
||||
vmTemplateHost = _tmpltHostDao.findByHostTemplate(dc.getId(), template.getId());
|
||||
if (vmTemplateHost == null) {
|
||||
|
|
@ -110,7 +110,7 @@ public class BareMetalTemplateAdapter extends TemplateAdapterBase implements Tem
|
|||
}
|
||||
}
|
||||
} else {
|
||||
HostVO pxe = _resourceMgr.listAllHostsInOneZoneByType(Host.Type.PxeServer, zoneId).get(0);
|
||||
HostVO pxe = _resourceMgr.listAllHostsInOneZoneByType(Host.Type.BaremetalPxe, zoneId).get(0);
|
||||
vmTemplateHost = new VMTemplateHostVO(pxe.getId(), template.getId(), new Date(), 100,
|
||||
Status.DOWNLOADED, null, null, null, null, template.getUrl());
|
||||
_tmpltHostDao.persist(vmTemplateHost);
|
||||
|
|
|
|||
|
|
@ -15,10 +15,10 @@ public class AddBaremetalPxePingServerCmd extends AddBaremetalPxeCmd {
|
|||
@Parameter(name=ApiConstants.TFTP_DIR, type=CommandType.STRING, required = true, description="Tftp root directory of PXE server")
|
||||
private String tftpDir;
|
||||
|
||||
@Parameter(name=ApiConstants.PING_CIFS_USERNAME, type=CommandType.STRING, required = true, description="Username of PING storage server")
|
||||
@Parameter(name=ApiConstants.PING_CIFS_USERNAME, type=CommandType.STRING, description="Username of PING storage server")
|
||||
private String pingStorageServerUserName;
|
||||
|
||||
@Parameter(name=ApiConstants.PING_CIFS_PASSWORD, type=CommandType.STRING, required = true, description="Password of PING storage server")
|
||||
@Parameter(name=ApiConstants.PING_CIFS_PASSWORD, type=CommandType.STRING, description="Password of PING storage server")
|
||||
private String pingStorageServerPassword;
|
||||
|
||||
public String getPingStorageServerIp() {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ import com.cloud.agent.api.baremetal.PreparePxeServerAnswer;
|
|||
import com.cloud.agent.api.baremetal.PreparePxeServerCommand;
|
||||
import com.cloud.agent.api.baremetal.prepareCreateTemplateCommand;
|
||||
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.BaremetalPxeService;
|
||||
import com.cloud.baremetal.networkservice.BaremetalPxeManager.BaremetalPxeType;
|
||||
|
|
@ -67,6 +68,7 @@ public class BareMetalPingServiceImpl extends BareMetalPxeServiceBase implements
|
|||
@Inject PhysicalNetworkDao _physicalNetworkDao;
|
||||
@Inject PhysicalNetworkServiceProviderDao _physicalNetworkServiceProviderDao;
|
||||
@Inject HostDetailsDao _hostDetailsDao;
|
||||
@Inject BaremetalPxeDao _pxeDao;
|
||||
|
||||
|
||||
@Override
|
||||
|
|
@ -170,10 +172,9 @@ public class BareMetalPingServiceImpl extends BareMetalPxeServiceBase implements
|
|||
}
|
||||
zoneId = pNetwork.getDataCenterId();
|
||||
|
||||
NetworkDevice ntwkDevice = NetworkDevice.PxeServer;
|
||||
PhysicalNetworkServiceProviderVO ntwkSvcProvider = _physicalNetworkServiceProviderDao.findByServiceProvider(pNetwork.getId(), ntwkDevice.getNetworkServiceProvder());
|
||||
PhysicalNetworkServiceProviderVO ntwkSvcProvider = _physicalNetworkServiceProviderDao.findByServiceProvider(pNetwork.getId(), BaremetalPxeManager.BAREMETAL_PXE_SERVICE_PROVIDER.getName());
|
||||
if (ntwkSvcProvider == null) {
|
||||
throw new CloudRuntimeException("Network Service Provider: " + ntwkDevice.getNetworkServiceProvder() +
|
||||
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() +
|
||||
|
|
@ -185,7 +186,7 @@ public class BareMetalPingServiceImpl extends BareMetalPxeServiceBase implements
|
|||
throw new InvalidParameterValueException("Could not find pod with ID: " + cmd.getPodId());
|
||||
}
|
||||
|
||||
List<HostVO> pxes = _resourceMgr.listAllUpAndEnabledHosts(Host.Type.PxeServer, null, cmd.getPodId(), zoneId);
|
||||
List<HostVO> pxes = _resourceMgr.listAllUpAndEnabledHosts(Host.Type.BaremetalPxe, null, cmd.getPodId(), zoneId);
|
||||
if (pxes.size() != 0) {
|
||||
throw new InvalidParameterValueException("Already had a PXE server in Pod: " + cmd.getPodId() + " zone: " + zoneId);
|
||||
}
|
||||
|
|
@ -226,7 +227,6 @@ public class BareMetalPingServiceImpl extends BareMetalPxeServiceBase implements
|
|||
|
||||
ServerResource resource = null;
|
||||
Map params = new HashMap<String, String>();
|
||||
params.put(BaremetalPxeService.PXE_PARAM_ZONE, BaremetalPxeType.PING.toString());
|
||||
params.put(BaremetalPxeService.PXE_PARAM_ZONE, Long.toString(zoneId));
|
||||
params.put(BaremetalPxeService.PXE_PARAM_POD, String.valueOf(pod.getId()));
|
||||
params.put(BaremetalPxeService.PXE_PARAM_IP, ipAddress);
|
||||
|
|
@ -247,7 +247,7 @@ public class BareMetalPingServiceImpl extends BareMetalPxeServiceBase implements
|
|||
throw new CloudRuntimeException(e.getMessage());
|
||||
}
|
||||
|
||||
Host pxeServer = _resourceMgr.addHost(zoneId, resource, Host.Type.PxeServer, params);
|
||||
Host pxeServer = _resourceMgr.addHost(zoneId, resource, Host.Type.BaremetalPxe, params);
|
||||
if (pxeServer == null) {
|
||||
throw new CloudRuntimeException("Cannot add PXE server as a host");
|
||||
}
|
||||
|
|
@ -259,6 +259,7 @@ public class BareMetalPingServiceImpl extends BareMetalPxeServiceBase implements
|
|||
vo.setPodId(pod.getId());
|
||||
vo.setPhysicalNetworkId(pcmd.getPhysicalNetworkId());
|
||||
vo.setDeviceType(BaremetalPxeType.PING.toString());
|
||||
_pxeDao.persist(vo);
|
||||
txn.commit();
|
||||
return vo;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,7 +47,6 @@ import com.cloud.vm.VirtualMachineProfile;
|
|||
public class BaremetalDhcpElement extends AdapterBase implements DhcpServiceProvider {
|
||||
private static final Logger s_logger = Logger.getLogger(BaremetalDhcpElement.class);
|
||||
private static final Map<Service, Map<Capability, String>> capabilities;
|
||||
private static final Provider provider = new Provider("BaremetalDhcpProvider", true);
|
||||
|
||||
@Inject NicDao _nicDao;
|
||||
@Inject BaremetalDhcpManager _dhcpMgr;
|
||||
|
|
@ -67,7 +66,7 @@ public class BaremetalDhcpElement extends AdapterBase implements DhcpServiceProv
|
|||
|
||||
@Override
|
||||
public Provider getProvider() {
|
||||
return provider;
|
||||
return BaremetalDhcpManager.BAREMETAL_DHCP_SERVICE_PROVIDER;
|
||||
}
|
||||
|
||||
private boolean canHandle(DeployDestination dest, TrafficType trafficType, GuestType networkType) {
|
||||
|
|
@ -155,5 +154,4 @@ public class BaremetalDhcpElement extends AdapterBase implements DhcpServiceProv
|
|||
}
|
||||
return _dhcpMgr.addVirtualMachineIntoNetwork(network, nic, vm, dest, context);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ import com.cloud.deploy.DeployDestination;
|
|||
import com.cloud.exception.ResourceUnavailableException;
|
||||
import com.cloud.host.Host;
|
||||
import com.cloud.network.Network;
|
||||
import com.cloud.network.Network.Provider;
|
||||
import com.cloud.uservm.UserVm;
|
||||
import com.cloud.utils.component.Manager;
|
||||
import com.cloud.utils.component.PluggableService;
|
||||
|
|
@ -43,4 +44,5 @@ public interface BaremetalDhcpManager extends Manager, PluggableService {
|
|||
|
||||
public static final String BAREMETAL_DHCP_SERVICE_CAPABITLITY = "BaremetalDhcp";
|
||||
public static final String BAREMETAL_DHCP_SERVICE_PROPERTIES = "baremetaldhcp_commands.properties";
|
||||
public static final Provider BAREMETAL_DHCP_SERVICE_PROVIDER = new Provider("BaremetalDhcpProvider", true);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -125,7 +125,7 @@ public class BaremetalDhcpManagerImpl implements BaremetalDhcpManager, ResourceS
|
|||
DeployDestination dest, ReservationContext context) throws ResourceUnavailableException {
|
||||
Long zoneId = profile.getVirtualMachine().getDataCenterIdToDeployIn();
|
||||
Long podId = profile.getVirtualMachine().getPodIdToDeployIn();
|
||||
List<HostVO> hosts = _resourceMgr.listAllUpAndEnabledHosts(Type.ExternalDhcp, null, podId, zoneId);
|
||||
List<HostVO> hosts = _resourceMgr.listAllUpAndEnabledHosts(Type.BaremetalDhcp, null, podId, zoneId);
|
||||
if (hosts.size() == 0) {
|
||||
throw new CloudRuntimeException("No external Dhcp found in zone " + zoneId + " pod " + podId);
|
||||
}
|
||||
|
|
@ -173,7 +173,7 @@ public class BaremetalDhcpManagerImpl implements BaremetalDhcpManager, ResourceS
|
|||
return null;
|
||||
}
|
||||
|
||||
host.setType(Host.Type.ExternalDhcp);
|
||||
host.setType(Host.Type.BaremetalDhcp);
|
||||
return host;
|
||||
}
|
||||
|
||||
|
|
@ -205,11 +205,10 @@ public class BaremetalDhcpManagerImpl implements BaremetalDhcpManager, ResourceS
|
|||
zoneId = pNetwork.getDataCenterId();
|
||||
DataCenterVO zone = _dcDao.findById(zoneId);
|
||||
|
||||
NetworkDevice ntwkDevice = NetworkDevice.ExternalDhcp;
|
||||
PhysicalNetworkServiceProviderVO ntwkSvcProvider = _physicalNetworkServiceProviderDao.findByServiceProvider(pNetwork.getId(),
|
||||
ntwkDevice.getNetworkServiceProvder());
|
||||
BaremetalDhcpManager.BAREMETAL_DHCP_SERVICE_PROVIDER.getName());
|
||||
if (ntwkSvcProvider == null) {
|
||||
throw new CloudRuntimeException("Network Service Provider: " + ntwkDevice.getNetworkServiceProvder() + " is not enabled in the physical network: "
|
||||
throw new CloudRuntimeException("Network Service Provider: " + BaremetalDhcpManager.BAREMETAL_DHCP_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()
|
||||
|
|
@ -221,7 +220,7 @@ public class BaremetalDhcpManagerImpl implements BaremetalDhcpManager, ResourceS
|
|||
throw new InvalidParameterValueException("Could not find pod with ID: " + cmd.getPodId());
|
||||
}
|
||||
|
||||
List<HostVO> dhcps = _resourceMgr.listAllUpAndEnabledHosts(Host.Type.ExternalDhcp, null, cmd.getPodId(), zoneId);
|
||||
List<HostVO> dhcps = _resourceMgr.listAllUpAndEnabledHosts(Host.Type.BaremetalDhcp, null, cmd.getPodId(), zoneId);
|
||||
if (dhcps.size() != 0) {
|
||||
throw new InvalidParameterValueException("Already had a DHCP server in Pod: " + cmd.getPodId() + " zone: " + zoneId);
|
||||
}
|
||||
|
|
@ -267,7 +266,7 @@ public class BaremetalDhcpManagerImpl implements BaremetalDhcpManager, ResourceS
|
|||
throw new CloudRuntimeException(e.getMessage());
|
||||
}
|
||||
|
||||
Host dhcpServer = _resourceMgr.addHost(zoneId, resource, Host.Type.ExternalDhcp, params);
|
||||
Host dhcpServer = _resourceMgr.addHost(zoneId, resource, Host.Type.BaremetalDhcp, params);
|
||||
if (dhcpServer == null) {
|
||||
throw new CloudRuntimeException("Cannot add external Dhcp server as a host");
|
||||
}
|
||||
|
|
@ -298,7 +297,9 @@ public class BaremetalDhcpManagerImpl implements BaremetalDhcpManager, ResourceS
|
|||
@Override
|
||||
public List<BaremetalDhcpResponse> listBaremetalDhcps(ListBaremetalDhcpCmd cmd) {
|
||||
SearchCriteriaService<BaremetalDhcpVO, BaremetalDhcpVO> sc = SearchCriteria2.create(BaremetalDhcpVO.class);
|
||||
sc.addAnd(sc.getEntity().getDeviceType(), Op.EQ, cmd.getDeviceType());
|
||||
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) {
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@ public class BaremetalDhcpResourceBase implements ServerResource {
|
|||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return Type.ExternalDhcp;
|
||||
return Type.BaremetalDhcp;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -19,21 +19,28 @@ import javax.naming.ConfigurationException;
|
|||
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.agent.IAgentControl;
|
||||
import com.cloud.agent.api.Answer;
|
||||
import com.cloud.agent.api.Command;
|
||||
import com.cloud.agent.api.PingCommand;
|
||||
import com.cloud.agent.api.PingRoutingCommand;
|
||||
import com.cloud.agent.api.StartupCommand;
|
||||
import com.cloud.agent.api.StartupExternalDhcpCommand;
|
||||
import com.cloud.agent.api.baremetal.PreparePxeServerAnswer;
|
||||
import com.cloud.agent.api.baremetal.PreparePxeServerCommand;
|
||||
import com.cloud.agent.api.baremetal.prepareCreateTemplateCommand;
|
||||
import com.cloud.api.ApiConstants;
|
||||
import com.cloud.baremetal.networkservice.BaremetalPxeService;
|
||||
import com.cloud.host.Host.Type;
|
||||
import com.cloud.resource.ServerResource;
|
||||
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 BaremetalPingPxeResource extends BareMetalResourceBase {
|
||||
public class BaremetalPingPxeResource extends BaremetalPxeResourceBase {
|
||||
private static final Logger s_logger = Logger.getLogger(BaremetalPingPxeResource.class);
|
||||
private static final String _name = "BaremetalPingPxeResource";
|
||||
String _storageServer;
|
||||
String _pingDir;
|
||||
String _share;
|
||||
|
|
@ -45,7 +52,6 @@ public class BaremetalPingPxeResource extends BareMetalResourceBase {
|
|||
@Override
|
||||
public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
|
||||
super.configure(name, params);
|
||||
|
||||
_storageServer = (String)params.get(BaremetalPxeService.PXE_PARAM_PING_STORAGE_SERVER_IP);
|
||||
_pingDir = (String)params.get(BaremetalPxeService.PXE_PARAM_PING_ROOT_DIR);
|
||||
_tftpDir = (String)params.get(BaremetalPxeService.PXE_PARAM_TFTP_DIR);
|
||||
|
|
|
|||
|
|
@ -42,7 +42,6 @@ import com.cloud.vm.VirtualMachine.Type;
|
|||
public class BaremetalPxeElement extends AdapterBase implements NetworkElement {
|
||||
private static final Logger s_logger = Logger.getLogger(BaremetalPxeElement.class);
|
||||
private static final Map<Service, Map<Capability, String>> capabilities;
|
||||
private static final Provider provider = new Provider("BaremetalPxeProvider", true);
|
||||
|
||||
@Inject BaremetalPxeManager _pxeMgr;;
|
||||
|
||||
|
|
@ -61,7 +60,7 @@ public class BaremetalPxeElement extends AdapterBase implements NetworkElement {
|
|||
|
||||
@Override
|
||||
public Provider getProvider() {
|
||||
return provider;
|
||||
return BaremetalPxeManager.BAREMETAL_PXE_SERVICE_PROVIDER;
|
||||
}
|
||||
|
||||
private boolean canHandle(DeployDestination dest, TrafficType trafficType, GuestType networkType) {
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ import com.cloud.baremetal.database.BaremetalPxeVO;
|
|||
import com.cloud.deploy.DeployDestination;
|
||||
import com.cloud.host.HostVO;
|
||||
import com.cloud.network.Network;
|
||||
import com.cloud.network.Network.Provider;
|
||||
import com.cloud.uservm.UserVm;
|
||||
import com.cloud.utils.component.Manager;
|
||||
import com.cloud.utils.component.PluggableService;
|
||||
|
|
@ -45,4 +46,5 @@ public interface BaremetalPxeManager extends Manager, PluggableService {
|
|||
public static final Network.Service BAREMETAL_PXE_SERVICE = new Network.Service("BaremetalPxeService");
|
||||
public static final String BAREMETAL_PXE_CAPABILITY = "BaremetalPxe";
|
||||
public static final String BAREMETAL_PXE_SERVICE_PROPERTIES = "baremetalpxe_commands.properties";
|
||||
public static final Provider BAREMETAL_PXE_SERVICE_PROVIDER = new Provider("BaremetalPxeProvider", true);;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@ public class BaremetalPxeManagerImpl implements BaremetalPxeManager, ResourceSta
|
|||
return null;
|
||||
}
|
||||
|
||||
host.setType(Host.Type.PxeServer);
|
||||
host.setType(Host.Type.BaremetalPxe);
|
||||
return host;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ public class BaremetalPxeResourceBase implements ServerResource {
|
|||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return Type.PxeServer;
|
||||
return Type.BaremetalPxe;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -1,16 +1,20 @@
|
|||
package com.cloud.baremetal.networkservice;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.api.BaseListCmd;
|
||||
|
||||
import com.cloud.api.ApiConstants;
|
||||
import com.cloud.api.BaseCmd;
|
||||
import com.cloud.api.IdentityMapper;
|
||||
import com.cloud.api.Implementation;
|
||||
import com.cloud.api.Parameter;
|
||||
import com.cloud.api.PlugService;
|
||||
import com.cloud.api.ServerApiException;
|
||||
import com.cloud.api.BaseCmd.CommandType;
|
||||
import com.cloud.api.response.ListResponse;
|
||||
import com.cloud.exception.ConcurrentOperationException;
|
||||
import com.cloud.exception.InsufficientCapacityException;
|
||||
import com.cloud.exception.NetworkRuleConflictException;
|
||||
|
|
@ -26,15 +30,15 @@ public class ListBaremetalDhcpCmd extends BaseListCmd {
|
|||
// ///////////////////////////////////////////////////
|
||||
// ////////////// API parameters /////////////////////
|
||||
// ///////////////////////////////////////////////////
|
||||
@IdentityMapper(entityTableName = "external_dhcp_devices")
|
||||
@Parameter(name = ApiConstants.ID, type = CommandType.LONG, required = true, description = "DHCP server device ID")
|
||||
@IdentityMapper(entityTableName = "baremetal_dhcp_devices")
|
||||
@Parameter(name = ApiConstants.ID, type = CommandType.LONG, description = "DHCP server device ID")
|
||||
private Long id;
|
||||
|
||||
@IdentityMapper(entityTableName = "host_pod_ref")
|
||||
@Parameter(name = ApiConstants.POD_ID, type = CommandType.LONG, required = true, description = "Pod ID where pxe server is in")
|
||||
@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, required = true, description = "Type of DHCP device")
|
||||
@Parameter(name = ApiConstants.DHCP_SERVER_TYPE, type = CommandType.STRING, description = "Type of DHCP device")
|
||||
private String deviceType;
|
||||
|
||||
public Long getId() {
|
||||
|
|
@ -64,12 +68,22 @@ public class ListBaremetalDhcpCmd extends BaseListCmd {
|
|||
@Override
|
||||
public void execute() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException, ConcurrentOperationException,
|
||||
ResourceAllocationException, NetworkRuleConflictException {
|
||||
try {
|
||||
ListResponse<BaremetalDhcpResponse> response = new ListResponse<BaremetalDhcpResponse>();
|
||||
List<BaremetalDhcpResponse> dhcpResponses = _dhcpMgr.listBaremetalDhcps(this);
|
||||
response.setResponses(dhcpResponses);
|
||||
response.setResponseName(getCommandName());
|
||||
this.setResponseObject(response);
|
||||
} catch (Exception e) {
|
||||
s_logger.debug("Exception happend while executing ListBaremetalDhcpCmd");
|
||||
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, e.getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCommandName() {
|
||||
return null;
|
||||
return s_name;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,12 +32,12 @@ public class ListBaremetalPxePingServersCmd extends BaseListCmd {
|
|||
// ////////////// API parameters /////////////////////
|
||||
// ///////////////////////////////////////////////////
|
||||
|
||||
@IdentityMapper(entityTableName = "external_pxe_devices")
|
||||
@Parameter(name = ApiConstants.ID, type = CommandType.LONG, required = true, description = "Ping pxe server device ID")
|
||||
@IdentityMapper(entityTableName = "baremetal_pxe_devices")
|
||||
@Parameter(name = ApiConstants.ID, type = CommandType.LONG, description = "Ping pxe server device ID")
|
||||
private Long id;
|
||||
|
||||
@IdentityMapper(entityTableName = "host_pod_ref")
|
||||
@Parameter(name = ApiConstants.POD_ID, type = CommandType.LONG, required = true, description = "Pod ID where pxe server is in")
|
||||
@Parameter(name = ApiConstants.POD_ID, type = CommandType.LONG, description = "Pod ID where pxe server is in")
|
||||
private Long podId;
|
||||
|
||||
public Long getId() {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,6 @@
|
|||
### bitmap of permissions at the end of each classname, 1 = ADMIN, 2 = RESOURCE_DOMAIN_ADMIN, 4 = DOMAIN_ADMIN, 8 = USER
|
||||
### Please standardize naming conventions to camel-case (even for acronyms).
|
||||
|
||||
### baremetal dhcp commands
|
||||
addBaremetalPxePingServer=com.cloud.baremetal.networkservice.AddBaremetalPxePingServerCmd;1
|
||||
listBaremetalPxePingServer=com.cloud.baremetal.networkservice.ListBaremetalPxePingServersCmd;1
|
||||
|
|
@ -163,6 +163,10 @@
|
|||
<dao name="BaremetalPxeDao" class="com.cloud.baremetal.database.BaremetalPxeDaoImpl"/>
|
||||
<dao name="BaremetalDhcpDao" class="com.cloud.baremetal.database.BaremetalDhcpDaoImpl"/>
|
||||
|
||||
<adapters key="com.cloud.baremetal.networkservice.BaremetalPxeService">
|
||||
<adapter name="PING" class="com.cloud.baremetal.networkservice.BareMetalPingServiceImpl" />
|
||||
</adapters>
|
||||
|
||||
<pluggableservice name="BaremetalPxeService" key="com.cloud.baremetal.networkservice.BaremetalPxeManager" class="com.cloud.baremetal.networkservice.BaremetalPxeManagerImpl"/>
|
||||
<pluggableservice name="BaremetalDhcpService" key="com.cloud.baremetal.networkservice.BaremetalDhcpManager" class="com.cloud.baremetal.networkservice.BaremetalDhcpManagerImpl"/>
|
||||
<pluggableservice name="VirtualRouterElementService" key="com.cloud.network.element.VirtualRouterElementService" class="com.cloud.network.element.VirtualRouterElement"/>
|
||||
|
|
|
|||
|
|
@ -350,7 +350,7 @@ public class HostDaoImpl extends GenericDaoBase<HostVO, Long> implements HostDao
|
|||
txn.start();
|
||||
SearchCriteria<HostVO> sc = UnmanagedApplianceSearch.create();
|
||||
sc.setParameters("lastPinged", lastPingSecondsAfter);
|
||||
sc.setParameters("types", Type.ExternalDhcp, Type.ExternalFirewall, Type.ExternalLoadBalancer, Type.PxeServer, Type.TrafficMonitor);
|
||||
sc.setParameters("types", Type.BaremetalDhcp, Type.ExternalFirewall, Type.ExternalLoadBalancer, Type.BaremetalPxe, Type.TrafficMonitor);
|
||||
List<HostVO> hosts = lockRows(sc, null, true);
|
||||
|
||||
for (HostVO host : hosts) {
|
||||
|
|
|
|||
|
|
@ -235,11 +235,11 @@ public class ExternalNetworkDeviceManagerImpl implements ExternalNetworkDeviceMa
|
|||
if (NetworkDevice.ExternalDhcp.getName().equalsIgnoreCase(cmd.getDeviceType())) {
|
||||
Long zoneId = Long.parseLong((String) params.get(ApiConstants.ZONE_ID));
|
||||
Long podId = Long.parseLong((String)params.get(ApiConstants.POD_ID));
|
||||
res = listNetworkDevice(zoneId, null, podId, Host.Type.ExternalDhcp);
|
||||
res = listNetworkDevice(zoneId, null, podId, Host.Type.BaremetalDhcp);
|
||||
} else if (NetworkDevice.PxeServer.getName().equalsIgnoreCase(cmd.getDeviceType())) {
|
||||
Long zoneId = Long.parseLong((String) params.get(ApiConstants.ZONE_ID));
|
||||
Long podId = Long.parseLong((String)params.get(ApiConstants.POD_ID));
|
||||
res = listNetworkDevice(zoneId, null, podId, Host.Type.PxeServer);
|
||||
res = listNetworkDevice(zoneId, null, podId, Host.Type.BaremetalPxe);
|
||||
} else if (cmd.getDeviceType().equalsIgnoreCase(NetworkDevice.NetscalerMPXLoadBalancer.getName()) ||
|
||||
cmd.getDeviceType().equalsIgnoreCase(NetworkDevice.NetscalerVPXLoadBalancer.getName()) ||
|
||||
cmd.getDeviceType().equalsIgnoreCase(NetworkDevice.NetscalerSDXLoadBalancer.getName()) ||
|
||||
|
|
@ -257,8 +257,8 @@ public class ExternalNetworkDeviceManagerImpl implements ExternalNetworkDeviceMa
|
|||
Long zoneId = Long.parseLong((String) params.get(ApiConstants.ZONE_ID));
|
||||
Long podId = Long.parseLong((String)params.get(ApiConstants.POD_ID));
|
||||
Long physicalNetworkId = (params.get(ApiConstants.PHYSICAL_NETWORK_ID)==null)?Long.parseLong((String)params.get(ApiConstants.PHYSICAL_NETWORK_ID)):null;
|
||||
List<Host> res1 = listNetworkDevice(zoneId, physicalNetworkId, podId, Host.Type.PxeServer);
|
||||
List<Host> res2 = listNetworkDevice(zoneId, physicalNetworkId, podId, Host.Type.ExternalDhcp);
|
||||
List<Host> res1 = listNetworkDevice(zoneId, physicalNetworkId, podId, Host.Type.BaremetalDhcp);
|
||||
List<Host> res2 = listNetworkDevice(zoneId, physicalNetworkId, podId, Host.Type.BaremetalPxe);
|
||||
List<Host> res3 = listNetworkDevice(zoneId, physicalNetworkId, podId, Host.Type.ExternalLoadBalancer);
|
||||
List<Host> res4 = listNetworkDevice(zoneId, physicalNetworkId, podId, Host.Type.ExternalFirewall);
|
||||
List<Host> deviceAll = new ArrayList<Host>();
|
||||
|
|
|
|||
Loading…
Reference in New Issue