Skip to content
代码片段 群组 项目
提交 566cb8e3 编辑于 作者: syasonik's avatar syasonik
浏览文件

Remove unused metrics environment helpers

The Metrics Dashboard (used for monitoring apps deploying using gitlab)
was deprecated in 14.7 and removed from the product in 16.0.
This commit cleans up a portion of the dead code.

https://gitlab.com/groups/gitlab-org/-/epics/10107
上级 d1569de2
No related branches found
No related tags found
无相关合并请求
......@@ -19,69 +19,9 @@ def environments_folder_list_view_data(project, folder)
}
end
def custom_metrics_available?(project)
can?(current_user, :admin_project, project)
end
def metrics_data(project, environment)
return {} if Feature.enabled?(:remove_monitor_metrics)
metrics_data = {}
metrics_data.merge!(project_metrics_data(project)) if project
metrics_data.merge!(environment_metrics_data(environment)) if environment
metrics_data.merge!(project_and_environment_metrics_data(project, environment)) if project && environment
metrics_data.merge!(static_metrics_data)
metrics_data
end
def can_destroy_environment?(environment)
can?(current_user, :destroy_environment, environment)
end
private
def project_metrics_data(project)
return {} unless project
{
'settings_path' => edit_project_settings_integration_path(project, 'prometheus'),
'clusters_path' => project_clusters_path(project),
'default_branch' => project.default_branch,
'project_path' => project_path(project),
'tags_path' => project_tags_path(project),
'custom_metrics_path' => project_prometheus_metrics_path(project),
'validate_query_path' => validate_query_project_prometheus_metrics_path(project),
'custom_metrics_available' => custom_metrics_available?(project).to_s
}
end
def environment_metrics_data(environment)
return {} unless environment
{
'current_environment_name' => environment.name,
'has_metrics' => environment.has_metrics?.to_s,
'environment_state' => environment.state.to_s
}
end
def project_and_environment_metrics_data(project, environment)
return {} unless project && environment
{
'deployments_endpoint' => project_environment_deployments_path(project, environment, format: :json),
'operations_settings_path' => project_settings_operations_path(project),
'can_access_operations_settings' => can?(current_user, :admin_operations, project).to_s
}
end
def static_metrics_data
{
'documentation_path' => help_page_path('administration/monitoring/prometheus/index'),
'add_dashboard_documentation_path' => help_page_path('operations/metrics/dashboards/index', anchor: 'add-a-new-dashboard-to-your-project')
}
end
end
EnvironmentsHelper.prepend_mod_with('EnvironmentsHelper')
......@@ -10,91 +10,6 @@
let_it_be(:project, reload: true) { create(:project, :repository) }
let_it_be(:environment) { create(:environment, :with_folders, folder: folder_name, project: project) }
describe '#metrics_data', feature_category: :metrics do
before do
stub_feature_flags(remove_monitor_metrics: false)
# This is so that this spec also passes in EE.
allow(helper).to receive(:current_user).and_return(user)
allow(helper).to receive(:can?).and_return(true)
end
let(:metrics_data) { helper.metrics_data(project, environment) }
it 'returns data' do
expect(metrics_data).to include(
'settings_path' => edit_project_settings_integration_path(project, 'prometheus'),
'clusters_path' => project_clusters_path(project),
'current_environment_name' => environment.name,
'documentation_path' => help_page_path('administration/monitoring/prometheus/index'),
'add_dashboard_documentation_path' => help_page_path('operations/metrics/dashboards/index', anchor: 'add-a-new-dashboard-to-your-project'),
'deployments_endpoint' => project_environment_deployments_path(project, environment, format: :json),
'default_branch' => 'master',
'project_path' => project_path(project),
'tags_path' => project_tags_path(project),
'has_metrics' => environment.has_metrics?.to_s,
'environment_state' => environment.state,
'custom_metrics_path' => project_prometheus_metrics_path(project),
'validate_query_path' => validate_query_project_prometheus_metrics_path(project),
'custom_metrics_available' => 'true',
'operations_settings_path' => project_settings_operations_path(project),
'can_access_operations_settings' => 'true'
)
end
context 'without admin_operations permission' do
before do
allow(helper).to receive(:can?)
.with(user, :admin_operations, project)
.and_return(false)
end
specify do
expect(metrics_data).to include(
'can_access_operations_settings' => 'false'
)
end
end
context 'when the environment is not available' do
before do
environment.stop
end
subject { metrics_data }
it { is_expected.to include('environment_state' => 'stopped') }
end
context 'when metrics dashboard feature is unavailable' do
before do
stub_feature_flags(remove_monitor_metrics: true)
end
it 'does not return data' do
expect(metrics_data).to be_empty
end
end
end
describe '#custom_metrics_available?', feature_category: :metrics do
subject { helper.custom_metrics_available?(project) }
before do
project.add_maintainer(user)
allow(helper).to receive(:current_user).and_return(user)
allow(helper).to receive(:can?)
.with(user, :admin_project, project)
.and_return(true)
end
it 'returns true' do
expect(subject).to eq(true)
end
end
describe '#environments_folder_list_view_data' do
subject { helper.environments_folder_list_view_data(project, folder_name) }
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册