Skip to content

Commit fb9b56c

Browse files
committed
fix tag handling
Signed-off-by: Marcus Furlong <furlongm@gmail.com>
1 parent c651c3f commit fb9b56c

File tree

3 files changed

+20
-3
lines changed

3 files changed

+20
-3
lines changed

hosts/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ def show(self):
8585
text += f'Packages : {self.get_num_packages()}\n'
8686
text += f'Repos : {self.get_num_repos()}\n'
8787
text += f'Updates : {self.get_num_updates()}\n'
88-
text += f'Tags : {self.tags}\n'
88+
text += f'Tags : {" ".join(self.tags.slugs())}\n'
8989
text += f'Needs reboot : {self.reboot_required}\n'
9090
text += f'Updated at : {self.updated_at}\n'
9191
text += f'Host repos : {self.host_repos_only}\n'

hosts/utils.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@
1818
from socket import gethostbyaddr, gaierror, herror
1919

2020
from django.db import transaction, IntegrityError
21+
from taggit.models import Tag
2122

22-
from patchman.signals import error_message
23+
from patchman.signals import error_message, info_message
2324

2425

2526
def update_rdns(host):
@@ -62,7 +63,7 @@ def get_or_create_host(report, arch, osvariant, domain):
6263
host.osvariant = osvariant
6364
host.domain = domain
6465
host.lastreport = report.created
65-
host.tags = report.tags
66+
host.tags.set(report.tags.split(','), clear=True)
6667
if report.reboot == 'True':
6768
host.reboot_required = True
6869
else:
@@ -73,3 +74,17 @@ def get_or_create_host(report, arch, osvariant, domain):
7374
if host:
7475
host.check_rdns()
7576
return host
77+
78+
79+
def clean_tags():
80+
""" Delete Tags that have no Host
81+
"""
82+
tags = Tag.objects.filter(
83+
host__isnull=True,
84+
)
85+
tlen = tags.count()
86+
if tlen == 0:
87+
info_message.send(sender=None, text='No orphaned Tags found.')
88+
else:
89+
info_message.send(sender=None, text=f'{tlen} orphaned Tags found.')
90+
tags.delete()

sbin/patchman

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ from errata.utils import mark_errata_security_updates, enrich_errata, \
3434
scan_package_updates_for_affected_packages
3535
from errata.tasks import update_errata
3636
from hosts.models import Host
37+
from hosts.utils import clean_tags
3738
from modules.utils import clean_modules
3839
from packages.utils import clean_packages, clean_packageupdates, clean_packagenames
3940
from repos.models import Repository
@@ -362,6 +363,7 @@ def dbcheck(remove_duplicates=False):
362363
clean_repos()
363364
clean_modules()
364365
clean_packageupdates()
366+
clean_tags()
365367

366368

367369
def collect_args():

0 commit comments

Comments
 (0)