import os
import sys
+import time
import Queue
from twisted.words.xish import domish
from twisted.web import xmlrpc, server
# add protocol handlers
xs.addObserver("/presence[@type='subscribe']", self.presence_subscribe)
xs.addObserver("/presence[@type='unsubscribe']", self.presence_unsubscribe)
- xs.addObserver("/precence", self.presence)
+ xs.addObserver("/presence", self.presence)
xs.addObserver("/message[@type='chat']", self.message_chat)
def presence_subscribe(self, m):
def presence(self, m):
p = domish.Element(("jabber:client", "presence"))
p['from'], p['to'] = m['to'], m['from']
- presence.addElement("show", content="dnd")
- presence.addElement("status", content="man at work")
+ # initially read presence.addElement, my wild guess.. -- Thierry
+ p.addElement("show", content="dnd")
+ p.addElement("status", content="man at work")
self.xmlstream.send(p)
def message_chat(self, m):
def __init__(self, id, secret, verbose = False, log = None):
BaseClient.__init__(self, id, secret, verbose = verbose, log = log)
self.hooks = {}
- self.requests = {}
def add_result_hook(self, hook_to, hook):
self.hooks[hook_to] = hook
def event_authenticated(self, xs):
BaseClient.event_authenticated(self, xs)
+ self.requests = {}
xs.addObserver("/iq/pubsub/create", self.result_create_node)
xs.addObserver("/iq/pubsub/delete", self.result_delete_node)
xs.addObserver("/iq/query[@xmlns='http://jabber.org/protocol/disco#items']", self.result_discover)
def __iq(self, t="get"):
iq = domish.Element((None, "iq"))
iq['from'] = self.id.full()
- iq['to'] = "pubsub.vplc27.inria.fr"
+ iq['to'] = "pubsub.%s" % self.id.host
iq['type'] = t
iq.addUniqueId()
return iq
self.command_queue.put(( self.create_node, "/".join([self.DOMAIN,slice,self.RESOURCES]) ))
def add_resource(self, slice, resource):
- self.command_queue.put(( self.create_node, "/".join([self.DOMAIN,slice,self.RESOURCES,resource]) ))
+ resname = "/".join([self.DOMAIN,slice,self.RESOURCES,resource])
+ self.command_queue.put(( self.create_node, resname ))
def delete_slice(self, slice):
slice_prefix = "/".join([self.DOMAIN,slice])
for i in iq.query.elements():
node = i['node']
if node.startswith(resource_prefix):
- self.command_que.put(self.delete_node, node)
+ self.command_queue.put((self.delete_node, node))
self.add_result_hook("discover", delete_slice_resources)
self.discover()
xmppserver = config.PLC_OMF_XMPP_SERVER
xmppuser = "@".join([config.PLC_OMF_XMPP_USER, xmppserver])
xmpppass = config.PLC_OMF_XMPP_PASSWORD
+ monthstring=time.strftime("%Y-%m")
slicemgr = Slicemgr(xmppuser, xmpppass,
- log=open("/var/log/omf/pubsub_client.log", "a"),
- verbose=True)
+ log=open("/var/log/omf/pubsub-client-%s.log"%monthstring, "a"),
+ # used to be verbose=True but that amounts to huge totally helpless logs, so..
+ verbose=False)
t = task.LoopingCall(slicemgr.flush_commands)
t.start(5.0) # check every 5 seconds
+
+ reactor.callLater(1, slicemgr.create_node, "/OMF")
+ reactor.callLater(1, slicemgr.create_node, "/OMF/SYSTEM")
+
reactor.connectTCP(slicemgr.id.host, 5222, slicemgr.factory)
reactor.listenTCP(5053, server.Site(slicemgr), interface="localhost")
reactor.run(installSignalHandlers=True)