GNOME Software no longer has a welcome screen in any current
Fedora (it was dropped between 35 and 36), but in Rawhide it now
has a popup that prompts you to enable third-party repos which
we need to get rid of, so just convert the welcome screen check
to handle that, and drop all the welcome screen needles.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
This test fails on Rawhide (because sddm-on-wayland) but we just
got an F37 respin, where it passes but needs some needle updates.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
All the deleted ones haven't been matched for five months. Drop
match level to 90 on the remaining ones, we got a 96 match for
one of them in today's respin test.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
I don't know why we wind up with so many slightly different
matches on the login screen. It's weird.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
it's really just a dupe of the -problems needles, it turns out,
Lukas was reinventing that wheel. He had to add another one
today because I broke the JSON in this one when I was simplifying
it yesterday, but I think this one on the new -problems needle
are really just dupes.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
* Scarborough provided quite a messy map that resulted
in frequent needle failure. Changing the location
for something better to make it more reliable.
* The zoom test could have failed with a low resolution
image. Adding some timeout to the needle give more
time to load the proper image.
I think these needles are pretty fragile to changes in the
underlying OSM dataset, not just in Maps itself...
Signed-off-by: Adam Williamson <awilliam@redhat.com>
The Rawhide 'accept fate' text seems to have lost its Japanese
translation for some reason (I think the string might have had
a terminating period removed). And in one test, the "Extract"
menu item in Archiver was pre-highlighted so the needle didn't
match. Not sure why, but this doesn't seem like a problem, so
let's just handle it.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
This reverts the last few commits which worked around a focus bug
in GTK. This bug is now (I hope) fixed, so I'm dropping the
workarounds so the tests will confirm whether it's fixed.
I think the reason the match failed is the pixels under the text
changed when the pre-release warning disappeared. We don't really
need a new needle, we just need to make the existing one less
tall so no part of the text underneath is included.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
I think this is slightly different on openQA stg with current
qemu with the EDID settings, for some reason.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
These look slightly different when there are security updates,
the security needle variants hadn't been updated yet for the
latest changes in background, upstream toolkit etc.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
GTK4 enabled font hinting recently, and that breaks this huge pile
of needles.
There are probably a few more that need doing, but it's 2am and
I've had enough.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
From anaconda-37.12.1, anaconda defaults to GPT for all BIOS
installs. So we need to create a BIOS boot partition when doing
a BIOS install. I think all other potential configs (x86_64
UEFI, aarch64 (UEFI), ppc64le (OFW)) are covered under the other
two paths, so just making this `else` should be OK.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Lukas left these lying around stg, they are needed.
clocks_alarm_cross_remove is a dupe of gnome_button_cross_remove
with a bad name, so removed it.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
We already changed how we do this since the context menu entry
was removed, just cleaning up the now-unneeded needles.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
We had a ton of needles all covering something very similar
(press a "Credits" button in a GNOME app). There are about four
real variations: old-style regular face white-on-black (eog),
old-style regular face (nautilus and evince before recent
libadwaita ports), old-style bold face (GTE and Clocks before
new libadwaita), and new-style (everything that's been ported
to use libadwaita for its About page). Let's just rationalize
it down to those, using the same needle tag for all of them.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Silverblue has Calculator as an older-versioned flatpak, so it
still looks like it did in GNOME 42 (blue equals button, lighter
colored number buttons).
Signed-off-by: Adam Williamson <awilliam@redhat.com>
It needs to match even if the 'link target hint' is showing at
bottom left and kinda obscuring it a little.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
They changed from "Software Updates" to "Software updates".
Apparently this was intentional and in line with Patternfly
guidance, so not marking as a workaround.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
I think the change here is the new version of noto fonts. GNOME
uses adwaita so it's not affected.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
That last commit to 'fix' the Clocks tests when Silverblue needs
location access to be granted wasn't complete, I left the needle
out. D'oh. Take the chance to give it a better name too.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
The previous commit is the correct fix for the problem here.
Adding a needle that matches on the tray icon was not correct,
we need to be sure that we can access the Updates view from
within Discover itself.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
This PR changes the way to download the test data into the VM.
Although it does not use a disk image as suggested in one
of the review, it does not clone the entire repository, but
a simple tar.gz file that holds the data which will be
distributed into the directory structure.
This way, the amount of data needed to be downloaded dropped
from approximately 50MB to below 2MB.
Also, the existing test suites were adapted to this situation.
The wider one seems to happen when text at the bottom of the
login box prevents the "Fedora Linux..." text from wrapping
across two lines. I have no idea why we see two different
cases of the "Fedora Linux text wrapped" variant with very
slightly different amounts of whitespace, but we do, it seems
we need both of these.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Not sure what's going on here, but it seems like the resolution
of the UEFI bootloader screen in some tests changed. Not sure
if this is a qemu or edk2 change or what.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
This is the automation of the optional testcase https://fedoraproject.org/wiki/QA:Testcase_i18n_default_fonts.
The test implementation runs the same commands as the mentioned test
case and checks the expected output. It is designed to run in the scope
of postinstall tests when the language is set to "japanese".
We've been told the bookmark toolbar no longer being shown on app
start is by design, so we can't call this a workaround needle
any more really. There's a preference we could use to turn it
back on so we can wait for the bookmark toolbar to show up to
be sure firefox is fully started, but in fact tests seem to be
passing OK with just this needle these days, so we may not need
to.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Firefox 97 is now stable on all releases, so we can forget about
handling browser_download_save and just assume download will
happen automatically.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Before F34 we had to launch the update tool from the systray.
This isn't the case any more, so we can throw all this code and
these needles away.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
We seem to be solidly back to always getting a permanent update
notification in current F36/Rawhide, so we don't need this more
complex path any more. We also don't need these needles any more,
they haven't matched for months.
Same difference as for English - 4 pixels of padding was added.
Also move a stray Russian needle to the right directory.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
We can wind up with this a bit hidden by the bottom-left URL
location indicator, so shrink it a bit to hopefully match even
in that case.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
The Cockpit update test relies on scrolling the Cockpit left bar
to find the Software Updates page, but in Firefox 100, the scroll
bars disappear shortly after the last time you moved the mouse.
To deal with this, instead of looking for a scroll bar to scroll,
we'll click the search box in the left bar and hit 'up' to scroll
it to the bottom.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Not sure what changed in the addon needles. For the webui needle
I think it's affected by the new scrollbar behaviour.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
We get these variant needles with the keyboard icon and layout
name at slightly different relative vertical positions every
time we do a Final RC. I think the layout is affected by the
pre-release warning text no longer being present. Usually each
cycle something changes with the icon or with font rendering,
so the needles have to be updated, as in this case.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
So it turns out the translated layout indicators in Arabic are
intentional:
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5257
so we can just add needles for them and we're good. Also update
a couple of other needles which need updates since we last
reached this far in the tests.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
The new version of the F36 backgrounds means all these needles
that hit translucent panel elements need updating.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
SDDM looks slightly different on F36 since 20220319.n.0. The
Sleep / Restart / Shut Down / Other... buttons are visible, and
the keyboard layout indicator isn't. Previously on F36, and still
on Rawhide, those buttons aren't shown but the layout indicator
is. I'm not sure why this is, but it means the size of the name
labels is slightly different, and we need new needles.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
We very rarely see this needle - only when we run the 'generic'
tests on an Everything image instead of a Server one, which
will usually only happen if we trigger it manually. I did this
recently to test an anaconda update, and found it needs an
update.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
OK, this is annoying. GNOME Software intentionally does *not*
clear the 'download' or 'reboot and update' button when you hit
the refresh button, it just leaves them sitting there while the
refresh happens. So let's specifically require the 'refreshing'
text to appear and go away before we try and click on download
or apply.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Again, a dialog changed a bit in the flatpak version of the app.
For this needle, the shade of grey is slightly different. Change
happened between Fedora-36-20220314.n.0 and 20220315.n.0.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
The open/save dialogs for Flatpak apps in current F36 (and
probably Rawhide, but can't tell due to another bug) look a bit
odd: https://github.com/fedora-silverblue/issue-tracker/issues/245
This adds variant needles to handle various differences there.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
For some reason various bits of gte started looking slightly
different on the F36 upgrade test. I don't really know why and
don't care enough to look it up. I'm just hoping all these
variations between gte running in slightly different contexts
calm down soon...
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Both KDE and GNOME saw some changes to desktop_login needles in
recent Rawhide, this updates them.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
The dnfdragora window is too big on current KDE so we can't see
the top of it (where we used to match). It's kinda better to
match on some active element of the app than just the window
title anyway (so we don't 'pass' if the window loads but is
empty, or something like that).
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Silverblue has an older version of gnome-text-editor, using a
Flatpak base environment built off an older GNOME. Because of
this most of the needles for the current RPM-packaged version
don't match. For some reason the old needles we delete don't
match either - some difference in font rendering configuration
or something. So I had to create a bunch of new needles.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
I do not know what's going on with this quit button and why it
seems to keep showing up looking different. Today it looks
different in the same image (KDE live) from the same compose
(today's Rawhide) on prod and stg openQA. I've no idea how that
is possible, but oh well, let's keep adding needles till the
pain stops.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
It matches on the "close the app" button on older Flatpak GTE.
So widen the needle to include the "Preferences" text, and add
a click point.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
To get to the keyboard/input method settings and add an input
method when doing a Japanese install test, we type 'keyboard',
but in current GNOME 42.beta that doesn't find the right pane.
Typing 'input' does work, though, so let's use that instead.
Also the GDM login needle needed updating.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Now KDE is back to being black, this needle almost matches. Let's
just drop the level instead of making a new one.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
The backend is now cryfs in F36/Rawhide. I don't think we need
to be policing which backend Vault decides to use, so let's just
accept either.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
These are taken with the latest gnome-shell build, with CSS
fixes for the overview applied. They don't work for current
F36/Rawhide but will work once that gnome-shell build lands.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
This was originally a test of nm-connection-editor. However,
at some point that app stopped shipping a .desktop file by
default (it's in a subpackage that is not included in a default
KDE install) and the needle got updated to match on what the
same string now launched, which is a random part of the KDE
system settings. But there's no real sense in this - we don't
test launching every other pane of the system settings app from
the launcher, so it doesn't make sense to just test one random
one like this. Let's just throw the test out.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
We have three different needles which all match on a stock KDE
"cancel" button. Let's just have one. Also, update it for latest
Rawhide/F36 KDE.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
The last line of text is slightly cut off on KDE lives, so shrink
this needle area so it still matches.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
One of the icons showed up bigger in a UEFI test. I dunno why.
Just keep adding needles till the pain stops.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
GNOME 42 and adwaita-icon-theme 42 changed a lot of things in
GNOME and anaconda, we need to update all these needles.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
The help test had its own needle for the user creation link,
but we already have an existing one. We should probably re-
arrange all the needles that are in 'install_process' now the
root and user creation spokes are moved to the main hub, but
that's a big change so I'll do it separately. This just removes
the duplicate needle and tweaks some match names.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
When the printing_builtin test ran on an F35 respin compose it
failed; it turns out the target filename was different for the
built-in print-to-PDF on GNOME on F35. So let's just always
use the 'ls' output to find the file, but pick the directory
to check based on whether we're using cups or not.
Also rename the needles to have unique names, and add one for
F35 GNOME.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
We should not use the same name for two different needles even
in two different directories as it can be confusing in some parts
of the UI which don't account for the directory name. Let's use
names differentiated by desktop. Also add a needle for F35 as
the one from the PR doesn't match (different relative placement
of icon and text).
Signed-off-by: Adam Williamson <awilliam@redhat.com>
The PR introduces an improved logic to the desktop_printing.pm
that allows to use the USE_CUPS variable in templates to trigger
the installation of cups-pdf prior to the actual test.
The cups-pdf is then used as an alternative PDF printer
instead the built-in Save As PDF method.
It was removed from the default install:
https://pagure.io/fedora-comps/c/5371509
in favor of a new screenshot mechanism that's built in to GNOME
Shell.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
It does not need to include any of the language specific text,
I guess Lukas included it in the English needle because it was
based on the IoT needle which is wider. So just shrink it to
not include any language specific text and drop the variants.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
IoT says "FEDORA-IOT" here, not just "FEDORA", and the greyspace
at the right-hand side was making the match fail. Not sure why
this only just started being a problem, but oh well, let's
make it a bit smaller.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
The latest version of Gnome-Text-Editor bring a little
bit different UI and some new or modified features.
This commit fixes the suite to run on newest version.
Not sure if we lost one with the recent adjustment to the tests
or F35 actually changed somehow, but hey, we need this.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
This PR adds implementations of distribution methods to make them
usable on Fedora. It adds the following methods
* ensure_installed (to install packages)
* become_root (to switch to root account)
* script_sudo (run script with sudo)
* assert_script_sudo (run and assert a sudo script)
It also adds a helper script to the utils.pm
* make_serial_writable
that makes the serial console writable for normal users
and so enables to run commands that check their progress
by sending messages to the serial console. Normally, they
fail, because the messages will not be written their, so
the checking mechanism will never see them.
These needles have been probably forgotten and left over from one
of the previous commits. The tox tests are failing on other
pull requests and this PR fixes it.
The text line we matched on before changed and is currently
untranslated, let's match on a different line.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Workstation has replaced gedit with gnome-text-editor in Rawhide,
so this is no longer useful. We will replace it with a test suite
for gnome-text-editor.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Workstation replaced gedit with gnome-text-editor. This updates
the needles and also changes the name used for 'tagging' the
application for the core_applications test.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
I forgot to update the language tags in the 'untranslated'
needles when copying them from the English one.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
As of today's Rawhide compose, user accounts added in Rawhide
have admin privs by default. For now we need to handle both
possibilities here (click the box if it's not clicked already);
after F35 EOL we can just drop all handling of that box.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Both were dropped from the default KDE install set:
https://pagure.io/fedora-comps/c/edd0d74
so we need to drop them here too.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Add the download and apply needles (whoops), and tighten the
match area on the update needle a bit so it matches even when
there's a little blue balloon to the left of the text.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Calculator's equals button changed a bit somehow, EOG changed a
button and the kerning on Activities button changed.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
KDE team inform me they fixed a bug in Rawhide which made grey
not quite grey enough. Now it's greyer. So, more needles. So
many needles.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
These incorporate bits of the background so are subject to
non-100% matching, got a 97% match in current Rawhide, let's
see if dropping the match level is enough.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Font's changed since the last time we actually matched this (it
only happens occasionally if specific packages are in the update).
Signed-off-by: Adam Williamson <awilliam@redhat.com>
We get a 96% match on this because the "A" in "Activities" moved
a bit. Instead of a new needle let's just be OK with the lower
match.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
So it doesn't fail if there's a dotted line around the entry
(indicating keyboard active, I think).
Signed-off-by: Adam Williamson <awilliam@redhat.com>
This seems to happen every cycle: when we get to testing an
RC, the layout indicators in anaconda move a bit (the text
moves relative to the little keyboard icon). I think the fact
that the prerelease text is no longer present is what causes
this. Anyway, we need to handle it.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
The dropped needles are all of the Beta art, before it was
fuzzed out a bit for Final. We drop the match area on the
Final needles to catch more transitions (saw a 94% today).
Signed-off-by: Adam Williamson <awilliam@redhat.com>
...this reminds me I was naming them by time of day for F33,
which was a good idea. Should've remembered to keep doing that.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
We'll need a whole farm of variants for this revised artwork.
Joy. Once it goes stable we can ditch the older versions.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
The Japanese "accept your fate" button changed slightly, and
the new root password screen got a French translation.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Somehow this button looks slightly different depending on where
the arrow is or something, even if you don't match on the arrow.
Sigh. So we need two.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Don't match on the arrow, another app has it on the other side.
The color and text should be enough to avoid false matches.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
kgpg had its own, which doesn't make any sense. There are grey
and blue background variants that weren't consistently named.
This should rationalize things sensibly, and adds a new needle
for the new Plasma in Rawhide, with a lighter blue background.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
The cross got bigger. This needle might be a dupe with something
but I couldn't be bothered finding it.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
There's some issue with font kerning or something on this page
which means we constantly get slightly different rendering of
this text. Rather annoying.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
For background translucency (sigh) and also a color difference
that I guess indicates a critical update or something.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Some changes were made in the icon theme used by the installer
and GNOME, update various needles for this.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
The other tag the Help test uses is created by a concatenation
that isn't easy to change, so just add the tag to the other needle.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Similar to the 'open' needle, adjust match area to work even
when there's a notification obscuring the top bar.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
We somehow hit a transition point that didn't match any existing
needle. Oh background transitions, how I love you.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
We do this slightly differently on KDE and GNOME for whatever
reason, so this needle needs updating too.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
LibreOffice adjusted layout a bit and dropped a template, one
icon changed in the utilities menu compilation.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Arabic doesn't match the English needle even though it's not
translated, because it's RTL, so the radio button is on the
other side of the text.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
The screen is not translated in any language yet, so let's just
make the needle language-independent at least for now. We could
change this after translations show up.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
This often seems to get a 90-95% match for some reason. Let's
just drop the threshold. I think it may be a kerning difference
based on the width of the MAC address?
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Really this just boils down to needing an extra click. We can
even just do the click in the old UI as well, it's not needed
but won't hurt anything and keeps the code simple.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
See https://github.com/cockpit-project/cockpit/issues/16243 .
This is a fairly minor issue upstream knows about but will not
be fixed immediately, so we'll add a workaround for it for now.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
As suggested by @kparal, this adds a test that specifies an
additional repository using a metalink. The repository contains
a single package, 'testpackage', that supplements glibc (so it
should always get installed). The test runs an install then
checks that testpackage got installed.
We also deduplicate a pair of needles which were matching on the
same anaconda UI feature (an "add" button) and use that same
needle in this test.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
This also requires a new needle for accounts.fedoraproject.org, as the webpage
is completely different now. The old needle for browser_fas_home is obsolete via
this change and can be removed
Remove a whole chunk of needles that haven't matched for more
than 3 months. Also move a few needles to appropriate locations,
simplify some code chunks that relied on removed needles (if
we're not matching the needles, we don't need those chunks any
more), and drop some other no-longer-needed conditionals for
older releases.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
As of today's Rawhide, KDE seems to be using a different icon
theme for anaconda. Not sure if this is intentional or not, but
we need to cope with it.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
This adds a test for fingerprint-based login, as requested by
@benzea in #223. We use the fprintd dummy device to let us
simulate scanning a fingerprint, and check various scenarios
recommended by @benzea.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Now we have two areas, openQA wants to click in the wrong one.
Let's tell it which one to click in.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
The main screen now also has identical "Japanese" (that's what it
says) text. To avoid false matching before the picker opens, add
another match area.
Signed-off-by: Adam Williamson <awilliam@redhat.com>