Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(322)

Side by Side Diff: third_party/twisted_8_1/twisted/words/tap.py

Issue 12261012: Remove third_party/twisted_8_1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 # -*- test-case-name: twisted.words.test.test_tap -*-
2 # Copyright (c) 2001-2005 Twisted Matrix Laboratories.
3 # See LICENSE for details.
4 """
5 Shiny new words service maker
6 """
7
8 import sys, socket
9
10 from twisted.application import strports
11 from twisted.application.service import MultiService
12 from twisted.python import usage
13 from twisted import plugin
14
15 from twisted.words import iwords, service
16 from twisted.cred import checkers, credentials, portal, strcred
17
18 class Options(usage.Options, strcred.AuthOptionMixin):
19 supportedInterfaces = [credentials.IUsernamePassword]
20 optParameters = [
21 ('hostname', None, socket.gethostname(),
22 'Name of this server; purely an informative')]
23
24 interfacePlugins = {}
25 plg = None
26 for plg in plugin.getPlugins(iwords.IProtocolPlugin):
27 assert plg.name not in interfacePlugins
28 interfacePlugins[plg.name] = plg
29 optParameters.append((
30 plg.name + '-port',
31 None, None,
32 'strports description of the port to bind for the ' + plg.name + ' server'))
33 del plg
34
35 def __init__(self, *a, **kw):
36 usage.Options.__init__(self, *a, **kw)
37 self['groups'] = []
38
39 def opt_group(self, name):
40 """Specify a group which should exist
41 """
42 self['groups'].append(name.decode(sys.stdin.encoding))
43
44 def opt_passwd(self, filename):
45 """
46 Name of a passwd-style file. (This is for
47 backwards-compatibility only; you should use the --auth
48 command instead.)
49 """
50 self.addChecker(checkers.FilePasswordDB(filename))
51
52 def makeService(config):
53 credCheckers = config.get('credCheckers', [])
54 wordsRealm = service.InMemoryWordsRealm(config['hostname'])
55 wordsPortal = portal.Portal(wordsRealm, credCheckers)
56
57 msvc = MultiService()
58
59 # XXX Attribute lookup on config is kind of bad - hrm.
60 for plgName in config.interfacePlugins:
61 port = config.get(plgName + '-port')
62 if port is not None:
63 factory = config.interfacePlugins[plgName].getFactory(wordsRealm, wo rdsPortal)
64 svc = strports.service(port, factory)
65 svc.setServiceParent(msvc)
66
67 # This is bogus. createGroup is async. makeService must be
68 # allowed to return a Deferred or some crap.
69 for g in config['groups']:
70 wordsRealm.createGroup(g)
71
72 return msvc
OLDNEW
« no previous file with comments | « third_party/twisted_8_1/twisted/words/service.py ('k') | third_party/twisted_8_1/twisted/words/test/__init__.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698