Created
January 12, 2012 19:16
-
-
Save rail/1602475 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff -u b/lib/python/release/download.py b/lib/python/release/download.py | |
--- b/lib/python/release/download.py | |
+++ b/lib/python/release/download.py | |
@@ -65,21 +65,22 @@ | |
url = '/'.join([p.strip('/') for p in [ | |
candidatesDir, 'update', platformDir, locale, fileName]]) | |
log.info("Downloading %s to %s", url, destFileName) | |
+ remote_f = urlopen(url) | |
+ local_f = open(destFileName, "wb") | |
+ local_f.write(remote_f.read()) | |
+ local_f.close() | |
+ return destFileName | |
+ | |
+def downloadUpdateIgnore404(*args, **kwargs): | |
try: | |
- remote_f = urlopen(url) | |
- local_f = open(destFileName, "wb") | |
- local_f.write(remote_f.read()) | |
- local_f.close() | |
+ return downloadUpdate(*args, **kwargs) | |
except HTTPError, e: | |
if e.code == 404: | |
# New locale | |
- log.warning('Skipping %s: got 404 for %s' % locale, url) | |
+ log.warning('Got 404. Skipping %s' % e.geturl()) | |
return None | |
else: | |
raise | |
- return destFileName | |
- | |
- | |
def expectedFiles(unsignedDir, locale, platform, signedPlatforms, | |
firstLocale='en-US'): | |
@@ -118,17 +119,14 @@ | |
-def downloadChecksums(productName, version, buildNumber, stageServer, | |
- stageUserName, stageSshKey, target): | |
- candidatesDir = makeCandidatesDir(productName, version, buildNumber) | |
+def rsyncFilesByPattern(server, userName, sshKey, source_dir, target_dir, | |
+ pattern): | |
cmd = ['rsync', '-e', | |
- 'ssh -l %s -oIdentityFile=%s' % (stageUserName, stageSshKey), | |
- '-av', '--include=*.checksums', '--include=*/', '--exclude=*', | |
- '%s:%s' % (stageServer, candidatesDir), target] | |
+ 'ssh -l %s -oIdentityFile=%s' % (userName, sshKey), | |
+ '-av', '--include=%s' % pattern, '--include=*/', '--exclude=*', | |
+ '%s:%s' % (server, source_dir), target_dir] | |
run_cmd(cmd) | |
-def uploadChecksums(productName, version, buildNumber, stageServer, | |
- stageUserName, stageSshKey, files): | |
- candidatesDir = makeCandidatesDir(productName, version, buildNumber) | |
+def rsyncFiles(files, server, userName, sshKey, target_dir): | |
cmd = ['rsync', '-e', | |
- 'ssh -l %s -oIdentityFile=%s' % (stageUserName, stageSshKey), | |
- '-av'] + files + ['%s:%s' % (stageServer, candidatesDir)] | |
+ 'ssh -l %s -oIdentityFile=%s' % (userName, sshKey), | |
+ '-av'] + files + ['%s:%s' % (server, target_dir)] | |
run_cmd(cmd) | |
diff -u b/scripts/l10n/create-release-repacks.py b/scripts/l10n/create-release-repacks.py | |
--- b/scripts/l10n/create-release-repacks.py | |
+++ b/scripts/l10n/create-release-repacks.py | |
@@ -11,7 +11,7 @@ | |
from build.l10n import repackLocale, l10nRepackPrep | |
import build.misc | |
from build.upload import postUploadCmdPrefix | |
-from release.download import downloadReleaseBuilds, downloadUpdate | |
+from release.download import downloadReleaseBuilds, downloadUpdateIgnore404 | |
from release.info import readReleaseConfig, readBranchConfig | |
from release.l10n import getReleaseLocalesForChunk | |
from util.hg import mercurial, update, make_hg_url | |
@@ -75,7 +75,7 @@ | |
prevMar = None | |
if generatePartials: | |
prevMar = retry( | |
- downloadUpdate, | |
+ downloadUpdateIgnore404, | |
args=(stageServer, product, oldVersion, oldBuildNumber, | |
platform, l) | |
) | |
@@ -102,7 +102,6 @@ | |
"productName", "version", "buildNumber") | |
def validate(options, args): | |
- err = False | |
if not options.configfile: | |
log.info("Must pass --configfile") | |
sys.exit(1) | |
@@ -121,8 +120,7 @@ | |
"locale option cannot be used when chunking" | |
else: | |
if len(options.locales) < 1: | |
- err = True | |
- log.error("Need at least one locale to repack") | |
+ raise Exception('Need at least one locale to repack') | |
releaseConfig = readReleaseConfig(releaseConfigFile, | |
required=REQUIRED_RELEASE_CONFIG) | |
diff -u b/scripts/l10n/release_repacks.sh b/scripts/l10n/release_repacks.sh | |
--- b/scripts/l10n/release_repacks.sh | |
+++ b/scripts/l10n/release_repacks.sh | |
@@ -19,7 +19,7 @@ | |
chunks=$3 | |
thisChunk=$4 | |
generatePartials=$5 | |
-if [ "x$generatePartials" != "x" ]; then | |
+if [ "$generatePartials" = "generatePartials" ]; then | |
generatePartials="--generate-partials" | |
fi | |
diff -u b/scripts/l10n/standalone_repacks.sh b/scripts/l10n/standalone_repacks.sh | |
--- b/scripts/l10n/standalone_repacks.sh | |
+++ b/scripts/l10n/standalone_repacks.sh | |
@@ -17,7 +17,7 @@ | |
platform=$1 | |
branchConfig=$2 | |
generatePartials=$3 | |
-if [ "x$generatePartials" != "x" ]; then | |
+if [ "$generatePartials" = "generatePartials" ]; then | |
generatePartials="--generate-partials" | |
fi | |
diff -u b/scripts/release/generate-sums.py b/scripts/release/generate-sums.py | |
--- b/scripts/release/generate-sums.py | |
+++ b/scripts/release/generate-sums.py | |
@@ -13,8 +13,9 @@ | |
from release.info import readReleaseConfig, readBranchConfig | |
from util.hg import update, mercurial, make_hg_url | |
-from release.download import downloadChecksums, uploadChecksums | |
+from release.download import rsyncFilesByPattern, rsyncFiles | |
from release.signing import generateChecksums, signFiles | |
+from release.paths import makeCandidatesDir | |
DEFAULT_BUILDBOT_CONFIGS_REPO = make_hg_url('hg.mozilla.org', | |
'build/buildbot-configs') | |
@@ -75,10 +76,12 @@ | |
- downloadChecksums(productName, version, buildNumber, stageServer, | |
- stageUsername, stageSshKey, target='temp/') | |
+ candidatesDir = makeCandidatesDir(productName, version, buildNumber) | |
+ rsyncFilesByPattern(server=stageServer, userName=stageUsername, | |
+ sshKey=stageSshKey, source_dir=candidatesDir, | |
+ target_dir='temp/', pattern='*.checksums') | |
types = {'sha1': 'SHA1SUMS', 'md5': 'MD5SUMS', 'sha512': 'SHA512SUMS'} | |
generateChecksums('temp', types) | |
files = types.values() | |
signFiles(files) | |
upload_files = files + ['%s.asc' % x for x in files] + \ | |
[path.join(path.dirname(__file__), 'KEY')] | |
- uploadChecksums(productName, version, buildNumber, stageServer, | |
- stageUsername, stageSshKey, upload_files) | |
+ rsyncFiles(files=upload_files, server=stageServer, userName=stageUsername, | |
+ sshKey=stageSshKey, target_dir=candidatesDir) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment