lp:~free.ekanayaka/landscape-client/config-failure
- Get this branch:
- bzr branch lp:~free.ekanayaka/landscape-client/config-failure
Branch merges
- Muharem Hrnjadovic (community): Approve
- Sidnei da Silva (community): Approve
- Kevin McDermott: Pending requested
-
Diff: 307 lines (+31/-104)6 files modifiedlandscape/broker/client.py (+3/-1)
landscape/broker/server.py (+0/-15)
landscape/broker/tests/test_client.py (+2/-1)
landscape/broker/tests/test_server.py (+0/-55)
landscape/configuration.py (+8/-9)
landscape/tests/test_configuration.py (+18/-23)
Related bugs
Bug #576398: landscape.lib.amp.MethodCallError during registration | Low | Fix Released |
Related blueprints
Branch information
Recent revisions
- 240. By Free Ekanayaka
-
Merge response-sequence [f=571306,
r=therve, al-maisan] Drop the DeferredResponse mechanism, using AMP's built-in support for command
responder returning deferreds. - 239. By Muharem Hrnjadovic
-
Merge obsolete-results-v [f=328005]
[r=free, therve] The MessageExchange now detects obsolete response messages. Response
messages are considered obsolete when the client computers's secure-id
has changed between receiving the request message and completing the
corresponding task. - 238. By Free Ekanayaka
-
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 RemoteComponent
Connector. 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 BrokerClientPro
tocol 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 BrokerServerPro
tocol 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. - 237. By Thomas Herve
-
Merge broken-
ec2-api- endpoint [r=bigkevmcd, free.ekanayaka] [f=567515] Workaround a bug in the EC2 API endpoint by deserializing access, making only
one request at a time to retrieve instance information.
Branch metadata
- Branch format:
- Branch format 7
- Repository format:
- Bazaar repository format 2a (needs bzr 1.16 or later)
- Stacked on:
- lp:~landscape/landscape-client/trunk