From a1da09ca6e089913a6aacd5f55051a7f19d6f1fc Mon Sep 17 00:00:00 2001 From: maxbr Date: Fri, 19 Aug 2016 17:11:58 +0200 Subject: Implement periodic tasks JIRA: RELENG-12 The dashboard is now querying jenkins periodically and saving the results in the database. This fixes delays that were caused by calling the jenkins API. Signed-off-by: maxbr --- .../jenkins/migrations/0001_initial.py | 52 ++++++++++++++++++++++ .../jenkins/migrations/0002_auto_20160815_1226.py | 20 +++++++++ pharos-dashboard/jenkins/migrations/__init__.py | 0 3 files changed, 72 insertions(+) create mode 100644 pharos-dashboard/jenkins/migrations/0001_initial.py create mode 100644 pharos-dashboard/jenkins/migrations/0002_auto_20160815_1226.py create mode 100644 pharos-dashboard/jenkins/migrations/__init__.py (limited to 'pharos-dashboard/jenkins/migrations') diff --git a/pharos-dashboard/jenkins/migrations/0001_initial.py b/pharos-dashboard/jenkins/migrations/0001_initial.py new file mode 100644 index 0000000..a9bb8d5 --- /dev/null +++ b/pharos-dashboard/jenkins/migrations/0001_initial.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10 on 2016-08-15 12:19 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='JenkinsSlave', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('name', models.CharField(max_length=100, unique=True)), + ('status', models.CharField(default='offline', max_length=30)), + ('url', models.CharField(max_length=1024)), + ('ci_slave', models.BooleanField(default=False)), + ('dev_pod', models.BooleanField(default=False)), + ('building', models.BooleanField(default=False)), + ('last_job_name', models.CharField(default='', max_length=1024)), + ('last_job_url', models.CharField(default='', max_length=1024)), + ('last_job_scenario', models.CharField(default='', max_length=50)), + ('last_job_branch', models.CharField(default='', max_length=50)), + ('last_job_installer', models.CharField(default='', max_length=50)), + ('last_job_result', models.CharField(default='', max_length=30)), + ], + options={ + 'db_table': 'jenkins_slave', + }, + ), + migrations.CreateModel( + name='JenkinsStatistic', + fields=[ + ('timestamp', models.DateTimeField(auto_created=True)), + ('id', models.AutoField(primary_key=True, serialize=False)), + ('offline', models.BooleanField(default=False)), + ('idle', models.BooleanField(default=False)), + ('online', models.BooleanField(default=False)), + ('slave', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='jenkins.JenkinsSlave')), + ], + options={ + 'db_table': 'jenkins_statistic', + }, + ), + ] diff --git a/pharos-dashboard/jenkins/migrations/0002_auto_20160815_1226.py b/pharos-dashboard/jenkins/migrations/0002_auto_20160815_1226.py new file mode 100644 index 0000000..f1cf7f9 --- /dev/null +++ b/pharos-dashboard/jenkins/migrations/0002_auto_20160815_1226.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10 on 2016-08-15 12:26 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('jenkins', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='jenkinsstatistic', + name='timestamp', + field=models.DateTimeField(auto_now_add=True), + ), + ] diff --git a/pharos-dashboard/jenkins/migrations/__init__.py b/pharos-dashboard/jenkins/migrations/__init__.py new file mode 100644 index 0000000..e69de29 -- cgit 1.2.3-korg