mirror of
https://github.com/ansible/awx.git
synced 2026-05-16 13:57:39 -02:30
AC-1122 Fixed inventory source name (and therefore inventory update name) to pull from group/inventory name.
This commit is contained in:
@@ -25,11 +25,11 @@ class Migration(DataMigration):
|
|||||||
if hasattr(instance, 'name'):
|
if hasattr(instance, 'name'):
|
||||||
d['name'] = instance.name
|
d['name'] = instance.name
|
||||||
elif getattr(instance, 'inventory', None) and getattr(instance, 'group', None):
|
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):
|
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:
|
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
|
return d
|
||||||
|
|
||||||
def _get_dict_from_common_task_model(self, instance):
|
def _get_dict_from_common_task_model(self, instance):
|
||||||
|
|||||||
@@ -636,6 +636,7 @@ class InventorySource(UnifiedJobTemplate, InventorySourceOptions):
|
|||||||
'credential', 'source_regions', 'overwrite', 'overwrite_vars']
|
'credential', 'source_regions', 'overwrite', 'overwrite_vars']
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
def save(self, *args, **kwargs):
|
||||||
|
new_instance = bool(self.pk)
|
||||||
# If update_fields has been specified, add our field names to it,
|
# 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.
|
# if it hasn't been specified, then we're just doing a normal save.
|
||||||
update_fields = kwargs.get('update_fields', [])
|
update_fields = kwargs.get('update_fields', [])
|
||||||
@@ -645,12 +646,27 @@ class InventorySource(UnifiedJobTemplate, InventorySourceOptions):
|
|||||||
if 'inventory' not in update_fields:
|
if 'inventory' not in update_fields:
|
||||||
update_fields.append('inventory')
|
update_fields.append('inventory')
|
||||||
# Set name automatically.
|
# Set name automatically.
|
||||||
if not self.name:
|
replace_text = '__replace_%s__' % now()
|
||||||
self.name = 'inventory_source %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:
|
if 'name' not in update_fields:
|
||||||
update_fields.append('name')
|
update_fields.append('name')
|
||||||
# Do the actual save.
|
# Do the actual save.
|
||||||
super(InventorySource, self).save(*args, **kwargs)
|
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):
|
def _get_current_status(self):
|
||||||
if self.source:
|
if self.source:
|
||||||
|
|||||||
Reference in New Issue
Block a user