Publishing SM manifests to XMPP

Starting from Orca 3.1-extended the SMs are capable of publishing the manifests of slices that are being created (as they are being created) to a preconfigured XMPP server. The configuration is enabled by the following properties in the $ORCA_HOME/config/xmlrpc.controller.properties file:

# ORCA pubsub properties
ORCA.publish.manifest=true
ORCA.pubsub.server=geni-imf-xmpp.renci.org:5222
ORCA.pubsub.usecertificate=true
# This is the xmpp user id (JID), which has to be same as the CN in the certificate, which is a guid
ORCA.pubsub.login=b8e6e0b2-7f6c-4583-aa0c-6681dc9356bd
ORCA.pubsub.password=somepassword
ORCA.pubsub.keystorepath=/opt/orca/config/xxx-gcf-encrypted.jks
ORCA.pubsub.keystoretype=jks
ORCA.pubsub.truststorepath=/opt/orca/config/xxx-gcf-encrypted.jks
ORCA.pubsub.root=orca/sm

The structure of the pubsub namespace is as follows. Every SM has a portion of namespace that begins with a prefix

/orca/sm/<sm-name>---<sm-guid>

Within that namespace there is a node named

/orca/sm/<sm-name>---<sm-guid>/sliceList

This is an ASCII document that has a structure similar to the output of 'ls' command in UNIX - it lists available manifest nodes within the SM namespace that can be subscribed to to get state change updates. Each line of the document is as follows:

/slice name/slice guid/create date/close date

Using this information it is possible to subscribe to individual manifests, whose full names are as follows:

/orca/sm/<sm-name>---<sm-guid>/<slice name>---<slice guid>/manifest

There is a software daemon named blowhole that is capable of subscribing to incoming manifests for some subset of SMs for a particular XMPP server and have them converted to RSpec and, in turn, published to some URL (using HTTP PUT).