[CalendarServer-changes] [3145] CalendarServer/trunk/twistedcaldav/notify.py

source_changes at macosforge.org source_changes at macosforge.org
Mon Oct 13 12:01:58 PDT 2008


Revision: 3145
          http://trac.macosforge.org/projects/calendarserver/changeset/3145
Author:   sagen at apple.com
Date:     2008-10-13 12:01:58 -0700 (Mon, 13 Oct 2008)
Log Message:
-----------
Only configure nodes if they don't match what we want.

Modified Paths:
--------------
    CalendarServer/trunk/twistedcaldav/notify.py

Modified: CalendarServer/trunk/twistedcaldav/notify.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/notify.py	2008-10-13 14:17:42 UTC (rev 3144)
+++ CalendarServer/trunk/twistedcaldav/notify.py	2008-10-13 19:01:58 UTC (rev 3145)
@@ -765,6 +765,7 @@
                             defaultUri='jabber:x:data')
                         filledForm['type'] = 'submit'
 
+                        configMatches = True
                         for field in formElement.elements():
                             if field.name == 'field':
                                 var = field['var']
@@ -772,16 +773,33 @@
                                     filledForm.addChild(field)
                                 else:
                                     value = self.nodeConf.get(var, None)
-                                    if value is not None:
+                                    if (value is not None and
+                                        (str(self._getChild(field,
+                                        "value")) != value)):
+                                        # this field needs configuring
+                                        configMatches = False
                                         filledField = filledForm.addElement('field')
                                         filledField['var'] = var
                                         filledField['type'] = field['type']
                                         valueElement = filledField.addElement('value')
                                         valueElement.addContent(value)
                                         # filledForm.addChild(field)
-                        self.sendDebug("Sending configuration form (%s)"
-                                       % (nodeName,), filledIq)
-                        d = filledIq.send(to=self.settings['ServiceAddress'])
+                        if configMatches:
+                            cancelIq = IQ(self.xmlStream, type='set')
+                            cancelPubSub = cancelIq.addElement('pubsub',
+                                defaultUri=self.pubsubNS+"#owner")
+                            cancelConfig = cancelPubSub.addElement('configure')
+                            cancelConfig['node'] = nodeName
+                            cancelX = cancelConfig.addElement('x',
+                                defaultUri='jabber:x:data')
+                            cancelX['type'] = 'cancel'
+                            self.sendDebug("Cancelling configuration (%s)"
+                                           % (nodeName,), cancelIq)
+                            d = cancelIq.send(to=self.settings['ServiceAddress'])
+                        else:
+                            self.sendDebug("Sending configuration form (%s)"
+                                           % (nodeName,), filledIq)
+                            d = filledIq.send(to=self.settings['ServiceAddress'])
                         d.addCallback(self.configurationSuccess, nodeName,
                             publish)
                         d.addErrback(self.configurationFailure, nodeName)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20081013/ecea046f/attachment-0001.html 


More information about the calendarserver-changes mailing list