plugin XEP-0060: added createIfNewNode method which doesn't fail in case of conflict.

This commit is contained in:
Goffi 2017-10-20 08:44:09 +02:00
commit 363ee1db88

View file

@ -447,6 +447,17 @@ class XEP_0060(object):
"""
return client.pubsub_client.createNode(service, nodeIdentifier, options)
@defer.inlineCallbacks
def createIfNewNode(self, client, service, nodeIdentifier, options=None):
"""Helper method similar to createNode, but will not fail in case of conflict"""
try:
yield self.createNode(client, service, nodeIdentifier, options)
except error.StanzaError as e:
if e.condition == 'conflict':
pass
else:
raise e
def _getNodeConfiguration(self, service_s, nodeIdentifier, profile_key):
client = self.host.getClient(profile_key)
d = self.getConfiguration(client, jid.JID(service_s) if service_s else None, nodeIdentifier)