- eveai_app adapted to handle removal of complex rewrite rules in nginx.conf, which cannot be achieved in Ingress

This commit is contained in:
Josako
2025-09-06 16:53:51 +02:00
parent b812aedb81
commit 5c20e6c1f9
28 changed files with 341 additions and 336 deletions

View File

@@ -44,7 +44,7 @@ def handle_trigger_action():
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('partner_bp.trigger_actions'))
return redirect(prefixed_url_for('partner_bp.trigger_actions', for_redirect=True))
# Partner Management ------------------------------------------------------------------------------
@@ -67,7 +67,7 @@ def edit_partner(partner_id):
refresh_session_partner(partner.id)
return redirect(
prefixed_url_for('partner_bp.edit_partner',
partner_id=partner.id)) # Assuming there's a user profile view to redirect to
partner_id=partner.id, for_redirect=True)) # Assuming there's a user profile view to redirect to
else:
form_validation_failed(request, form)
@@ -88,11 +88,11 @@ def handle_partner_selection():
if action == 'create_partner':
try:
partner_id = register_partner_from_tenant(session['tenant']['id'])
return redirect(prefixed_url_for('partner_bp.edit_partner', partner_id=partner_id, ))
return redirect(prefixed_url_for('partner_bp.edit_partner', partner_id=partner_id, for_redirect=True ))
except EveAIException as e:
current_app.logger.error(f'Error registering partner for tenant {session['tenant']['id']}: {str(e)}')
flash('Error Registering Partner for Selected Tenant', 'danger')
return redirect(prefixed_url_for('partner_bp.partners'))
return redirect(prefixed_url_for('partner_bp.partners', for_redirect=True))
partner_identification = request.form.get('selected_row')
partner_id = ast.literal_eval(partner_identification).get('value')
partner = Partner.query.get_or_404(partner_id)
@@ -101,9 +101,9 @@ def handle_partner_selection():
current_app.logger.info(f"Setting session partner: {partner.id}")
session['partner'] = partner.to_dict()
elif action == 'edit_partner':
return redirect(prefixed_url_for('partner_bp.edit_partner', partner_id=partner_id))
return redirect(prefixed_url_for('partner_bp.edit_partner', partner_id=partner_id, for_redirect=True))
return redirect(prefixed_url_for('partner_bp.partners'))
return redirect(prefixed_url_for('partner_bp.partners', for_redirect=True))
# Partner Servide Management ----------------------------------------------------------------------
@@ -116,7 +116,7 @@ def partner_service():
partner = session.get('partner', None)
if not partner:
flash('No partner has been selected. Set partner before adding services.', 'warning')
return redirect(prefixed_url_for('partner_bp.partners'))
return redirect(prefixed_url_for('partner_bp.partners', for_redirect=True))
partner_id = partner['id']
new_partner_service = PartnerService()
form.populate_obj(new_partner_service)
@@ -130,7 +130,7 @@ def partner_service():
current_app.logger.info(f"Partner Service {new_partner_service.name} added successfully for {partner_id}")
# Step 2 of the creation process (depending on type)
return redirect(prefixed_url_for('partner_bp.partner_service',
partner_service_id=new_partner_service.id))
partner_service_id=new_partner_service.id, for_redirect=True))
except SQLAlchemyError as e:
db.session.rollback()
flash(f'Failed to add Partner Service: {str(e)}', 'danger')
@@ -172,7 +172,7 @@ def edit_partner_service(partner_service_id):
return render_template('partner/edit_partner_service.html', form=form,
partner_service_id=partner_service_id)
return redirect(prefixed_url_for('partner_bp.partner_services'))
return redirect(prefixed_url_for('partner_bp.partner_services', for_redirect=True))
else:
form_validation_failed(request, form)
@@ -186,7 +186,7 @@ def partner_services():
partner = session.get('partner', None)
if not partner:
flash('No partner has been selected. Set partner before adding services.', 'warning')
return redirect(prefixed_url_for('partner_bp.partners'))
return redirect(prefixed_url_for('partner_bp.partners', for_redirect=True))
partner_id = session['partner']['id']
config = get_partner_services_list_view(partner_id)
@@ -198,20 +198,20 @@ def partner_services():
def handle_partner_service_selection():
action = request.form['action']
if action == 'create_partner_service':
return redirect(prefixed_url_for('partner_bp.partner_service'))
return redirect(prefixed_url_for('partner_bp.partner_service', for_redirect=True))
partner_service_identification = request.form.get('selected_row')
partner_service_id = ast.literal_eval(partner_service_identification).get('value')
if action == 'edit_partner_service':
return redirect(prefixed_url_for('partner_bp.edit_partner_service',
partner_service_id=partner_service_id))
partner_service_id=partner_service_id, for_redirect=True))
elif action == 'add_partner_service_for_tenant':
add_partner_service_for_tenant(partner_service_id)
return redirect(prefixed_url_for('partner_bp.edit_partner_service',
partner_service_id=partner_service_id))
partner_service_id=partner_service_id, for_redirect=True))
return redirect(prefixed_url_for('partner_bp.partner_services'))
return redirect(prefixed_url_for('partner_bp.partner_services', for_redirect=True))
# Utility Functions
@@ -248,7 +248,7 @@ def add_partner_service_for_tenant(partner_service_id):
tenant = session.get('tenant', None)
if not tenant:
flash('No tenant has been selected. Set tenant before adding services.', 'warning')
return redirect(prefixed_url_for('user_bp.tenants'))
return redirect(prefixed_url_for('user_bp.tenants', for_redirect=True))
tenant_id = tenant['id']
@@ -257,7 +257,7 @@ def add_partner_service_for_tenant(partner_service_id):
partner_service = PartnerService.query.get(partner_service_id)
if not partner_service:
flash(f'Partner service with ID {partner_service_id} not found.', 'danger')
return redirect(prefixed_url_for('partner_bp.partner_services'))
return redirect(prefixed_url_for('partner_bp.partner_services', for_redirect=True))
# Check if the association already exists
existing = PartnerTenant.query.filter_by(
@@ -267,7 +267,7 @@ def add_partner_service_for_tenant(partner_service_id):
if existing:
flash(f'This tenant already has access to this partner service.', 'warning')
return redirect(prefixed_url_for('partner_bp.partner_services'))
return redirect(prefixed_url_for('partner_bp.partner_services', for_redirect=True))
# Create new association
new_partner_tenant = PartnerTenant(
@@ -289,13 +289,13 @@ def add_partner_service_for_tenant(partner_service_id):
partner_name = partner_tenant.name if partner_tenant else 'Unknown Partner'
flash(f'Successfully added {partner_service.type} service from {partner_name} to this tenant.', 'success')
return redirect(prefixed_url_for('partner_bp.partner_services'))
return redirect(prefixed_url_for('partner_bp.partner_services', for_redirect=True))
except SQLAlchemyError as e:
db.session.rollback()
current_app.logger.error(f"Database error adding partner service: {str(e)}")
flash(f'Error adding partner service: {str(e)}', 'danger')
return redirect(prefixed_url_for('partner_bp.partner_services'))
return redirect(prefixed_url_for('partner_bp.partner_services', for_redirect=True))
def refresh_session_partner(partner_id):