Adapt Import Clients to work with several ogServers

This commit makes Import Clients view to use ogServer field from
scopesForm to send the command to the correct ogServer.
multi-ogserver
Javier Sánchez Parra 2022-08-22 17:02:13 +02:00
parent 0466b009ae
commit 3dea9115b1
2 changed files with 6 additions and 2 deletions

View File

@ -121,6 +121,7 @@ class ClientDetailsForm(FlaskForm):
create = SubmitField(label=_l('Create'))
class ImportClientsForm(FlaskForm):
server = HiddenField()
room = SelectField(label=_l('Room'))
dhcpd_conf = TextAreaField(label=_l('dhcpd configuration'))
import_btn = SubmitField(label=_l('Import'))

View File

@ -893,7 +893,9 @@ def action_clients_import_get():
return redirect(url_for('scopes'))
form = ImportClientsForm()
r = g.server.get('/scopes')
form.server.data = params['scope-server']
server = get_server_from_ip_port(params['scope-server'])
r = server.get('/scopes')
rooms = parse_scopes_from_tree(r.json(), 'room')
selected_room_id = params['scope-room']
selected_room = [(room['id'], room['name'] + " (" + room['parent'] + ")")
@ -926,6 +928,7 @@ OG_CLIENT_DEFAULT_REMOTE = False
@login_required
def action_clients_import_post():
form = ImportClientsForm(request.form)
server = get_server_from_ip_port(form.server.data)
clients = re.findall(OG_REGEX_DHCPD_CONF, form.dhcpd_conf.data)
if not clients:
flash(_('No clients found. Check the dhcpd.conf file.'),
@ -943,7 +946,7 @@ def action_clients_import_post():
payload['name'] = client[0]
payload['mac'] = client[1].replace(':', '')
payload['ip'] = client[2]
resp = g.server.post('/client/add', payload)
resp = server.post('/client/add', payload)
if resp.status_code != requests.codes.ok:
flash(_('ogServer: error adding client {}').format(client[0]),
category='error')