Hi,
I ran into a problem with base_packages.GitFetcher. It looks like
base_packages.BasePackageManager wants to grab a "packages.checksum" file to
check to see if a dependency needs to be updated when it has already been
installed. BasePackageManager.parse_tarball_name fails when passed
"packages.checksum"
I'm not sure of a good solution. I will probably look into just disabling the
checksum feature for GitFetcher, since git archive --remote= probably won't be
able to fetch a packages.checksum directly anyway.
Stack trace:
/root/auto/autotest/client/site_tests/iometer_control.py in <module>()
12 job.pkgmgr.add_repository("git://10.0.0.12/tools/iometer.git")
13 job.setup_dep(['iometer'])
job = <autotest.client.job.job object>
job.setup_dep = <bound method job.setup_dep of <autotest.client.job.job
object>>
/root/auto/autotest/client/job.py in setup_dep(self=<autotest.client.job.job
object>, deps=['iometer'])
511 # else check locally.
512 try:
513 self.install_pkg(dep, 'dep', dep_dir)
514 except error.PackageInstallError:
515 # see if the dep is there locally
self = <autotest.client.job.job object>
self.install_pkg = <bound method job.install_pkg of <autotest.client.job.job
object>>
dep = 'iometer'
dep_dir = '/root/auto/autotest/client/deps/iometer'
/root/auto/autotest/client/job.py in
install_pkg(self=<autotest.client.job.job object>, name='iometer',
pkg_type='dep', install_dir='/root/auto/autotest/client/deps/iometer')
459 '''
460 if self.pkgmgr.repositories:
461 self.pkgmgr.install_pkg(name, pkg_type, self.pkgdir,
install_dir)
462
463
self = <autotest.client.job.job object>
self.pkgmgr = <autotest.client.shared.packages.PackageManager object>
self.pkgmgr.install_pkg = <bound method PackageManager.install_pkg of
<autotest.client.shared.packages.PackageManager object>>
name = 'iometer'
pkg_type = 'dep'
self.pkgdir = '/root/auto/autotest/client/tmp/packages'
install_dir = '/root/auto/autotest/client/deps/iometer'
/root/auto/autotest/client/shared/base_packages.py in
install_pkg(self=<autotest.client.shared.packages.PackageManager object>,
name='iometer', pkg_type='dep',
fetch_dir='/root/auto/autotest/client/tmp/packages',
install_dir='/root/auto/autotest/client/deps/iometer',
preserve_install_dir=False, repo_url=None)
631 # Fetch the package into fetch_dir
632 fetcher = self.fetch_pkg(pkg_name, fetch_dir,
use_checksum=True,
633 repo_url=repo_url,
install=True)
634
635 fetcher.install_pkg_post(pkg_name, fetch_dir,
install_dir, preserve_install_dir)
repo_url = None
install undefined
builtinTrue = True
/root/auto/autotest/client/shared/base_packages.py in
fetch_pkg(self=<autotest.client.shared.packages.PackageManager object>,
pkg_name='dep-iometer.tar.bz2',
dest_path='/root/auto/autotest/client/tmp/packages', repo_url=None,
use_checksum=True, install=True)
699 need_to_fetch = (
700 not use_checksum or not pkg_exists
701 or not self.compare_checksum(dest, fetcher.url))
702 if need_to_fetch:
703 fetcher.fetch_pkg_file(pkg_name, dest)
self = <autotest.client.shared.packages.PackageManager object>
self.compare_checksum = <bound method PackageManager.compare_checksum
of...st.client.shared.packages.PackageManager object>>
dest = '/root/auto/autotest/client/tmp/packages/dep-iometer.tar.bz2'
fetcher = <autotest.client.shared.base_packages.GitFetcher object>
fetcher.url = 'git://10.0.0.12/tools/iometer.git'
/root/auto/autotest/client/shared/base_packages.py in
compare_checksum(self=<autotest.client.shared.packages.PackageManager object>,
pkg_path='/root/auto/autotest/client/tmp/packages/dep-iometer.tar.bz2',
repo_url='git://10.0.0.12/tools/iometer.git')
1011 repo_url : The URL to fetch the checksum from
1012 '''
1013 checksum_dict = self._get_checksum_dict()
1014 package_name = os.path.basename(pkg_path)
1015 if not checksum_dict or package_name not in checksum_dict:
checksum_dict undefined
self = <autotest.client.shared.packages.PackageManager object>
self._get_checksum_dict = <bound method PackageManager._get_checksum_dict
...st.client.shared.packages.PackageManager object>>
/root/auto/autotest/client/shared/base_packages.py in
_get_checksum_dict(self=<autotest.client.shared.packages.PackageManager object>)
921 # The packages checksum file does not exist locally.
922 # See if it is present in the repositories.
923 self.fetch_pkg(CHECKSUM_FILE, checksum_path)
924 except error.PackageFetchError:
925 # This should not happen whilst fetching a package..if a
self = <autotest.client.shared.packages.PackageManager object>
self.fetch_pkg = <bound method PackageManager.fetch_pkg of
<autotest.client.shared.packages.PackageManager object>>
global CHECKSUM_FILE = 'packages.checksum'
checksum_path = '/root/auto/autotest/client/packages.checksum'
/root/auto/autotest/client/shared/base_packages.py in
fetch_pkg(self=<autotest.client.shared.packages.PackageManager object>,
pkg_name='packages.checksum',
dest_path='/root/auto/autotest/client/packages.checksum', repo_url=None,
use_checksum=False, install=False)
701 or not self.compare_checksum(dest, fetcher.url))
702 if need_to_fetch:
703 fetcher.fetch_pkg_file(pkg_name, dest)
704 # update checksum so we won't refetch next time.
705 if use_checksum:
fetcher = <autotest.client.shared.base_packages.GitFetcher object>
fetcher.fetch_pkg_file = <bound method GitFetcher.fetch_pkg_file of
<autotest.client.shared.base_packages.GitFetcher object>>
pkg_name = 'packages.checksum'
dest = '/root/auto/autotest/client/packages.checksum'
/root/auto/autotest/client/shared/base_packages.py in
fetch_pkg_file(self=<autotest.client.shared.base_packages.GitFetcher object>,
filename='packages.checksum',
dest_path='/root/auto/autotest/client/packages.checksum')
409 logging.info('Fetching %s from %s to %s', filename, self.url,
410 dest_path)
411 name, package_type = self.pkgmgr.parse_tarball_name(filename)
412 package_path = self.branch + " " + name
413 try:
name undefined
package_type undefined
self = <autotest.client.shared.base_packages.GitFetcher object>
self.pkgmgr = <autotest.client.shared.packages.PackageManager object>
self.pkgmgr.parse_tarball_name = <function parse_tarball_name>
filename = 'packages.checksum'
/root/auto/autotest/client/shared/base_packages.py in
parse_tarball_name(tarball_name='packages.checksum')
1128 """
1129 match = re.search(r'^([^-]*)-(.*)\.tar\.bz2$', tarball_name)
1130 pkg_type, name = match.groups()
1131 return name, pkg_type
1132
pkg_type undefined
name undefined
match = None
match.groups undefined
<type 'exceptions.AttributeError'>: 'NoneType' object has no attribute
'groups'
args = ("'NoneType' object has no attribute 'groups'",)
message = "'NoneType' object has no attribute 'groups'"
The above is a description of an error in a Python program. Here is
the original traceback:
Traceback (most recent call last):
File "/root/auto/autotest/client/job.py", line 1336, in step_engine
execfile(self.control, global_control_vars, global_control_vars)
File "/root/auto/autotest/client/site_tests/iometer_control.py", line 13,
in <module>
job.setup_dep(['iometer'])
File "/root/auto/autotest/client/job.py", line 513, in setup_dep
self.install_pkg(dep, 'dep', dep_dir)
File "/root/auto/autotest/client/job.py", line 461, in install_pkg
self.pkgmgr.install_pkg(name, pkg_type, self.pkgdir, install_dir)
File "/root/auto/autotest/client/shared/base_packages.py", line 633, in
install_pkg
repo_url=repo_url, install=True)
File "/root/auto/autotest/client/shared/base_packages.py", line 701, in
fetch_pkg
or not self.compare_checksum(dest, fetcher.url))
File "/root/auto/autotest/client/shared/base_packages.py", line 1013, in
compare_checksum
checksum_dict = self._get_checksum_dict()
File "/root/auto/autotest/client/shared/base_packages.py", line 923, in
_get_checksum_dict
self.fetch_pkg(CHECKSUM_FILE, checksum_path)
File "/root/auto/autotest/client/shared/base_packages.py", line 703, in
fetch_pkg
fetcher.fetch_pkg_file(pkg_name, dest)
File "/root/auto/autotest/client/shared/base_packages.py", line 411, in
fetch_pkg_file
name, package_type = self.pkgmgr.parse_tarball_name(filename)
File "/root/auto/autotest/client/shared/base_packages.py", line 1130, in
parse_tarball_name
pkg_type, name = match.groups()
AttributeError: 'NoneType' object has no attribute 'groups'
--
Ross Brattain
Intel ND Linux Validation
_______________________________________________
Autotest-kernel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/autotest-kernel