mirror of
https://github.com/apache/cloudstack.git
synced 2025-11-03 04:12:31 +01:00
Delete network as a part of account cleanup
This commit is contained in:
parent
fbd2e32882
commit
c7a9267225
@ -60,7 +60,7 @@ public class DeleteNetworkCmd extends BaseCmd{
|
||||
|
||||
@Override
|
||||
public void execute(){
|
||||
boolean result = _networkService.deleteNetwork(this);
|
||||
boolean result = _networkService.deleteNetwork(id);
|
||||
if (result) {
|
||||
SuccessResponse response = new SuccessResponse(getCommandName());
|
||||
this.setResponseObject(response);
|
||||
|
||||
@ -85,6 +85,6 @@ public interface NetworkService {
|
||||
|
||||
Network createNetwork(CreateNetworkCmd cmd) throws InvalidParameterValueException, PermissionDeniedException;
|
||||
List<? extends Network> searchForNetworks(ListNetworksCmd cmd) throws InvalidParameterValueException, PermissionDeniedException;
|
||||
boolean deleteNetwork(DeleteNetworkCmd cmd) throws InvalidParameterValueException, PermissionDeniedException;
|
||||
boolean deleteNetwork(long networkId) throws InvalidParameterValueException, PermissionDeniedException;
|
||||
|
||||
}
|
||||
|
||||
@ -1896,8 +1896,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
||||
}
|
||||
|
||||
@Override @DB
|
||||
public boolean deleteNetwork(DeleteNetworkCmd cmd) throws InvalidParameterValueException, PermissionDeniedException{
|
||||
Long networkId = cmd.getId();
|
||||
public boolean deleteNetwork(long networkId) throws InvalidParameterValueException, PermissionDeniedException{
|
||||
Long userId = UserContext.current().getUserId();
|
||||
Account account = UserContext.current().getAccount();
|
||||
|
||||
@ -1941,6 +1940,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
||||
//remove all the vlans associated with the network
|
||||
Transaction txn = Transaction.currentTxn();
|
||||
try {
|
||||
txn.start();
|
||||
//remove corresponding vlans
|
||||
List<VlanVO> vlans = _vlanDao.listVlansByNetworkId(networkId);
|
||||
for (VlanVO vlan : vlans) {
|
||||
|
||||
@ -27,6 +27,7 @@ import com.cloud.utils.db.SearchBuilder;
|
||||
|
||||
public interface NetworkDao extends GenericDao<NetworkVO, Long> {
|
||||
List<NetworkVO> listBy(long accountId);
|
||||
List<NetworkVO> listByOwner(long ownerId);
|
||||
List<NetworkVO> listBy(long accountId, long offeringId, long dataCenterId);
|
||||
List<NetworkVO> listBy(long accountId, long dataCenterId, GuestIpType type);
|
||||
NetworkVO persist(NetworkVO network, boolean gc);
|
||||
|
||||
@ -236,4 +236,11 @@ public class NetworkDaoImpl extends GenericDaoBase<NetworkVO, Long> implements N
|
||||
public void clearCheckForGc(long networkId) {
|
||||
_opDao.clearCheckForGc(networkId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<NetworkVO> listByOwner(long ownerId) {
|
||||
SearchCriteria<NetworkVO> sc = AllFieldsSearch.create();
|
||||
sc.setParameters("account", ownerId);
|
||||
return listBy(sc);
|
||||
}
|
||||
}
|
||||
|
||||
@ -63,7 +63,9 @@ import com.cloud.exception.InvalidParameterValueException;
|
||||
import com.cloud.exception.PermissionDeniedException;
|
||||
import com.cloud.network.IPAddressVO;
|
||||
import com.cloud.network.NetworkManager;
|
||||
import com.cloud.network.NetworkVO;
|
||||
import com.cloud.network.dao.IPAddressDao;
|
||||
import com.cloud.network.dao.NetworkDao;
|
||||
import com.cloud.network.router.DomainRouterManager;
|
||||
import com.cloud.network.security.NetworkGroupManager;
|
||||
import com.cloud.server.Criteria;
|
||||
@ -112,6 +114,7 @@ public class AccountManagerImpl implements AccountManager, AccountService {
|
||||
@Inject private DomainRouterDao _routerDao;
|
||||
@Inject private VMTemplateDao _templateDao;
|
||||
@Inject private PodVlanMapDao _podVlanMapDao;
|
||||
@Inject private NetworkDao _networkDao;
|
||||
|
||||
|
||||
@Inject private NetworkGroupManager _networkGroupMgr;
|
||||
@ -890,6 +893,7 @@ public class AccountManagerImpl implements AccountManager, AccountService {
|
||||
decrementResourceCount(accountId, ResourceType.public_ip);
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
accountCleanupNeeded = true;
|
||||
}
|
||||
@ -905,6 +909,14 @@ public class AccountManagerImpl implements AccountManager, AccountService {
|
||||
allVlansDeleted = false;
|
||||
}
|
||||
}
|
||||
|
||||
//delete networks
|
||||
s_logger.debug("Deleting networks for account " + account.getId());
|
||||
List<NetworkVO> networks = _networkDao.listByOwner(accountId);
|
||||
for (NetworkVO network : networks) {
|
||||
_networkMgr.deleteNetwork(network.getId());
|
||||
s_logger.debug("Network " + network.getId() + " successfully deleted.");
|
||||
}
|
||||
|
||||
if (!allVlansDeleted) {
|
||||
accountCleanupNeeded = true;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user