mirror of
https://github.com/ansible/awx.git
synced 2026-07-24 06:38:13 -02:30
rename insight tracking field; handle duplicate
* rename from insights_machine_id to insights_system_id * gracefully handle duplicate insights machine id's
This commit is contained in:
@@ -12,6 +12,7 @@ from kombu.mixins import ConsumerMixin
|
||||
from django.core.management.base import NoArgsCommand
|
||||
from django.conf import settings
|
||||
from django.utils import timezone
|
||||
from django.db import IntegrityError
|
||||
|
||||
# AWX
|
||||
from awx.main.models.jobs import Job
|
||||
@@ -121,11 +122,16 @@ class FactBrokerWorker(ConsumerMixin):
|
||||
|
||||
if job.store_facts is True:
|
||||
if module_name == 'insights':
|
||||
try:
|
||||
host_obj.insights_machine_id = facts['machine_id']
|
||||
host_obj.save()
|
||||
except StandardError:
|
||||
logger.warn('Failed to find insights machine id in insights fact scan.')
|
||||
system_id = facts.get('system_id', None)
|
||||
if system_id:
|
||||
host_obj.insights_system_id = system_id
|
||||
try:
|
||||
host_obj.save()
|
||||
except IntegrityError:
|
||||
host_obj.insights_system_id = None
|
||||
logger.warn('Inisghts system_id %s not assigned to host %s because it already exists.' % (system_id, host_obj.pk))
|
||||
else:
|
||||
logger.warn('Failed to find insights system id in insights fact scan.')
|
||||
self._do_gather_facts_update(host_obj, module_name, facts, self.timestamp)
|
||||
|
||||
message.ack()
|
||||
|
||||
@@ -240,11 +240,11 @@ class Migration(migrations.Migration):
|
||||
# Insights
|
||||
migrations.AddField(
|
||||
model_name='host',
|
||||
name='insights_machine_id',
|
||||
name='insights_system_id',
|
||||
field=models.TextField(default=None, help_text='Red Hat Insights host unique identifier.', null=True, db_index=True, blank=True),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='host',
|
||||
unique_together=set([('insights_machine_id', 'inventory'), ('name', 'inventory')]),
|
||||
unique_together=set([('insights_system_id', 'inventory'), ('name', 'inventory')]),
|
||||
),
|
||||
]
|
||||
|
||||
@@ -350,7 +350,7 @@ class Host(CommonModelNameNotUnique):
|
||||
|
||||
class Meta:
|
||||
app_label = 'main'
|
||||
unique_together = (("name", "inventory"), ("insights_machine_id", "inventory"),) # FIXME: Add ('instance_id', 'inventory') after migration.
|
||||
unique_together = (("name", "inventory"), ("insights_system_id", "inventory"),) # FIXME: Add ('instance_id', 'inventory') after migration.
|
||||
ordering = ('name',)
|
||||
|
||||
inventory = models.ForeignKey(
|
||||
@@ -411,7 +411,7 @@ class Host(CommonModelNameNotUnique):
|
||||
default={},
|
||||
help_text=_('Arbitrary JSON structure of most recent ansible_facts, per-host.'),
|
||||
)
|
||||
insights_machine_id = models.TextField(
|
||||
insights_system_id = models.TextField(
|
||||
blank=True,
|
||||
default=None,
|
||||
null=True,
|
||||
|
||||
Reference in New Issue
Block a user