Comment 3 for bug 306360

Revision history for this message
Christopher Armstrong (radix) wrote : Re: Update landscape-client package to 1.0.24

There were some other changes, which I'm putting into the changelog:

  * New upstream release supporting custom graphs (LP: #306360)
    - PATH is now set for scripts in script execution (LP: #257018)
  * debian/landscape-client.postinst: Work around chfn/system user problem
    by not specifying a --gecos (LP: #238755)
  * debian/landscape-client.logrotate: logrotate no longer reports spurious
    errors when the client isn't running (LP: #271767)

I'm not sure what type of detail you want to know for the various code changes, so I'll try to be thorough. I'm looking through the entire diff from the current intrepid version to this new version to write this list of changes:

In addition to the changes above, the feature of custom graphs required some changes:

 - The client now sends a list of the types of messages that it can accept to the server. This is to allow the server to determine whether any given client will support a particular feature. For example, it's used now to determine if the client supports custom graphs before sending a message to the client.

 - In order to thoroughly support the previous point, we had to change the code that handles messages (in the manager and monitor) to tell the broker which messages that it handles. This involves a new dbus call to the broker. The broker itself now maintains a registry of handlers for messages instead of doing ad-hoc message introspection when handling a message so that we can know which types it handles.

 - This accepted types stuff has a minor optimization so that the client doesn't have to send the full list of accepted types on every exchange with the server; the server keeps the list of accepted types and sends a hash of all of them to the client on every exchange; the client only sends the full list again if the hash doesn't match its current list.

 - Since the custom graph code uses a lot of same functionality as the script execution code, the script execution code was refactored to allow reuse of the same code. Methods were refactored into smaller bits for easier reuse and some class hierarchies were restructured.

 - The custom graph feature is actually being made available as a part of the script execution plugin: so if the user already has include_manager_plugins = ScriptExecution in his configuration file, custom graphs will Just Work. This also drove some of the refactoring in the script execution code (scriptexecution.py).

 - A new "manager.database" sqlite database was added to /var/lib/landscape/client/ to store custom graph-related data. It's called "manager.database" because it's not actually restricted to custom graphs, but will be used for any other data storage needs of the manager. custom graphs is just the first user.

 - Of course, new unit tests were added and existing unit tests were updated for all these changes.

As for non-custom-graph related changes:

 - An accidentally duplicated method in the load average plugin was removed

If you'd like something more thorough than this, or just some clarification of specific issues, please ask.

I'll attach a branch shortly for jaunty.