, view all tags


Preliminaries: build machine configuration

Before developing a CREAM's CLI you must configure properly a SL5_64bit machine with EPEL repositories and basic EMI1 software. Instructions are here:

http://wiki.italiangrid.org/twiki/bin/view/CREAM/SystemAdministratorGuideForEMI1#1_3_Installation .

Here are summarized all the steps described in the link above plus some more rpm to install and other settings:

\rm /etc/yum.repos.d/dag.repo
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
wget http://emisoft.web.cern.ch/emisoft/dist/EMI/1/sl5/x86_64/base/emi-release-1.0.0-1.sl5.noarch.rpm
yum -y install ./emi-release-1.0.0-1.sl5.noarch.rpm
wget http://repository.egi.eu/sw/production/cas/1/current/repo-files/egi-trustanchors.repo -O /etc/yum.repos.d/egi-trustanchors.repo
wget http://forge.cnaf.infn.it/frs/download.php/101/disable_yum.sh
chmod +x disable_yum.sh
./ disable_yum.sh
yum clean all; yum update all
yum -y install yum-protectbase.noarch
yum -y install ca-policy-egi-core
yum -y install glite-ce-cream-client-api-c.x86_64
yum -y install glite-lbjp-common-gsoap-plugin
yum -y install boost-devel
yum -y install voms-devel voms-clients

Then, download, build and install gSOAP 2.7.6b from this URL:


Now create these symlinks:

ln -s /usr/lib64/liblog4cpp.so.4 /usr/lib64/liblog4cpp.so
ln -s /usr/lib64/libclassad.so.1 /usr/lib64/libclassad.so
ln -s /usr/lib64/libclassad_ns.so.1 /usr/lib64/libclassad_ns.so
ln -s /usr/lib64/libcares.so.2 /usr/lib64/libcares.so
ln -s /usr/lib64/libglobus_common.so.0 /usr/lib64/libglobus_common.so
ln -s /usr/lib64/libglobus_gsi_callback.so.0 /usr/lib64/libglobus_gsi_callback.so
ln -s /usr/lib64/libglobus_gssapi_gsi.so.4 /usr/lib64/libglobus_gssapi_gsi.so
ln -s /usr/lib64/libglobus_gsi_credential.so.1 /usr/lib64/libglobus_gsi_credential.so
ln -s /usr/lib64/libltdl.so.3 /usr/lib64/libltdl.so
ln -s /usr/lib64/libglobus_oldgaa.so.0 /usr/lib64/libglobus_oldgaa.so
ln -s /usr/lib64/libglobus_proxy_ssl.so.1 /usr/lib64/libglobus_proxy_ssl.so
ln -s /usr/lib64/libglobus_openssl_error.so.0 /usr/lib64/libglobus_openssl_error.so
ln -s /usr/lib64/libglobus_gsi_proxy_core.so.0 /usr/lib64/libglobus_gsi_proxy_core.so
ln -s /usr/lib64/libglobus_gsi_cert_utils.so.0 /usr/lib64/libglobus_gsi_cert_utils.so
ln -s /usr/lib64/libglobus_gsi_sysconfig.so.1 /usr/lib64/libglobus_gsi_sysconfig.so
ln -s /usr/lib64/libglobus_openssl.so.0 /usr/lib64/libglobus_openssl.so

CLI Development

In the attachments you can find small examples that explain how to use the CREAM Client API C++. You can build them by issuing the commands:

g++ -c -I/usr/local/include <EXAMPLE>.cpp
g++ -o <EXAMPLE> <EXAMPLE>.o -lglite_security_gsoap_plugin_276b \
   -lglite_ce_cream_client_soap -lglite_ce_cream_client_util \
   /usr/local/lib/libgsoap++.a -lboost_thread -llog4cpp \
   -lvomsapi -lclassad_ns -lgridsite -lboost_regex


Currently, the C++ API implements the following operations:

The API architecture is founded on a super- and abstract class AbsCreamProxy that exposes 3 relevant public methods: AbsCreamProxy::setCredential(...) AbsCreamProxy::setConnectionTimeout(...) AbsCreamProxy::execute(...)

The execute(...) method is responsible for the connection to the remote web service, sending the request, receiving the response and unserializing it. All SOAP communication and authentication details are hidden to the user.


-- AlviseDorigo - 2011-06-14

Topic attachments
I Attachment Action Size Date Who Comment
C source code filecpp tryCancel.cpp manage 4.3 K 2011-06-20 - 08:29 AlviseDorigo  
C source code filecpp tryDelegate.cpp manage 1.3 K 2011-06-15 - 07:03 AlviseDorigo  
C source code filecpp tryInfo.cpp manage 4.6 K 2011-06-20 - 08:29 AlviseDorigo  
C source code filecpp tryList.cpp manage 1.2 K 2011-06-20 - 08:29 AlviseDorigo  
C source code filecpp tryRegister.cpp manage 3.6 K 2011-06-15 - 07:03 AlviseDorigo  
C source code filecpp tryServiceInfo.cpp manage 1.6 K 2011-06-20 - 08:29 AlviseDorigo  
C source code filecpp tryStart.cpp manage 4.6 K 2011-06-15 - 07:03 AlviseDorigo  
C source code filecpp tryStatus.cpp manage 4.5 K 2011-06-20 - 08:29 AlviseDorigo  
Edit | Attach | PDF | History: r11 | r6 < r5 < r4 < r3 | Backlinks | Raw View | More topic actions...
Topic revision: r4 - 2011-06-20 - AlviseDorigo

  • Edit
  • Attach
This site is powered by the TWiki collaboration platformCopyright © 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback