Move 'become_enabled' to JobOptions to allow a toplevel field to exist

on the Job model also.  Update tasks and migrations to reflect this
This commit is contained in:
Matthew Jones 2015-04-06 12:34:47 -04:00
parent 736f86fc72
commit 55f266d323
6 changed files with 19 additions and 7 deletions

View File

@ -13,6 +13,11 @@ class Migration(SchemaMigration):
self.gf('django.db.models.fields.BooleanField')(default=False),
keep_default=False)
# Adding field 'Job.become_enabled'
db.add_column(u'main_job', 'become_enabled',
self.gf('django.db.models.fields.BooleanField')(default=False),
keep_default=False)
# Adding field 'Credential.become_method'
db.add_column(u'main_credential', 'become_method',
self.gf('django.db.models.fields.CharField')(default='', max_length=32, blank=True),
@ -33,6 +38,9 @@ class Migration(SchemaMigration):
# Deleting field 'JobTemplate.become_enabled'
db.delete_column(u'main_jobtemplate', 'become_enabled')
# Deleting field 'Job.become_enabled'
db.delete_column(u'main_job', 'become_enabled')
# Deleting field 'Credential.become_method'
db.delete_column(u'main_credential', 'become_method')
@ -297,6 +305,7 @@ class Migration(SchemaMigration):
},
'main.job': {
'Meta': {'ordering': "('id',)", 'object_name': 'Job', '_ormbases': ['main.UnifiedJob']},
'become_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'cloud_credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs_as_cloud_credential+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}),
'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}),
'extra_vars': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}),

View File

@ -280,6 +280,7 @@ class Migration(DataMigration):
},
'main.job': {
'Meta': {'ordering': "('id',)", 'object_name': 'Job', '_ormbases': ['main.UnifiedJob']},
'become_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'cloud_credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs_as_cloud_credential+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}),
'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}),
'extra_vars': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}),

View File

@ -293,6 +293,7 @@ class Migration(SchemaMigration):
},
'main.job': {
'Meta': {'ordering': "('id',)", 'object_name': 'Job', '_ormbases': ['main.UnifiedJob']},
'become_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'cloud_credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs_as_cloud_credential+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}),
'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}),
'extra_vars': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}),

View File

@ -277,6 +277,7 @@ class Migration(SchemaMigration):
},
'main.job': {
'Meta': {'ordering': "('id',)", 'object_name': 'Job', '_ormbases': ['main.UnifiedJob']},
'become_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'cloud_credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs_as_cloud_credential+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}),
'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}),
'extra_vars': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}),
@ -525,4 +526,4 @@ class Migration(SchemaMigration):
}
}
complete_apps = ['main']
complete_apps = ['main']

View File

@ -113,6 +113,10 @@ class JobOptions(BaseModel):
blank=True,
default='',
)
become_enabled = models.BooleanField(
default=False,
)
extra_vars_dict = VarsDictProperty('extra_vars', True)
@ -170,10 +174,6 @@ class JobTemplate(UnifiedJobTemplate, JobOptions):
default=False,
)
become_enabled = models.BooleanField(
default=False,
)
survey_spec = JSONField(
blank=True,
default={},
@ -188,7 +188,7 @@ class JobTemplate(UnifiedJobTemplate, JobOptions):
return ['name', 'description', 'job_type', 'inventory', 'project',
'playbook', 'credential', 'cloud_credential', 'forks', 'schedule',
'limit', 'verbosity', 'job_tags', 'extra_vars', 'launch_type',
'force_handlers', 'skip_tags', 'start_at_task']
'force_handlers', 'skip_tags', 'start_at_task', 'become_enabled']
def create_job(self, **kwargs):
'''

View File

@ -637,7 +637,7 @@ class RunJob(BaseTask):
if become_method and become_method == "su" and "become_password" in kwargs.get("passwords", {}):
args.append("--ask-su-pass")
else:
if job.job_template.become_enabled:
if job.become_enabled:
args.append('--become')
if become_method:
args.extend(['--become-method', become_method])