# HG changeset patch # User Peter Sanchez # Date 1556159429 25200 # Wed Apr 24 19:30:29 2019 -0700 # Node ID 5da64b9d9a4964fc76b4c56c64b4ce70a1e95e00 # Parent 4ec152e9f81f446fb150f9843242bca50d175262 More fixes for multiple host operations diff --git a/djeploy/deploy.py b/djeploy/deploy.py --- a/djeploy/deploy.py +++ b/djeploy/deploy.py @@ -12,7 +12,7 @@ return release_dir -def get_releases_list(release_dir=None): +def get_releases_list(release_dir=None, verify_dir_index=-1): ''' Returns sorted list of all current releases ''' release_dir = get_release_dir(release_dir) @@ -23,11 +23,22 @@ opts['capture'] = True releases = command.run('ls -xt', **opts) if isinstance(releases, dict): + last_dir = None for k, v in releases.iteritems(): - releases[k] = [x.replace('/', '') for x in v.split()] + releases[k] = sorted([x.replace('/', '') for x in v.split()]) + + # Verify all results match for given deploy directory + if last_dir is None: + last_dir = releases[k][verify_dir_index] + else: + assert(last_dir == releases[k][verify_dir_index]) + + # Should all match. Just pick the last one and return + releases = releases[k] else: - releases = [x.replace('/', '') for x in releases.split()] - return sorted(releases) + releases = sorted([x.replace('/', '') for x in releases.split()]) + + return releases @task @@ -134,7 +145,7 @@ opts = get_env('env_path') env_path = opts['env_path'] - releases = get_releases_list(release_dir) + releases = get_releases_list(release_dir, verify_dir_index=-2) release = releases[-2] with command.cd(env_path): command.run('ln -nfs releases/%s current' % release)