Пример #1
0
def notification_delete():
    error = []
    if ('notification' not in request.values or
        not request.values['notification']):
       error.append('Notification is required')
    if ('queue' not in request.values or
        not request.values['queue']):
       error.append('Queue is required')

    if not error:
        queue = request.values['queue'];
        notification = request.values['notification'];
        Queue.delete_notification(queue, notification)

    if error: 
        return jsonify(ok=False, message=', '.join(error))
    else:
        return jsonify(ok=True)
Пример #2
0
    def update_queue_information(self, queue_data):
        if not "messages" in queue_data:
            # FIXME: We should do something here, probably delete the queue,
            # as it's in a weird state.  More investigation is required.
            # See bug 1066338.
            return None

        q_size, q_name, q_durable = (queue_data["messages"], queue_data["name"], queue_data["durable"])
        queue = Queue.query.filter(Queue.name == q_name).first()

        # If the queue doesn't exist in the db, create it.
        if queue is None:
            m = re.match("queue/([^/]+)/", q_name)
            logging.info("New queue '{0}' encountered. " "Adding to the database.".format(q_name))
            if m:
                owner_name = m.group(1)
                owner = PulseUser.query.filter(PulseUser.username == owner_name).first()

                # If the queue was created by a user that isn't in the
                # pulseguardian database, skip the queue.
                if owner is None:
                    logging.info(
                        "Queue '{0}' owner, {1}, isn't in the db. Creating " "the user.".format(q_name, owner_name)
                    )
                    owner = PulseUser.new_user(owner_name)

                # Assign the user to the queue.
                logging.info("Assigning queue '{0}' to user " "{1}.".format(q_name, owner))
            else:
                logging.warn("'{0}' is not a standard queue name.".format(q_name))
                owner = None
            queue = Queue(name=q_name, owner=owner)

        # Update the saved queue size.
        queue.size = q_size
        queue.durable = q_durable
        db_session.add(queue)
        db_session.commit()
        return queue
Пример #3
0
 def _sendemail(self, subject, body, user, queue_data):
     to_addrs = []
     to_addrs.append(user.email.address)
     to_addrs.append(Queue.get_notifications(queue_data["name"]))
     sendemail(
         subject=subject,
         from_addr=config.email_from,
         to_addrs=to_addrs,
         username=config.email_account,
         password=config.email_password,
         text_data=body,
         server=config.email_smtp_server,
         port=config.email_smtp_port,
         use_ssl=config.email_ssl,
     )
Пример #4
0
def notification_create():
    error = []
    if ('email' not in request.values or
        not request.values['email']):
       error.append('Email is required')
    if ('queue' not in request.values or
        not request.values['queue']):
       error.append('Queue is required')

    if not error:
        email = request.values['email']
        queue = request.values['queue']
        queue_query = Queue.query.filter(Queue.id==queue)
        if not queue_query.count():
            error.append('Queue is not exist')
        elif Queue.notification_exists(queue, email):
            error.append('This is email address is exist')
        else:
            Queue.create_notification(queue, email)

    if error: 
        return jsonify(ok=False, message=', '.join(error))
    else:
        return jsonify(ok=True)