From b31c799fece5894484c18d6ae6c60c62234fb1fc Mon Sep 17 00:00:00 2001 From: Sri Rang <srirangan@gmail.com> Date: Mon, 16 Dec 2024 11:19:50 +0000 Subject: [PATCH] Cleanup globally enabled feature flag `incubation_5mp_google_cloud` Removes references to a globally enabled feature flag that lends access to the `Google Cloud` menu item in the project menu. Changelog: other --- .../projects/google_cloud/base_controller.rb | 12 ------- .../incubation_5mp_google_cloud.yml | 8 ----- .../projects/menus/infrastructure_menu.rb | 7 +--- .../menus/infrastructure_menu_spec.rb | 33 ------------------- .../configuration_controller_spec.rb | 23 ------------- .../google_cloud/databases_controller_spec.rb | 2 -- .../gcp_regions_controller_spec.rb | 22 ------------- .../service_accounts_controller_spec.rb | 16 --------- .../google_cloud/google_cloud_ff_examples.rb | 18 ---------- 9 files changed, 1 insertion(+), 140 deletions(-) delete mode 100644 config/feature_flags/development/incubation_5mp_google_cloud.yml delete mode 100644 spec/support/shared_examples/requests/projects/google_cloud/google_cloud_ff_examples.rb diff --git a/app/controllers/projects/google_cloud/base_controller.rb b/app/controllers/projects/google_cloud/base_controller.rb index f6039d0160307..3a702b04ffa1c 100644 --- a/app/controllers/projects/google_cloud/base_controller.rb +++ b/app/controllers/projects/google_cloud/base_controller.rb @@ -6,7 +6,6 @@ class Projects::GoogleCloud::BaseController < Projects::ApplicationController before_action :admin_project_google_cloud! before_action :google_oauth2_enabled! - before_action :feature_flag_enabled! private @@ -25,17 +24,6 @@ def google_oauth2_enabled! end end - def feature_flag_enabled! - enabled_for_user = Feature.enabled?(:incubation_5mp_google_cloud, current_user) - enabled_for_group = Feature.enabled?(:incubation_5mp_google_cloud, project.group) - enabled_for_project = Feature.enabled?(:incubation_5mp_google_cloud, project) - feature_is_enabled = enabled_for_user || enabled_for_group || enabled_for_project - unless feature_is_enabled - track_event(:error_feature_flag_not_enabled) - access_denied! - end - end - def validate_gcp_token! is_token_valid = GoogleApi::CloudPlatform::Client.new(token_in_session, nil) .validate_token(expires_at_in_session) diff --git a/config/feature_flags/development/incubation_5mp_google_cloud.yml b/config/feature_flags/development/incubation_5mp_google_cloud.yml deleted file mode 100644 index e2118e659618f..0000000000000 --- a/config/feature_flags/development/incubation_5mp_google_cloud.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -name: incubation_5mp_google_cloud -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/70715 -rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/371332 -milestone: '14.3' -type: development -group: group::incubation -default_enabled: true diff --git a/lib/sidebars/projects/menus/infrastructure_menu.rb b/lib/sidebars/projects/menus/infrastructure_menu.rb index 448285fb773d6..5cdc5a2432d95 100644 --- a/lib/sidebars/projects/menus/infrastructure_menu.rb +++ b/lib/sidebars/projects/menus/infrastructure_menu.rb @@ -94,15 +94,10 @@ def aws_menu_item end def google_cloud_menu_item - enabled_for_user = Feature.enabled?(:incubation_5mp_google_cloud, context.current_user) - enabled_for_group = Feature.enabled?(:incubation_5mp_google_cloud, context.project.group) - enabled_for_project = Feature.enabled?(:incubation_5mp_google_cloud, context.project) - feature_is_enabled = enabled_for_user || enabled_for_group || enabled_for_project user_has_permissions = can?(context.current_user, :admin_project_google_cloud, context.project) - google_oauth2_configured = google_oauth2_configured? - unless feature_is_enabled && user_has_permissions && google_oauth2_configured + unless user_has_permissions && google_oauth2_configured return ::Sidebars::NilMenuItem.new(item_id: :incubation_5mp_google_cloud) end diff --git a/spec/lib/sidebars/projects/menus/infrastructure_menu_spec.rb b/spec/lib/sidebars/projects/menus/infrastructure_menu_spec.rb index 057b7060a7699..517502ee7c3cb 100644 --- a/spec/lib/sidebars/projects/menus/infrastructure_menu_spec.rb +++ b/spec/lib/sidebars/projects/menus/infrastructure_menu_spec.rb @@ -130,41 +130,8 @@ def find_menu_item(menu_item) it_behaves_like 'access rights checks' - context 'when feature flag is turned off globally' do - before do - stub_feature_flags(incubation_5mp_google_cloud: false) - end - - it { is_expected.to be_nil } - - context 'when feature flag is enabled for specific project' do - before do - stub_feature_flags(incubation_5mp_google_cloud: project) - end - - it_behaves_like 'access rights checks' - end - - context 'when feature flag is enabled for specific group' do - before do - stub_feature_flags(incubation_5mp_google_cloud: project.group) - end - - it_behaves_like 'access rights checks' - end - - context 'when feature flag is enabled for specific project' do - before do - stub_feature_flags(incubation_5mp_google_cloud: user) - end - - it_behaves_like 'access rights checks' - end - end - context 'when instance is not configured for Google OAuth2' do before do - stub_feature_flags(incubation_5mp_google_cloud: true) unconfigured_google_oauth2 = Struct.new(:app_id, :app_secret).new('', '') allow(Gitlab::Auth::OAuth::Provider).to receive(:config_for) .with('google_oauth2') diff --git a/spec/requests/projects/google_cloud/configuration_controller_spec.rb b/spec/requests/projects/google_cloud/configuration_controller_spec.rb index ab0cd6109f5a0..8638ca9df261a 100644 --- a/spec/requests/projects/google_cloud/configuration_controller_spec.rb +++ b/spec/requests/projects/google_cloud/configuration_controller_spec.rb @@ -68,29 +68,6 @@ end end - context 'but feature flag is disabled' do - before do - stub_feature_flags(incubation_5mp_google_cloud: false) - end - - it 'returns not found' do - authorized_members.each do |authorized_member| - sign_in(authorized_member) - - get url - - expect(response).to have_gitlab_http_status(:not_found) - expect_snowplow_event( - category: 'Projects::GoogleCloud::ConfigurationController', - action: 'error_feature_flag_not_enabled', - label: nil, - project: project, - user: authorized_member - ) - end - end - end - context 'but google oauth2 token is not valid' do it 'does not return revoke oauth url' do allow_next_instance_of(GoogleApi::CloudPlatform::Client) do |client| diff --git a/spec/requests/projects/google_cloud/databases_controller_spec.rb b/spec/requests/projects/google_cloud/databases_controller_spec.rb index 46f6d27644c1e..31a4963b5c1ae 100644 --- a/spec/requests/projects/google_cloud/databases_controller_spec.rb +++ b/spec/requests/projects/google_cloud/databases_controller_spec.rb @@ -6,8 +6,6 @@ shared_examples 'shared examples for database controller endpoints' do include_examples 'requires `admin_project_google_cloud` role' - include_examples 'requires feature flag `incubation_5mp_google_cloud` enabled' - include_examples 'requires valid Google OAuth2 configuration' include_examples 'requires valid Google Oauth2 token' do diff --git a/spec/requests/projects/google_cloud/gcp_regions_controller_spec.rb b/spec/requests/projects/google_cloud/gcp_regions_controller_spec.rb index da000ec00c0de..9105114487fdd 100644 --- a/spec/requests/projects/google_cloud/gcp_regions_controller_spec.rb +++ b/spec/requests/projects/google_cloud/gcp_regions_controller_spec.rb @@ -35,19 +35,6 @@ end end - RSpec.shared_examples "should track feature_flag_disabled event" do |user| - it "tracks event" do - is_expected.to be(404) - expect_snowplow_event( - category: 'Projects::GoogleCloud::GcpRegionsController', - action: 'error_feature_flag_not_enabled', - label: nil, - project: project, - user: user_maintainer - ) - end - end - RSpec.shared_examples "should track gcp_error event" do |config| it "tracks event" do is_expected.to be(403) @@ -116,15 +103,6 @@ it_behaves_like "should be forbidden" it_behaves_like "should track gcp_error event", unconfigured_google_oauth2 end - - context 'but feature flag is disabled' do - before do - stub_feature_flags(incubation_5mp_google_cloud: false) - end - - it_behaves_like "should be not found" - it_behaves_like "should track feature_flag_disabled event" - end end end diff --git a/spec/requests/projects/google_cloud/service_accounts_controller_spec.rb b/spec/requests/projects/google_cloud/service_accounts_controller_spec.rb index 29d4154329f75..120107c2317a1 100644 --- a/spec/requests/projects/google_cloud/service_accounts_controller_spec.rb +++ b/spec/requests/projects/google_cloud/service_accounts_controller_spec.rb @@ -250,22 +250,6 @@ end end end - - context 'but feature flag is disabled' do - before do - stub_feature_flags(incubation_5mp_google_cloud: false) - end - - it 'returns not found' do - authorized_members.each do |authorized_member| - sign_in(authorized_member) - - get url - - expect(response).to have_gitlab_http_status(:not_found) - end - end - end end end end diff --git a/spec/support/shared_examples/requests/projects/google_cloud/google_cloud_ff_examples.rb b/spec/support/shared_examples/requests/projects/google_cloud/google_cloud_ff_examples.rb deleted file mode 100644 index d49fe517c6048..0000000000000 --- a/spec/support/shared_examples/requests/projects/google_cloud/google_cloud_ff_examples.rb +++ /dev/null @@ -1,18 +0,0 @@ -# frozen_string_literal: true - -RSpec.shared_examples 'requires feature flag `incubation_5mp_google_cloud` enabled' do - context 'when feature flag is disabled' do - before do - project.add_maintainer(user) - stub_feature_flags(incubation_5mp_google_cloud: false) - end - - it 'renders not found' do - sign_in(user) - - subject - - expect(response).to have_gitlab_http_status(:not_found) - end - end -end -- GitLab