Monday, September 14, 2009

GFAL release 1.11.11-1

The release contains the following minor fixes:

- IPv6 compliance
- Manual page update

The release tag is:

glite-data-gfal_R_1_11_11_1

IPv6 compliance in FTS and GFAL

There were several Savannah tasks targeting IPv6 compliance, they have been resolved now. The list of the related tasks:

#41844: IPv6 bug; LCG-utils client functionality immediately broken by IPv6

#41278: IPv6 bug: non compliant address in source code (hard coded IPv4: 127.0.0.1)
#41585: [FTA] IPv6 bug: non compliant name resolving function (gethostbyname_r)
#41586: [FTA] IPv6 bug: non compliant name resolving function in source code (gethostbyname_r)
#41278: IPv6 bug: non compliant address in source code (hard coded IPv4: 127.0.0.1)

See the resolution details in the comments of the individual tasks. Basically, the general solution was:

- remove dependency on the pre-compiled gSoap library
- take stdsoap2.c directly from the gSoap sources
- compile the above file with WITH_IPV6 defined

The release tags including the IPv6 compliance are:

glite-data-srm-api-c_R_1_1_0_12
glite-data-srm2-api-c_R_2_2_0_6
glite-data-transfer-cli_R_3_7_2_1
glite-data-transfer-agents_R_3_4_2_1
glite-data-gfal_R_1_11_11_1

It lists the affected components as well, actually they are the ones that implement SOAP communication with gSoap. The IPv6 functionality is encapsulated into gSoap completely, so we did not have to change the implementation, it was only configuration issue.

Tuesday, September 8, 2009

FTS from Python

I was writing a Python binding for the transfer-cli functionality.

This is how far I got:


import fts

f = fts.FileTransferService()
print "# FTS using endpoint: %s" % f.endpoint()
print "# FTS service version: %s" % f.version()
print "# FTS interface version: %s" % f.interface_version()
print "# FTS schema version: %s" % f.schema_version()

c = fts.ChannelManagement()
print "# CM using endpoint: %s" % c.endpoint()
print "# CM service version: %s" % c.version()
print "# CM interface version: %s" % c.interface_version()
print "# CM schema version: %s" % c.schema_version()
print c.channel_names()


And the output was:

# FTS using endpoint: https://lxvm0307.cern.ch:8443/glite-data-transfer-fts/services/FileTransfer
# FTS service version: 3.7.0-1
# FTS interface version: 3.7.0
# FTS schema version: 3.4.1
# CM using endpoint: https://lxvm0307.cern.ch:8443/glite-data-transfer-fts/services/ChannelManagement
# CM service version: 3.7.0-1
# CM interface version: 3.7.0
# CM schema version: 3.4.1
('ASGC-CERN', 'BNL-CERN', 'CERN-ASGC', 'CERN-BNL', 'CERN-CERN', 'CERN-FNAL', 'CERN-GRIDKA',
'CERN-IN2P3', 'CERN-INFN', 'CERN-NDGF', 'CERN-NIKHEF', 'CERN-PIC', 'CERN-RAL', 'CERN-SARA',
'CERN-TRIUMF', 'FNAL-CERN', 'GRIDKA-CERN', 'IN2P3-CERN', 'INFN-CERN', 'NDGF-CERN', 'NIKHEF-CERN',
'PIC-CERN', 'RAL-CERN', 'SARA-CERN', 'TRIUMF-CERN', 'CERN-STAR')


The minimum goal is to have submit and status checking working.