Mercurial > libervia-pubsub
annotate idavoll/idavoll.py @ 151:f809b998c6f4
Add comments about uuid.py and the required Twisted modules.
author | Ralph Meijer <ralphm@ik.nu> |
---|---|
date | Wed, 05 Oct 2005 07:02:40 +0000 |
parents | d79f0816f6c3 |
children | 5191ba7c4df8 |
rev | line source |
---|---|
105 | 1 from twisted.words.protocols.jabber import component |
1 | 2 from twisted.application import service |
67
cdf17c4d3bf9
Made returning disco info use deferreds.
Ralph Meijer <ralphm@ik.nu>
parents:
63
diff
changeset
|
3 from twisted.internet import defer |
32
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
4 import backend |
1 | 5 import pubsub |
6 import xmpp_error | |
73 | 7 import disco |
1 | 8 |
9 import sys | |
10 | |
140
d79f0816f6c3
Revert changes to error handling into disco calls.
Ralph Meijer <ralphm@ik.nu>
parents:
130
diff
changeset
|
11 __version__ = '0.2' |
d79f0816f6c3
Revert changes to error handling into disco calls.
Ralph Meijer <ralphm@ik.nu>
parents:
130
diff
changeset
|
12 |
8 | 13 NS_VERSION = 'jabber:iq:version' |
14 | |
1 | 15 IQ_GET = '/iq[@type="get"]' |
16 IQ_SET = '/iq[@type="set"]' | |
8 | 17 VERSION = IQ_GET + '/query[@xmlns="' + NS_VERSION + '"]' |
73 | 18 DISCO_INFO = IQ_GET + '/query[@xmlns="' + disco.NS_INFO + '"]' |
19 DISCO_ITEMS = IQ_GET + '/query[@xmlns="' + disco.NS_ITEMS + '"]' | |
1 | 20 |
21 class IdavollService(component.Service): | |
22 | |
32
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
23 def componentConnected(self, xmlstream): |
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
24 self.xmlstream = xmlstream |
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
25 xmlstream.addObserver(VERSION, self.onVersion, 1) |
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
26 xmlstream.addObserver(DISCO_INFO, self.onDiscoInfo, 1) |
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
27 xmlstream.addObserver(DISCO_ITEMS, self.onDiscoItems, 1) |
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
28 xmlstream.addObserver(IQ_GET, self.iqFallback, -1) |
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
29 xmlstream.addObserver(IQ_SET, self.iqFallback, -1) |
8 | 30 |
73 | 31 def get_disco_info(self, node): |
32 info = [] | |
57
445a61f872b6
Use NodeCreationService for pgsql backend, too.
Ralph Meijer <ralphm@ik.nu>
parents:
52
diff
changeset
|
33 |
32
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
34 if not node: |
73 | 35 info.append(disco.Feature(disco.NS_ITEMS)) |
36 info.append(disco.Feature(NS_VERSION)) | |
57
445a61f872b6
Use NodeCreationService for pgsql backend, too.
Ralph Meijer <ralphm@ik.nu>
parents:
52
diff
changeset
|
37 |
73 | 38 return defer.succeed(info) |
32
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
39 |
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
40 def onVersion(self, iq): |
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
41 iq.swapAttributeValues("to", "from") |
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
42 iq["type"] = "result" |
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
43 name = iq.addElement("name", None, 'Idavoll') |
140
d79f0816f6c3
Revert changes to error handling into disco calls.
Ralph Meijer <ralphm@ik.nu>
parents:
130
diff
changeset
|
44 version = iq.addElement("version", None, __version__) |
32
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
45 self.send(iq) |
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
46 iq.handled = True |
1 | 47 |
32
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
48 def onDiscoInfo(self, iq): |
73 | 49 dl = [] |
32
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
50 node = iq.query.getAttribute("node") |
8 | 51 |
32
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
52 for c in self.parent: |
105 | 53 if component.IService.providedBy(c): |
73 | 54 if hasattr(c, "get_disco_info"): |
55 dl.append(c.get_disco_info(node)) | |
92
878a5b7697f2
Consume errors in DeferredLists.
Ralph Meijer <ralphm@ik.nu>
parents:
91
diff
changeset
|
56 d = defer.DeferredList(dl, fireOnOneErrback=1, consumeErrors=1) |
140
d79f0816f6c3
Revert changes to error handling into disco calls.
Ralph Meijer <ralphm@ik.nu>
parents:
130
diff
changeset
|
57 d.addCallback(self._disco_info_results, iq, node) |
102
f4d725a94202
Fix bug in how errors are handled in disco info request.
Ralph Meijer <ralphm@ik.nu>
parents:
101
diff
changeset
|
58 d.addErrback(self._error, iq) |
67
cdf17c4d3bf9
Made returning disco info use deferreds.
Ralph Meijer <ralphm@ik.nu>
parents:
63
diff
changeset
|
59 d.addCallback(self.send) |
cdf17c4d3bf9
Made returning disco info use deferreds.
Ralph Meijer <ralphm@ik.nu>
parents:
63
diff
changeset
|
60 |
cdf17c4d3bf9
Made returning disco info use deferreds.
Ralph Meijer <ralphm@ik.nu>
parents:
63
diff
changeset
|
61 iq.handled = True |
cdf17c4d3bf9
Made returning disco info use deferreds.
Ralph Meijer <ralphm@ik.nu>
parents:
63
diff
changeset
|
62 |
73 | 63 def _disco_info_results(self, results, iq, node): |
64 info = [] | |
65 for i in results: | |
66 info.extend(i[1]) | |
67
cdf17c4d3bf9
Made returning disco info use deferreds.
Ralph Meijer <ralphm@ik.nu>
parents:
63
diff
changeset
|
67 |
73 | 68 if node and not info: |
67
cdf17c4d3bf9
Made returning disco info use deferreds.
Ralph Meijer <ralphm@ik.nu>
parents:
63
diff
changeset
|
69 return xmpp_error.error_from_iq(iq, 'item-not-found') |
32
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
70 else: |
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
71 iq.swapAttributeValues("to", "from") |
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
72 iq["type"] = "result" |
101
b75fcc554358
Added support for disco info meta data.
Ralph Meijer <ralphm@ik.nu>
parents:
97
diff
changeset
|
73 for item in info: |
b75fcc554358
Added support for disco info meta data.
Ralph Meijer <ralphm@ik.nu>
parents:
97
diff
changeset
|
74 #domish.Element.addChild should probably do this for all |
b75fcc554358
Added support for disco info meta data.
Ralph Meijer <ralphm@ik.nu>
parents:
97
diff
changeset
|
75 # subclasses of Element |
b75fcc554358
Added support for disco info meta data.
Ralph Meijer <ralphm@ik.nu>
parents:
97
diff
changeset
|
76 item.parent = iq.query |
b75fcc554358
Added support for disco info meta data.
Ralph Meijer <ralphm@ik.nu>
parents:
97
diff
changeset
|
77 |
b75fcc554358
Added support for disco info meta data.
Ralph Meijer <ralphm@ik.nu>
parents:
97
diff
changeset
|
78 iq.query.addChild(item) |
67
cdf17c4d3bf9
Made returning disco info use deferreds.
Ralph Meijer <ralphm@ik.nu>
parents:
63
diff
changeset
|
79 |
cdf17c4d3bf9
Made returning disco info use deferreds.
Ralph Meijer <ralphm@ik.nu>
parents:
63
diff
changeset
|
80 return iq |
cdf17c4d3bf9
Made returning disco info use deferreds.
Ralph Meijer <ralphm@ik.nu>
parents:
63
diff
changeset
|
81 |
101
b75fcc554358
Added support for disco info meta data.
Ralph Meijer <ralphm@ik.nu>
parents:
97
diff
changeset
|
82 def _error(self, result, iq): |
b75fcc554358
Added support for disco info meta data.
Ralph Meijer <ralphm@ik.nu>
parents:
97
diff
changeset
|
83 print "Got error on index %d:" % result.value[1] |
b75fcc554358
Added support for disco info meta data.
Ralph Meijer <ralphm@ik.nu>
parents:
97
diff
changeset
|
84 result.value[0].printBriefTraceback() |
89
ccf699adae5e
Merge from RELENG_0: Fix bug in handling uncaught exceptions.
Ralph Meijer <ralphm@ik.nu>
parents:
85
diff
changeset
|
85 return xmpp_error.error_from_iq(iq, 'internal-server-error') |
8 | 86 |
32
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
87 def onDiscoItems(self, iq): |
73 | 88 dl = [] |
89 node = iq.query.getAttribute("node") | |
90 | |
91 for c in self.parent: | |
105 | 92 if component.IService.providedBy(c): |
73 | 93 if hasattr(c, "get_disco_items"): |
94 dl.append(c.get_disco_items(node)) | |
92
878a5b7697f2
Consume errors in DeferredLists.
Ralph Meijer <ralphm@ik.nu>
parents:
91
diff
changeset
|
95 d = defer.DeferredList(dl, fireOnOneErrback=1, consumeErrors=1) |
140
d79f0816f6c3
Revert changes to error handling into disco calls.
Ralph Meijer <ralphm@ik.nu>
parents:
130
diff
changeset
|
96 d.addCallback(self._disco_items_result, iq, node) |
102
f4d725a94202
Fix bug in how errors are handled in disco info request.
Ralph Meijer <ralphm@ik.nu>
parents:
101
diff
changeset
|
97 d.addErrback(self._error, iq) |
73 | 98 d.addCallback(self.send) |
99 | |
100 iq.handled = True | |
101 | |
102 def _disco_items_result(self, results, iq, node): | |
103 items = [] | |
104 | |
105 for i in results: | |
106 items.extend(i[1]) | |
107 | |
32
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
108 iq.swapAttributeValues("to", "from") |
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
109 iq["type"] = "result" |
73 | 110 iq.query.children = items |
111 | |
112 return iq | |
32
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
113 |
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
114 def iqFallback(self, iq): |
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
115 if iq.handled == True: |
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
116 return |
1 | 117 |
32
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
118 self.send(xmpp_error.error_from_iq(iq, 'service-unavailable')) |
1 | 119 |
76
66fac7cd9edc
Added -v (--verbose) flag to print out all traffic.
Ralph Meijer <ralphm@ik.nu>
parents:
75
diff
changeset
|
120 class LogService(component.Service): |
66fac7cd9edc
Added -v (--verbose) flag to print out all traffic.
Ralph Meijer <ralphm@ik.nu>
parents:
75
diff
changeset
|
121 |
66fac7cd9edc
Added -v (--verbose) flag to print out all traffic.
Ralph Meijer <ralphm@ik.nu>
parents:
75
diff
changeset
|
122 def transportConnected(self, xmlstream): |
66fac7cd9edc
Added -v (--verbose) flag to print out all traffic.
Ralph Meijer <ralphm@ik.nu>
parents:
75
diff
changeset
|
123 xmlstream.rawDataInFn = self.rawDataIn |
66fac7cd9edc
Added -v (--verbose) flag to print out all traffic.
Ralph Meijer <ralphm@ik.nu>
parents:
75
diff
changeset
|
124 xmlstream.rawDataOutFn = self.rawDataOut |
66fac7cd9edc
Added -v (--verbose) flag to print out all traffic.
Ralph Meijer <ralphm@ik.nu>
parents:
75
diff
changeset
|
125 |
66fac7cd9edc
Added -v (--verbose) flag to print out all traffic.
Ralph Meijer <ralphm@ik.nu>
parents:
75
diff
changeset
|
126 def rawDataIn(self, buf): |
78
a7196ca7cefd
Fixed bug in LogService with non-ascii chars.
Ralph Meijer <ralphm@ik.nu>
parents:
76
diff
changeset
|
127 print "RECV: %s" % unicode(buf, 'utf-8').encode('ascii', 'replace') |
76
66fac7cd9edc
Added -v (--verbose) flag to print out all traffic.
Ralph Meijer <ralphm@ik.nu>
parents:
75
diff
changeset
|
128 |
66fac7cd9edc
Added -v (--verbose) flag to print out all traffic.
Ralph Meijer <ralphm@ik.nu>
parents:
75
diff
changeset
|
129 def rawDataOut(self, buf): |
78
a7196ca7cefd
Fixed bug in LogService with non-ascii chars.
Ralph Meijer <ralphm@ik.nu>
parents:
76
diff
changeset
|
130 print "SEND: %s" % unicode(buf, 'utf-8').encode('ascii', 'replace') |
76
66fac7cd9edc
Added -v (--verbose) flag to print out all traffic.
Ralph Meijer <ralphm@ik.nu>
parents:
75
diff
changeset
|
131 |
1 | 132 def makeService(config): |
32
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
133 serviceCollection = service.MultiService() |
1 | 134 |
32
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
135 # set up Jabber Component |
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
136 sm = component.buildServiceManager(config["jid"], config["secret"], |
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
137 ("tcp:%s:%s" % (config["rhost"], config["rport"]))) |
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
138 |
76
66fac7cd9edc
Added -v (--verbose) flag to print out all traffic.
Ralph Meijer <ralphm@ik.nu>
parents:
75
diff
changeset
|
139 if config["verbose"]: |
66fac7cd9edc
Added -v (--verbose) flag to print out all traffic.
Ralph Meijer <ralphm@ik.nu>
parents:
75
diff
changeset
|
140 LogService().setServiceParent(sm) |
66fac7cd9edc
Added -v (--verbose) flag to print out all traffic.
Ralph Meijer <ralphm@ik.nu>
parents:
75
diff
changeset
|
141 |
42
7d088c61e131
Make choice of backend an option to mktap. This includes the database
Ralph Meijer <ralphm@ik.nu>
parents:
35
diff
changeset
|
142 if config['backend'] == 'pgsql': |
109 | 143 import pgsql_storage |
144 st = pgsql_storage.Storage(user=config['dbuser'], | |
145 database=config['dbname']) | |
42
7d088c61e131
Make choice of backend an option to mktap. This includes the database
Ralph Meijer <ralphm@ik.nu>
parents:
35
diff
changeset
|
146 elif config['backend'] == 'memory': |
109 | 147 import memory_storage |
148 st = memory_storage.Storage() | |
42
7d088c61e131
Make choice of backend an option to mktap. This includes the database
Ralph Meijer <ralphm@ik.nu>
parents:
35
diff
changeset
|
149 |
109 | 150 import generic_backend as b |
43
9685b7e291ef
Moved common stuff out of pgsql_backend.py to backend.py.
Ralph Meijer <ralphm@ik.nu>
parents:
42
diff
changeset
|
151 bs = b.BackendService(st) |
1 | 152 |
97
cf918d581da5
Enable admin to hide all nodes when the service is queried using disco items.
Ralph Meijer <ralphm@ik.nu>
parents:
92
diff
changeset
|
153 c = component.IService(bs) |
cf918d581da5
Enable admin to hide all nodes when the service is queried using disco items.
Ralph Meijer <ralphm@ik.nu>
parents:
92
diff
changeset
|
154 c.setServiceParent(sm) |
cf918d581da5
Enable admin to hide all nodes when the service is queried using disco items.
Ralph Meijer <ralphm@ik.nu>
parents:
92
diff
changeset
|
155 c.hide_nodes = config["hide-nodes"] |
32
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
156 |
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
157 bsc = b.PublishService() |
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
158 bsc.setServiceParent(bs) |
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
159 component.IService(bsc).setServiceParent(sm) |
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
160 |
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
161 bsc = b.NotificationService() |
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
162 bsc.setServiceParent(bs) |
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
163 component.IService(bsc).setServiceParent(sm) |
1 | 164 |
52
0947b46c0968
Use ISubscriptionService support of PostgreSQL backend.
Ralph Meijer <ralphm@ik.nu>
parents:
43
diff
changeset
|
165 bsc = b.SubscriptionService() |
0947b46c0968
Use ISubscriptionService support of PostgreSQL backend.
Ralph Meijer <ralphm@ik.nu>
parents:
43
diff
changeset
|
166 bsc.setServiceParent(bs) |
0947b46c0968
Use ISubscriptionService support of PostgreSQL backend.
Ralph Meijer <ralphm@ik.nu>
parents:
43
diff
changeset
|
167 component.IService(bsc).setServiceParent(sm) |
0947b46c0968
Use ISubscriptionService support of PostgreSQL backend.
Ralph Meijer <ralphm@ik.nu>
parents:
43
diff
changeset
|
168 |
57
445a61f872b6
Use NodeCreationService for pgsql backend, too.
Ralph Meijer <ralphm@ik.nu>
parents:
52
diff
changeset
|
169 bsc = b.NodeCreationService() |
445a61f872b6
Use NodeCreationService for pgsql backend, too.
Ralph Meijer <ralphm@ik.nu>
parents:
52
diff
changeset
|
170 bsc.setServiceParent(bs) |
445a61f872b6
Use NodeCreationService for pgsql backend, too.
Ralph Meijer <ralphm@ik.nu>
parents:
52
diff
changeset
|
171 component.IService(bsc).setServiceParent(sm) |
32
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
172 |
75
1f7b8b6b8ce9
Enable AffiliationsService for memory backend, too.
Ralph Meijer <ralphm@ik.nu>
parents:
73
diff
changeset
|
173 bsc = b.AffiliationsService() |
1f7b8b6b8ce9
Enable AffiliationsService for memory backend, too.
Ralph Meijer <ralphm@ik.nu>
parents:
73
diff
changeset
|
174 bsc.setServiceParent(bs) |
1f7b8b6b8ce9
Enable AffiliationsService for memory backend, too.
Ralph Meijer <ralphm@ik.nu>
parents:
73
diff
changeset
|
175 component.IService(bsc).setServiceParent(sm) |
63
60e95c60252d
Setup AffiliationsService and matching protocol adapter for the pgsql
Ralph Meijer <ralphm@ik.nu>
parents:
57
diff
changeset
|
176 |
109 | 177 bsc = b.ItemRetrievalService() |
178 bsc.setServiceParent(bs) | |
179 component.IService(bsc).setServiceParent(sm) | |
82
758cb81b97ce
Enable ItemRetrievalService for pgsql backend.
Ralph Meijer <ralphm@ik.nu>
parents:
78
diff
changeset
|
180 |
109 | 181 bsc = b.RetractionService() |
182 bsc.setServiceParent(bs) | |
183 component.IService(bsc).setServiceParent(sm) | |
85
ec557449d1aa
Implement node retraction, with storage support for pgsql.
Ralph Meijer <ralphm@ik.nu>
parents:
82
diff
changeset
|
184 |
109 | 185 bsc = b.NodeDeletionService() |
186 bsc.setServiceParent(bs) | |
187 component.IService(bsc).setServiceParent(sm) | |
91
47ee5369c410
Use NodeDeletionService for the pgsql backend.
Ralph Meijer <ralphm@ik.nu>
parents:
89
diff
changeset
|
188 |
32
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
189 s = IdavollService() |
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
190 s.setServiceParent(sm) |
1 | 191 |
32
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
192 sm.setServiceParent(serviceCollection) |
1 | 193 |
32
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
194 # other stuff |
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
195 |
ddc08757ec1d
Fire up several component.IServices that match the backend Services.
Ralph Meijer <ralphm@ik.nu>
parents:
26
diff
changeset
|
196 return sm |