From 477b82f1a5212dc64d963d33a776c3b2940d0d85 Mon Sep 17 00:00:00 2001 From: Luke Duncalfe <lduncalfe@gitlab.com> Date: Wed, 25 Sep 2019 05:00:53 +0000 Subject: [PATCH] Make post migration EE-specific Fixes https://gitlab.com/gitlab-org/gitlab/issues/32725 --- ...date_cs_vulnerability_confidence_column.rb | 3 +++ .../update_vulnerability_confidence.rb | 2 +- .../update_vulnerability_confidence_spec.rb | 26 +++++++++---------- 3 files changed, 16 insertions(+), 15 deletions(-) rename {lib => ee/lib}/gitlab/background_migration/update_vulnerability_confidence.rb (96%) rename {spec => ee/spec}/lib/gitlab/background_migration/update_vulnerability_confidence_spec.rb (68%) diff --git a/db/post_migrate/20190909141517_update_cs_vulnerability_confidence_column.rb b/db/post_migrate/20190909141517_update_cs_vulnerability_confidence_column.rb index 20f5e7ae0dc13..befa08e0cb689 100644 --- a/db/post_migrate/20190909141517_update_cs_vulnerability_confidence_column.rb +++ b/db/post_migrate/20190909141517_update_cs_vulnerability_confidence_column.rb @@ -14,6 +14,9 @@ class UpdateCsVulnerabilityConfidenceColumn < ActiveRecord::Migration[5.2] # 137_424 records to be updated on GitLab.com, # giving us an estimated runtime of 12 hours. def up + # no-op in CE + return unless Gitlab.ee? + migration = Gitlab::BackgroundMigration::UpdateVulnerabilityConfidence migration_name = migration.to_s.demodulize relation = migration::Occurrence.container_scanning_reports_with_medium_confidence diff --git a/lib/gitlab/background_migration/update_vulnerability_confidence.rb b/ee/lib/gitlab/background_migration/update_vulnerability_confidence.rb similarity index 96% rename from lib/gitlab/background_migration/update_vulnerability_confidence.rb rename to ee/lib/gitlab/background_migration/update_vulnerability_confidence.rb index f02f81517781e..275ad1ce303fd 100644 --- a/lib/gitlab/background_migration/update_vulnerability_confidence.rb +++ b/ee/lib/gitlab/background_migration/update_vulnerability_confidence.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -# rubocop:disable Style/Documentation + module Gitlab module BackgroundMigration class UpdateVulnerabilityConfidence diff --git a/spec/lib/gitlab/background_migration/update_vulnerability_confidence_spec.rb b/ee/spec/lib/gitlab/background_migration/update_vulnerability_confidence_spec.rb similarity index 68% rename from spec/lib/gitlab/background_migration/update_vulnerability_confidence_spec.rb rename to ee/spec/lib/gitlab/background_migration/update_vulnerability_confidence_spec.rb index 1217edfecc3ab..a9a771fe7713f 100644 --- a/spec/lib/gitlab/background_migration/update_vulnerability_confidence_spec.rb +++ b/ee/spec/lib/gitlab/background_migration/update_vulnerability_confidence_spec.rb @@ -7,9 +7,6 @@ let(:identifiers) { table(:vulnerability_identifiers) } let(:scanners) { table(:vulnerability_scanners) } let(:projects) { table(:projects) } - let(:vul1) { attributes_for(:vulnerabilities_occurrence) } - let(:vul2) { attributes_for(:vulnerabilities_occurrence) } - let(:vul3) { attributes_for(:vulnerabilities_occurrence) } it 'updates confidence level for container scanning reports' do projects.create!(id: 123, namespace_id: 12, name: 'gitlab', path: 'gitlab') @@ -25,34 +22,35 @@ scanners.create!(id: 6, project_id: 123, external_id: 'clair', name: 'Security Scanner') - vulnerabilities.create!(container_scanning_vuln_params(vul1, 1)) - vulnerabilities.create!(container_scanning_vuln_params(vul2, 2)) - vulnerabilities.create!(container_scanning_vuln_params(vul3, 3).merge(report_type: 1)) + vul1 = vulnerabilities.create!(container_scanning_vuln_params(1)) + vulnerabilities.create!(container_scanning_vuln_params(2)) + vul3 = vulnerabilities.create!(container_scanning_vuln_params(3).merge(report_type: 1)) expect(vulnerabilities.where(report_type: 2, confidence: 2).count). to eq(0) expect(vulnerabilities.exists?(report_type: 2, confidence: 5)).to be_truthy - described_class.new.perform(1, 3) + described_class.new.perform(vul1.id, vul3.id) expect(vulnerabilities.exists?(report_type: 2, confidence: 5)).to be_falsy expect(vulnerabilities.where(report_type: 2, confidence: 2).count). to eq(2) end - def container_scanning_vuln_params(vul, primary_identifier_id) + def container_scanning_vuln_params(primary_identifier_id) + attrs = attributes_for(:vulnerabilities_occurrence) + { - id: vul[:id], severity: 2, confidence: 5, report_type: 2, project_id: 123, scanner_id: 6, primary_identifier_id: primary_identifier_id, - project_fingerprint: vul[:project_fingerprint], - location_fingerprint: vul[:location_fingerprint], - uuid: vul[:uuid], - name: vul[:name], + project_fingerprint: attrs[:project_fingerprint], + location_fingerprint: attrs[:location_fingerprint], + uuid: attrs[:uuid], + name: attrs[:name], metadata_version: '1.3', - raw_metadata: vul3[:raw_metadata] + raw_metadata: attrs[:raw_metadata] } end end -- GitLab