def index(request): context = additional_context(request) if request.user.is_authenticated(): ### delete job form start job_delete_form = JobDeleteForm(request.POST or None) if job_delete_form.is_valid(): result = job_delete_form.rest_save(username=request.user.username) if result: messages.add_message(request, messages.SUCCESS, _(u'Backup was successfully deleted.')) else: messages.add_message(request, messages.ERROR, _(u'Backup couldn\'t be deleted.')) context['job_delete_form'] = job_delete_form rest_jobs = RestJobs(username=request.user.username) jobs = rest_jobs.get_all() #### delete job form end if jobs and 'errorType' in jobs: if jobs['errorType'] == 'org.backmeup.model.exceptions.UnknownUserException': logout(request) redirect('index') else: messages.error(request, _(jobs['errorMessage'])) context['needs_email_validation'] = True else: rest_datasource_profile = RestDatasourceProfile(username=request.user.username) datasource_profiles = rest_datasource_profile.get_all() rest_datasink_profile = RestDatasinkProfile(username=request.user.username) datasink_profiles = rest_datasink_profile.get_all() for job in jobs: # need to cut of first 3 numbers to get valid unix timestamp if 'createDate' in job: job['createDate'] = datetime.datetime.fromtimestamp(job['createDate']/1000) if 'startDate' in job: job['startDate'] = datetime.datetime.fromtimestamp(job['startDate']/1000) if 'lastBackup' in job: job['lastBackup'] = datetime.datetime.fromtimestamp(job['lastBackup']/1000) if 'nextBackup' in job: job['nextBackup'] = datetime.datetime.fromtimestamp(job['nextBackup']/1000) if 'lastSuccessful' in job: job['lastSuccessful'] = datetime.datetime.fromtimestamp(job['lastSuccessful']/1000) job['datasink']['title'] = get_sink_title(datasink_profiles, job['datasink']['datasinkId']) #job['datasources'] = [] for datasource in job['datasources']: datasource['title'] = get_source_title(datasource_profiles, datasource['datasourceId']) context['jobs'] = jobs return render_to_response( "www/index.html", context, context_instance=RequestContext(request))
def job_status(request, job_id): rest_jobs = RestJobs(username=request.user.username) job_status = rest_jobs.get_job_status(job_id=job_id) jobs = rest_jobs.get_all() job = get_job(jobs, job_id=job_id) response_data={} if job_status['backupStatus'][0]['type']=="info": response_data['status']=job['status'] else: response_data['status']=job_status['backupStatus'][0]['type'] return HttpResponse(json.dumps(response_data), content_type="application/json")
def job_log(request, job_id): rest_jobs = RestJobs(username=request.user.username) job_status = rest_jobs.get_job_status(job_id=job_id) rest_jobs = RestJobs(username=request.user.username) jobs = rest_jobs.get_all() job = get_job(jobs, job_id=job_id) rest_datasource_profile = RestDatasourceProfile(username=request.user.username) datasource_profiles = rest_datasource_profile.get_all() rest_datasink_profile = RestDatasinkProfile(username=request.user.username) datasink_profiles = rest_datasink_profile.get_all() job['datasink']['title'] = get_sink_title(datasink_profiles, job['datasink']['datasinkId']) #job['datasources'] = [] for datasource in job['datasources']: datasource['title'] = get_source_title(datasource_profiles, datasource['datasourceId']) log=job_status['backupStatus'] for l in log: l['message']=l['message'].encode("utf-8") if 'timeStamp' in l: l['timeStamp'] = datetime.datetime.fromtimestamp(int(l['timeStamp'])/1000) context = { 'job': job, 'log': log, } try: context['current_status'] = job_status['backupStatus'][0]['type'] except: pass return render_to_response( "www/job_log.html", context, context_instance=RequestContext(request))