Adapt Delete center to work with several ogServers

This commit makes Delete center view to use ogServer field from
scopesForm to send the command to the correct ogServer.
async-tree
Javier Sánchez Parra 2022-08-24 12:43:01 +02:00
parent 43d2df0e7d
commit 873bee30aa
2 changed files with 6 additions and 2 deletions

View File

@ -163,6 +163,7 @@ class CenterForm(FlaskForm):
submit = SubmitField(label=_l('Submit'))
class DeleteCenterForm(FlaskForm):
server = HiddenField()
center = SelectField(label=_l('Center'),
validators=[InputRequired()])
submit = SubmitField(label=_l('Submit'))

View File

@ -1276,8 +1276,9 @@ def action_center_add():
def action_center_delete():
form = DeleteCenterForm(request.form)
if request.method == 'POST':
server = get_server_from_ip_port(form.server.data)
payload = {"id": form.center.data}
r = g.server.post('/center/delete', payload)
r = server.post('/center/delete', payload)
if r.status_code != requests.codes.ok:
flash(_('Server replied with error code when deleting the center'),
category='error')
@ -1289,13 +1290,15 @@ def action_center_delete():
if not params.get('scope-center'):
flash(_('Please, select one center'), category='error')
return redirect(url_for('scopes'))
r = g.server.get('/scopes')
server = get_server_from_ip_port(params['scope-server'])
r = server.get('/scopes')
selected_center_id = params['scope-center']
centers = parse_scopes_from_tree(r.json(), 'center')
selected_center = [(center['id'], center['name']) for center in centers
if center['id'] == int(selected_center_id)]
form.center.choices = selected_center
form.center.render_kw = {'readonly': True}
form.server.data = params['scope-server']
scopes, clients = get_scopes()
return render_template('actions/delete_center.html', form=form,
scopes=scopes)