From 62313adeadb02612c198153311a0f8e05a9b2fad Mon Sep 17 00:00:00 2001
From: Sheldon Led <sheldonled@gitlab.com>
Date: Thu, 8 Dec 2022 14:11:58 +0000
Subject: [PATCH] Remove remaining old ruby code for usage quotas - pipelines

This code is not executable as we removed its invokation in:
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105487
This change is a continuation of the cleaning up.

Changelog: removed
EE: true
---
 .../layout/first_hash_element_indentation.yml |  1 -
 .rubocop_todo/rspec/context_wording.yml       |  1 -
 .rubocop_todo/rspec/empty_line_after_hook.yml |  1 -
 .../style/class_and_module_children.yml       |  2 -
 .../profiles/usage_quotas_controller.rb       | 28 +++++-----
 .../_ci_minutes_report.html.haml              | 38 -------------
 ...tra_shared_runners_minutes_quota.html.haml | 17 ------
 .../pipelines_quota/_list.html.haml           | 56 -------------------
 .../features/profiles/usage_quotas_spec.rb    |  7 ++-
 ee/spec/requests/groups/usage_quotas_spec.rb  | 18 +++---
 locale/gitlab.pot                             | 18 ------
 spec/support/rspec_order_todo.yml             |  3 -
 12 files changed, 29 insertions(+), 161 deletions(-)
 delete mode 100644 ee/app/views/namespaces/pipelines_quota/_ci_minutes_report.html.haml
 delete mode 100644 ee/app/views/namespaces/pipelines_quota/_extra_shared_runners_minutes_quota.html.haml
 delete mode 100644 ee/app/views/namespaces/pipelines_quota/_list.html.haml

diff --git a/.rubocop_todo/layout/first_hash_element_indentation.yml b/.rubocop_todo/layout/first_hash_element_indentation.yml
index 2f20d2ec239e..e1ac4ccb6506 100644
--- a/.rubocop_todo/layout/first_hash_element_indentation.yml
+++ b/.rubocop_todo/layout/first_hash_element_indentation.yml
@@ -196,7 +196,6 @@ Layout/FirstHashElementIndentation:
     - 'ee/spec/requests/api/members_spec.rb'
     - 'ee/spec/requests/api/merge_requests_spec.rb'
     - 'ee/spec/requests/groups/group_members_controller_spec.rb'
-    - 'ee/spec/requests/groups/usage_quotas_spec.rb'
     - 'ee/spec/requests/projects/issue_feature_flags_controller_spec.rb'
     - 'ee/spec/serializers/issues/linked_issue_feature_flag_entity_spec.rb'
     - 'ee/spec/serializers/license_entity_spec.rb'
diff --git a/.rubocop_todo/rspec/context_wording.yml b/.rubocop_todo/rspec/context_wording.yml
index 7131626d15b5..5a01f2294824 100644
--- a/.rubocop_todo/rspec/context_wording.yml
+++ b/.rubocop_todo/rspec/context_wording.yml
@@ -145,7 +145,6 @@ RSpec/ContextWording:
     - 'ee/spec/features/merge_requests/user_filters_by_approvers_spec.rb'
     - 'ee/spec/features/oncall_schedules/user_creates_schedule_spec.rb'
     - 'ee/spec/features/profiles/account_spec.rb'
-    - 'ee/spec/features/profiles/usage_quotas_spec.rb'
     - 'ee/spec/features/projects/active_tabs_spec.rb'
     - 'ee/spec/features/projects/audit_events_spec.rb'
     - 'ee/spec/features/projects/custom_projects_template_spec.rb'
diff --git a/.rubocop_todo/rspec/empty_line_after_hook.yml b/.rubocop_todo/rspec/empty_line_after_hook.yml
index 041eaa1a1a10..263fde8f38e5 100644
--- a/.rubocop_todo/rspec/empty_line_after_hook.yml
+++ b/.rubocop_todo/rspec/empty_line_after_hook.yml
@@ -5,7 +5,6 @@ RSpec/EmptyLineAfterHook:
     - 'ee/spec/controllers/projects/integrations/zentao/issues_controller_spec.rb'
     - 'ee/spec/controllers/projects/push_rules_controller_spec.rb'
     - 'ee/spec/features/issues/user_bulk_edits_issues_spec.rb'
-    - 'ee/spec/features/profiles/usage_quotas_spec.rb'
     - 'ee/spec/lib/ee/api/entities/user_with_admin_spec.rb'
     - 'ee/spec/lib/ee/gitlab/auth/ldap/sync/group_spec.rb'
     - 'ee/spec/lib/ee/gitlab/scim/provisioning_service_spec.rb'
diff --git a/.rubocop_todo/style/class_and_module_children.yml b/.rubocop_todo/style/class_and_module_children.yml
index 9b5f27229a4a..c15095a7e726 100644
--- a/.rubocop_todo/style/class_and_module_children.yml
+++ b/.rubocop_todo/style/class_and_module_children.yml
@@ -422,12 +422,10 @@ Style/ClassAndModuleChildren:
     - 'ee/app/controllers/groups/security/merge_commit_reports_controller.rb'
     - 'ee/app/controllers/groups/sso_controller.rb'
     - 'ee/app/controllers/groups/todos_controller.rb'
-    - 'ee/app/controllers/groups/usage_quotas_controller.rb'
     - 'ee/app/controllers/groups/wikis_controller.rb'
     - 'ee/app/controllers/oauth/geo_auth_controller.rb'
     - 'ee/app/controllers/profiles/billings_controller.rb'
     - 'ee/app/controllers/profiles/slacks_controller.rb'
-    - 'ee/app/controllers/profiles/usage_quotas_controller.rb'
     - 'ee/app/controllers/projects/analytics/issues_analytics_controller.rb'
     - 'ee/app/controllers/projects/analytics/merge_request_analytics_controller.rb'
     - 'ee/app/controllers/projects/approver_groups_controller.rb'
diff --git a/ee/app/controllers/profiles/usage_quotas_controller.rb b/ee/app/controllers/profiles/usage_quotas_controller.rb
index 7d16c067968d..ff99d6ddda32 100644
--- a/ee/app/controllers/profiles/usage_quotas_controller.rb
+++ b/ee/app/controllers/profiles/usage_quotas_controller.rb
@@ -1,22 +1,24 @@
 # frozen_string_literal: true
 
-class Profiles::UsageQuotasController < Profiles::ApplicationController
-  include OneTrustCSP
-  include GoogleAnalyticsCSP
+module Profiles
+  class UsageQuotasController < Profiles::ApplicationController
+    include OneTrustCSP
+    include GoogleAnalyticsCSP
 
-  feature_category :purchase
-  urgency :low
+    feature_category :purchase
+    urgency :low
 
-  before_action :push_feature_flags, only: :index
+    before_action :push_feature_flags, only: :index
 
-  def index
-    @hide_search_settings = true
-    @namespace = current_user.namespace
-  end
+    def index
+      @hide_search_settings = true
+      @namespace = current_user.namespace
+    end
 
-  private
+    private
 
-  def push_feature_flags
-    push_frontend_feature_flag(:gitlab_gtm_datalayer, type: :ops)
+    def push_feature_flags
+      push_frontend_feature_flag(:gitlab_gtm_datalayer, type: :ops)
+    end
   end
 end
diff --git a/ee/app/views/namespaces/pipelines_quota/_ci_minutes_report.html.haml b/ee/app/views/namespaces/pipelines_quota/_ci_minutes_report.html.haml
deleted file mode 100644
index c8926bb93487..000000000000
--- a/ee/app/views/namespaces/pipelines_quota/_ci_minutes_report.html.haml
+++ /dev/null
@@ -1,38 +0,0 @@
-- namespace = locals.fetch(:namespace)
-- minutes_usage = namespace.ci_minutes_usage
-- minutes_usage_presenter = Ci::Minutes::UsagePresenter.new(minutes_usage)
-
-.pipeline-quota.container-fluid
-  .row
-    .col-sm-6.offset-sm-6
-      - if ::Gitlab.com?
-        = link_to s_('UsageQuota|Buy additional minutes'),
-        buy_additional_minutes_path(namespace),
-        target: buy_addon_target_attr(namespace),
-        class: 'gl-button btn btn-confirm float-right js-buy-additional-minutes',
-        data: { track_action: 'click_buy_ci_minutes', track_label: namespace.actual_plan_name, track_property: 'pipeline_quota_page', qa_selector: 'buy_ci_minutes' }
-
-  .row
-    .col-sm-6
-      %strong
-        - last_reset = minutes_usage.reset_date
-        - if last_reset
-          = sprintf(s_('UsageQuota|CI/CD minutes usage since %{timeElapsed}'), { timeElapsed: last_reset.strftime('%b %d, %Y') })
-        - else
-          = s_('UsageQuota|Current period usage')
-      %div{ data: { qa_selector: "plan_ci_minutes" } }
-        = ci_minutes_report(minutes_usage_presenter.monthly_minutes_report)
-        minutes
-        = link_to sprite_icon('question-o'), help_page_path('ci/pipelines/cicd_minutes'), target: '_blank', 'aria-label': _('Shared runners help link')
-
-    .col-sm-6.right
-      - if minutes_usage_presenter.display_minutes_available_data?
-        #{minutes_usage_presenter.monthly_percent_used}% used
-      - elsif !minutes_usage_presenter.any_project_enabled?
-        0% used
-      - else
-        = s_('UsageQuota|Unlimited')
-
-      = ci_minutes_progress_bar(minutes_usage_presenter.monthly_percent_used)
-
-  = render 'namespaces/pipelines_quota/extra_shared_runners_minutes_quota', namespace: namespace
diff --git a/ee/app/views/namespaces/pipelines_quota/_extra_shared_runners_minutes_quota.html.haml b/ee/app/views/namespaces/pipelines_quota/_extra_shared_runners_minutes_quota.html.haml
deleted file mode 100644
index 0994f55a7be1..000000000000
--- a/ee/app/views/namespaces/pipelines_quota/_extra_shared_runners_minutes_quota.html.haml
+++ /dev/null
@@ -1,17 +0,0 @@
-- return unless Gitlab.com?
-
-- minutes_usage = namespace.ci_minutes_usage
-- minutes_usage_presenter = Ci::Minutes::UsagePresenter.new(minutes_usage)
-- return unless minutes_usage_presenter.display_minutes_available_data? && minutes_usage_presenter.purchased_minutes_report.limit > 0
-
-.row
-  .col-sm-6
-    %strong
-      = _("Additional minutes")
-    %div{ data: { qa_selector: "additional_ci_minutes" } }
-      = ci_minutes_report(minutes_usage_presenter.purchased_minutes_report)
-      minutes
-      = link_to sprite_icon('question-o'), help_page_path('ci/pipelines/cicd_minutes', anchor: 'purchase-additional-cicd-minutes-free-saas'), target: '_blank', rel: 'noopener noreferrer'
-  .col-sm-6.right
-    #{minutes_usage_presenter.purchased_percent_used}% used
-    = ci_minutes_progress_bar(minutes_usage_presenter.purchased_percent_used)
diff --git a/ee/app/views/namespaces/pipelines_quota/_list.html.haml b/ee/app/views/namespaces/pipelines_quota/_list.html.haml
deleted file mode 100644
index 2a73be1cd465..000000000000
--- a/ee/app/views/namespaces/pipelines_quota/_list.html.haml
+++ /dev/null
@@ -1,56 +0,0 @@
-- namespace = locals.fetch(:namespace)
-- projects_usage = locals.fetch(:projects_usage)
-- minutes_usage = namespace.ci_minutes_usage
-- minutes_usage_presenter = Ci::Minutes::UsagePresenter.new(minutes_usage)
-- last_reset = minutes_usage.reset_date
-
-= render Pajamas::AlertComponent.new(variant: :info, dismissible: false,
-  alert_options: { class: 'gl-mt-6 gl-mb-3',
-                   data: { testid: 'project-usage-info-alert' }}) do |c|
-  = c.body do
-    - if last_reset
-      = sprintf(s_('UsageQuota|The table below shows usage since %{timeElapsed}'), { timeElapsed: last_reset.strftime('%b %d, %Y') })
-    - else
-      = s_('UsageQuota|The table below shows current period usage')
-
-%table.table.pipeline-project-metrics
-  %thead
-    %tr
-      %th
-        = _('Project')
-      %th
-        = s_('UsageQuota|Shared runner duration')
-      %th
-        = s_('UsageQuota|CI/CD minutes usage')
-
-  %tbody
-    - if !minutes_usage_presenter.any_project_enabled?
-      %tr
-        %td{ colspan: 3 }
-          .nothing-here-block
-            - runners_doc_path = help_page_path('ci/runners/index.md')
-            - help_link_start = '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: runners_doc_path }
-            = s_('UsageQuota|%{help_link_start}Shared runners%{help_link_end} are disabled, so there are no limits set on pipeline usage').html_safe % { help_link_start: help_link_start, help_link_end: '</a>'.html_safe }
-    - else
-      - projects_usage.each do |project_usage|
-        %tr
-          %td
-            .avatar-container.s20.d-none.d-sm-block
-              = project_icon(project_usage.project, alt: '', class: 'avatar project-avatar s20')
-            %strong{ data: {testid: "pipelines-quota-tab-project-name" } }
-              = link_to project_usage.project.full_name, project_usage.project
-          %td{ 'data-testid': 'project_shared_runner_duration' }
-            = project_usage.shared_runners_duration.seconds.in_minutes.round
-          %td{ 'data-testid': 'project_amount_used' }
-            = project_usage.amount_used.to_i
-      - if projects_usage.blank?
-        %tr
-          %td{ colspan: 3 }
-            .nothing-here-block
-              = s_('UsageQuota|This namespace has no projects which used shared runners in the current period')
-      %tr
-        %td{ colspan: 3 }
-          .col-sm-12.center
-            = s_('UsageQuota|This table omits projects that used 0 CI/CD minutes or 0 shared runners duration')
-
-= paginate projects_usage, theme: "gitlab"
diff --git a/ee/spec/features/profiles/usage_quotas_spec.rb b/ee/spec/features/profiles/usage_quotas_spec.rb
index 243e300a14e9..659b9ba697c7 100644
--- a/ee/spec/features/profiles/usage_quotas_spec.rb
+++ b/ee/spec/features/profiles/usage_quotas_spec.rb
@@ -64,7 +64,7 @@
       end
     end
 
-    context 'pagination' do
+    context 'with pagination' do
       let(:per_page) { 1 }
       let(:item_selector) { '.js-project-link' }
       let(:prev_button_selector) { '[data-testid="prevButton"]' }
@@ -75,14 +75,15 @@
         allow(Kaminari.config).to receive(:default_per_page).and_return(per_page)
       end
 
-      context 'storage tab' do
+      context 'on storage tab' do
         before do
           visit_usage_quotas_page('storage-quota-tab')
         end
+
         it_behaves_like 'correct pagination'
       end
 
-      context 'pipelines tab' do
+      context 'on pipelines tab' do
         let(:item_selector) { '[data-testid="pipelines-quota-tab-project-name"]' }
 
         before do
diff --git a/ee/spec/requests/groups/usage_quotas_spec.rb b/ee/spec/requests/groups/usage_quotas_spec.rb
index e9305eb68008..537858a533e2 100644
--- a/ee/spec/requests/groups/usage_quotas_spec.rb
+++ b/ee/spec/requests/groups/usage_quotas_spec.rb
@@ -16,16 +16,18 @@
     end
 
     context 'when storage size is over limit' do
-      let(:usage_message) { FFaker::Lorem.sentence }
+      let(:payload) do
+        {
+          alert_level: :info,
+          usage_message: FFaker::Lorem.sentence,
+          explanation_message: "Explanation",
+          root_namespace: group.root_ancestor
+        }
+      end
 
       before do
         allow_next_instance_of(EE::Namespace::Storage::Notification, group, user) do |notification|
-          allow(notification).to receive(:payload).and_return({
-            alert_level: :info,
-            usage_message: usage_message,
-            explanation_message: "Explanation",
-            root_namespace: group.root_ancestor
-          })
+          allow(notification).to receive(:payload).and_return(payload)
         end
       end
 
@@ -33,7 +35,7 @@
         send_request
 
         expect(response).to have_gitlab_http_status(:ok)
-        expect(response.body).not_to include(usage_message)
+        expect(response.body).not_to include(payload[:usage_message])
       end
     end
 
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index b41072e0205a..eed7ee02e45a 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -44131,9 +44131,6 @@ msgstr ""
 msgid "UsageQuotas|This project-level storage statistic does not include savings for site-wide deduplication and is not used to calculate total namespace storage."
 msgstr ""
 
-msgid "UsageQuota|%{help_link_start}Shared runners%{help_link_end} are disabled, so there are no limits set on pipeline usage"
-msgstr ""
-
 msgid "UsageQuota|%{linkStart}Shared runners%{linkEnd} are disabled, so there are no limits set on pipeline usage"
 msgstr ""
 
@@ -44170,9 +44167,6 @@ msgstr ""
 msgid "UsageQuota|CI/CD minutes usage"
 msgstr ""
 
-msgid "UsageQuota|CI/CD minutes usage since %{timeElapsed}"
-msgstr ""
-
 msgid "UsageQuota|CI/CD minutes usage since %{usageSince}"
 msgstr ""
 
@@ -44182,9 +44176,6 @@ msgstr ""
 msgid "UsageQuota|Container Registry"
 msgstr ""
 
-msgid "UsageQuota|Current period usage"
-msgstr ""
-
 msgid "UsageQuota|Dependency proxy"
 msgstr ""
 
@@ -44311,12 +44302,6 @@ msgstr ""
 msgid "UsageQuota|The namespace is currently using %{strong_start}%{used_storage}%{strong_end} of namespace storage. View and manage your usage from %{strong_start}%{usage_quotas_nav_instruction}%{strong_end}. %{docs_link_start}Learn more%{link_end} about how to reduce your storage."
 msgstr ""
 
-msgid "UsageQuota|The table below shows current period usage"
-msgstr ""
-
-msgid "UsageQuota|The table below shows usage since %{timeElapsed}"
-msgstr ""
-
 msgid "UsageQuota|The table below shows usage since %{usageSince}"
 msgstr ""
 
@@ -44341,9 +44326,6 @@ msgstr ""
 msgid "UsageQuota|Total namespace storage used"
 msgstr ""
 
-msgid "UsageQuota|Unlimited"
-msgstr ""
-
 msgid "UsageQuota|Uploads"
 msgstr ""
 
diff --git a/spec/support/rspec_order_todo.yml b/spec/support/rspec_order_todo.yml
index 26e9cd6cbd91..489ed89c048b 100644
--- a/spec/support/rspec_order_todo.yml
+++ b/spec/support/rspec_order_todo.yml
@@ -257,7 +257,6 @@
 - './ee/spec/features/boards/user_visits_board_spec.rb'
 - './ee/spec/features/burndown_charts_spec.rb'
 - './ee/spec/features/burnup_charts_spec.rb'
-- './ee/spec/features/ci/ci_minutes_spec.rb'
 - './ee/spec/features/ci_shared_runner_settings_spec.rb'
 - './ee/spec/features/ci_shared_runner_warnings_spec.rb'
 - './ee/spec/features/clusters/cluster_detail_page_spec.rb'
@@ -414,7 +413,6 @@
 - './ee/spec/features/profiles/account_spec.rb'
 - './ee/spec/features/profiles/billing_spec.rb'
 - './ee/spec/features/profiles/password_spec.rb'
-- './ee/spec/features/profiles/usage_quotas_spec.rb'
 - './ee/spec/features/profiles/user_visits_public_profile_spec.rb'
 - './ee/spec/features/projects/active_tabs_spec.rb'
 - './ee/spec/features/projects/audit_events_spec.rb'
@@ -2410,7 +2408,6 @@
 - './ee/spec/requests/groups/roadmap_controller_spec.rb'
 - './ee/spec/requests/groups/security/credentials_controller_spec.rb'
 - './ee/spec/requests/groups/settings/reporting_controller_spec.rb'
-- './ee/spec/requests/groups/usage_quotas_spec.rb'
 - './ee/spec/requests/jwt_controller_spec.rb'
 - './ee/spec/requests/lfs_http_spec.rb'
 - './ee/spec/requests/lfs_locks_api_spec.rb'
-- 
GitLab