def getRoomsByExample(): Test.dalManager.connect() # By ID room = RoomBase.getRooms( roomID = 176 ) assert( room.name == '4-1-021' ) # By other attributes roomEx = Factory.newRoom() roomEx.site = 'prevessin' roomEx.comments = 'res' rooms = RoomBase.getRooms( roomExample = roomEx ) assert( len( rooms ) == 8 ) # 20 roomEx = Factory.newRoom() roomEx.capacity = 20 rooms = RoomBase.getRooms( roomExample = roomEx ) assert( len( rooms ) == 26 ) roomEx = Factory.newRoom() roomEx.isReservable = True roomEx.setEquipment( [ 'Video projector', 'Wireless' ] ) rooms = RoomBase.getRooms( roomExample = roomEx ) assert( len( rooms ) == 33 ) Test.dalManager.disconnect()
def remove( self ): """ Documentation in base class. """ RoomBase.remove( self ) roomsBTree = Room.getRoot() del roomsBTree[self.id] if Catalog.getIdx('user_room').has_obj(self.guid): Catalog.getIdx('user_room').unindex_obj(self.guid)
def getRoomsByExample(): Test.dalManager.connect() # By ID room = RoomBase.getRooms(roomID=176) assert room.name == "4-1-021" # By other attributes roomEx = Factory.newRoom() roomEx.site = "prevessin" roomEx.comments = "res" rooms = RoomBase.getRooms(roomExample=roomEx) assert len(rooms) == 8 # 20 roomEx = Factory.newRoom() roomEx.capacity = 20 rooms = RoomBase.getRooms(roomExample=roomEx) assert len(rooms) == 26 roomEx = Factory.newRoom() roomEx.isReservable = True roomEx.setEquipment(["Video projector", "Wireless"]) rooms = RoomBase.getRooms(roomExample=roomEx) assert len(rooms) == 33 Test.dalManager.disconnect()
def remove( self ): """ Documentation in base class. """ RoomBase.remove( self ) roomsBTree = Room.getRoot() del roomsBTree[self.id] from MaKaC.user import AvatarHolder AvatarHolder().invalidateRoomManagerIdList()
def insert( self ): """ Documentation in base class. """ RoomBase.insert( self ) roomsBTree = Room.getRoot() # Ensure ID if self.id == None: # Maximum ID + 1 if len( roomsBTree ) > 0: self.id = roomsBTree.maxKey() + 1 else: self.id = 1 # Can not use maxKey for 1st record in a tree # Add self to the BTree roomsBTree[self.id] = self
def update( self ): """ Documentation in base class. """ RoomBase.update( self ) # Check Simba mailing list listName = self.customAtts.get( 'Simba List' ) if listName: from MaKaC.user import GroupHolder groups = GroupHolder().match( { 'name': listName }, forceWithoutExtAuth = True ) if not groups: groups = GroupHolder().match( { 'name': listName } ) if not groups: self.customAtts['Simba List'] = 'Error: unknown mailing list' self._p_changed = True
def getRoomsByFreeText(): Test.dalManager.connect() rooms = RoomBase.getRooms( freeText = 'meyrin vrvs' ) # 78828 assert( len( rooms ) == 12 ) Test.dalManager.disconnect()
def QueryConference(conference, bookingId): booking = conference.getBookingById(bookingId) if booking == None: raise ServiceError("Invalid hermes id.") #mcuConference = McuApi.first(McuApi.SelectConferences(conferenceName = booking.getHermesName())) #if mcuConference == None: #raise ServiceError("Conference no longer exists in MCU.", conferenceName) roomName = None roomAddress = None conferenceRoom = conference.getRoom() if conferenceRoom: roomName = conferenceRoom.getName() try: DALManagerCERN.connect() room = RoomBase.getRooms(roomName=roomName) if room: roomAddress = room.customAtts["H323 IP"] finally: DALManagerCERN.disconnect() properties = { "mcu": McuApi.mcuAddress, "roomName": roomName, "roomAddress": roomAddress } return booking, properties
def QueryConference(conference, bookingId): booking = conference.getBookingById(bookingId) if booking == None: raise ServiceError("Invalid hermes id.") #mcuConference = McuApi.first(McuApi.SelectConferences(conferenceName = booking.getHermesName())) #if mcuConference == None: #raise ServiceError("Conference no longer exists in MCU.", conferenceName) roomName = None roomAddress = None conferenceRoom = conference.getRoom() if conferenceRoom: roomName = conferenceRoom.getName() try: DALManagerCERN.connect() room = RoomBase.getRooms(roomName = roomName) if room: roomAddress = room.customAtts["H323 IP"] finally: DALManagerCERN.disconnect() properties = { "mcu": McuApi.mcuAddress, "roomName": roomName, "roomAddress": roomAddress } return booking, properties
def _getRoomSpecificNotificationBeforeDays(): """Get the resvStartNotificationBefore for all rooms that uses notifications. """ def _filter(r): return (r.resvStartNotification or r.resvEndNotification ) and r.resvStartNotificationBefore is not None return set(r.resvStartNotificationBefore for r in ifilter(_filter, RoomBase.getRooms()))
def play(): from MaKaC.rb_location import CrossLocationDB from MaKaC.rb_room import RoomBase from MaKaC.common.db import DBMgr DBMgr.getInstance().startRequest() CrossLocationDB.connect() roomEx = RoomBase() roomEx.isActive = False rooms = CrossLocationQueries.getRooms( roomExample = roomEx ) for r in rooms: print r CrossLocationDB.commit() CrossLocationDB.disconnect() DBMgr.getInstance().endRequest()
def update( self ): """ Documentation in base class. """ RoomBase.update( self ) # Check Simba mailing list listName = self.customAtts.get( 'Simba List' ) if listName: from MaKaC.user import GroupHolder groups = GroupHolder().match( { 'name': listName }, forceWithoutExtAuth = True ) if not groups: groups = GroupHolder().match( { 'name': listName } ) if not groups: self.customAtts['Simba List'] = 'Error: unknown mailing list' # reindex - needed due to possible manager changes # super slow, though... Catalog.getIdx('user_room').unindex_obj(self.guid) Catalog.getIdx('user_room').index_obj(self.guid) self._p_changed = True
def _process( self ): from MaKaC.rb_room import RoomBase from datetime import datetime,timedelta from MaKaC.rb_reservation import ReservationBase startdt = enddt = datetime.now() today = startdt.date() startdt.replace( hour = 0, minute = 0) enddt.replace( hour = 23, minute = 59) self._req.content_type = "text/xml" XG = xmlGen.XMLGen() XG.openTag("response") rooms = RoomBase.getRooms() nbRooms = len(rooms) nbPublicRooms = nbPrivateRooms = nbSemiPrivateRooms = 0 for r in rooms: if not r.isReservable: nbPrivateRooms += 1 elif not r.resvsNeedConfirmation: nbPublicRooms += 1 else: nbSemiPrivateRooms += 1 self._createIndicator(XG, "total", "total number of managed rooms", nbRooms) self._createIndicator(XG, "public", "number of public rooms", nbPublicRooms) self._createIndicator(XG, "semiprivate", "number of semi-private rooms", nbSemiPrivateRooms) self._createIndicator(XG, "private", "number of private rooms", nbPrivateRooms) resvex = ReservationBase() resvex.isConfirmed = True resvex.isCancelled = False nbResvs = len(ReservationBase.getReservations( resvExample = resvex, days = [ startdt.date() ] )) resvex.usesAVC = True nbAVResvs = len(ReservationBase.getReservations( resvExample = resvex, days = [ startdt.date() ] )) resvex.needsAVCSupport = True resvex.needsAssistance = False nbAVResvsWithSupport = len(ReservationBase.getReservations( resvExample = resvex, days = [ startdt.date() ] )) self._createIndicator(XG, "nbbookings", "total number of bookings for today", nbResvs) self._createIndicator(XG, "nbvc", "number of remote collaboration bookings (video or phone conference)", nbAVResvs) self._createIndicator(XG, "nbvcsupport", "number of remote collaboration bookings with planned IT support", nbAVResvsWithSupport) XG.closeTag("response") return XG.getXml()
def _process( self ): from MaKaC.rb_room import RoomBase from datetime import datetime,timedelta from MaKaC.rb_reservation import ReservationBase startdt = enddt = datetime.now() today = startdt.date() startdt.replace( hour = 0, minute = 0) enddt.replace( hour = 23, minute = 59) self._responseUtil.content_type = 'text/xml' XG = xmlGen.XMLGen() XG.openTag("response") rooms = RoomBase.getRooms() nbRooms = len(rooms) nbPublicRooms = nbPrivateRooms = nbSemiPrivateRooms = 0 for r in rooms: if not r.isReservable: nbPrivateRooms += 1 elif not r.resvsNeedConfirmation: nbPublicRooms += 1 else: nbSemiPrivateRooms += 1 self._createIndicator(XG, "total", "total number of managed rooms", nbRooms) self._createIndicator(XG, "public", "number of public rooms", nbPublicRooms) self._createIndicator(XG, "semiprivate", "number of semi-private rooms", nbSemiPrivateRooms) self._createIndicator(XG, "private", "number of private rooms", nbPrivateRooms) resvex = ReservationBase() resvex.isConfirmed = True resvex.isCancelled = False nbResvs = len(ReservationBase.getReservations( resvExample = resvex, days = [ startdt.date() ] )) resvex.usesAVC = True nbAVResvs = len(ReservationBase.getReservations( resvExample = resvex, days = [ startdt.date() ] )) resvex.needsAVCSupport = True resvex.needsAssistance = False nbAVResvsWithSupport = len(ReservationBase.getReservations( resvExample = resvex, days = [ startdt.date() ] )) self._createIndicator(XG, "nbbookings", "total number of bookings for today", nbResvs) self._createIndicator(XG, "nbvc", "number of remote collaboration bookings (video or phone conference)", nbAVResvs) self._createIndicator(XG, "nbvcsupport", "number of remote collaboration bookings with planned IT support", nbAVResvsWithSupport) XG.closeTag("response") return XG.getXml()
def getAvailableRooms(): Test.dalManager.connect() from datetime import datetime roomEx = Factory.newRoom() roomEx.isActive = True roomEx.isReservable = True resvEx = Factory.newReservation() resvEx.startDT = datetime(2006, 12, 01, 10) resvEx.endDT = datetime(2006, 12, 14, 15) resvEx.repeatability = 0 # Daily rooms = RoomBase.getRooms(roomExample=roomEx, resvExample=resvEx, available=True) for room in rooms: print "\n=======================================\n" print room Test.dalManager.disconnect()
def getAvailableRooms(): Test.dalManager.connect() from datetime import datetime roomEx = Factory.newRoom() roomEx.isActive = True roomEx.isReservable = True resvEx = Factory.newReservation() resvEx.startDT = datetime( 2006, 12, 01, 10 ) resvEx.endDT = datetime( 2006, 12, 14, 15 ) resvEx.repeatability = 0 # Daily rooms = RoomBase.getRooms( \ roomExample = roomEx, resvExample = resvEx, available = True ) for room in rooms: print "\n=======================================\n" print room Test.dalManager.disconnect()
def stats(): Test.dalManager.connect() print "All rooms: %d" % RoomBase.getNumberOfRooms() print "Active rooms: %d" % RoomBase.getNumberOfActiveRooms() print "Reservable rooms: %d" % RoomBase.getNumberOfReservableRooms() Test.dalManager.disconnect()
def __init__(self): RoomBase.__init__( self ) self.customAtts = PersistentMapping() self.avaibleVC = []
def __init__(self): RoomBase.__init__( self ) self.customAtts = PersistentMapping() self.avaibleVC = [] self._nonBookableDates = []
def _getRoomSpecificNotificationBeforeDays(): """Get the resvStartNotificationBefore for all rooms that uses notifications. """ def _filter(r): return (r.resvStartNotification or r.resvEndNotification) and r.resvStartNotificationBefore is not None return set(r.resvStartNotificationBefore for r in ifilter(_filter, RoomBase.getRooms()))