def DELETE(self, req): """HTTP DELETE request handler.""" account_partition, accounts, container_count = \ self.account_info(self.account_name, req) if not accounts: return HTTPNotFound(request=req) policy_index = self._convert_policy_to_index(req) if policy_index is None: policy_index = int(POLICIES.default) cloud_ring = CloudRing(self.container_name, POLICIES.get_by_index(policy_index)) container_partition, containers = self.app.container_ring.get_nodes( self.account_name, self.container_name) headers = self._backend_requests(req, len(containers), account_partition, accounts) clear_info_cache(self.app, req.environ, self.account_name, self.container_name) resp = self.make_requests( req, self.app.container_ring, container_partition, 'DELETE', req.swift_entity_path, headers) # Indicates no server had the container if resp.status_int == HTTP_ACCEPTED: return HTTPNotFound(request=req) return_flag, _info = cloud_ring.delete_containers() if not return_flag: msg = 'Failed:' + str(_info) raise DELETECloudContainerException(msg) return resp