Commit 84a66d66 authored by Mehmet Emin INAC's avatar Mehmet Emin INAC

Use correct fingerprint values in recalculate finding UUIDs migration

Encode binary string values to hex string values to calculate UUIDs.

Changelog: fixed
EE: true
parent 1716bf84
...@@ -74,8 +74,8 @@ class Gitlab::BackgroundMigration::RecalculateVulnerabilitiesOccurrencesUuid ...@@ -74,8 +74,8 @@ class Gitlab::BackgroundMigration::RecalculateVulnerabilitiesOccurrencesUuid
uuid_v5_name_components = { uuid_v5_name_components = {
report_type: vulnerability_finding.report_type, report_type: vulnerability_finding.report_type,
primary_identifier_fingerprint: vulnerability_finding.fingerprint, primary_identifier_fingerprint: encode_to_hex(vulnerability_finding.fingerprint),
location_fingerprint: vulnerability_finding.location_fingerprint, location_fingerprint: encode_to_hex(vulnerability_finding.location_fingerprint),
project_id: vulnerability_finding.project_id project_id: vulnerability_finding.project_id
} }
...@@ -84,6 +84,10 @@ class Gitlab::BackgroundMigration::RecalculateVulnerabilitiesOccurrencesUuid ...@@ -84,6 +84,10 @@ class Gitlab::BackgroundMigration::RecalculateVulnerabilitiesOccurrencesUuid
CalculateFindingUUID.call(name) CalculateFindingUUID.call(name)
end end
def encode_to_hex(binary_string)
Gitlab::Database::ShaAttribute.new.deserialize(binary_string)
end
def logger def logger
@logger ||= Gitlab::BackgroundMigration::Logger.build @logger ||= Gitlab::BackgroundMigration::Logger.build
end end
......
...@@ -13,12 +13,13 @@ RSpec.describe Gitlab::BackgroundMigration::RecalculateVulnerabilitiesOccurrence ...@@ -13,12 +13,13 @@ RSpec.describe Gitlab::BackgroundMigration::RecalculateVulnerabilitiesOccurrence
let(:vulnerabilities) { table(:vulnerabilities) } let(:vulnerabilities) { table(:vulnerabilities) }
let(:vulnerabilities_findings) { table(:vulnerability_occurrences) } let(:vulnerabilities_findings) { table(:vulnerability_occurrences) }
let(:vulnerability_identifiers) { table(:vulnerability_identifiers) } let(:vulnerability_identifiers) { table(:vulnerability_identifiers) }
let(:vulnerability_identifier) do let(:vulnerability_identifier) do
vulnerability_identifiers.create!( vulnerability_identifiers.create!(
project_id: project.id, project_id: project.id,
external_type: 'uuid-v5', external_type: 'uuid-v5',
external_id: 'uuid-v5', external_id: 'uuid-v5',
fingerprint: '7e394d1b1eb461a7406d7b1e08f057a1cf11287a', fingerprint: Gitlab::Database::ShaAttribute.serialize('7e394d1b1eb461a7406d7b1e08f057a1cf11287a'),
name: 'Identifier for UUIDv5') name: 'Identifier for UUIDv5')
end end
...@@ -27,7 +28,7 @@ RSpec.describe Gitlab::BackgroundMigration::RecalculateVulnerabilitiesOccurrence ...@@ -27,7 +28,7 @@ RSpec.describe Gitlab::BackgroundMigration::RecalculateVulnerabilitiesOccurrence
project_id: project.id, project_id: project.id,
external_type: 'uuid-v4', external_type: 'uuid-v4',
external_id: 'uuid-v4', external_id: 'uuid-v4',
fingerprint: '772da93d34a1ba010bcb5efa9fb6f8e01bafcc89', fingerprint: Gitlab::Database::ShaAttribute.serialize('772da93d34a1ba010bcb5efa9fb6f8e01bafcc89'),
name: 'Identifier for UUIDv4') name: 'Identifier for UUIDv4')
end end
...@@ -59,7 +60,7 @@ RSpec.describe Gitlab::BackgroundMigration::RecalculateVulnerabilitiesOccurrence ...@@ -59,7 +60,7 @@ RSpec.describe Gitlab::BackgroundMigration::RecalculateVulnerabilitiesOccurrence
scanner_id: different_scanner.id, scanner_id: different_scanner.id,
primary_identifier_id: different_vulnerability_identifier.id, primary_identifier_id: different_vulnerability_identifier.id,
report_type: 0, # "sast" report_type: 0, # "sast"
location_fingerprint: "fa18f432f1d56675f4098d318739c3cd5b14eb3e", location_fingerprint: Gitlab::Database::ShaAttribute.serialize("fa18f432f1d56675f4098d318739c3cd5b14eb3e"),
uuid: known_uuid_v4 uuid: known_uuid_v4
) )
end end
...@@ -91,7 +92,7 @@ RSpec.describe Gitlab::BackgroundMigration::RecalculateVulnerabilitiesOccurrence ...@@ -91,7 +92,7 @@ RSpec.describe Gitlab::BackgroundMigration::RecalculateVulnerabilitiesOccurrence
scanner_id: scanner.id, scanner_id: scanner.id,
primary_identifier_id: vulnerability_identifier.id, primary_identifier_id: vulnerability_identifier.id,
report_type: 0, # "sast" report_type: 0, # "sast"
location_fingerprint: "838574be0210968bf6b9f569df9c2576242cbf0a", location_fingerprint: Gitlab::Database::ShaAttribute.serialize("838574be0210968bf6b9f569df9c2576242cbf0a"),
uuid: known_uuid_v5 uuid: known_uuid_v5
) )
end end
...@@ -115,7 +116,7 @@ RSpec.describe Gitlab::BackgroundMigration::RecalculateVulnerabilitiesOccurrence ...@@ -115,7 +116,7 @@ RSpec.describe Gitlab::BackgroundMigration::RecalculateVulnerabilitiesOccurrence
scanner_id: different_scanner.id, scanner_id: different_scanner.id,
primary_identifier_id: different_vulnerability_identifier.id, primary_identifier_id: different_vulnerability_identifier.id,
report_type: 0, # "sast" report_type: 0, # "sast"
location_fingerprint: "fa18f432f1d56675f4098d318739c3cd5b14eb3e", location_fingerprint: Gitlab::Database::ShaAttribute.serialize("fa18f432f1d56675f4098d318739c3cd5b14eb3e"),
uuid: known_uuid_v4 uuid: known_uuid_v4
) )
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment