AC-537 Minor migration change, fix broken models/serializers.

This commit is contained in:
Chris Church 2013-10-29 12:06:48 -04:00
parent ddd5eb3b4e
commit 0c98b7ed69
5 changed files with 22 additions and 16 deletions

View File

@ -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'

View File

@ -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'}),

View File

@ -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'}),

View File

@ -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

View File

@ -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: