--- /dev/null
+#!/bin/bash
+
+function usage() {
+ echo -e "usage: $0 [OPTIONS] BUILD"
+ echo -e " OPTIONS"
+ echo -e " -p <passphrase file>: gpg passphrase file"
+ echo -e " -i <incoming repo> "
+ echo -e " -o <outgoing repo> "
+ echo -e " -k <gpg key> "
+ echo -e " -j <jfrog cli> "
+ echo -e " -d <base dir> "
+ exit 1
+}
+
+[ $# -lt 1 ] && usage
+
+BUILD="$1"
+
+function FATAL() {
+ echo -e $1
+ exit 1
+}
+
+IN_REPO="unstable"
+OUT_REPO="stable"
+GPGKEY=71C0472C
+JFROG_CLI=~/jfrog
+REPO_BASE=repo
+BASE_DIR=$REPO_BASE/osm/debian/ReleaseTWO
+CURR_DIR=$(pwd)
+
+while getopts ":p:i:o:k:j::d:" o; do
+ case "${o}" in
+ p)
+ PASSPHRASE_FILE=${OPTARG}
+ ;;
+ i)
+ IN_REPO=${OPTARG}
+ ;;
+ o)
+ OUT_REPO=${OPTARG}
+ ;;
+ k)
+ GPGKEY=${OPTARG}
+ ;;
+ j)
+ JFROG_CLI=${OPTARG}
+ ;;
+ d)
+ BASE_DIR=${OPTARG}
+ ;;
+ *)
+ usage
+ exit 1
+ ;;
+ esac
+done
+
+[ -x $JFROG_CLI ] || FATAL "jfrog cli not found. Please install https://www.jfrog.com/getcli/ and use option '-j <jfrog cli location>'"
+
+$JFROG_CLI rt download --build "$BUILD" osm-release || FATAL "Failed to download"
+
+BUILD_NUMBER=$(basename "$BUILD")
+
+[ $PASSPHRASE_FILE ] && GPG_PASSPHRASE="--no-use-agent --passphrase \"$(cat $PASSPHRASE_FILE)\""
+
+mkdir -p $BASE_DIR/dists
+
+cp -R $BUILD_NUMBER/dists/$IN_REPO $BASE_DIR/dists/$OUT_REPO
+cp -R $BUILD_NUMBER/pool $BASE_DIR/
+
+cd $BASE_DIR
+
+for i in RO osmclient openvim SO UI; do
+
+ # gpg sign the packages
+ dpkg-sig -g "$GPG_PASSPHRASE" -k $GPGKEY --sign builder pool/$i/*.deb
+
+ # mkdir -p dists/stable/$i/binary-amd64/
+ apt-ftparchive packages pool/$i > dists/$OUT_REPO/$i/binary-amd64/Packages
+ rm -f dists/$OUT_REPO/$i/binary-amd64/Packages.gz
+ gzip -9fk dists/$OUT_REPO/$i/binary-amd64/Packages
+done
+
+# Generate the root Release
+# pushd dists/
+apt-ftparchive release dists/$OUT_REPO > dists/$OUT_REPO/Release
+#gzip -9fk dists/$OUT_REPO/Release
+
+rm -f dists/$OUT_REPO/InRelease
+eval gpg $GPG_PASSPHRASE --default-key $GPGKEY --clearsign -o dists/$OUT_REPO/InRelease dists/$OUT_REPO/Release
+
+rm -f dists/$OUT_REPO/Release.gpg
+eval gpg $GPG_PASSPHRASE --default-key $GPGKEY -abs -o dists/$OUT_REPO/Release.gpg dists/$OUT_REPO/Release
+
+
+echo "performing rsync to osm-download.etsi.org:/repos/"
+cd $CURR_DIR/$REPO_BASE
+
+rsync -avR . rsync://osmusers@osm-download.etsi.org/repos/
--- /dev/null
+#!/usr/bin/env python
+#
+# Copyright 2017 Sandvine
+#
+# 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 requests
+import json
+import pprint
+import argparse
+
+parser=argparse.ArgumentParser(description="Tool to retrieve the latest build from the artifactory server")
+parser.add_argument('branch')
+parser.add_argument('--project',default='osm-stage_3')
+parser.add_argument('--url',default='http://osm1.etsi.org:8081/artifactory/api/build/')
+args = parser.parse_args()
+
+url = args.url + args.project + " :: " + args.branch
+
+resp = requests.get(url)
+jsonData = json.loads(resp.content)
+
+if 'buildsNumbers' not in jsonData:
+ print("Cannot find any valid builds")
+ exit(1)
+
+# first entry is the latest build
+build = sorted(jsonData['buildsNumbers'], key=lambda x: int(x['uri'][1:]),reverse=True)[0]
+
+print "{} :: {}{}".format(args.project,args.branch,build['uri'])