From: Loic Baron Date: Fri, 9 Feb 2018 17:27:55 +0000 (+0100) Subject: FIT IoT-Lab optimized get_users with email filter X-Git-Tag: sfa-3.1-22~4 X-Git-Url: http://git.onelab.eu/?p=sfa.git;a=commitdiff_plain;h=cb225b4c35d84d89f9318f210fb65ef3b08da9d6 FIT IoT-Lab optimized get_users with email filter --- 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..f237dded 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} @@ -94,6 +97,7 @@ class IotLABShell(object): """ # pylint:disable=W0212,R0913,E1123 logger.warning("iotlashell reserve_nodes") + logger.info("login=%s, exp_name=%s, nodes_list=%s, start_time=%s, duration=%s" % (login, exp_name, nodes_list, start_time, duration)) exp_file = helpers.FilesDict() _experiment = experiment._Experiment(exp_name, duration, start_time) _experiment.type = 'physical'