Release Notes for LDS 12.04b2

Highlights:

  • updated api
    • calls to handle administrators (invite, list, disable)
    • new call to list the registered clouds
    • package profiles
  • api client tab completion
  • automatically update list of ubuntu releases in the start instance page
  • incompatible change: python methods now return python objects instead of json strings
  • automatic AWS region updates
  • in progress work about UI scalability
  • improved handling of scripts with attachments
  • new hardware information page (requires new 12.04 client)
  • many new search features, including search for specific bits of hardware
  • saved searches available in the UI for manipulation
  • hardware CSV export
  • smart package locks are now deprecated
  • client now uses APT instead of Smart
  • CSV export for package profiles
  • OpenID authentication support
  • separate package for hash-id-database files, making the landscape-server package much smaller
  • support for cloud-init in the UI when launching cloud instances
  • support for canceling already delivered activities
  • new RUN_CRON setting in /etc/default/landscape-server

Read on for details.

Upgrading

Upgrades are supported from the latest stable release (11.07.20120217-2) and the previous Beta release (11.10.20120111-1) ONLY.

Quickstart upgrades

There are no special instructions for the quickstart upgrade.

Non-quickstart upgrades

There are two changes that need to be applied manually to the Apache vhost file which hosts the Landscape site in the application server machine:

  • In the https (port 443) vhost section, remove the final /message-system part from the existing rewrite rule. This:

    RewriteRule ^/message-system http://localhost:8090/++vh++https:${hostname}:443/++/message-system [P,L]

Should become this:

    RewriteRule ^/message-system http://localhost:8090/++vh++https:${hostname}:443/++/ [P,L]
  • Also in the https (port 443) vhost section, add a new rewrite rule for script attachments, just below the existing /api rule, so that it looks like this:

(...)
    RewriteRule ^/api http://localhost:9080/ [P,L]
    RewriteRule ^/attachment/(.*) http://localhost:8090/attachment/$1 [P,L]

After these changes, upgrade the landscape-server package as usual and manually upgrade the clouddeck schema:

    sudo clouddeck-schema /etc/clouddeck/stores.cfg

If automatic schema upgrades are disabled (see /etc/default/landscape-server), then you will also need to manually upgrade the Landscape schema:

    sudo setup-landscape-server

Finally, make sure python-apt is installed on the database server, as it's now required for a stored procedure.

Fresh deployment

Python API client

There is a small incompatible change introduced in the API client to make Python programs easier. Instead of returning a JSON object, the calls now return a proper python object.

For example, before you would write this to get a list of all distributions:

   1 import json
   2 from landscape_api.base import API
   3 
   4 uri = os.getenv("LANDSCAPE_API_URI")
   5 key = os.getenv("LANDSCAPE_API_KEY")
   6 secret = os.getenv("LANDSCAPE_API_SECRET")
   7 ca = os.getenv("LANDSCAPE_API_SSL_CA_FILE", None)
   8 api = API(uri, key, secret, ca)
   9 distributions = json.loads(api.get_distributions())

Now there is no need for the json conversion. Just write this:

   1 from landscape_api.base import API
   2 
   3 uri = os.getenv("LANDSCAPE_API_URI")
   4 key = os.getenv("LANDSCAPE_API_KEY")
   5 secret = os.getenv("LANDSCAPE_API_SECRET")
   6 ca = os.getenv("LANDSCAPE_API_SSL_CA_FILE", None)
   7 api = API(uri, key, secret, ca)
   8 distributions = api.get_distributions()

The returned object in the above example (distributions) will be a python list already.

API and Repository Profiles tutorials

Please see the Beta 1 Release Notes. For the Python API example, you need to take into consideration the change described above about not using json.loads() anymore.

API documentation

Please see the documentation link at the bottom of the LDS pages in your installation.

OpenID support

This release includes support for authenticating Landscape users with an external OpenID provider. To enable OpenID support, please add openid-provider-url and openid-logout-url to /etc/landscape/service.conf in the [landscape] section. For example:

[landscape]
(...)
openid-provider-url = https://login.ubuntu.com/
openid-logout-url = https://login.ubuntu.com/+logout

There is no provision yet to upgrade current users to OpenID authentication. If you want to change your existing installation to use OpenID, you will have to migrate the existing users manually.

Migrating existing users to OpenID authentication

To change the authentication mechanism of existing users to OpenID, you will need to insert each user's OpenID URL into the user entry in the database. Let's see an example.

Let's suppose we have an existing user called John Smith and we want to migrate him to OpenID. After changing /etc/landscape/service.conf and restarting the Landscape services, connect to the landscape-standalone-main database as an administrator:

ubuntu@ubuntu:~$ sudo -u postgres psql landscape-standalone-main
psql (8.4.11)
Type "help" for help.

landscape-standalone-main=# 

We now need to update the identity column of John's entry in the person table with his OpenID URL. Given John's email and his OpenID URL, the following SQL will do it:

UPDATE person SET identity = 'https://login.ubuntu.com/+id/FooBar' WHERE identity IS NULL AND email = 'john@example.com';
UPDATE 1
landscape-standalone-main=# 

This needs to be done for all users.

New hardware information

Starting with the 12.04.x client, hardware information in Landscape went through a major overhaul. Not only are new pieces of information available, the page has a better layout and all that information can be searched for either via the API or in the web UI. Here are some examples of the searches that are now possible:

  • Disk size/product/serial
    • disk.size:[80gb TO 1tb] (supporting 80g(G) and 1t(T))

    • disk.size:40g (will grab 39g to 41g) (even fuzzier for RAM)

    • disk.product:string

  • cpu.size:[1.7GHz TO *]

  • cpu.vendor:intel

There are many more possibilities. This documentation still needs to be expanded.

Smart vs APT

With this release of both LDS and the 12.04.x client, Landscape no longer uses Smart (http://smartpm.org) for package handling. Now, APT is used instead, both on the server and on the client. This means that package locks are no longer supported in Landscape, and will be replaced by package holds in apt/dpkg.

RUN_CRON setting

When doing more complex deployments, with several machines working as app and database servers, care must be taken to only run the Landscape cron jobs in one machine. In this case, select the machine where you want these jobs to run and set RUN_CRON="yes" in /etc/default/landscape-server on that machine only, leaving it disabled in all the others.

Known issues

Here are some of the known issues and shortcomings of this release.

No Ubuntu releases

Two cron jobs need to run in order for Landscape to know the available Ubuntu releases. This affects the release upgrade code, and the start new cloud instance code.

If your deployment isn't listing the Ubuntu releases, then you can either wait for the cron jobs to kick in, or run them manually as follows:

sudo -u landscape dash /opt/canonical/landscape/scripts/maintenance.sh
sudo -u landscape dash /opt/canonical/landscape/scripts/meta_releases.sh
  • /!\ If you have several thousand computers registered with Landscape, the maintenance job can take a long time to complete.

Errors in the update_ec2data.sh cron job

The update_ec2data.sh was modified to also dynamically update the instance types from Amazon. It queries a Canonical server for this information, but that service is not yet live. As a result, the cron job will fail once a day with something like:

    Error downloading Amazon EC2 instance types file
    from https://landscape.canonical.com/get-aws-instance-types

Once the service is deployed in the upcoming weeks, the failure will be gone.

No hardware information for clients < 12.04

Due to changes in the hardware information area of Landscape, clients older than 12.04 won't report hardware information to this LDS release. An updated client is required. Currently, this client is only available for Ubuntu 12.04 LTS ("precise"), but an update for 10.04 LTS ("lucid"), 11.04 ("natty") and 11.10 ("oneiric") will be out shortly.

LDS/BetaReleaseNotes12.04b2 (last edited 2012-07-06 14:04:53 by ahasenack)