AC-1122 Fixed inventory source name (and therefore inventory update name) to pull from group/inventory name.

This commit is contained in:
Chris Church 2014-04-03 14:19:44 -04:00
parent 641c8d8e05
commit 9b33057042
2 changed files with 21 additions and 5 deletions

View File

@ -25,11 +25,11 @@ class Migration(DataMigration):
if hasattr(instance, 'name'):
d['name'] = instance.name
elif getattr(instance, 'inventory', None) and getattr(instance, 'group', None):
d['name'] = ': '.join([instance.inventory.name, instance.group.name])
d['name'] = '%s (%s)'.join([instance.group.name, instance.inventory.name])
elif getattr(instance, 'inventory', None):
d['name'] = u'%s-%s' % (instance.inventory.name, instance.pk)
d['name'] = u'%s (%s)' % (instance.inventory.name, instance.pk)
else:
d['name'] = u'%s-%s' % (instance._meta.verbose_name, instance.pk)
d['name'] = u'%s (%s)' % (instance._meta.verbose_name, instance.pk)
return d
def _get_dict_from_common_task_model(self, instance):

View File

@ -636,6 +636,7 @@ class InventorySource(UnifiedJobTemplate, InventorySourceOptions):
'credential', 'source_regions', 'overwrite', 'overwrite_vars']
def save(self, *args, **kwargs):
new_instance = bool(self.pk)
# If update_fields has been specified, add our field names to it,
# if it hasn't been specified, then we're just doing a normal save.
update_fields = kwargs.get('update_fields', [])
@ -645,12 +646,27 @@ class InventorySource(UnifiedJobTemplate, InventorySourceOptions):
if 'inventory' not in update_fields:
update_fields.append('inventory')
# Set name automatically.
if not self.name:
self.name = 'inventory_source %s' % now()
replace_text = '__replace_%s__' % now()
old_name_re = re.compile(r'^inventory_source \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.*?$')
if not self.name or old_name_re.match(self.name):
if self.inventory and self.group:
self.name = '%s (%s)' % (self.group.name, self.inventory.name)
elif self.inventory and self.pk:
self.name = '%s (%s)' % (self.inventory.name, self.pk)
elif self.inventory:
self.name = '%s (%s)' % (self.inventory.name, replace_text)
elif self.pk:
self.name = 'inventory source (%s)' % self.pk
else:
self.name = 'inventory source (%s)' % replace_text
if 'name' not in update_fields:
update_fields.append('name')
# Do the actual save.
super(InventorySource, self).save(*args, **kwargs)
# Add the PK to the name if only attached to an inventory (no group).
if new_instance and self.inventory and replace_text in self.name:
self.name = self.name.replace(replace_text, str(self.pk))
self.save(update_fields=['name'])
def _get_current_status(self):
if self.source: