#!/usr/bin/env python
# -*- coding: utf-8 -*-

from __future__ import absolute_import, print_function

import jenkins
from datetime import datetime, timedelta
import os
import sys

from six.moves import input

jenkins_url = 'http://brainvisa.info/brainvisa_builds'
jenkins_user = 'cati'
max_days = 30

user_conf = os.path.expanduser('~/.brainvisa/jenkins.cfg')
if os.path.exists(user_conf):
    exec(open(user_conf).read())
else:
    import getpass
    jenkins_user2 = input('user [cati]: ')
    if jenkins_user2:
        jenkins_user = jenkins_user2
    jenkins_passwd = getpass.getpass('password:')

jen = jenkins.Jenkins(jenkins_url, jenkins_user, jenkins_passwd)
jobs = jen.get_all_jobs()
count = 0

for job in jobs:
    job_info = jen.get_job_info(job['name'])
    last_build = job_info['lastBuild']
    build_info = jen.get_build_info(job['name'], last_build['number'])
    timestamp = build_info['timestamp'] // 1000
    btime = datetime.fromtimestamp(timestamp)
    bdelta = datetime.now() - btime
    if bdelta >= timedelta(days=max_days):
        print('old job:', btime, ':', job['name'])
        jen.delete_job(job['name'])
        count += 1

print('\n%d / %d jobs deleted.' % (count, len(jobs)))
