'Fetches and verifies the grubby source tarball'

def grubby_install_fetch_tarball(self, topdir):

    tarball_name = os.path.basename(GRUBBY_TARBALL_URI)
    try:
        tarball = tarball_name
        f = open(tarball)
    except:
        try:
            from autotest.client.shared.settings import settings
            top_path = settings.get_value('COMMON', 'autotest_top_path')
            tarball = os.path.join(top_path, tarball_name)
            f = open(tarball)
        except:
            try:
                tarball = os.path.join(topdir, tarball_name)
                urllib.urlretrieve(GRUBBY_TARBALL_URI, tarball)
                f = open(tarball)
            except:
                return None
    tarball_md5 = md5.md5(f.read()).hexdigest()
    if (tarball_md5 != GRUBBY_TARBALL_MD5):
        return None
    return tarball
