~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to daemons/poppy-sftp.tac

Working sketch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
6
6
# or similar.  Refer to the twistd(1) man page for details.
7
7
 
8
8
import logging
 
9
import sys
9
10
 
10
11
from twisted.application import service
11
12
from twisted.conch.interfaces import ISession
13
14
from twisted.cred.portal import IRealm, Portal
14
15
from twisted.protocols.policies import TimeoutFactory
15
16
from twisted.python import components
 
17
from twisted.scripts.twistd import ServerOptions
16
18
from twisted.web.xmlrpc import Proxy
17
19
 
18
20
from zope.interface import implements
31
33
    LaunchpadAvatar, PublicKeyFromLaunchpadChecker)
32
34
from lp.services.sshserver.service import SSHService
33
35
from lp.services.sshserver.session import DoNothingSession
 
36
from lp.services.twistedsupport.loggingsupport import set_up_oops_reporting
34
37
 
35
38
 
36
39
def make_portal():
70
73
    return SFTPServer(avatar, get_poppy_root())
71
74
 
72
75
 
73
 
# Connect Python logging to Twisted's logging.
74
 
from lp.services.twistedsupport.loggingsupport import set_up_tacfile_logging
75
 
set_up_tacfile_logging("poppy-sftp", logging.INFO)
 
76
# Force python logging to all go to the Twisted log.msg interface. The default
 
77
# - output on stderr - will not be watched by anyone.
 
78
from twisted.python import log
 
79
stream = log.StdioOnnaStick()
 
80
logging.basicConfig(stream=stream, level=logging.INFO)
76
81
 
77
82
 
78
83
components.registerAdapter(
86
91
 
87
92
# Construct an Application that has the Poppy SSH server,
88
93
# and the Poppy FTP server.
 
94
options = ServerOptions()
 
95
options.parseOptions()
89
96
application = service.Application('poppy-sftp')
 
97
observer = set_up_oops_reporting(
 
98
    'poppy-sftp', 'poppy', options.get('logfile'))
 
99
application.addComponent(observer, ignoreClass=1)
90
100
 
91
101
ftpservice.setServiceParent(application)
92
102