def monitor_queues(self, queues, all_bindings): for queue_data in queues: # Updating the queue's information in the database (owner, size). queue = self.update_queue_information(queue_data, all_bindings) if not queue: continue # If a queue is over the deletion size and ``unbounded`` is # False (the default), then delete it regardless of it having # an owner or not # If ``unbounded`` is True, then let it grow indefinitely. if queue.size > self.del_queue_size and not queue.unbounded: mozdef.log( mozdef.NOTICE, mozdef.OTHER, 'Deleting queue.', details=self._queue_details_dict(queue), tags=['queue'], ) if queue.owner and queue.owner.owners: self.deletion_email(queue.owner.owners, queue_data) if self.on_delete: self.on_delete(queue.name) pulse_management.delete_queue(vhost=queue_data['vhost'], queue=queue.name) db_session.delete(queue) db_session.commit() continue if queue.owner is None or not queue.owner.owners: continue if queue.size > self.warn_queue_size and not queue.warned: mozdef.log( mozdef.NOTICE, mozdef.OTHER, 'Queue-size warning.', details=self._queue_details_dict(queue), tags=['queue'], ) queue.warned = True if self.on_warn: self.on_warn(queue.name) self.warning_email(queue.owner.owners, queue_data) elif queue.size <= self.warn_queue_size and queue.warned: # A previously warned queue got out of the warning threshold; # its owner should not be warned again. mozdef.log( mozdef.NOTICE, mozdef.OTHER, 'Queue-size recovered.', details=self._queue_details_dict(queue), tags=['queue'], ) queue.warned = False self.back_to_normal_email(queue.owner.owners, queue_data) # Commit any changes to the queue. db_session.add(queue) db_session.commit()
def monitor_queues(self, queues, all_bindings): for queue_data in queues: # Updating the queue's information in the database (owner, size). queue = self.update_queue_information(queue_data, all_bindings) if not queue: continue # If a queue is over the deletion size and ``unbounded`` is # False (the default), then delete it regardless of it having # an owner or not # If ``unbounded`` is True, then let it grow indefinitely. if queue.size > self.del_queue_size and not queue.unbounded: mozdef.log( mozdef.NOTICE, mozdef.OTHER, 'Deleting queue.', details=self._queue_details_dict(queue), tags=['queue'], ) if queue.owner and queue.owner.owners: self.deletion_email(queue.owner.owners, queue_data) if self.on_delete: self.on_delete(queue.name) pulse_management.delete_queue(vhost=queue_data['vhost'], queue=queue.name) db_session.delete(queue) db_session.commit() continue if queue.owner is None or not queue.owner.owners: continue if queue.size > self.warn_queue_size and not queue.warned: mozdef.log( mozdef.NOTICE, mozdef.OTHER, 'Queue-size warning.', details=self._queue_details_dict(queue), tags=['queue'], ) queue.warned = True if self.on_warn: self.on_warn(queue.name) self.warning_email(queue.owner.owners, queue_data) elif queue.size <= self.warn_queue_size and queue.warned: # A previously warned queue got out of the warning threshold; # its owner should not be warned again. mozdef.log( mozdef.NOTICE, mozdef.OTHER, 'Queue-size recovered.', details=self._queue_details_dict(queue), tags=['queue'], ) queue.warned = False self.back_to_normal_email(queue.owner.owners, queue_data) # Commit any changes to the queue. db_session.add(queue) db_session.commit()
def delete_queue(queue_name): queue = Queue.query.get(queue_name) if queue and (g.user.admin or (queue.owner and g.user in queue.owner.owners)): details = { 'queuename': queue_name, 'username': g.user.email, } try: pulse_management.delete_queue(vhost='/', queue=queue.name) except pulse_management.PulseManagementException as e: details['message'] = str(e) mozdef.log( mozdef.ERROR, mozdef.OTHER, 'Error deleting queue', details=details, tags=['queue'], ) return jsonify(ok=False) mozdef.log( mozdef.NOTICE, mozdef.OTHER, 'Deleting queue', details=details, tags=['queue'], ) db_session.delete(queue) db_session.commit() return jsonify(ok=True) return jsonify(ok=False)
def delete_queue(queue_name): queue = Queue.query.get(queue_name) if queue and (g.user.admin or (queue.owner and g.user in queue.owner.owners)): details = { 'queuename': queue_name, 'username': g.user.email, } try: pulse_management.delete_queue(vhost='/', queue=queue.name) except pulse_management.PulseManagementException as e: details['message'] = str(e) mozdef.log( mozdef.ERROR, mozdef.OTHER, 'Error deleting queue', details=details, tags=['queue'], ) return jsonify(ok=False) mozdef.log( mozdef.NOTICE, mozdef.OTHER, 'Deleting queue', details=details, tags=['queue'], ) db_session.delete(queue) db_session.commit() return jsonify(ok=True) return jsonify(ok=False)
def monitor_queues(self, queues, all_bindings): for queue_data in queues: # Updating the queue's information in the database (owner, size). queue = self.update_queue_information(queue_data, all_bindings) if not queue: continue # If a queue is over the deletion size and ``unbounded`` is # False (the default), then delete it regardless of it having # an owner or not # If ``unbounded`` is True, then let it grow indefinitely. if queue.size > self.del_queue_size and not queue.unbounded: logging.warning("Queue '{0}' deleted. Queue size = {1}; " "del_queue_size = {2}".format( queue.name, queue.size, self.del_queue_size)) if queue.owner and queue.owner.owners: self.deletion_email(queue.owner.owners, queue_data) if self.on_delete: self.on_delete(queue.name) pulse_management.delete_queue(vhost=queue_data['vhost'], queue=queue.name) db_session.delete(queue) db_session.commit() continue if queue.owner is None or not queue.owner.owners: continue if queue.size > self.warn_queue_size and not queue.warned: logging.warning("Warning queue '{0}' owner. Queue size = " "{1}; warn_queue_size = {2}".format( queue.name, queue.size, self.warn_queue_size)) queue.warned = True if self.on_warn: self.on_warn(queue.name) self.warning_email(queue.owner.owners, queue_data) elif queue.size <= self.warn_queue_size and queue.warned: # A previously warned queue got out of the warning threshold; # its owner should not be warned again. logging.warning("Queue '{0}' was in warning zone but is OK " "now".format(queue.name, queue.size, self.del_queue_size)) queue.warned = False self.back_to_normal_email(queue.owner.owners, queue_data) # Commit any changes to the queue. db_session.add(queue) db_session.commit()
def monitor_queues(self, queues): for queue_data in queues: # Updating the queue's information in the database (owner, size). queue = self.update_queue_information(queue_data) if not queue: continue # If a queue is over the deletion size, regardless of it having an # owner or not, delete it. if queue.size > self.del_queue_size: logging.warning("Queue '{0}' deleted. Queue size = {1}; " "del_queue_size = {2}".format( queue.name, queue.size, self.del_queue_size)) if queue.owner and queue.owner.owner: self.deletion_email(queue.owner.owner, queue_data) if self.on_delete: self.on_delete(queue.name) pulse_management.delete_queue(vhost=queue_data['vhost'], queue=queue.name) db_session.delete(queue) db_session.commit() continue if queue.owner is None or queue.owner.owner is None: continue if queue.size > self.warn_queue_size and not queue.warned: logging.warning("Warning queue '{0}' owner. Queue size = " "{1}; warn_queue_size = {2}".format( queue.name, queue.size, self.warn_queue_size)) queue.warned = True if self.on_warn: self.on_warn(queue.name) self.warning_email(queue.owner.owner, queue_data) elif queue.size <= self.warn_queue_size and queue.warned: # A previously warned queue got out of the warning threshold; # its owner should not be warned again. logging.warning("Queue '{0}' was in warning zone but is OK " "now".format(queue.name, queue.size, self.del_queue_size)) queue.warned = False self.back_to_normal_email(queue.owner.owner, queue_data) # Commit any changes to the queue. db_session.add(queue) db_session.commit()
def delete_queue(queue_name): queue = Queue.query.get(queue_name) if queue and (g.user.admin or (queue.owner and g.user in queue.owner.owners)): try: pulse_management.delete_queue(vhost='/', queue=queue.name) except pulse_management.PulseManagementException as e: logging.warning("Couldn't delete the queue '{0}' on " "rabbitmq: {1}".format(queue_name, e)) return jsonify(ok=False) db_session.delete(queue) db_session.commit() return jsonify(ok=True) return jsonify(ok=False)
def delete_queue(queue_name): queue = Queue.query.get(queue_name) if queue and (g.user.admin or (queue.owner and queue.owner.owner == g.user)): try: pulse_management.delete_queue(vhost='/', queue=queue.name) except pulse_management.PulseManagementException as e: logging.warning("Couldn't delete the queue '{0}' on " "rabbitmq: {1}".format(queue_name, e)) return jsonify(ok=False) db_session.delete(queue) db_session.commit() return jsonify(ok=True) return jsonify(ok=False)
def tearDown(self): self._terminate_consumer_proc() # Just in case. for queue in Queue.query.all(): pulse_management.delete_queue(vhost=DEFAULT_RABBIT_VHOST, queue=queue.name)
def tearDown(self): self._terminate_consumer_proc() # Just in case. for queue in Queue.query.all(): pulse_management.delete_queue(vhost=DEFAULT_RABBIT_VHOST, queue=queue.name)