Account for different datetime format in Suse errata
Suse uses a different datetime format than what Katello currently expects. Instead of a formatted data and time, they use seconds since Epoch. This is preventing Katello from correctly parsing the date, leading to a blank entry.
Further, it looks like the issue happens during or before the values are stored in the katello_errata table.
id | uuid | errata_id | created_at | updated_at | issued | updated | errata_type | severity |
1 | 003a57f6-48e7-4752-aa07-7c62ac288d17 | openSUSE-2017-1284 | 2018-03-19 13:54:40.547011 | 2018-03-19 13:54:40.552124 | | | recommended | moderate |
Example: <issued date="1519129773" />
Suse's documentation on their updateinfo metadata: https://en.opensuse.org/openSUSE:Standards_Rpm_Metadata_UpdateInfo
1. Sync a suse repository that contains errata.
2. Check that the issued and updated dates (if applicable) show up correctly in the UI/CLI/API
#1 Updated by Justin Sherrill about 5 years ago
- Difficulty set to easy
- Legacy Backlogs Release (now unused) set to 284
- Target version set to 245
#2 Updated by John Mitsch about 5 years ago
- Assignee set to John Mitsch
#3 Updated by The Foreman Bot about 5 years ago
- Status changed from New to Ready For Testing
- Pull request https://github.com/Katello/katello/pull/7255 added
#4 Updated by John Mitsch about 5 years ago
- Legacy Backlogs Release (now unused) changed from 284 to 352
#5 Updated by John Mitsch about 5 years ago
- % Done changed from 0 to 100
- Status changed from Ready For Testing to Closed
Applied in changeset katello|2e718b8bc247bf7cb3a1b0efac97b5b5c17b130e.
Fixes #22952 - Handle SUSE errata's epoch dates
SUSE errata dates are stored in pulp as seconds since epoch dates,
whereas Red Hat errata dates are formatted date strings. Since pulp
stores these "as-is" in a string, we need to convert the epoch date
to a formatted date string in the indexing step, so the epoch date
can be stored in our "issued" and "updated" database fields for
Erratum, which are date type fields.