256
|
|
|
Free Ekanayaka |
13 years ago
|
|
|
255
|
|
|
Thomas Hervé |
13 years ago
|
|
|
254
|
|
|
Jamu Kakar |
13 years ago
|
|
|
253
|
|
|
Andreas Hasenack |
13 years ago
|
|
|
252
|
|
|
Free Ekanayaka |
13 years ago
|
|
|
251
|
|
|
Jamu Kakar |
13 years ago
|
|
|
250
|
|
|
Free Ekanayaka |
14 years ago
|
|
|
249
|
|
|
Free Ekanayaka |
14 years ago
|
|
|
248
|
|
|
Thomas Hervé |
14 years ago
|
|
|
247
|
|
|
Free Ekanayaka |
14 years ago
|
|
|
246
|
|
|
Free Ekanayaka |
14 years ago
|
|
|
245
|
|
|
Free Ekanayaka |
14 years ago
|
|
|
244
|
|
|
Free Ekanayaka |
14 years ago
|
|
|
243
|
|
|
Thomas Hervé |
14 years ago
|
|
|
242
|
|
|
Free Ekanayaka |
14 years ago
|
|
|
241
|
|
|
Free Ekanayaka |
14 years ago
|
|
|
240
|
|
|
Free Ekanayaka |
14 years ago
|
|
|
239
|
|
|
Muharem Hrnjadovic |
14 years ago
|
|
|
238
|
|
Merge amp-trunk [trivial]
Migrate our inter-process communication system from D-Bus to a Twisted AMP-based protocol.
The change has been splitted into serveral branches that have been reviewed separately in the LP bugs 570763, 570192, 568983, 568499, 567152, 564587, 564620, 562330, 561471, 559312, 558455, 556603, 552414, 546825, 544070, 539658, 537538, 535227, 499176, 531480, 499121, 514250, 499225 and 499018.
For sake of convenience here follows a summary of the changes introduced by each branch:
- Cleanup for having the base classes for monitor and manager plugins in landscape.monitor.plugin and landscape.manager.plugin. - Install the dbus bpickle extensions when starting a LandscapeService, letting plugins like the HAL/hardware one send dbus data types over AMP. - Make the monitor and manager test cases inherit from LandscapeTest instead of LandscapeIsolatedTest, as they don't need DBus anymore. - Make the landscape-config script use the AMP-based protocol to communicate with the broker.
- Change the MethodCall protocol to split arguments in chunks of 64k and transparently send them over several AMP commands.
- Make all task handlers derived from PackageTaskHandlers use the AMP-based protocol instead of D-Bus to communicate with the broker. - Port the behavior introduced in Bug #542215 to the AMP-based BrokerServer, which now broadcasts package-data-changed events. - Make the BrokerServiceHelper provide a 'live' RemoteBroker instead of a FakeRemoteBroker. The former BrokerServiceHelper has been renamed to FakeBrokerServiceHelper. - Migrate the watchdog to AMP, replacing the existing DBus-based communication mechanism with the AMP-based one.
- Change is in the shutdown logic in the watchdog to be fully asynchronous, while before was relying on DBus being synchronous. - Add a 'factor' parameter to the RemoteComponentConnector.connect mehtod, for setting the pace at which service will try to reconnect. - Make services pass "wantPID" to the reactor.listenUNIX method, which cleans up left-over unix sockets on the filesystem (e.g. the former process died). - Change the landscape-{broker,monitor,manager} scripts to use the AMP-based versions of the associated services. - Move the BrokerConfiguration from landscape.broker.deployment to landscape.broker.config, for consistency with the monitor and the manager equivalent classes.
- Replace the DBus-based MonitorHelper and ManagerHelper with their AMP-based equivalent. - Make the BrokerServer subscribe to the exchanger events, like "message", "impending-exchange", "exchange-failed", "registration-done", etc. and notifiy all connected clients about them. - Convert the usermanager and usermonitor communication mechanism from D-Bus to our AMP-based protocol. - Add a ManagerService class that takes care of starting the manager and make it listen to the correct Unix socket for incoming AMP connections. - Add a MonitorService class that takes care of starting the monitor and make it listen to the correct Unix socket for incoming AMP connections.
- Add a BrokerService class that starts listening for incoming AMP connections on a Unix socket. - Add a BrokerClientProtocol for exposing the methods of a broker client to the broker server.
- Decouple the broker client API logic from DBus, adding a new BrokerClient class implementing the behavior the broker expects for its clients.
- Add a BrokerServerProtocol class that can be used by the broker clients (monitor and manager) to perform remote method calls on the BrokerServer.
- Add a MethodCall-based protocol for basic communication between the various Landscape components. - Add a BrokerServer class implementing the same methods and interfaces of BrokerDBusObject, but not publishing them on DBus. The methods of this class will be exposed to the broker clients (the monitor and the manager) by an AMP-based protocol.
- Add a reconnection mechanism to the MethodCall protocol makes it: * Keep trying to connect if the very fist attempt failed (for instance the remote process we're trying to contact is not yet ready to accept connections). * Try to reconnect if the connection drops (for instance the remote process died and the watchdog started it again). * Try to re-perform a failed MethodCall request as soon as the connection is up again, in case it failed because it was issued during a connection blackout (for instance a monitor plugin tries to call a RemoteBroker.send_message while the broker is restarting). - Make the MethodCall protocol able to cope with remote methods returning deferreds. - Add an AMP-based protocol to easily expose objects over AMP and perform remote method calls on them.
|
Free Ekanayaka |
14 years ago
|
|
|
237
|
|
|
Thomas Hervé |
14 years ago
|
|
|