From 9dfa647223de3a7626209eb49d534c4e282da7f0 Mon Sep 17 00:00:00 2001 From: Ruben Gaspar Date: Wed, 14 Sep 2016 19:11:24 +0200 Subject: [PATCH] VC/Vidyo: retrieve right room --- vc_vidyo/indico_vc_vidyo/api/client.py | 17 ++++++++++++++++- vc_vidyo/indico_vc_vidyo/plugin.py | 4 +++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/vc_vidyo/indico_vc_vidyo/api/client.py b/vc_vidyo/indico_vc_vidyo/api/client.py index 0d16069..bf319fb 100644 --- a/vc_vidyo/indico_vc_vidyo/api/client.py +++ b/vc_vidyo/indico_vc_vidyo/api/client.py @@ -77,11 +77,26 @@ class AdminClient(ClientBase): @raises_api_error def find_room(self, extension): + from indico_vc_vidyo.plugin import VidyoPlugin filter_ = self.client.factory.create('Filter') filter_.query = extension + filter_.limit = 40 filter_.dir = 'DESC' - return self.soap.getRooms(filter_).room + counter = 0 + + while True: + filter_.start = counter * filter_.limit + response = self.soap.getRooms(filter_) + if not response.total: + return None + for room in response.room: + if int(room.extension) == int(extension): + VidyoPlugin.logger.debug('Room: %s has been found.', room) + return room + else: + VidyoPlugin.logger.debug('Dismissing room extension %s', room.extension) + counter += 1 @raises_api_error def get_room(self, vidyo_id): diff --git a/vc_vidyo/indico_vc_vidyo/plugin.py b/vc_vidyo/indico_vc_vidyo/plugin.py index eb95c66..3fac4bf 100644 --- a/vc_vidyo/indico_vc_vidyo/plugin.py +++ b/vc_vidyo/indico_vc_vidyo/plugin.py @@ -203,8 +203,10 @@ class VidyoPlugin(VCPluginMixin, IndicoPlugin): else: # get room back, in order to fetch Vidyo-set parameters - created_room = client.find_room(extension)[0] + created_room = client.find_room(extension) + if not created_room: + raise VCRoomNotFoundError(_("Could not find newly created room in Vidyo")) vc_room.data.update({ 'vidyo_id': unicode(created_room.roomID), 'url': created_room.RoomMode.roomURL,