diff options
Diffstat (limited to 'autorelease/scripts/verify-binaries.py')
-rwxr-xr-x | autorelease/scripts/verify-binaries.py | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/autorelease/scripts/verify-binaries.py b/autorelease/scripts/verify-binaries.py new file mode 100755 index 000000000..50f7312ef --- /dev/null +++ b/autorelease/scripts/verify-binaries.py @@ -0,0 +1,62 @@ +#!/usr/bin/env python +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import sys, csv, subprocess + +root = subprocess.check_output(["git", "rev-parse", "--show-toplevel"]).rstrip() +path = "{}/autorelease/dist".format(root) +version = "1.1.0-SNAPSHOT" +url_template = "https://nexus.open-o.org/service/local/artifact/maven/redirect?r=snapshots&g={0}&a={1}&e={2}&c={3}&v=LATEST" + +subprocess.call(["rm", "-rf", path]) +subprocess.call(["mkdir", "-p", path]) + + +def parseRow(row): + service = row["service"] + filename = row["filename"] + groupId = row["groupId"] + artifactId = row["artifactId"] + extension = row["extension"] + classifier = row["classifier"] + url = url_template.format(groupId, artifactId, extension, classifier) + if classifier: + dest = "{}/{}-{}.{}.{}".format(path, filename, version, classifier, extension) + else: + dest = "{}/{}-{}.{}".format(path, filename, version, extension) + return {"url": url, "dest": dest} + + +with open( "{}/autorelease/binaries.csv".format(root), "r" ) as f: + reader = csv.DictReader(f) + errors = 0 + + items = [] + for row in reader: + item = parseRow(row) + items.append(item) + + result = subprocess.call(["wget", "-q", "--spider", "--content-disposition", item["url"]]) + if result == 0: + print "{} OK".format(row["service"]) + else: + errors += 1 + print "{} ERROR: {} not found".format(row["service"], item["url"]) + + print "{} errors found".format(errors) + + if errors > 0: + sys.exit(1) |