Example #1
0
def err(msg):
    sys.stderr.write(msg + '\n')

if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='Triggers the rollback process')

    parser.add_argument('host', help='The host')
    parser.add_argument('repo', help='The repository to deploy')
    parser.add_argument('--port', help='The port', default='4567')
    parser.add_argument('--branch', help='The branch', default='master')
    parser.add_argument('--tag', help='The tag to rollback')

    args = parser.parse_args()

    payload = json.dumps({
        "repo": args.repo,
        "ref" : args.branch,
    })

    try:
        r = requests.post('http://{host}:{port}/rollback'.format(
            host = args.host,
            port = args.port,
        ), headers={
            'X-Hub-Signature': 'sha1='+sign(payload)
        }, data=payload)

        print(r.text)
    except requests.exceptions.ConnectionError:
        print('Deploy server {} at port {} is not running'.format(args.host, args.port))