Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2760)

Unified Diff: buildbot/prebuilt.py

Issue 6840064: Restart codereview issue 6792042 (Closed) Base URL: http://git.chromium.org/git/chromite.git@master
Patch Set: Fix exec failures and other meta command failures to regular command failures. Created 9 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: buildbot/prebuilt.py
diff --git a/buildbot/prebuilt.py b/buildbot/prebuilt.py
index c40624f4a0ef6022bf789b8e7df3b8f39f8090e9..8838b50f2e69ec45acdd90529890f84cc2899f3c 100755
--- a/buildbot/prebuilt.py
+++ b/buildbot/prebuilt.py
@@ -142,8 +142,8 @@ def RevGitPushWithRetry(retries=5):
"""
for retry in range(1, retries + 1):
try:
- cros_build_lib.RunCommand('repo sync .', shell=True)
- cros_build_lib.RunCommand('git push', shell=True)
+ cros_build_lib.RunCommand(['repo', 'sync', '.'])
+ cros_build_lib.RunCommand(['git', 'push'])
break
except cros_build_lib.RunCommandError:
if retry < retries:
@@ -168,24 +168,26 @@ def RevGitFile(filename, value, retries=5, key='PORTAGE_BINHOST'):
old_cwd = os.getcwd()
os.chdir(os.path.dirname(filename))
- commit = cros_build_lib.RunCommand('git rev-parse HEAD', shell=True,
+ commit = cros_build_lib.RunCommand(['git', 'rev-parse', 'HEAD'],
redirect_stdout=True).output
- cros_build_lib.RunCommand('git remote update', shell=True)
- cros_build_lib.RunCommand('repo start %s .' % prebuilt_branch, shell=True)
- git_ssh_config_cmd = (
- 'git config url.ssh://git@gitrw.chromium.org:9222.pushinsteadof '
- 'http://git.chromium.org/git')
- cros_build_lib.RunCommand(git_ssh_config_cmd, shell=True)
+ cros_build_lib.RunCommand(['git', 'remote', 'update'])
+ cros_build_lib.RunCommand(['repo', 'start', prebuilt_branch, '.'])
+ git_ssh_config_cmd = [
+ 'git',
+ 'config',
+ 'url.ssh://git@gitrw.chromium.org:9222.pushinsteadof',
+ 'http://git.chromium.org/git' ]
+ cros_build_lib.RunCommand(git_ssh_config_cmd)
description = 'Update %s="%s" in %s' % (key, value, filename)
print description
try:
UpdateLocalFile(filename, value, key)
- cros_build_lib.RunCommand('git config push.default tracking', shell=True)
- cros_build_lib.RunCommand('git commit -am "%s"' % description, shell=True)
+ cros_build_lib.RunCommand(['git', 'config', 'push.default', 'tracking'])
+ cros_build_lib.RunCommand(['git', 'commit', '-am', description])
RevGitPushWithRetry(retries)
finally:
- cros_build_lib.RunCommand('repo abandon %s .' % prebuilt_branch, shell=True)
- cros_build_lib.RunCommand('git checkout %s' % commit, shell=True)
+ cros_build_lib.RunCommand(['repo', 'abandon', 'prebuilt_branch', '.'])
+ cros_build_lib.RunCommand(['git', 'checkout', commit])
os.chdir(old_cwd)
@@ -240,7 +242,7 @@ def ShouldFilterPackage(file_path):
return False
-def _RetryRun(cmd, print_cmd=True, shell=False, cwd=None):
+def _RetryRun(cmd, print_cmd=True, cwd=None):
"""Run the specified command, retrying if necessary.
Args:
@@ -257,13 +259,13 @@ def _RetryRun(cmd, print_cmd=True, shell=False, cwd=None):
# cros_build_lib.
for attempt in range(_RETRIES):
try:
- output = cros_build_lib.RunCommand(cmd, print_cmd=print_cmd, shell=shell,
+ output = cros_build_lib.RunCommand(cmd, print_cmd=print_cmd,
cwd=cwd)
return True
except cros_build_lib.RunCommandError:
- print 'Failed to run %s' % cmd
+ print 'Failed to run %r' % cmd
else:
- print 'Retry failed run %s, giving up' % cmd
+ print 'Retry failed run %r, giving up' % cmd
return False
@@ -283,11 +285,11 @@ def _GsUpload(args):
'public-read-write']
acl_cmd = None
if acl in CANNED_ACLS:
- cmd = '%s cp -a %s %s %s' % (_GSUTIL_BIN, acl, local_file, remote_file)
+ cmd = [_GSUTIL_BIN, 'cp', '-a', acl, local_file, remote_file]
else:
# For private uploads we assume that the overlay board is set up properly
# and a googlestore_acl.xml is present, if not this script errors
- cmd = '%s cp -a private %s %s' % (_GSUTIL_BIN, local_file, remote_file)
+ cmd = [_GSUTIL_BIN, 'cp', '-a', 'private', local_file, remote_file]
if not os.path.exists(acl):
print >> sys.stderr, ('You are specifying either a file that does not '
'exist or an unknown canned acl: %s. Aborting '
@@ -295,14 +297,14 @@ def _GsUpload(args):
# emulate the failing of an upload since we are not uploading the file
return (local_file, remote_file)
- acl_cmd = '%s setacl %s %s' % (_GSUTIL_BIN, acl, remote_file)
+ acl_cmd = [_GSUTIL_BIN, 'setacl', acl, remote_file]
- if not _RetryRun(cmd, print_cmd=False, shell=True):
+ if not _RetryRun(cmd, print_cmd=False):
return (local_file, remote_file)
if acl_cmd:
# Apply the passed in ACL xml file to the uploaded object.
- _RetryRun(acl_cmd, print_cmd=False, shell=True)
+ _RetryRun(acl_cmd, print_cmd=False)
def RemoteUpload(acl, files, pool=10):
@@ -422,10 +424,9 @@ def UpdateBinhostConfFile(path, key, value):
config_file = file(path, 'w')
config_file.close()
UpdateLocalFile(path, value, key)
- cros_build_lib.RunCommand('git add %s' % filename, cwd=cwd, shell=True)
+ cros_build_lib.RunCommand(['git', 'add', filename], cwd=cwd)
description = 'Update %s=%s in %s' % (key, value, filename)
- cros_build_lib.RunCommand('git commit -m "%s"' % description, cwd=cwd,
- shell=True)
+ cros_build_lib.RunCommand(['git', 'commit', '-m', description], cwd=cwd)
def _GrabAllRemotePackageIndexes(binhost_urls):
@@ -499,21 +500,19 @@ class PrebuiltUploader(object):
error_msg = ['%s -> %s\n' % args for args in failed_uploads if args]
raise UploadFailed('Error uploading:\n%s' % error_msg)
else:
- pkgs = ' '.join(p['CPV'] + '.tbz2' for p in uploads)
+ pkgs = [p['CPV'] + '.tbz2' for p in uploads]
ssh_server, remote_path = remote_location.split(':', 1)
- d = { 'pkg_index': tmp_packages_file.name,
- 'pkgs': pkgs,
- 'remote_packages': '%s/Packages' % remote_location.rstrip('/'),
- 'remote_path': remote_path.rstrip('/'),
- 'remote_location': remote_location.rstrip('/'),
- 'ssh_server': ssh_server }
- cmds = ['ssh %(ssh_server)s mkdir -p %(remote_path)s' % d,
- 'rsync -av --chmod=a+r %(pkg_index)s %(remote_packages)s' % d]
+ remote_path = remote_path.rstrip('/')
+ pkg_index = tmp_packages_file.name
+ remote_location = remote_location.rstrip('/')
+ remote_packages = '%s/Packages' % remote_location
+ cmds = [['ssh', ssh_server, 'mkdir', '-p', remote_path],
+ ['rsync', '-av', '--chmod=a+r', pkg_index, remote_packages]]
if pkgs:
- cmds.append('rsync -Rav %(pkgs)s %(remote_location)s/' % d)
+ cmds.append(['rsync', '-Rav'] + pkgs + [remote_location + '/'])
for cmd in cmds:
- if not _RetryRun(cmd, shell=True, cwd=package_path):
- raise UploadFailed('Could not run %s' % cmd)
+ if not _RetryRun(cmd, cwd=package_path):
+ raise UploadFailed('Could not run %r' % cmd)
def _UploadBoardTarball(self, board_path, url_suffix):
"""Upload a tarball of the board at the specified path to Google Storage.

Powered by Google App Engine
This is Rietveld 408576698