lp:~free.ekanayaka/landscape-client/config-failure

Created by Free Ekanayaka and last modified
Get this branch:
bzr branch lp:~free.ekanayaka/landscape-client/config-failure
Only Free Ekanayaka can upload to this branch. If you are Free Ekanayaka please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Free Ekanayaka
Project:
Landscape Client
Status:
Merged

Recent revisions

243. By Free Ekanayaka

Fix Sidnei's review comment [1] and lints

242. By Free Ekanayaka

Fix landscape-config unclean shutdown

241. By Free Ekanayaka

Create sockets in a directory not readable only by the landscape user

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 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.

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.

236. By Free Ekanayaka

Run landscape-is-cloud-managed only on service startup [trivial]

235. By Free Ekanayaka

Bump debian/changelog version [trivial]

234. By Free Ekanayaka

Update debian/changelog [trivial]

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
This branch contains Public information 
Everyone can see this information.

Subscribers