summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJavier Sánchez Parra <jsanchez@soleta.eu>2022-08-22 17:02:13 +0200
committerJavier Sánchez Parra <jsanchez@soleta.eu>2022-09-27 09:48:35 +0200
commit0db56d5eee7d7d73073e904bb41cc1960ec1e29e (patch)
tree80388f32990018657762fe721b6fed8a1444ed50
parentf16b1a0347bb587cd4116faf246d4a5176af3cfd (diff)
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.
-rw-r--r--ogcp/forms/action_forms.py1
-rw-r--r--ogcp/views.py7
2 files changed, 6 insertions, 2 deletions
diff --git a/ogcp/forms/action_forms.py b/ogcp/forms/action_forms.py
index c81b326..40efd49 100644
--- a/ogcp/forms/action_forms.py
+++ b/ogcp/forms/action_forms.py
@@ -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'))
diff --git a/ogcp/views.py b/ogcp/views.py
index 560ff5c..af1df47 100644
--- a/ogcp/views.py
+++ b/ogcp/views.py
@@ -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')