You are here: TWiki> Online Web>ConfDBSynchronisation (2008-11-26, dsonnick)
Tags:
create new tag
, view all tags
ConfDBSynchronisation

Requirements

On the cx_Oracle site you have to choose the right version for the database (normally 10g) and the Python Version you use (at the moment 2.5, later maybe 2.6)

Warning: ConfDBSynchronisation will not run with Python 3.0, maybe there will be a compatibility mode of Python 3.0 which allows to run old code. But normally a port to Python 3 or newer should not be necessary because Python 2.6 is still to come and will be updated for some more years.

Used Libraries

  • boost_python-vc71-mt-1_34_1.dll
  • confDBpython.pyd
  • confDB.dll

Important notice for updating the libraries

If you want to update the libraries used you have to build those libraries against the version of Python your actually want to use. The boost library-version has to fit the compiler version you use to build all you libraries. The confDBpython.dll has to be renamed to confDBpython.pyd to be recognized by python as a dynamic library. The confDB.dll can stay with ist original file name because it is not used by Python directly but by confDBpython.

For Windows it is best to compile it and then distribute it as binary packets.

Structure of ConfDBSynchronisation

ConfDBSynchronisation makes use of a extended version of the MVC pattern.

Package Structure

  • controller: In this package you have all classes which create and controll the behaviour of the program including controlling all GUI-elements
  • database: In this package you have the libraries stored to access the database (except cx_Oracle which is beeing installed by the cx_Oracle installer) and all classes to access the databases.
  • images: here you find the icons used by the program
  • log: here you find the logfiles stored and the class logreader to read the logfiles
  • model: here you find all model-classes
  • testcases: this is the place to test and to experiment with the classes
  • view: here you find all classes which actually display s.t. to the user (e.g. MainWindow, Widgets, etc.)
  • worker: here you can find the threads which will actually do the main work of the program like inserting, deleting and updating devices or spares. They run concurrently and their progress is displayed in progress-bars. They are created and controlled by the controller classes, communicating with PyQt4 signals and slots.
  • main directory: here you find the startup.py script to start ConfDBSynchronisation. You also find the config.py to change settings like database access settings. Here you have to store / replace the file ccpc_wiki.txt which contains the DHCP data of the devices. ConfDBSynchronisation will create a csv file from the txt file but it will do this every time you start ConfDBSynchronisation so the data is always up to date. If you replace the ccpc_wiki.txt file during runtime you should restart ConfDBSynchronisation to be able to work with the updated DHCP data.

Getting Help

Every Widget has a tooltip text so you can see what it does. Whenever you are not sure what a button or command will actually do you should just move you mouse over the button, menu or widget and wait a second or to. Then the tooltip text will appear and explain what this widget is and what it does. For the menu in the main window you can find help in the status bar at the bottom of the programs main window.

Known Bugs and Problems

  • slowness at startup: (the GUI libraries must load and ConfDBsynchronisation is doing a full comparison between lhcbintegration and ConfDB)
  • slowness of updating the data after doing some work: After doing s.th. with the database (e.g. inserting new devices) ConfDBSynchronisation is beeing informed that the database has changed and so it is doing a full comparison between lhcbintegration and ConfDB (like at startup). This takes some time because it tries to figure out the structure of the system. So after doing s.th. it takes some seconds (sometimes up to 30 seconds) for the GUI to display the up-to-date data. But every time you perfom an action ConfDBSynchronisation is checking the latest data in the database so that it will use the latest data even if the old data is still displayed on the screen.

Detailed Documentation

Get the Software

Topic attachments
I Attachment Action Size Date Who Comment
PDFpdf internship_report_daniel_sonnick.pdf manage 1048.1 K 2008-11-26 - 10:39 UnknownUser Documentation
Topic revision: r4 - 2008-11-26 - dsonnick
 

TWIKI.NET
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback