Skip to content
代码片段 群组 项目
未验证 提交 b8e8ae87 编辑于 作者: Terri Chu's avatar Terri Chu 提交者: GitLab
浏览文件

Merge branch 'sy-rm-monitor-metrics-20' into 'master'

Remove unused metrics environment helpers

See merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/160508



Merged-by: default avatarTerri Chu <tchu@gitlab.com>
Approved-by: default avatarPaulo Barros <pbarros@gitlab.com>
Approved-by: default avatarTerri Chu <tchu@gitlab.com>
Reviewed-by: default avatarPaulo Barros <pbarros@gitlab.com>
Co-authored-by: default avatarsyasonik <syasonik@gitlab.com>
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.
先完成此消息的编辑!
想要评论请 注册