From 11a3ad4f54778f38fe51ffe0ec891b3053681b18 Mon Sep 17 00:00:00 2001 From: "Chris J. Karr" Date: Tue, 27 Dec 2016 10:36:40 -0600 Subject: [PATCH] Misc. bug fixes --- .../commands/compile_gyroscope_report.py | 20 ++- ..._slug__chg_field_purplerobotexportjob_e.py | 148 ++++++++++++++++++ models.py | 2 +- views.py | 2 - 4 files changed, 161 insertions(+), 11 deletions(-) create mode 100644 migrations/0040_auto__chg_field_purplerobottest_slug__chg_field_purplerobotexportjob_e.py diff --git a/management/commands/compile_gyroscope_report.py b/management/commands/compile_gyroscope_report.py index e339b7f..b464926 100644 --- a/management/commands/compile_gyroscope_report.py +++ b/management/commands/compile_gyroscope_report.py @@ -29,6 +29,7 @@ def handle(self, *args, **options): # hash = hash['user_id'] payloads = PurpleRobotReading.objects.filter(user_id=user_hash, probe=PROBE_NAME, logged__gte=start_ts, logged__lt=end_ts).order_by('logged') + count = payloads.count() if count > 0: temp_file = tempfile.TemporaryFile() @@ -63,7 +64,7 @@ def handle(self, *args, **options): has_sensor = True for sensor_time in reading_json['SENSOR_TIMESTAMP']: - sensor_times.append(sensor_times) + sensor_times.append(sensor_time) for event_time in reading_json['EVENT_TIMESTAMP']: cpu_times.append(event_time) @@ -74,18 +75,21 @@ def handle(self, *args, **options): if has_sensor: for i in range(0, len(sensor_times)): - sensor_ts = float(sensor_times[i]) + try: + sensor_ts = float(sensor_times[i]) - normalized_ts = sensor_ts / (1000 * 1000 * 1000) + normalized_ts = sensor_ts / (1000 * 1000 * 1000) - if normalized_ts < last_sensor: - cpu_time = cpu_times[i] + if normalized_ts < last_sensor: + cpu_time = cpu_times[i] - base_ts = cpu_time - normalized_ts + base_ts = cpu_time - normalized_ts - normal_times.append(base_ts + normalized_ts) + normal_times.append(base_ts + normalized_ts) - last_sensor = normalized_ts + last_sensor = normalized_ts + except TypeError: + print('compile_gyroscope_report[Invalid Value/' + str(payload.pk) + ']: ' + str(sensor_times[i])) for x_reading in reading_json['X']: x_readings.append(x_reading) diff --git a/migrations/0040_auto__chg_field_purplerobottest_slug__chg_field_purplerobotexportjob_e.py b/migrations/0040_auto__chg_field_purplerobottest_slug__chg_field_purplerobotexportjob_e.py new file mode 100644 index 0000000..7008987 --- /dev/null +++ b/migrations/0040_auto__chg_field_purplerobottest_slug__chg_field_purplerobotexportjob_e.py @@ -0,0 +1,148 @@ +# -*- coding: utf-8 -*- +from south.utils import datetime_utils as datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + + # Changing field 'PurpleRobotTest.slug' + db.alter_column(u'purple_robot_app_purplerobottest', 'slug', self.gf('django.db.models.fields.SlugField')(unique=True, max_length=1024)) + + # Changing field 'PurpleRobotExportJob.end_date' + db.alter_column(u'purple_robot_app_purplerobotexportjob', 'end_date', self.gf('django.db.models.fields.DateTimeField')()) + + # Changing field 'PurpleRobotExportJob.start_date' + db.alter_column(u'purple_robot_app_purplerobotexportjob', 'start_date', self.gf('django.db.models.fields.DateTimeField')()) + + def backwards(self, orm): + + # Changing field 'PurpleRobotTest.slug' + db.alter_column(u'purple_robot_app_purplerobottest', 'slug', self.gf('django.db.models.fields.SlugField')(max_length=50, unique=True)) + + # Changing field 'PurpleRobotExportJob.end_date' + db.alter_column(u'purple_robot_app_purplerobotexportjob', 'end_date', self.gf('django.db.models.fields.DateField')()) + + # Changing field 'PurpleRobotExportJob.start_date' + db.alter_column(u'purple_robot_app_purplerobotexportjob', 'start_date', self.gf('django.db.models.fields.DateField')()) + + models = { + u'purple_robot_app.purplerobotalert': { + 'Meta': {'object_name': 'PurpleRobotAlert'}, + 'action_url': ('django.db.models.fields.URLField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}), + 'dismissed': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'generated': ('django.db.models.fields.DateTimeField', [], {}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'manually_dismissed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'message': ('django.db.models.fields.CharField', [], {'max_length': '2048'}), + 'probe': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}), + 'severity': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'tags': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'}), + 'user_id': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}) + }, + u'purple_robot_app.purplerobotconfiguration': { + 'Meta': {'object_name': 'PurpleRobotConfiguration'}, + 'added': ('django.db.models.fields.DateTimeField', [], {}), + 'contents': ('django.db.models.fields.TextField', [], {'max_length': '1048576'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '1024'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '1024'}) + }, + u'purple_robot_app.purplerobotdevice': { + 'Meta': {'object_name': 'PurpleRobotDevice'}, + 'config_last_fetched': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'config_last_user_agent': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}), + 'configuration': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'devices'", 'null': 'True', 'to': u"orm['purple_robot_app.PurpleRobotConfiguration']"}), + 'description': ('django.db.models.fields.TextField', [], {'max_length': '1048576', 'null': 'True', 'blank': 'True'}), + 'device_group': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'devices'", 'null': 'True', 'to': u"orm['purple_robot_app.PurpleRobotDeviceGroup']"}), + 'device_id': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '256', 'db_index': 'True'}), + 'first_reading_timestamp': ('django.db.models.fields.BigIntegerField', [], {'default': '0'}), + 'hash_key': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'last_reading_timestamp': ('django.db.models.fields.BigIntegerField', [], {'default': '0'}), + 'mute_alerts': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '1024'}), + 'performance_metadata': ('django.db.models.fields.TextField', [], {'default': "'{}'", 'max_length': '1048576'}), + 'test_device': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + u'purple_robot_app.purplerobotdevicegroup': { + 'Meta': {'object_name': 'PurpleRobotDeviceGroup'}, + 'configuration': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'groups'", 'null': 'True', 'to': u"orm['purple_robot_app.PurpleRobotConfiguration']"}), + 'description': ('django.db.models.fields.TextField', [], {'max_length': '1048576', 'null': 'True', 'blank': 'True'}), + 'group_id': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '256'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '1024'}) + }, + u'purple_robot_app.purplerobotdevicenote': { + 'Meta': {'object_name': 'PurpleRobotDeviceNote'}, + 'added': ('django.db.models.fields.DateTimeField', [], {}), + 'device': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'notes'", 'to': u"orm['purple_robot_app.PurpleRobotDevice']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'note': ('django.db.models.fields.TextField', [], {'max_length': '1024'}) + }, + u'purple_robot_app.purplerobotevent': { + 'Meta': {'object_name': 'PurpleRobotEvent'}, + 'event': ('django.db.models.fields.CharField', [], {'max_length': '1024'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'logged': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '1024', 'null': 'True', 'blank': 'True'}), + 'payload': ('django.db.models.fields.TextField', [], {'max_length': '8388608', 'null': 'True', 'blank': 'True'}), + 'user_id': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'db_index': 'True'}) + }, + u'purple_robot_app.purplerobotexportjob': { + 'Meta': {'object_name': 'PurpleRobotExportJob'}, + 'destination': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateTimeField', [], {}), + 'export_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'probes': ('django.db.models.fields.TextField', [], {'max_length': '8196', 'null': 'True', 'blank': 'True'}), + 'start_date': ('django.db.models.fields.DateTimeField', [], {}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'pending'", 'max_length': '512'}), + 'users': ('django.db.models.fields.TextField', [], {'max_length': '8196', 'null': 'True', 'blank': 'True'}) + }, + u'purple_robot_app.purplerobotpayload': { + 'Meta': {'object_name': 'PurpleRobotPayload'}, + 'added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'errors': ('django.db.models.fields.TextField', [], {'max_length': '65536', 'null': 'True', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'payload': ('django.db.models.fields.TextField', [], {'max_length': '8388608'}), + 'process_tags': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '1024', 'null': 'True', 'blank': 'True'}), + 'user_id': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'db_index': 'True'}) + }, + u'purple_robot_app.purplerobotreading': { + 'Meta': {'object_name': 'PurpleRobotReading', 'index_together': "[['probe', 'user_id'], ['logged', 'user_id'], ['probe', 'logged', 'user_id']]"}, + 'attachment': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'guid': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '1024', 'null': 'True', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'logged': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), + 'payload': ('django.db.models.fields.TextField', [], {'max_length': '8388608'}), + 'probe': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '1024', 'null': 'True', 'blank': 'True'}), + 'size': ('django.db.models.fields.IntegerField', [], {'default': '0', 'db_index': 'True'}), + 'user_id': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'db_index': 'True'}) + }, + u'purple_robot_app.purplerobotreport': { + 'Meta': {'object_name': 'PurpleRobotReport'}, + 'generated': ('django.db.models.fields.DateTimeField', [], {}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '1024'}), + 'probe': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}), + 'report_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'blank': 'True'}), + 'user_id': ('django.db.models.fields.CharField', [], {'max_length': '1024'}) + }, + u'purple_robot_app.purplerobottest': { + 'Meta': {'object_name': 'PurpleRobotTest'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'frequency': ('django.db.models.fields.FloatField', [], {'default': '1.0'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'last_updated': ('django.db.models.fields.DateTimeField', [], {}), + 'probe': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}), + 'report': ('django.db.models.fields.TextField', [], {'default': "'{}'"}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '1024'}), + 'user_id': ('django.db.models.fields.CharField', [], {'max_length': '1024'}) + } + } + + complete_apps = ['purple_robot_app'] \ No newline at end of file diff --git a/models.py b/models.py index 19aa66a..f64c783 100644 --- a/models.py +++ b/models.py @@ -1182,7 +1182,7 @@ def purplerobotreport_delete(sender, instance, **kwargs): class PurpleRobotTest(models.Model): active = models.BooleanField(default=False) - slug = models.SlugField(unique=True) + slug = models.SlugField(unique=True, max_length=1024) probe = models.CharField(max_length=1024, null=True, blank=True) user_id = models.CharField(max_length=1024) frequency = models.FloatField(default=1.0) diff --git a/views.py b/views.py index a4b9e1d..dc6a18f 100644 --- a/views.py +++ b/views.py @@ -180,8 +180,6 @@ def log_event(request): payload['user_id'] = '-' except KeyError: payload['user_id'] = '-' - except KeyError: - payload['user_id'] = '-' event = PurpleRobotEvent(payload=json.dumps(payload, indent=2)) event.logged = logged