[CalendarServer-changes] [13071] CalendarServer/branches/users/sagen/move2who-4/calendarserver/tools /agent.py

source_changes at macosforge.org source_changes at macosforge.org
Mon Mar 31 17:27:18 PDT 2014


Revision: 13071
          http://trac.calendarserver.org//changeset/13071
Author:   wsanchez at apple.com
Date:     2014-03-31 17:27:18 -0700 (Mon, 31 Mar 2014)
Log Message:
-----------
lint

Modified Paths:
--------------
    CalendarServer/branches/users/sagen/move2who-4/calendarserver/tools/agent.py

Modified: CalendarServer/branches/users/sagen/move2who-4/calendarserver/tools/agent.py
===================================================================
--- CalendarServer/branches/users/sagen/move2who-4/calendarserver/tools/agent.py	2014-03-31 23:26:45 UTC (rev 13070)
+++ CalendarServer/branches/users/sagen/move2who-4/calendarserver/tools/agent.py	2014-04-01 00:27:18 UTC (rev 13071)
@@ -18,10 +18,10 @@
 
 """
 A service spawned on-demand by launchd, meant to handle configuration requests
-from Server.app.  When a request comes in on the socket specified in the launchd
-agent.plist, launchd will run "caldavd -t Agent" which ends up creating this
-service.  Requests are made using HTTP POSTS to /gateway, and are authenticated
-by OpenDirectory.
+from Server.app.  When a request comes in on the socket specified in the
+launchd agent.plist, launchd will run "caldavd -t Agent" which ends up creating
+this service.  Requests are made using HTTP POSTS to /gateway, and are
+authenticated by OpenDirectory.
 """
 
 from __future__ import print_function
@@ -51,7 +51,7 @@
 
 
 
-class DirectoryServiceChecker:
+class DirectoryServiceChecker(object):
     """
     A checker that knows how to ask OpenDirectory to authenticate via Digest
     """
@@ -64,41 +64,53 @@
 
     def __init__(self, node):
         """
-        @param node: the name of the OpenDirectory node to use, e.g. /Local/Default
+        @param node: the name of the OpenDirectory node to use, e.g.
+            C{"/Local/Default"}
         """
         self.node = node
         self.directory = self.directoryModule.odInit(node)
 
 
     def requestAvatarId(self, credentials):
-        record = self.directoryModule.getUserRecord(self.directory, credentials.username)
+        record = self.directoryModule.getUserRecord(
+            self.directory, credentials.username
+        )
 
         if record is not None:
             try:
                 if "algorithm" not in credentials.fields:
                     credentials.fields["algorithm"] = "md5"
 
-                challenge = 'Digest realm="%(realm)s", nonce="%(nonce)s", algorithm=%(algorithm)s' % credentials.fields
+                challenge = (
+                    'Digest realm="{realm}", nonce="{nonce}", '
+                    'algorithm={algorithm}'
+                    .format(**credentials.fields)
+                )
 
                 response = (
-                    'Digest username="%(username)s", '
-                    'realm="%(realm)s", '
-                    'nonce="%(nonce)s", '
-                    'uri="%(uri)s", '
-                    'response="%(response)s",'
-                    'algorithm=%(algorithm)s'
-                ) % credentials.fields
+                    'Digest username="{username}", '
+                    'realm="{realm}", '
+                    'nonce="{nonce}", '
+                    'uri="{uri}", '
+                    'response="{response}",'
+                    'algorithm={algorithm}'
+                ).format(**credentials.fields)
 
             except KeyError as e:
                 log.error(
-                    "OpenDirectory (node=%s) error while performing digest authentication for user %s: "
-                    "missing digest response field: %s in: %s"
-                    % (self.node, credentials.username, e, credentials.fields)
+                    "OpenDirectory (node={directory.node}) error while "
+                    "performing digest authentication for user "
+                    "{credentials.username}: missing digest response field: "
+                    "{field} in: {credentials.fields}"
+                    .format(
+                        directory=self, credentials=credentials, field=e
+                    )
                 )
                 return fail(UnauthorizedLogin())
 
             try:
-                if self.directoryModule.authenticateUserDigest(self.directory,
+                if self.directoryModule.authenticateUserDigest(
+                    self.directory,
                     self.node,
                     credentials.username,
                     challenge,
@@ -107,12 +119,17 @@
                 ):
                     return succeed(credentials.username)
                 else:
-                    log.error("Failed digest auth with response: %s" % (response,))
+                    log.error(
+                        "Failed digest auth with response: {response}",
+                        response=response
+                    )
                     return fail(UnauthorizedLogin())
             except Exception as e:
                 log.error(
-                    "OpenDirectory error while performing digest authentication for user %s: %s"
-                    % (credentials.username, e)
+                    "OpenDirectory error while performing digest "
+                    "authentication for user {credentials.username}: "
+                    "{error}",
+                    credentials=credentials, error=e
                 )
                 return fail(UnauthorizedLogin())
 
@@ -161,7 +178,8 @@
 
 class AgentGatewayResource(Resource):
     """
-    The gateway resource which forwards incoming requests through gateway.Runner.
+    The gateway resource which forwards incoming requests through
+    gateway.Runner.
     """
     isLeaf = True
 
@@ -202,10 +220,10 @@
             tbString = tbStringIO.getvalue()
             tbStringIO.close()
             error = {
-                "Error" : message,
-                "Traceback" : tbString,
+                "Error": message,
+                "Traceback": tbString,
             }
-            log.error("command failed %s" % (failure,))
+            log.error("command failed {error}", error=failure)
             request.write(writePlistToString(error))
             request.finish()
 
@@ -213,8 +231,10 @@
         body = request.content.read()
         command = readPlistFromString(body)
         output = cStringIO.StringIO()
-        runner = Runner(self.davRootResource, self.directory, self.store,
-            [command], output=output)
+        runner = Runner(
+            self.davRootResource, self.directory, self.store,
+            [command], output=output
+        )
         d = runner.run()
         d.addCallback(onSuccess, output)
         d.addErrback(onError)
@@ -246,15 +266,22 @@
         log.warn("Agent inactive; shutting down")
         reactor.stop()
 
-    inactivityDetector = InactivityDetector(reactor,
-        config.AgentInactivityTimeoutSeconds, becameInactive)
+    inactivityDetector = InactivityDetector(
+        reactor, config.AgentInactivityTimeoutSeconds, becameInactive
+    )
     root = Resource()
-    root.putChild("gateway", AgentGatewayResource(store,
-        davRootResource, directory, inactivityDetector))
+    root.putChild(
+        "gateway",
+        AgentGatewayResource(
+            store, davRootResource, directory, inactivityDetector
+        )
+    )
 
     realmName = "/Local/Default"
-    portal = Portal(AgentRealm(root, ["com.apple.calendarserver"]),
-        [DirectoryServiceChecker(realmName)])
+    portal = Portal(
+        AgentRealm(root, ["com.apple.calendarserver"]),
+        [DirectoryServiceChecker(realmName)]
+    )
     credentialFactory = CustomDigestCredentialFactory("md5", realmName)
     wrapper = HTTPAuthSessionWrapper(portal, [credentialFactory])
 
@@ -283,8 +310,10 @@
         self._becameInactive = becameInactive
 
         if self._timeoutSeconds > 0:
-            self._delayedCall = self._reactor.callLater(self._timeoutSeconds,
-                self._inactivityThresholdReached)
+            self._delayedCall = self._reactor.callLater(
+                self._timeoutSeconds,
+                self._inactivityThresholdReached
+            )
 
 
     def _inactivityThresholdReached(self):
@@ -304,8 +333,10 @@
             if self._delayedCall.active():
                 self._delayedCall.reset(self._timeoutSeconds)
             else:
-                self._delayedCall = self._reactor.callLater(self._timeoutSeconds,
-                    self._inactivityThresholdReached)
+                self._delayedCall = self._reactor.callLater(
+                    self._timeoutSeconds,
+                    self._inactivityThresholdReached
+                )
 
 
     def stop(self):
@@ -361,17 +392,17 @@
         command = readPlistFromString(command)
         output = cStringIO.StringIO()
         from calendarserver.tools.gateway import Runner
-        runner = Runner(self.davRootResource, self.directory, self.store,
-            [command], output=output)
+        runner = Runner(
+            self.davRootResource, self.directory, self.store,
+            [command], output=output
+        )
 
         try:
             yield runner.run()
             result = output.getvalue()
             output.close()
         except Exception as e:
-            error = {
-                "Error" : str(e),
-            }
+            error = {"Error": str(e)}
             result = writePlistToString(error)
 
         output.close()
@@ -396,8 +427,9 @@
 
 
     def buildProtocol(self, addr):
-        return GatewayAMPProtocol(self.store, self.davRootResource,
-            self.directory)
+        return GatewayAMPProtocol(
+            self.store, self.davRootResource, self.directory
+        )
 
 
 
@@ -406,7 +438,8 @@
 #
 
 command = """<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
+ "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <dict>
         <key>command</key>
@@ -414,6 +447,7 @@
 </dict>
 </plist>"""
 
+
 def getList():
     # For the sample client, below:
     from twisted.internet import reactor
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140331/35c93f26/attachment-0001.html>


More information about the calendarserver-changes mailing list