Querying ARCHERY registry data

On the registry client level ARCHERY benefits from the distributed DNS caching on many levels, making the registry scalable.

Since DNS client is an integral part of any operating system, obtaining and processing service endpoint information from ARCHERY comes down to parsing and interpreting the data obtained from the DNS in accordance to the ARCHERY data model rendering.

There are several tools and options available to fetch ARCHERY data:

The archery-manage tool as registry client

Using ARCHERY as a topology source for archery-manage allows to use tool output capabilities as a registry client. For example:

[user ~]$ archery-manage -s archery:moldyngrid.org -o arc-CEs
golowood.mao.kiev.ua
arc.imbg.org.ua
arc.univ.kiev.ua
uagrid.org.ua
grid.isma.kharkov.ua

[user ~]$ archery-manage -s archery:egi.grid.org.ua -o services
glue:sehn02.atlas.ualberta.ca/data                           : org.dcache.storage
glue:lcg-se1.sfu.computecanada.ca/data                       : org.dcache.storage
urn:ogf:ComputingService:lcg-ce1.sfu.computecanada.ca:arex   : org.nordugrid.arex
urn:ogf:ComputingService:lcg-ce2.sfu.computecanada.ca:arex   : org.nordugrid.arex
neutsrv1.triumf.ca_bdii-site_497425383                       : bdii_site
<output omitted>

[user ~]$ archery-manage -s archery:nordugrid.org -o endpoints --json | jq .
[
{
  "t": "org.nordugrid.gridftpjob",
  "u": "gsiftp://deckard.dcsc.ku.dk:2811/jobs",
  "rr_data": "u=gsiftp://deckard.dcsc.ku.dk:2811/jobs t=org.nordugrid.gridftpjob"
},
{
  "t": "org.nordugrid.ldapglue2",
  "u": "ldap://deckard.dcsc.ku.dk:2135/o=glue",
  "rr_data": "u=ldap://deckard.dcsc.ku.dk:2135/o=glue t=org.nordugrid.ldapglue2"
},
<output omitted>

Any DNS client for manual data retrieval

Any DNS client or library can be used to obtain ARCHERY resource record sets. The rendering is designed to be simple and raw data is human readable:

[user ~]$ host -t TXT _archery.nordugrid.org
_archery.nordugrid.org descriptive text "u=uk.archery.nordugrid.org t=archery.group"
_archery.nordugrid.org descriptive text "u=ua.archery.nordugrid.org t=archery.group"
_archery.nordugrid.org descriptive text "u=fi.archery.nordugrid.org t=archery.group"
_archery.nordugrid.org descriptive text "u=lt.archery.nordugrid.org t=archery.group"
_archery.nordugrid.org descriptive text "u=si.archery.nordugrid.org t=archery.group"
_archery.nordugrid.org descriptive text "u=hu.archery.nordugrid.org t=archery.group"
_archery.nordugrid.org descriptive text "u=ch.archery.nordugrid.org t=archery.group"
_archery.nordugrid.org descriptive text "u=atlas.archery.ndgf.org t=archery.group"
_archery.nordugrid.org descriptive text "u=pt.archery.nordugrid.org t=archery.group"
_archery.nordugrid.org descriptive text "u=se.archery.nordugrid.org t=archery.group"
_archery.nordugrid.org descriptive text "u=no.archery.nordugrid.org t=archery.group"
_archery.nordugrid.org descriptive text "u=sk.archery.nordugrid.org t=archery.group"
_archery.nordugrid.org descriptive text "u=ee.archery.nordugrid.org t=archery.group"
_archery.nordugrid.org descriptive text "u=dk.archery.nordugrid.org t=archery.group"

[user ~]$ host -t TXT _archery.dk.archery.nordugrid.org
_archery.dk.archery.nordugrid.org descriptive text "u=dns://e06b294c0d._archery.dk.archery.nordugrid.org. t=archery.service"

[user ~]$ host -t TXT e06b294c0d._archery.dk.archery.nordugrid.org
e06b294c0d._archery.dk.archery.nordugrid.org descriptive text "o=service t=org.nordugrid.arex id=deckard.dcsc.ku.dk"
e06b294c0d._archery.dk.archery.nordugrid.org descriptive text "u=ldap://deckard.dcsc.ku.dk:2135/o=glue t=org.nordugrid.ldapglue2"
e06b294c0d._archery.dk.archery.nordugrid.org descriptive text "u=ldap://deckard.dcsc.ku.dk:2135/Mds-Vo-Name=local,o=grid t=org.nordugrid.ldapng"
e06b294c0d._archery.dk.archery.nordugrid.org descriptive text "u=gsiftp://deckard.dcsc.ku.dk:2811/jobs t=org.nordugrid.gridftpjob"

ARC Client/SDK endpoint retrieval plugin

ARCHERY endpoint retrieval plugin for ARC client/SDK is a part of release starting from ARC 5.4.4.

It is installed within core plugins set and cen be used transparently with -g option:

[manf@arc-client ~]$ arctest -J 2 -g moldyngrid.org -d INFO
INFO: Configuration (/etc/arc/client.conf) loaded
INFO: Configuration (/home/manf/.arc/client.conf) loaded
INFO: Using proxy file: /home/manf/.globus/x509_user_proxy
INFO: Using certificate file: /home/manf/.globus/usercert.pem
INFO: Using key file: /home/manf/.globus/userkey.pem
INFO: Using CA certificate directory: /etc/grid-security/certificates
INFO: Broker Random loaded
INFO: Found service endpoint index.moldyngrid.org (type org.nordugrid.archery)
INFO: Status for service endpoint "dns://d9b05b0008._archery.index.moldyngrid.org." is set to inactive in ARCHERY. Skipping.
INFO: Status for service endpoint "dns://ac525b5fea._archery.index.moldyngrid.org." is set to inactive in ARCHERY. Skipping.
INFO: Found service endpoint dns://7c99fb635c._archery.index.moldyngrid.org. (type archery.service)
INFO: Found service endpoint dns://616f87be8e._archery.index.moldyngrid.org. (type archery.service)
INFO: Found service endpoint dns://46e36be5ec._archery.index.moldyngrid.org. (type archery.service)
INFO: Found service endpoint ldap://grid.isma.kharkov.ua:2135/Mds-Vo-Name=local,o=grid (type org.nordugrid.ldapng)
INFO: Found service endpoint https://grid.isma.kharkov.ua:60443/arex (type org.ogf.glue.emies.activitymanagement)
<output omitted>
INFO: Found service endpoint gsiftp://arc6.univ.kiev.ua:2811/jobs (type org.nordugrid.gridftpjob)
INFO: Found service endpoint ldap://arc6.univ.kiev.ua:2135/o=glue (type org.nordugrid.ldapglue2)
INFO: Found service endpoint https://arc6.univ.kiev.ua:443/arex (type org.nordugrid.arcrest)
Submitting test-job 2:
&( executable = "/usr/bin/env" )( stdout = "stdout" )( stderr = "stdout" )( gmlog = "gmlog" )( jobname = "arctest2" )( clientxrsl = "&( executable = ""/usr/bin/env"" )( jobname = ""arctest2"" )( stdout = ""stdout"" )( join = ""yes"" )( gmlog = ""gmlog"" )" )
Client version: nordugrid-arc-6.2.0
Test submitted with jobid: gsiftp://arc6.univ.kiev.ua:2811/jobs/RHZKDmPeedvnjwO5upha6lOqABFKDmABFKDmIeLKDmABFKDmItfmym

NorduGrid monitor is fetching ARCHERY data

NorduGrid infrastructure monitoring web application (aka monitor) is able to visualize realtime ARC CE information obtained using ARCHERY service endpoint discovery.

If you have own monitor setup, you can easiely configure ARCHERY as an information source.