From 0c98b7ed69ab69645b76519ab616d4e2bad73e63 Mon Sep 17 00:00:00 2001 From: Chris Church Date: Tue, 29 Oct 2013 12:06:48 -0400 Subject: [PATCH] AC-537 Minor migration change, fix broken models/serializers. --- awx/main/migrations/0021_v14_changes.py | 2 +- awx/main/migrations/0022_v14_changes.py | 2 +- awx/main/migrations/0023_v14_changes.py | 2 +- awx/main/models/__init__.py | 13 ++++++++----- awx/main/serializers.py | 19 +++++++++++-------- 5 files changed, 22 insertions(+), 16 deletions(-) diff --git a/awx/main/migrations/0021_v14_changes.py b/awx/main/migrations/0021_v14_changes.py index fd48693a07..e8678f652a 100644 --- a/awx/main/migrations/0021_v14_changes.py +++ b/awx/main/migrations/0021_v14_changes.py @@ -31,7 +31,7 @@ class Migration(SchemaMigration): # Adding field 'Credential.kind' db.add_column(u'main_credential', 'kind', - self.gf('django.db.models.fields.CharField')(default='machine', max_length=32), + self.gf('django.db.models.fields.CharField')(default='ssh', max_length=32), keep_default=False) # Adding field 'Credential.username' diff --git a/awx/main/migrations/0022_v14_changes.py b/awx/main/migrations/0022_v14_changes.py index 3780690969..5de66caead 100644 --- a/awx/main/migrations/0022_v14_changes.py +++ b/awx/main/migrations/0022_v14_changes.py @@ -215,7 +215,7 @@ class Migration(DataMigration): 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'credential\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'kind': ('django.db.models.fields.CharField', [], {'default': "'machine'", 'max_length': '32'}), + 'kind': ('django.db.models.fields.CharField', [], {'default': "'ssh'", 'max_length': '32'}), 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'auto_now': 'True', 'blank': 'True'}), 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'credential\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), diff --git a/awx/main/migrations/0023_v14_changes.py b/awx/main/migrations/0023_v14_changes.py index 52caf3b6bb..f90284b40d 100644 --- a/awx/main/migrations/0023_v14_changes.py +++ b/awx/main/migrations/0023_v14_changes.py @@ -134,7 +134,7 @@ class Migration(SchemaMigration): 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'credential\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'kind': ('django.db.models.fields.CharField', [], {'default': "'machine'", 'max_length': '32'}), + 'kind': ('django.db.models.fields.CharField', [], {'default': "'ssh'", 'max_length': '32'}), 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'auto_now': 'True', 'blank': 'True'}), 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'credential\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), diff --git a/awx/main/models/__init__.py b/awx/main/models/__init__.py index 127c8e27a2..931039e800 100644 --- a/awx/main/models/__init__.py +++ b/awx/main/models/__init__.py @@ -1050,7 +1050,7 @@ class Credential(CommonModelNameNotUnique): ('rax', _('Rackspace')), ] - PASSWORD_FIELDS = ('ssh_password', 'password', 'ssh_key_data', 'ssh_key_unlock', 'sudo_password') + PASSWORD_FIELDS = ('password', 'ssh_key_data', 'ssh_key_unlock', 'sudo_password') class Meta: app_label = 'main' @@ -1075,7 +1075,7 @@ class Credential(CommonModelNameNotUnique): kind = models.CharField( max_length=32, choices=KIND_CHOICES, - default='machine', + default='ssh', ) #ssh_username = models.CharField( @@ -1134,8 +1134,8 @@ class Credential(CommonModelNameNotUnique): ) @property - def needs_ssh_password(self): - return not self.ssh_key_data and self.ssh_password == 'ASK' + def needs_password(self): + return not self.ssh_key_data and self.password == 'ASK' @property def needs_ssh_key_unlock(self): @@ -1149,7 +1149,7 @@ class Credential(CommonModelNameNotUnique): @property def passwords_needed(self): needed = [] - for field in ('ssh_password', 'sudo_password', 'ssh_key_unlock'): + for field in ('password', 'sudo_password', 'ssh_key_unlock'): if getattr(self, 'needs_%s' % field): needed.append(field) return needed @@ -1552,6 +1552,9 @@ class ProjectUpdate(CommonTask): editable=False, ) + def get_absolute_url(self): + return reverse('main:project_update_detail', args=(self.pk,)) + def _get_parent_instance(self): return self.project diff --git a/awx/main/serializers.py b/awx/main/serializers.py index 67ecd34e9d..8dc57b79ca 100644 --- a/awx/main/serializers.py +++ b/awx/main/serializers.py @@ -59,7 +59,7 @@ SUMMARIZABLE_FK_FIELDS = { 'groups_with_active_failures', 'has_inventory_sources'), 'project': DEFAULT_SUMMARY_FIELDS + ('status',), - 'credential': DEFAULT_SUMMARY_FIELDS, + 'credential': DEFAULT_SUMMARY_FIELDS + ('kind',), 'permission': DEFAULT_SUMMARY_FIELDS, 'job': DEFAULT_SUMMARY_FIELDS + ('status', 'failed',), 'job_template': DEFAULT_SUMMARY_FIELDS, @@ -883,6 +883,8 @@ class CredentialSerializer(BaseSerializer): def validate(self, attrs): ''' some fields cannot be changed once written ''' + return attrs + # FIXME: Don't need this anymore? if self.object is not None: # this is an update if 'user' in attrs and self.object.user != attrs['user']: @@ -927,13 +929,14 @@ class JobSerializer(BaseSerializer): class Meta: model = Job - fields = BASE_FIELDS + ('job_template', 'job_type', 'inventory', - 'project', 'playbook', 'credential', - 'forks', 'limit', 'verbosity', 'extra_vars', - 'job_tags', 'launch_type', 'status', 'failed', - 'result_stdout', 'result_traceback', - 'passwords_needed_to_start', 'job_args', - 'job_cwd', 'job_env') + fields = ('id', 'url', 'related', 'summary_fields', 'created', + 'modified', 'job_template', 'job_type', 'inventory', + 'project', 'playbook', 'credential', + 'forks', 'limit', 'verbosity', 'extra_vars', + 'job_tags', 'launch_type', 'status', 'failed', + 'result_stdout', 'result_traceback', + 'passwords_needed_to_start', 'job_args', + 'job_cwd', 'job_env') def get_related(self, obj): if obj is None: