本文整理汇总了Python中MaKaC.rb_location.CrossLocationDB类的典型用法代码示例。如果您正苦于以下问题:Python CrossLocationDB类的具体用法?Python CrossLocationDB怎么用?Python CrossLocationDB使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CrossLocationDB类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: getVars
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()
# 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.getFullName(), 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))
示例2: getLinkRoomIp
def getLinkRoomIp(cls, linkVideo, ipAttName="H323 IP"):
if linkVideo is None:
return ""
location = linkVideo.getLocation()
room = linkVideo.getRoom()
roomIp = ""
if location and room and location.getName() and room.getName() and location.getName().strip() and room.getName().strip():
minfo = info.HelperMaKaCInfo.getMaKaCInfoInstance()
if minfo.getRoomBookingModuleActive():
CrossLocationDB.connect()
try:
roomInfo = CrossLocationQueries.getRooms( location = location.getName(), roomName = room.getName())
roomIp = roomInfo.customAtts[ipAttName]
except Exception, e:
Logger.get("Vidyo").warning("Location: '%s' - Problem with CrossLocationQueries: '%s'" % (location.getName(), str(e)))
示例3: getLinkRoomIp
def getLinkRoomIp(cls, linkVideo):
if linkVideo is None:
return ""
location = linkVideo.getLocation()
room = linkVideo.getRoom()
roomIp = ""
if location and room and location.getName() and room.getName() and location.getName().strip() and room.getName().strip():
minfo = info.HelperMaKaCInfo.getMaKaCInfoInstance()
if minfo.getRoomBookingModuleActive():
CrossLocationDB.connect()
try:
roomInfo = CrossLocationQueries.getRooms( location = location.getName(), roomName = room.getName())
roomIp = roomInfo.customAtts["H323 IP"]
except Exception, e:
Logger.get("Vidyo").warning("Location: " + location.getName() + "Problem with CrossLocationQueries when retrieving the list of all rooms with a H323 IP: " + str(e))
示例4: _getSideMenu
def _getSideMenu(self):
minfo = info.HelperMaKaCInfo.getMaKaCInfoInstance()
self._leftMenu = wcomponents.BasicSideMenu(self._getAW().getUser() != None)
self._showResponsible = False
if minfo.getRoomBookingModuleActive() and CrossLocationDB.isConnected():
self._showResponsible = ( self._getAW().getUser() != None ) and self._getAW().getUser().isResponsibleForRooms()
self._roomsOpt = wcomponents.SideMenuSection(_("View Rooms"), \
urlHandlers.UHRoomBookingSearch4Rooms.getURL() )
self._roomSearchOpt = wcomponents.SideMenuItem(_("Search rooms"),
urlHandlers.UHRoomBookingSearch4Rooms.getURL(),
enabled=True)
self._roomMapOpt = wcomponents.SideMenuItem(_("Map of rooms"),
urlHandlers.UHRoomBookingMapOfRooms.getURL(),
enabled=True)
self._myRoomListOpt = wcomponents.SideMenuItem(_("My rooms"),
urlHandlers.UHRoomBookingRoomList.getURL( onlyMy = True ),
enabled=self._showResponsible)
self._bookingsOpt = wcomponents.SideMenuSection(_("View Bookings"), \
urlHandlers.UHRoomBookingSearch4Bookings.getURL())
self._bookARoomOpt = wcomponents.SideMenuItem(_("Book a Room"), \
urlHandlers.UHRoomBookingSearch4Rooms.getURL( forNewBooking = True ),
enabled=True)
self._bookingListSearchOpt = wcomponents.SideMenuItem(_("Search bookings"),
urlHandlers.UHRoomBookingSearch4Bookings.getURL(),
enabled=True)
self._bookingListCalendarOpt = wcomponents.SideMenuItem(_("Calendar"),
urlHandlers.UHRoomBookingBookingList.getURL( today = True, allRooms = True ),
enabled=True)
self._myBookingListOpt = wcomponents.SideMenuItem(_("My bookings"),
urlHandlers.UHRoomBookingBookingList.getURL( onlyMy = True, autoCriteria = True ),
enabled=True)
self._myPreBookingListOpt = wcomponents.SideMenuItem(_("My PRE-bookings"),
urlHandlers.UHRoomBookingBookingList.getURL( onlyMy = True, onlyPrebookings = True, autoCriteria = True ),
enabled=True)
self._usersBookings = wcomponents.SideMenuItem(_("Bookings in my rooms"),
urlHandlers.UHRoomBookingBookingList.getURL( ofMyRooms = True, autoCriteria = True ),
enabled=self._showResponsible)
self._usersPrebookings = wcomponents.SideMenuItem(_("PRE-bookings in my rooms"),
urlHandlers.UHRoomBookingBookingList.getURL( ofMyRooms = True, onlyPrebookings = True, autoCriteria = True ),
enabled=self._showResponsible)
self._leftMenu.addSection( self._roomsOpt )
self._roomsOpt.addItem( self._roomSearchOpt )
self._roomsOpt.addItem( self._roomMapOpt )
self._roomsOpt.addItem( self._myRoomListOpt )
self._leftMenu.addSection( self._bookingsOpt )
self._bookingsOpt.addItem( self._bookARoomOpt )
self._bookingsOpt.addItem( self._bookingListSearchOpt )
self._bookingsOpt.addItem( self._bookingListCalendarOpt )
self._bookingsOpt.addItem( self._myBookingListOpt )
self._bookingsOpt.addItem( self._myPreBookingListOpt )
self._bookingsOpt.addItem( self._usersBookings )
self._bookingsOpt.addItem( self._usersPrebookings )
return self._leftMenu
示例5: rebuildRoomReservationsIndex
def rebuildRoomReservationsIndex():
from MaKaC.common.db import DBMgr
from MaKaC.rb_location import CrossLocationDB
from MaKaC.rb_room import RoomBase
from MaKaC.plugins.RoomBooking.default.dalManager import DALManager
from BTrees.OOBTree import OOBTree
DBMgr.getInstance().startRequest()
CrossLocationDB.connect()
root = DALManager.root
resvEx = ReservationBase()
resvEx.isConfirmed = None
allResvs = CrossLocationQueries.getReservations( resvExample = resvEx )
print "There are " + str( len( allResvs ) ) + " resvs and pre-resvs to index..."
c = 0
root[_ROOM_RESERVATIONS_INDEX] = OOBTree()
print "Room => Reservations Index branch created"
for resv in allResvs:
roomReservationsIndexBTree = root[_ROOM_RESERVATIONS_INDEX]
resvs = roomReservationsIndexBTree.get( resv.room.id )
if resvs == None:
resvs = [] # New list of reservations for this room
roomReservationsIndexBTree.insert( resv.room.id, resvs )
resvs.append( resv )
roomReservationsIndexBTree[resv.room.id] = resvs
c += 1
if c % 100 == 0:
print c
CrossLocationDB.commit()
CrossLocationDB.disconnect()
DBMgr.getInstance().endRequest()
示例6: _endRequestSpecific2RH
def _endRequestSpecific2RH( commit = True ):
minfo = info.HelperMaKaCInfo.getMaKaCInfoInstance()
if minfo.getRoomBookingModuleActive():
if commit:
CrossLocationDB.commit()
else:
CrossLocationDB.rollback()
CrossLocationDB.disconnect()
示例7: play
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()
示例8: indexByDay
def indexByDay():
from MaKaC.rb_location import CrossLocationDB
from MaKaC.rb_room import RoomBase
from MaKaC.common.db import DBMgr
DBMgr.getInstance().startRequest()
CrossLocationDB.connect()
# resvEx = ReservationBase()
# resvEx.isConfirmed = None
# resvs = CrossLocationQueries.getReservations( resvExample = resvEx )
# print "There are " + str( len( resvs ) ) + " resvs to index..."
# c = 0
# for resv in resvs:
# resv._addToDayReservationsIndex()
# c += 1
# if c % 100 == 0:
# print c
CrossLocationDB.commit()
CrossLocationDB.disconnect()
DBMgr.getInstance().endRequest()
示例9: _abortSpecific2RH
def _abortSpecific2RH( self ):
minfo = info.HelperMaKaCInfo.getMaKaCInfoInstance()
if minfo.getRoomBookingModuleActive():
CrossLocationDB.rollback()
示例10: _syncSpecific2RH
def _syncSpecific2RH( self ):
minfo = info.HelperMaKaCInfo.getMaKaCInfoInstance()
if minfo.getRoomBookingModuleActive():
CrossLocationDB.sync()
示例11: _startRequestSpecific2RH
def _startRequestSpecific2RH( self ):
minfo = info.HelperMaKaCInfo.getMaKaCInfoInstance()
if minfo.getRoomBookingModuleActive():
CrossLocationDB.connect()
示例12: _getSideMenu
def _getSideMenu(self):
minfo = info.HelperMaKaCInfo.getMaKaCInfoInstance()
self._leftMenu = wcomponents.BasicSideMenu(self._getAW().getUser() != None)
self._showResponsible = False
if minfo.getRoomBookingModuleActive() and CrossLocationDB.isConnected():
self._showResponsible = \
(self._getAW().getUser() != None) and \
(Room.isAvatarResponsibleForRooms(self._getAW().getUser()) \
or self._getAW().getUser().isAdmin() \
or self._getAW().getUser().isRBAdmin())
self._roomsOpt = wcomponents.SideMenuSection(_("View Rooms"), \
urlHandlers.UHRoomBookingSearch4Rooms.getURL() )
self._roomSearchOpt = wcomponents.SideMenuItem(_("Search rooms"),
urlHandlers.UHRoomBookingSearch4Rooms.getURL(),
enabled=True)
self._roomMapOpt = wcomponents.SideMenuItem(_("Map of rooms"),
urlHandlers.UHRoomBookingMapOfRooms.getURL(),
enabled=True)
self._myRoomListOpt = wcomponents.SideMenuItem(_("My rooms"),
urlHandlers.UHRoomBookingRoomList.getURL( onlyMy = True ),
enabled=self._showResponsible)
self._bookingsOpt = wcomponents.SideMenuSection(_("View Bookings"), \
urlHandlers.UHRoomBookingSearch4Bookings.getURL())
self._bookARoomOpt = wcomponents.SideMenuItem(_("Book a Room"), \
urlHandlers.UHRoomBookingSearch4Rooms.getURL( forNewBooking = True ),
enabled=True)
self._bookingListSearchOpt = wcomponents.SideMenuItem(_("Search bookings"),
urlHandlers.UHRoomBookingSearch4Bookings.getURL(),
enabled=True)
self._bookingListCalendarOpt = wcomponents.SideMenuItem(_("Calendar"),
urlHandlers.UHRoomBookingBookingList.getURL( today = True, allRooms = True ),
enabled=True)
self._myBookingListOpt = wcomponents.SideMenuItem(_("My bookings"),
urlHandlers.UHRoomBookingBookingList.getURL( onlyMy = True, autoCriteria = True ),
enabled=True)
self._myPreBookingListOpt = wcomponents.SideMenuItem(_("My PRE-bookings"),
urlHandlers.UHRoomBookingBookingList.getURL( onlyMy = True, onlyPrebookings = True, autoCriteria = True ),
enabled=True)
self._usersBookings = wcomponents.SideMenuItem(_("Bookings in my rooms"),
urlHandlers.UHRoomBookingBookingList.getURL( ofMyRooms = True, autoCriteria = True ),
enabled=self._showResponsible)
self._usersPrebookings = wcomponents.SideMenuItem(_("PRE-bookings in my rooms"),
urlHandlers.UHRoomBookingBookingList.getURL( ofMyRooms = True, onlyPrebookings = True, autoCriteria = True ),
enabled=self._showResponsible)
self._blockingsOpt = wcomponents.SideMenuSection(_("Room Blocking"))
self._usersBlockings = wcomponents.SideMenuItem(_("Blockings for my rooms"),
urlHandlers.UHRoomBookingBlockingsMyRooms.getURL( filterState='pending' ),
enabled=self._showResponsible)
if self._showResponsible:
self._myBlockingListOpt = wcomponents.SideMenuItem(_("My blockings"),
urlHandlers.UHRoomBookingBlockingList.getURL( onlyMine = True, onlyRecent = True ),
enabled=True)
else:
self._myBlockingListOpt = wcomponents.SideMenuItem(_("Blockings"),
urlHandlers.UHRoomBookingBlockingList.getURL( onlyRecent = True ),
enabled=True)
self._blockRooms = wcomponents.SideMenuItem(_("Block rooms"),
urlHandlers.UHRoomBookingBlockingForm.getURL(),
enabled=self._showResponsible)
if self._rh._getUser().isRBAdmin():
self._adminSect = wcomponents.SideMenuSection(_("Administration"), \
urlHandlers.UHRoomBookingAdmin.getURL() )
self._adminOpt = wcomponents.SideMenuItem(_("Administration"), \
urlHandlers.UHRoomBookingAdmin.getURL() )
self._leftMenu.addSection( self._roomsOpt )
self._roomsOpt.addItem( self._roomSearchOpt )
if Location.getDefaultLocation() and Location.getDefaultLocation().isMapAvailable():
self._roomsOpt.addItem( self._roomMapOpt )
self._roomsOpt.addItem( self._myRoomListOpt )
self._leftMenu.addSection( self._bookingsOpt )
self._bookingsOpt.addItem( self._bookARoomOpt )
self._bookingsOpt.addItem( self._bookingListSearchOpt )
self._bookingsOpt.addItem( self._bookingListCalendarOpt )
self._bookingsOpt.addItem( self._myBookingListOpt )
self._bookingsOpt.addItem( self._myPreBookingListOpt )
self._bookingsOpt.addItem( self._usersBookings )
self._bookingsOpt.addItem( self._usersPrebookings )
self._leftMenu.addSection( self._blockingsOpt )
self._blockingsOpt.addItem( self._blockRooms )
self._blockingsOpt.addItem( self._myBlockingListOpt )
self._blockingsOpt.addItem( self._usersBlockings )
if self._rh._getUser().isRBAdmin():
self._leftMenu.addSection( self._adminSect )
self._adminSect.addItem( self._adminOpt )
return self._leftMenu
示例13: getVars
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.")
示例14: execute
def execute(self):
try:
self._initLog()
self._printOutput("***Starting execute***\n")
### Get the connection in order to avoid that to threads share the same one
conn = db.DBMgr().getInstance()
conn.startRequest()
minfo = HelperMaKaCInfo.getMaKaCInfoInstance()
if minfo.getRoomBookingModuleActive():
CrossLocationDB.connect()
###
taskList = HelperTaskList().getTaskListInstance()
tasks = taskList.getTasks()
if len(tasks) == 0:
self._printOutput("--->No tasks!")
else:
self._printOutput("Execute at %s\n"%datetime.now())
taskids = [i.getId() for i in tasks]
for id in taskids:
### check if another thread have already removed the task
conn.sync()
if not id in taskList.listTask.keys():
continue
task = taskList.getTaskById(id)
###
if task.isRunning():
self._printOutput("\t--->Task <%s> already running"%task.getId())
else:
try:
self._printOutput("\t--->Running task <%s>"%task.getId())
if task.getStartDate() == None or task.getStartDate() < nowutc():
self._printOutput("\t (SINGLE RUN)")
# the task is started
if task.getInterval() == None or task.getLastDate() == None:
# the task is run once or never runned
task.setRunning(True)
conn.commit()
abort=task.prerun()
if abort:
self._printOutput("\t<---Task <%s> was aborted."%task.getId())
task.setRunning(False)
conn.commit()
continue
for obj in task.getObjList():
self._printOutput("\t\tRunning object <%s> (start date: %s)"%(obj.getId(),task.getStartDate()))
#task.setLastDate(datetime.now())
self._runObj(obj)
self._printOutput("\t\tEnd object")
task.setLastDate(nowutc())
task.setRunning(False)
if task.getInterval() == None:
# if run once, delete the task from list
taskList.removeTask(task)
self._printOutput("\t\tTask was removed")
else:
self._printOutput("\t\tTask is periodic (getInterval: %s)" % task.getInterval())
else:
self._printOutput("\t (PERIODIC TASK)")
# the task is to be run multiple times
if task.getLastDate() + task.getInterval() < nowutc():
task.setRunning(True)
conn.commit()
abort=task.prerun()
if abort:
self._printOutput("\t<---Task <%s> was aborted."%task.getId())
task.setRunning(False)
conn.commit()
continue
# it's time to launch the task!!!
for obj in task.getObjList():
self._printOutput("\tRunning object %s (last date: %s)"%(obj.getId(),task.getLastDate()))
#task.setLastDate(datetime.now())
self._runObj(obj)
self._printOutput("\t\tEnd object")
if task.getLastDate() and task.getEndDate():
if task.getLastDate() + task.getInterval() > task.getEndDate():
# the task is finish, delete it from list
taskList.removeTask(task)
self._printOutput("\t\tTask was removed")
task.setLastDate(nowutc())
task.setRunning(False)
self._printOutput("\t<---end task <%s>\n"%task.getId())
conn.commit()
except Exception, e:
conn.sync()
task.setRunning(False)
conn.commit()
ty, ex, tb = sys.exc_info()
tracebackList = traceback.format_list( traceback.extract_tb( tb ) )
self._printOutput("*****---->[ERROR]:%s\nTraceback:%s"%(e,"\n".join(tracebackList)))
self._sendErrorEmail(e)
if minfo.getRoomBookingModuleActive():
#.........这里部分代码省略.........