- View License Usages - Celery Beat container added - First schedule in Celery Beat for calculating usage (hourly) - repopack can now split for different components - Various fixes as consequece of changing file_location / file_name ==> bucket_name / object_name - Celery Routing / Queuing updated
40 lines
1.7 KiB
Python
40 lines
1.7 KiB
Python
import uuid
|
|
from datetime import datetime as dt, timezone as tz
|
|
from flask import request, redirect, flash, render_template, Blueprint, session, current_app, jsonify
|
|
from flask_security import hash_password, roles_required, roles_accepted, current_user
|
|
from itsdangerous import URLSafeTimedSerializer
|
|
from sqlalchemy.exc import SQLAlchemyError
|
|
|
|
from common.utils.celery_utils import current_celery
|
|
from common.utils.view_assistants import prepare_table_for_macro, form_validation_failed
|
|
from common.utils.nginx_utils import prefixed_url_for
|
|
from .administration_forms import TriggerActionForm
|
|
|
|
administration_bp = Blueprint('administration_bp', __name__, url_prefix='/administration')
|
|
|
|
|
|
@administration_bp.route('/trigger_actions', methods=['GET'])
|
|
@roles_accepted('Super User')
|
|
def trigger_actions():
|
|
form = TriggerActionForm()
|
|
return render_template('administration/trigger_actions.html', form=form)
|
|
|
|
|
|
@administration_bp.route('/handle_trigger_action', methods=['POST'])
|
|
@roles_accepted('Super User')
|
|
def handle_trigger_action():
|
|
action = request.form['action']
|
|
match action:
|
|
case 'update_usages':
|
|
try:
|
|
# Use send_task to trigger the task since it's part of another component (eveai_entitlements)
|
|
task = current_celery.send_task('update_usages', queue='entitlements')
|
|
|
|
current_app.logger.info(f"Usage update task triggered: {task.id}")
|
|
flash('Usage update task has been triggered successfully!', 'success')
|
|
except Exception as e:
|
|
current_app.logger.error(f"Failed to trigger usage update task: {str(e)}")
|
|
flash(f'Failed to trigger usage update: {str(e)}', 'danger')
|
|
|
|
return redirect(prefixed_url_for('administration_bp.trigger_actions'))
|