private void removeOrphanedServers(AuthzSubject overlord) { final Collection<Server> servers = serverManager.getOrphanedServers(); if (!servers.isEmpty()) { log.info("cleaning up " + servers.size() + " orphaned servers"); } for (Server server : servers) { try { server = serverManager.getServerById(server.getId()); serverManager.removeServer(overlord, server); } catch (ObjectNotFoundException e) { log.warn(e); log.debug(e, e); } catch (PermissionException e) { log.warn(e); log.debug(e, e); } catch (VetoException e) { log.warn(e); log.debug(e, e); } } }
@SuppressWarnings("unchecked") private void removeDeletedResources( Map<Integer, List<AppdefEntityID>> agentCache, Collection<String> typeNames) throws ApplicationException, VetoException { final boolean debug = log.isDebugEnabled(); final StopWatch watch = new StopWatch(); final AuthzSubject subject = authzSubjectManager.findSubjectById(AuthzConstants.overlordId); if (debug) watch.markTimeBegin("unscheduleMeasurementsForAsyncDelete"); unscheduleMeasurementsForAsyncDelete(agentCache); if (debug) watch.markTimeEnd("unscheduleMeasurementsForAsyncDelete"); // Look through services, servers, platforms, applications, and groups if (debug) watch.markTimeBegin("removeApplications"); Collection<Application> applications = applicationManager.findDeletedApplications(); removeApplications(subject, applications); if (debug) watch.markTimeEnd("removeApplications"); if (debug) watch.markTimeBegin("removeResourceGroups"); Collection<ResourceGroup> groups = resourceGroupManager.findDeletedGroups(); removeResourceGroups(subject, groups); if (debug) watch.markTimeEnd("removeResourceGroups"); typeNames = (typeNames == null) ? Collections.EMPTY_LIST : typeNames; if (debug) watch.markTimeBegin("removeGroupsCompatibleWith"); for (String name : typeNames) { resourceGroupManager.removeGroupsCompatibleWith(name); } if (debug) watch.markTimeEnd("removeGroupsCompatibleWith"); Collection<Service> services = serviceManager.findDeletedServices(); removeServices(subject, services); Collection<Server> servers = serverManager.findDeletedServers(); removeServers(subject, servers); if (debug) watch.markTimeBegin("removePlatforms"); Collection<Platform> platforms = platformManager.findDeletedPlatforms(); removePlatforms(subject, platforms); if (debug) watch.markTimeEnd("removePlatforms"); if (debug) log.debug("removeDeletedResources: " + watch); }