Skip to content

Commit 62c5cef

Browse files
author
Frank Zhang
committed
CLOUDSTACK-7834
Web UI shows all DHCP/PXE providers in cloud when admin click DHCP/PXE IP for A zone
1 parent 6a28035 commit 62c5cef

4 files changed

Lines changed: 71 additions & 52 deletions

File tree

plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalDhcpManagerImpl.java

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -22,21 +22,6 @@
2222
// Automatically generated by addcopyright.py at 04/03/2012
2323
package com.cloud.baremetal.networkservice;
2424

25-
import java.net.URI;
26-
import java.util.ArrayList;
27-
import java.util.HashMap;
28-
import java.util.List;
29-
import java.util.Map;
30-
31-
import javax.ejb.Local;
32-
import javax.inject.Inject;
33-
import javax.naming.ConfigurationException;
34-
35-
import org.apache.log4j.Logger;
36-
37-
import org.apache.cloudstack.api.AddBaremetalDhcpCmd;
38-
import org.apache.cloudstack.api.ListBaremetalDhcpCmd;
39-
4025
import com.cloud.agent.AgentManager;
4126
import com.cloud.agent.api.Answer;
4227
import com.cloud.agent.api.StartupCommand;
@@ -75,6 +60,18 @@
7560
import com.cloud.vm.VirtualMachineProfile;
7661
import com.cloud.vm.dao.NicDao;
7762
import com.cloud.vm.dao.UserVmDao;
63+
import org.apache.cloudstack.api.AddBaremetalDhcpCmd;
64+
import org.apache.cloudstack.api.ListBaremetalDhcpCmd;
65+
import org.apache.log4j.Logger;
66+
67+
import javax.ejb.Local;
68+
import javax.inject.Inject;
69+
import javax.naming.ConfigurationException;
70+
import java.net.URI;
71+
import java.util.ArrayList;
72+
import java.util.HashMap;
73+
import java.util.List;
74+
import java.util.Map;
7875

7976
@Local(value = {BaremetalDhcpManager.class})
8077
public class BaremetalDhcpManagerImpl extends ManagerBase implements BaremetalDhcpManager, ResourceStateAdapter {
@@ -310,6 +307,7 @@ public List<BaremetalDhcpResponse> listBaremetalDhcps(ListBaremetalDhcpCmd cmd)
310307
sc.and(sc.entity().getDeviceType(), Op.EQ, cmd.getDeviceType());
311308
}
312309

310+
sc.and(sc.entity().getPhysicalNetworkId(), Op.EQ, cmd.getPhysicalNetworkId());
313311
List<BaremetalDhcpVO> vos = sc.list();
314312
for (BaremetalDhcpVO vo : vos) {
315313
responses.add(generateApiResponse(vo));

plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalKickStartServiceImpl.java

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -18,32 +18,13 @@
1818
// Automatically generated by addcopyright.py at 01/29/2013
1919
package com.cloud.baremetal.networkservice;
2020

21-
import java.io.File;
22-
import java.net.URI;
23-
import java.net.URL;
24-
import java.util.ArrayList;
25-
import java.util.Arrays;
26-
import java.util.HashMap;
27-
import java.util.List;
28-
import java.util.Map;
29-
30-
import javax.ejb.Local;
31-
import javax.inject.Inject;
32-
33-
import com.cloud.configuration.Config;
34-
import org.apache.log4j.Logger;
35-
36-
import org.apache.cloudstack.api.AddBaremetalKickStartPxeCmd;
37-
import org.apache.cloudstack.api.AddBaremetalPxeCmd;
38-
import org.apache.cloudstack.api.ListBaremetalPxeServersCmd;
39-
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
40-
4121
import com.cloud.agent.api.Answer;
4222
import com.cloud.agent.api.baremetal.IpmISetBootDevCommand;
4323
import com.cloud.agent.api.baremetal.IpmISetBootDevCommand.BootDev;
4424
import com.cloud.baremetal.database.BaremetalPxeDao;
4525
import com.cloud.baremetal.database.BaremetalPxeVO;
4626
import com.cloud.baremetal.networkservice.BaremetalPxeManager.BaremetalPxeType;
27+
import com.cloud.configuration.Config;
4728
import com.cloud.dc.DataCenter;
4829
import com.cloud.deploy.DeployDestination;
4930
import com.cloud.exception.AgentUnavailableException;
@@ -80,6 +61,22 @@
8061
import com.cloud.vm.VirtualMachineProfile;
8162
import com.cloud.vm.dao.DomainRouterDao;
8263
import com.cloud.vm.dao.NicDao;
64+
import org.apache.cloudstack.api.AddBaremetalKickStartPxeCmd;
65+
import org.apache.cloudstack.api.AddBaremetalPxeCmd;
66+
import org.apache.cloudstack.api.ListBaremetalPxeServersCmd;
67+
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
68+
import org.apache.log4j.Logger;
69+
70+
import javax.ejb.Local;
71+
import javax.inject.Inject;
72+
import java.io.File;
73+
import java.net.URI;
74+
import java.net.URL;
75+
import java.util.ArrayList;
76+
import java.util.Arrays;
77+
import java.util.HashMap;
78+
import java.util.List;
79+
import java.util.Map;
8380

8481
@Local(value = BaremetalPxeService.class)
8582
public class BaremetalKickStartServiceImpl extends BareMetalPxeServiceBase implements BaremetalPxeService {
@@ -384,7 +381,9 @@ public List<BaremetalPxeResponse> listPxeServers(ListBaremetalPxeServersCmd cmd)
384381
return responses;
385382
}
386383

387-
List<BaremetalPxeVO> vos = _pxeDao.listAll();
384+
QueryBuilder<BaremetalPxeVO> sc = QueryBuilder.create(BaremetalPxeVO.class);
385+
sc.and(sc.entity().getPhysicalNetworkId(), Op.EQ, cmd.getPhysicalNetworkId());
386+
List<BaremetalPxeVO> vos = sc.list();
388387
for (BaremetalPxeVO vo : vos) {
389388
responses.add(getApiResponse(vo));
390389
}

plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/ListBaremetalDhcpCmd.java

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,19 @@
1818
// Automatically generated by addcopyright.py at 01/29/2013
1919
package org.apache.cloudstack.api;
2020

21-
import java.util.List;
22-
23-
import javax.inject.Inject;
24-
25-
import org.apache.log4j.Logger;
26-
27-
import org.apache.cloudstack.api.response.ListResponse;
28-
2921
import com.cloud.baremetal.networkservice.BaremetalDhcpManager;
3022
import com.cloud.baremetal.networkservice.BaremetalDhcpResponse;
3123
import com.cloud.exception.ConcurrentOperationException;
3224
import com.cloud.exception.InsufficientCapacityException;
3325
import com.cloud.exception.NetworkRuleConflictException;
3426
import com.cloud.exception.ResourceAllocationException;
3527
import com.cloud.exception.ResourceUnavailableException;
28+
import org.apache.cloudstack.api.response.ListResponse;
29+
import org.apache.cloudstack.api.response.PhysicalNetworkResponse;
30+
import org.apache.log4j.Logger;
31+
32+
import javax.inject.Inject;
33+
import java.util.List;
3634

3735
@APICommand(name = "listBaremetalDhcp", description = "list baremetal dhcp servers", responseObject = BaremetalDhcpResponse.class,
3836
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
@@ -51,6 +49,21 @@ public class ListBaremetalDhcpCmd extends BaseListCmd {
5149
@Parameter(name = ApiConstants.DHCP_SERVER_TYPE, type = CommandType.STRING, description = "Type of DHCP device")
5250
private String deviceType;
5351

52+
@Parameter(name = ApiConstants.PHYSICAL_NETWORK_ID,
53+
type = CommandType.UUID,
54+
entityType = PhysicalNetworkResponse.class,
55+
required = true,
56+
description = "the Physical Network ID")
57+
private Long physicalNetworkId;
58+
59+
public Long getPhysicalNetworkId() {
60+
return physicalNetworkId;
61+
}
62+
63+
public void setPhysicalNetworkId(Long physicalNetworkId) {
64+
this.physicalNetworkId = physicalNetworkId;
65+
}
66+
5467
public Long getId() {
5568
return id;
5669
}

plugins/hypervisors/baremetal/src/org/apache/cloudstack/api/ListBaremetalPxeServersCmd.java

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,19 @@
1818
// Automatically generated by addcopyright.py at 01/29/2013
1919
package org.apache.cloudstack.api;
2020

21-
import java.util.List;
22-
23-
import javax.inject.Inject;
24-
25-
import org.apache.log4j.Logger;
26-
27-
import org.apache.cloudstack.api.response.ListResponse;
28-
2921
import com.cloud.baremetal.networkservice.BaremetalPxeManager;
3022
import com.cloud.baremetal.networkservice.BaremetalPxeResponse;
3123
import com.cloud.exception.ConcurrentOperationException;
3224
import com.cloud.exception.InsufficientCapacityException;
3325
import com.cloud.exception.NetworkRuleConflictException;
3426
import com.cloud.exception.ResourceAllocationException;
3527
import com.cloud.exception.ResourceUnavailableException;
28+
import org.apache.cloudstack.api.response.ListResponse;
29+
import org.apache.cloudstack.api.response.PhysicalNetworkResponse;
30+
import org.apache.log4j.Logger;
31+
32+
import javax.inject.Inject;
33+
import java.util.List;
3634

3735
@APICommand(name = "listBaremetalPxeServers", description = "list baremetal pxe server", responseObject = BaremetalPxeResponse.class,
3836
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
@@ -49,6 +47,13 @@ public class ListBaremetalPxeServersCmd extends BaseListCmd {
4947
@Parameter(name = ApiConstants.ID, type = CommandType.LONG, description = "Pxe server device ID")
5048
private Long id;
5149

50+
@Parameter(name = ApiConstants.PHYSICAL_NETWORK_ID,
51+
type = CommandType.UUID,
52+
entityType = PhysicalNetworkResponse.class,
53+
required = true,
54+
description = "the Physical Network ID")
55+
private Long physicalNetworkId;
56+
5257
public Long getId() {
5358
return id;
5459
}
@@ -57,6 +62,10 @@ public void setId(Long id) {
5762
this.id = id;
5863
}
5964

65+
public Long getPhysicalNetworkId() {
66+
return physicalNetworkId;
67+
}
68+
6069
@Override
6170
public void execute() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException, ConcurrentOperationException,
6271
ResourceAllocationException, NetworkRuleConflictException {

0 commit comments

Comments
 (0)