def getVars(self): vars = WJSBase.getVars( self ) roomsWithH323IP = [] if self._conf: vars["ConferenceId"] = self._conf.getId() # Code to get a list of H.323 Videoconference-able rooms # by querying Indico's RB database location = self._conf.getLocation() if location and location.getName(): locationName = location.getName() if Config.getInstance().getIsRoomBookingActive(): attr_name = getCERNMCUOptionValueByName('H323_IP_att_name') for room, ip in Room.find_with_attribute(attr_name): if validIP(ip): roomsWithH323IP.append(RoomWithH323(locationName, room.full_name, ip)) else: vars["ConferenceId"] = "" roomsWithH323IP.sort(key=lambda r: (r.getLocation(), r.getName())) vars["RoomsWithH323IP"] = roomsWithH323IP return vars
def getVars(self): vars = WJSBase.getVars( self ) vars["MinStartDate"] = formatDateTime(getMinStartDate(self._conf)) vars["MaxEndDate"] = formatDateTime(getMaxEndDate(self._conf)) vars["ExtraMinutesBefore"] = getCERNMCUOptionValueByName("extraMinutesBefore") vars["ExtraMinutesAfter"] = getCERNMCUOptionValueByName("extraMinutesAfter") # Code to retrieve the event's location and room in order to include the event's room # as an initial participant location = self._conf.getLocation() room = self._conf.getRoom() if location and room and location.getName() and room.getName() and location.getName().strip() and room.getName().strip(): locationName = location.getName() roomName = room.getName() vars["IncludeInitialRoom"] = True vars["IPRetrievalResult"] = -1 # 0 = OK, 1 = room without H323 IP, 2 = room with invalid H323 IP, 3 = connection to RB problem, 4 = another unknown problem vars["InitialRoomName"] = roomName if self._conf.getLocation(): vars["InitialRoomInstitution"] = locationName else: vars["InitialRoomInstitution"] = "" if not Config.getInstance().getIsRoomBookingActive(): room_ip = "Please enter IP" vars["IPRetrievalResult"] = 3 else: rb_room = Room.find_first(Location.name == locationName, Room.name == roomName, _join=Room.location) if rb_room is None: room_ip = "Please enter IP." vars["IPRetrievalResult"] = 1 else: vars["InitialRoomName"] = rb_room.full_name attr_name = getCERNMCUOptionValueByName('H323_IP_att_name') room_ip = rb_room.get_attribute_value(attr_name, '').strip() if not room_ip: room_ip = "Please enter IP." vars["IPRetrievalResult"] = 1 elif not validIP(room_ip): vars["IPRetrievalResult"] = 2 else: vars["IPRetrievalResult"] = 0 vars["InitialRoomIP"] = room_ip else: vars["IncludeInitialRoom"] = False vars["IPRetrieved"] = False vars["InitialRoomName"] = "" vars["InitialRoomInstitution"] = "" vars["InitialRoomIP"] = "" vars["CERNGatekeeperPrefix"] = getCERNMCUOptionValueByName("CERNGatekeeperPrefix") vars["GDSPrefix"] = getCERNMCUOptionValueByName("GDSPrefix") vars["MCU_IP"] = getCERNMCUOptionValueByName("MCU_IP") vars["Phone_number"] = getCERNMCUOptionValueByName("Phone_number") return vars
def _process( self ): ipAddress = self._params.get('ipAddress', None) if ipAddress: if not utils.validIP(ipAddress): raise MaKaCError("IP Address %s is not valid!" % ipAddress) else: minfo = info.HelperMaKaCInfo.getMaKaCInfoInstance() ip_acl_mgr = minfo.getIPBasedACLMgr() ip_acl_mgr.grant_full_access(ipAddress) self._redirect(urlHandlers.UHIPBasedACL.getURL())
def _process(self): ipAddress = self._params.get('ipAddress', None) if ipAddress: if not utils.validIP(ipAddress): raise MaKaCError("IP Address %s is not valid!" % ipAddress) else: minfo = info.HelperMaKaCInfo.getMaKaCInfoInstance() ipList = minfo.getOAIPrivateHarvesterList() ipList.append(ipAddress) minfo.setOAIPrivateHarvesterList(ipList) self._redirect(urlHandlers.UHOAIPrivateConfig.getURL())
def _process( self ): ipAddress = self._params.get('ipAddress', None) if ipAddress: if not utils.validIP(ipAddress): raise MaKaCError("IP Address %s is not valid!" % ipAddress) else: minfo = info.HelperMaKaCInfo.getMaKaCInfoInstance() ipList = minfo.getOAIPrivateHarvesterList() ipList.append(ipAddress) minfo.setOAIPrivateHarvesterList(ipList) self._redirect(urlHandlers.UHOAIPrivateConfig.getURL())
def getVars(self): vars = WJSBase.getVars( self ) vars["MinStartDate"] = formatDateTime(self._conf.getAdjustedStartDate()) vars["MaxEndDate"] = formatDateTime(self._conf.getAdjustedEndDate()) # Code to retrieve the event's location and room in order to include the event's room # as an initial participant location = self._conf.getLocation() room = self._conf.getRoom() if location and room and location.getName() and room.getName() and location.getName().strip() and room.getName().strip(): locationName = location.getName() roomName = room.getName() vars["IncludeInitialRoom"] = True vars["IPRetrievalResult"] = -1 # 0 = OK, 1 = room without H323 IP, 2 = room with invalid H323 IP, 3 = connection to RB problem, 4 = another unknown problem vars["InitialRoomName"] = roomName if self._conf.getLocation(): vars["InitialRoomInstitution"] = locationName else: vars["InitialRoomInstitution"] = "" # TODO: get IP of room from a plugin option instead of querying RB DB every time try: minfo = info.HelperMaKaCInfo.getMaKaCInfoInstance() if minfo.getRoomBookingModuleActive(): Logger.get("CERNMCU").info("Connecting with Room Booking DB to get a room's H323 IP") CrossLocationDB.connect() Logger.get("CERNMCU").info("Connection successful") attName = getCERNMCUOptionValueByName("H323_IP_att_name") try: returnedRooms = CrossLocationQueries.getRooms( location = locationName, roomName = roomName ) if isinstance(returnedRooms, list): if len(returnedRooms) == 0: returnedRoom = None else: returnedRoom = returnedRooms[0] else: returnedRoom = returnedRooms if (returnedRoom != None) and (attName in returnedRoom.customAtts): initialRoomIp = returnedRoom.customAtts[attName] if (initialRoomIp.strip() == ""): vars["IPRetrievalResult"] = 1 elif not validIP(initialRoomIp): vars["IPRetrievalResult"] = 2 else: vars["IPRetrievalResult"] = 0 else: initialRoomIp = "IP not defined for this room." vars["IPRetrievalResult"] = 2 except AttributeError: #CrossLocationQueries.getRooms fails because it does not handle location names that are not in the DB initialRoomIp = "Please enter IP" vars["IPRetrievalResult"] = 1 except Exception, e: initialRoomIp = "IP not found." vars["IPRetrievalResult"] = 4 Logger.get("CERNMCU").warning("Location: " + locationName + "Problem with CrossLocationQueries when retrieving the list of all rooms with a H323 IP: " + str(e)) else: initialRoomIp = "Please enter IP" vars["IPRetrievalResult"] = 3 Logger.get("CERNMCU").info("Tried to retrieve a room's H323 IP, but Room Booking module was not active.")
def getVars(self): vars = WJSBase.getVars( self ) roomsWithH323IP = [] if self._conf: # Code to get a list of H.323 Videoconference-able rooms # by querying Indico's RB database location = self._conf.getLocation() if location and location.getName(): locationName = location.getName() # TODO: get list of room from a plugin option instead of querying the RB DB everytime try: minfo = info.HelperMaKaCInfo.getMaKaCInfoInstance() if minfo.getRoomBookingModuleActive(): Logger.get("CERNMCU").info("Connecting with Room Booking DB to get the list of all rooms with a H323 IP") CrossLocationDB.connect() Logger.get("CERNMCU").info("Connection successful") attName = getCERNMCUOptionValueByName("H323_IP_att_name") try: returnedRooms = CrossLocationQueries.getRooms( location = locationName, customAtts = [{"name":attName, "allowEmpty":False, "filter": (lambda ip: validIP(ip))}] ) if not isinstance(returnedRooms, list): if returnedRooms: returnedRooms = [returnedRooms] else: returnedRooms = [] for room in returnedRooms: roomsWithH323IP.append(RoomWithH323(locationName, room._getName(), room.customAtts[attName])) except AttributeError: #CrossLocationQueries.getRooms fails because it does not handle location names that are not in the DB pass except Exception, e: Logger.get("CERNMCU").warning("Location: " + locationName + "Problem with CrossLocationQueries when retrieving the list of all rooms with a H323 IP: " + str(e)) except MaKaCError, e: Logger.get("CERNMCU").warning("Location: " + locationName + "MaKaCError when retrieving the list of all rooms with a H323 IP: " + e.getMsg()) except Exception, e: Logger.get("CERNMCU").warning("Location: " + locationName + "Exception when retrieving the list of all rooms with a H323 IP: " + str(e))