From f9f2e0b15b69c17b4627723d62280718a0a6af92 Mon Sep 17 00:00:00 2001 From: Loic Baron Date: Fri, 9 Feb 2018 17:46:51 +0100 Subject: [PATCH] FIT IoT-Lab optimized get_users with email filter --- sfa/iotlab/iotlabdriver.py | 8 ++++---- sfa/iotlab/iotlabshell.py | 8 ++++++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/sfa/iotlab/iotlabdriver.py b/sfa/iotlab/iotlabdriver.py index fc7c7c27..d43395c3 100644 --- a/sfa/iotlab/iotlabdriver.py +++ b/sfa/iotlab/iotlabdriver.py @@ -99,9 +99,9 @@ class IotLabDriver(Driver): 'geni_slivers': desc['geni_slivers']} return status - def _get_users(self): + def _get_users(self, email=None): """ Get all users """ - ret = self.shell.get_users() + ret = self.shell.get_users(email) if 'error' in ret: return None return ret @@ -110,10 +110,10 @@ class IotLabDriver(Driver): """ Get user login with email """ email = caller_user['email'] # ensure user exist in LDAP tree - users = self._get_users() + users = self._get_users(email) if users and email not in users: self.shell.add_user(caller_user) - users = self._get_users() + users = self._get_users(email) if users and email in users: return users[email]['login'] else: diff --git a/sfa/iotlab/iotlabshell.py b/sfa/iotlab/iotlabshell.py index 101de84a..0741c55a 100644 --- a/sfa/iotlab/iotlabshell.py +++ b/sfa/iotlab/iotlabshell.py @@ -52,7 +52,7 @@ class IotLABShell(object): nodes_dict[node['network_address']] = node return nodes_dict - def get_users(self): + def get_users(self, email=None): """ Get all LDAP users :returns: users with LDAP attributes @@ -79,7 +79,10 @@ class IotLABShell(object): logger.warning("iotlashell get_users") users_dict = {} try: - users = self.api.method('admin/users') + if email: + users = self.api.method('admin/users?email=%s' % email) + else: + users = self.api.method('admin/users') except HTTPError as err: logger.warning("iotlashell get_users error %s" % err.reason) return {'error': err.reason} @@ -105,6 +108,7 @@ class IotLABShell(object): files=exp_file) except HTTPError as err: logger.warning("iotlashell reserve_nodes error %s" % err.reason) + logger.error(err) return {'error': err.reason} def get_reserved_nodes(self): -- 2.43.0