Skip to content

Commit

Permalink
generalize to download latest assets with suffix filter option; downl…
Browse files Browse the repository at this point in the history
…oad verdi image
  • Loading branch information
pymonger committed Mar 28, 2018
1 parent 789e296 commit b86d61f
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 15 deletions.
28 changes: 15 additions & 13 deletions download_latest_pkg.py → download_latest.py
Expand Up @@ -24,7 +24,7 @@ def call_github_api(url, token, method="get", **kargs):
return r.json()


def get_latest_pkg(api_url, owner, repo, token):
def get_latest_assets(api_url, owner, repo, token, suffix=None):
"""Return latest release for repo."""

# get latest release info
Expand All @@ -33,33 +33,35 @@ def get_latest_pkg(api_url, owner, repo, token):

# git sdspkg.tar asset
assets = latest['assets']
dl_assets = []
for asset in assets:
if asset['name'].endswith('.sdspkg.tar'):
return asset['name'], asset['url']
if suffix is not None:
if asset['name'].endswith(suffix):
dl_assets.append([asset['name'], asset['url']])
else: dl_assets.append([asset['name'], asset['url']])
return dl_assets


def main(url, owner, repo, outdir=None):
def main(url, owner, repo, outdir=None, suffix=None):
"""Route request."""

token, api_url = parse_url(url)
print("token: {}".format(token))
print("api_url: {}".format(api_url))
latest_pkg_name, latest_pkg_url = get_latest_pkg(api_url, owner, repo, token)
print("latest_pkg_name: {}".format(latest_pkg_name))
print("latest_pkg_url: {}".format(latest_pkg_url))
dl_assets = get_latest_assets(api_url, owner, repo, token, suffix)
if outdir is not None and not os.path.isdir(outdir):
os.makedirs(outdir)
local_path = os.path.join(outdir, latest_pkg_name)
else: local_path = latest_pkg_name
handle_redirects(latest_pkg_url, local_path, token)
for pkg_name, pkg_url in dl_assets:
local_path = pkg_name if outdir is None else os.path.join(outdir, pkg_name)
handle_redirects(pkg_url, local_path, token)


if __name__ == "__main__":
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("--outdir", '-o', default=None,
help="directory to save packages to")
parser.add_argument("--suffix", '-s', default=None,
help="filter by suffix")
parser.add_argument("api_url", help="Github API url")
parser.add_argument("owner", help="repo owner or org")
parser.add_argument("repo", help="repo name")
args = parser.parse_args()
main(args.api_url, args.owner, args.repo, args.outdir)
main(args.api_url, args.owner, args.repo, args.outdir, args.suffix)
5 changes: 3 additions & 2 deletions install.sh
Expand Up @@ -449,5 +449,6 @@ else
link_repo $OPS hysds-cloud-functions
fi

# download hysds core packages
${BASE_PATH}/download_latest_pkg.py $API_URL hysds lightweight-jobs -o ${INSTALL_DIR}/pkgs
# download hysds core packages and verdi image
${BASE_PATH}/download_latest.py $API_URL hysds lightweight-jobs -o ${INSTALL_DIR}/pkgs -s sdspkg.tar
${BASE_PATH}/download_latest.py $API_URL hysds hysds-dockerfiles -o ${INSTALL_DIR}/pkgs -s tar.gz

0 comments on commit b86d61f

Please sign in to comment.