Tango Access Control in fedora

Hi,

I am using Tango on Fedora 19 os and I am trying to apply tango access management for different hosts.The documentation mentioned that an instance of Starter device server should be running for the control system management. I checked my jive and could not find any such server registered. Nor I could find any such process running on my system. Astor do not show any other host than root.

Is there any alternative? What should I do?

Thanks for your help.

Regards,
Snehal
Dear Snehal,

The starter device server is available on sourceforge repository
https://sourceforge.net/p/tango-cs/code/HEAD/tree/classes/cpp/starter/
You should start an instance of the Starter device server per host. The instance name should be the hostname.
It is the only server that should be automatically started at each host bootstrap.
The Starter device server will manange the starting of all the other device servers
Cheers
Cheers
Jean-Michel
How to proceed to declare a new host.
1) You should first have a compiled version of the Starter device server available for your platform
2) start astor, with the correct TANGO_HOST pointing on your database server.
3) On astor, click on command->"add a new host", then give the host name, the host usage (few words describing the role of your host) and the host family (the branch in which you want to classift this host. If you let it empty it will be in "miscellaneous"
Then fill-up the Device server PATH, It is the place where the starter will find the executable files of each device server it has to start. then click on "Create"
4) log on your host and start the starter by typing "Starter myhostname"
5) add a script to automatically start the Starter at boot time (e.g. in /etc/init.d)
6) repeat the same for every host composing your control system
7) restart astor and see the device tree.
8) on each leaf of astor tree, you can open a control panel and manage new device servers

Hope it helps
Cheers
Jean-Michel
Hi Jean,

Thanks a lot.

On another curious note, I wanted to know what is the functionality of Starter device server. As per my understanding, Starter helps in setting up device servers held at the configured path. Is there any other important function I am missing in my understanding?

The root of this query lies under the observation that under Ubuntu environment, I have to start both Starter and tango-db services to get my tango running, whereas tango runs well on fedora without the Starter service being started. So is my tango (running on fedora) devoid of any other features/functionality ?

Thanks for your help again.

Regards,
Snehal
Hi Snehal

The starter device server provides you a complete set of utilities for managing all the device servers of a host.
In a distributed control system, you usually use several different hosts, therefore you need a Starter instance per host.
The Astor GUI is the user interface to the list of starter.
have a look at the documentation of the couple Astor/Starter here.
This couple, allows you to start/stop/check/configure all your device servers, you can also monitor the polling, restart them automatically in case of crash, check when it has been exported, and many other features you can find in the documentation.
In astor, each starter is seen as a leaf in a tree. right clicking on a leaf shows you all the possibilities. Have a look at it.

However, you can perfectly run a simple tango system without Starter. Only the database server is necessary. Starter is a helper tool for a easier administration of your system. There should be no difference between fedora and ubuntu on this side.
Once again, Starter/Astor is useful if your system is running over several hosts. In a single host system, its added value is less obvious.
Cheers
Jean-Michel
Edited 8 years ago
Hi Jean,

Thanks for your inputs.

However, I had one last query. I followed all the steps you mentioned earlier. I could see my hosts, start -stop respective device servers. The only problem I am now facing is in running servers written in python. I had few servers written in cpp and few in python. I have written all paths in 'StartDsPath' property. The cpp servers run fine but whenever I try to start my python-written server, it says it could not find it from the given path ( I have given the correct path).

What should I do?

Thanks and regards,
Snehal
Hi,

The starter can't start directly py files.

On windows, you can create a *.bat file calling the python file:
MyDevice.bat:
python "c:\Devices\MyDevice.py" %1
Then, you just have to add the directory of this file to the starter startDsPath

On linux, you can use a bash file or a symlink: ln -s `pwd`/MyDevice.py MyDevice

With the new options on Pogo 9.2.x, there is an option to package python device server as python package. With this structure, when you install the python package (python setup.py install), it will create a script file for direct launching frtom any terminal/console (using entry_points in setup.py).

Hey,

Thankyou so much !
Hello,

I am trying to compile tango-8.1.2c (patched and stable release both) on Fedora 22 and 23. I am stuck for compiling utils/notifd2db with "libs/libtango.so: undefined reference to `Tango::ranges_type2const..` messages. Debian package claim to solve it on dfsg-5 and 7 but I am trying to compile from tar source i.e. 'tang-8.1.2c.tar.gz' and
'tango-8.1.2c+dfsg.orig'.

I checked that ranges_type2const are defined in tango-8.1.2/lib/cpp/server/attribute.cpp but
cpp/server/.libs/libtango.so give undefined reference to `Tango::ranges_type2const…`
#
# Following are compilation messages
#
Making install in utils
make[1]: Entering directory '/opt/tangosoftwares/tango-8.1.2/utils'
Making install in notifd2db
make[2]: Entering directory '/opt/tangosoftwares/tango-8.1.2/utils/notifd2db'
/bin/sh ../../libtool –tag=CXX –mode=link g++ -g -O2 -std=c++11 -D_REENTRANT -DOMNI_UNLOADABLE_STUBS -o notifd2db notifd2db.o -L../../lib/cpp/server -ltango -L../../lib/cpp/log4tango/src -llog4tango -L/usr/local/lib -lzmq -lpthread -lnsl -ldl -L/usr/local/lib -lomniORB4 -lomniDynamic4 -lCOS4 -lpthread -lomnithread -lnsl -L/usr/local/lib -lpthread -lomnithread -lpthread
libtool: link: g++ -g -O2 -std=c++11 -D_REENTRANT -DOMNI_UNLOADABLE_STUBS -o .libs/notifd2db notifd2db.o -L../../lib/cpp/server /opt/tangosoftwares/tango-8.1.2/lib/cpp/server/.libs/libtango.so -L../../lib/cpp/log4tango/src /opt/tangosoftwares/tango-8.1.2/lib/cpp/log4tango/src/.libs/liblog4tango.so -L/usr/local/lib /usr/local/lib/libzmq.so -ldl -lomniORB4 -lomniDynamic4 -lCOS4 -lnsl -lomnithread -lpthread -Wl,-rpath -Wl,/usr/local/lib
/opt/tangosoftwares/tango-8.1.2/lib/cpp/server/.libs/libtango.so: undefined reference to `Tango::ranges_type2const<unsigned int>::str'
/opt/tangosoftwares/tango-8.1.2/lib/cpp/server/.libs/libtango.so: undefined reference to `Tango::ranges_type2const<short>::str'
/opt/tangosoftwares/tango-8.1.2/lib/cpp/server/.libs/libtango.so: undefined reference to `Tango::ranges_type2const<unsigned short>::str'
/opt/tangosoftwares/tango-8.1.2/lib/cpp/server/.libs/libtango.so: undefined reference to `Tango::ranges_type2const<unsigned long>::str'
/opt/tangosoftwares/tango-8.1.2/lib/cpp/server/.libs/libtango.so: undefined reference to `Tango::ranges_type2const<long>::str'
/opt/tangosoftwares/tango-8.1.2/lib/cpp/server/.libs/libtango.so: undefined reference to `Tango::ranges_type2const<int>::str'
/opt/tangosoftwares/tango-8.1.2/lib/cpp/server/.libs/libtango.so: undefined reference to `Tango::ranges_type2const<float>::str'
/opt/tangosoftwares/tango-8.1.2/lib/cpp/server/.libs/libtango.so: undefined reference to `Tango::ranges_type2const<unsigned char>::str'
/opt/tangosoftwares/tango-8.1.2/lib/cpp/server/.libs/libtango.so: undefined reference to `Tango::ranges_type2const<double>::str'
collect2: error: ld returned 1 exit status
Makefile:362: recipe for target 'notifd2db' failed
make[2]: *** [notifd2db] Error 1
make[2]: Leaving directory '/opt/tangosoftwares/tango-8.1.2/utils/notifd2db'
Makefile:338: recipe for target 'install-recursive' failed
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory '/opt/tangosoftwares/tango-8.1.2/utils'
Makefile:423: recipe for target 'install-recursive' failed
make: *** [install-recursive] Error 1

Please mention how I can resolve or overcome this error…

Regards,
Jitendra
Hello,

Which release of c++ compiler is installed on Fedora 22 or 23 (c++ -v)?
Is it a release 5 c++?

regards

Emmanuel
 
Register or login to create to post a reply.