[pytango] 371/483: Allow to test a sys/database/pydb-test

Sandor Bodo-Merle sbodomerle-guest at moszumanska.debian.org
Thu Sep 28 19:15:01 UTC 2017


This is an automated email from the git hooks/post-receive script.

sbodomerle-guest pushed a commit to annotated tag bliss_8.10
in repository pytango.

commit 9dd41efa0564913d95112c0006d83b36cebe0653
Author: tiagocoutinho <tiagocoutinho at 4e9c00fd-8f2e-0410-aa12-93ce3db5e235>
Date:   Tue Apr 15 12:09:36 2014 +0000

    Allow to test a sys/database/pydb-test
    
    git-svn-id: http://svn.code.sf.net/p/tango-cs/code/bindings/PyTango/trunk@25375 4e9c00fd-8f2e-0410-aa12-93ce3db5e235
---
 src/boost/python/databaseds/DataBaseds    |  2 +-
 src/boost/python/databaseds/create_db.sql |  3 +
 src/boost/python/databaseds/database.py   | 91 +++++++++++++++++++++----------
 3 files changed, 66 insertions(+), 30 deletions(-)

diff --git a/src/boost/python/databaseds/DataBaseds b/src/boost/python/databaseds/DataBaseds
index 2f8cf3c..3b9d996 100755
--- a/src/boost/python/databaseds/DataBaseds
+++ b/src/boost/python/databaseds/DataBaseds
@@ -3,7 +3,7 @@
 import database
 
 def main():
-    database.main()
+    database.run()
     
 if __name__ == '__main__':
     main()
diff --git a/src/boost/python/databaseds/create_db.sql b/src/boost/python/databaseds/create_db.sql
index 34f6703..115754e 100644
--- a/src/boost/python/databaseds/create_db.sql
+++ b/src/boost/python/databaseds/create_db.sql
@@ -21,6 +21,9 @@ INSERT INTO object_history_id VALUES (0);
 INSERT INTO device VALUES ('sys/database/2',NULL,'sys','database','2','nada','nada','nada','DataBaseds/2','nada','DataBase','nada','nada','nada','nada');
 INSERT INTO device VALUES ('dserver/DataBaseds/2',NULL,'dserver','DataBaseds','2','nada','nada','nada','DataBaseds/2','nada','DServer','nada','nada','nada','nada');
 
+INSERT INTO device VALUES ('sys/database/pydb-test',NULL,'sys','database','pydb','nada','nada','nada','DataBaseds/pydb','nada','DataBase','nada','nada','nada','nada');
+INSERT INTO device VALUES ('dserver/DataBaseds/pydb-test',NULL,'dserver','DataBaseds','2','nada','nada','nada','DataBaseds/pydb','nada','DServer','nada','nada','nada','nada');
+
 #
 # Create entry for test device server in device table
 #
diff --git a/src/boost/python/databaseds/database.py b/src/boost/python/databaseds/database.py
index 6092884..9eb4e6c 100644
--- a/src/boost/python/databaseds/database.py
+++ b/src/boost/python/databaseds/database.py
@@ -151,7 +151,7 @@ class DataBase (PyTango.Device_4Impl):
 
         self.db = db_access.Tango_sqlite3()
 
-
+        logging.info("Finished init_device")
         #----- PROTECTED REGION END -----#	//	DataBase.init_device
 
 #------------------------------------------------------------------
@@ -2359,44 +2359,77 @@ class DataBaseClass(PyTango.DeviceClass):
 #    DataBase class main method
 #
 #==================================================================
-def main():
-    log_fmt = '%(threadName)-14s %(levelname)-8s %(asctime)s %(name)s: %(message)s'
-    logging.basicConfig(format=log_fmt, stream=sys.stdout, level=logging.INFO)
-    try:
-        db_name = "sys/database/" + sys.argv[1]
-        set_db_name(db_name)
-        PyTango.Util.set_use_db(False)
-        py = PyTango.Util(sys.argv)
-        py.add_class(DataBaseClass, DataBase, 'DataBase')
 
-        U = PyTango.Util.instance()
-        dbi = DbInter()
-        U.set_interceptors(dbi)
-        U.set_serial_model(PyTango.SerialModel.NO_SYNC)
-        U.server_init()
-        dserver = U.get_dserver_device()
-        dbase = U.get_device_by_name(db_name)
+def __run():
+    """Runs the Database DS as a standalone database"""
+
+    db_name = "sys/database/" + args[1]
+    set_db_name(db_name)
+
+    PyTango.Util.set_use_db(False)
+    py_util = PyTango.Util(sys.argv)
+    py_util.add_class(DataBaseClass, DataBase, 'DataBase')
+
+    util = PyTango.Util.instance()
+    dbi = DbInter()
+    util.set_interceptors(dbi)
+    util.set_serial_model(PyTango.SerialModel.NO_SYNC)
+    util.server_init()
+
+    dserver = util.get_dserver_device()
+    dserver.duplicate_d_var()
+    dserver_name = dserver.get_name()
+    dserver_ior = util.get_dserver_ior(dserver)
+
+    dbase = util.get_device_by_name(db_name)
+    dbase_name = dbase.get_name()
+    dbase_ior = util.get_device_ior(dbase)
+        
+    host = util.get_host_name()
+    pid = util.get_pid_str()
+    version = util.get_version_str()
+        
+    dbase.DbExportDevice([dserver_name, dserver_ior, host, pid, version])
+    dbase.DbExportDevice([dbase_name, dbase_ior, host, pid, version])
+
+    print("Ready to accept request")
+    util.orb_run()
 
-        dserver.duplicate_d_var()
 
-        pars = [dserver.get_name(), U.get_dserver_ior(dserver),
-                U.get_host_name(), U.get_pid_str(), U.get_version_str()]
-        dbase.DbExportDevice(pars)
+def __run_embedded():
+    """Runs the Database device server embeded in another TANGO Database
+    (just like any other TANGO device server)"""
 
-        pars[0] = dbase.get_name()
-        pars[1] = U.get_device_ior(dbase)
-        dbase.DbExportDevice(pars)
+    db_name = "sys/database/" + sys.argv[1]
+    set_db_name(db_name)
 
-        print "Ready to accept request"
-        U.orb_run()
+    py_util = PyTango.Util(sys.argv)
+    py_util.add_class(DataBaseClass, DataBase, 'DataBase')
 
+    util = PyTango.Util.instance()
+    util.server_init()
+    print("Ready to accept request")
+    util.server_run()
 
+
+def main(embedded=False):
+    log_fmt = '%(threadName)s %(levelname)-8s %(asctime)s %(name)s: %(message)s'
+    logging.basicConfig(format=log_fmt, stream=sys.stdout, level=logging.INFO)
+    
+    f = __run
+    if embedded:
+        f = __run_embedded
+    try:
+        return f()
     except PyTango.DevFailed as df:
         print '-------> Received a DevFailed exception:', df
-        import traceback;traceback.print_exc()
+        import traceback;
+        traceback.print_exc()
     except Exception as e:
         print '-------> An unforeseen exception occured....', e
-        import traceback;traceback.print_exc()
+        import traceback;
+        traceback.print_exc()
 
+    
 if __name__ == '__main__':
-    main()
+    run_embeded()

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/pytango.git



More information about the debian-science-commits mailing list