diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-04-07 06:09:25 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-04-07 06:09:25 +0000 |
commit | 3d064c737e8448880e6180aeddc59000a01aa6a8 (patch) | |
tree | c97dcfe02e48426f96865068ffe8dcdd17bb1a96 /lib | |
parent | 7ba5b9babaa5802c39e686c57cbf4a3f4725c4b0 (diff) | |
download | gitlab-ce-3d064c737e8448880e6180aeddc59000a01aa6a8.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib')
-rw-r--r-- | lib/api/internal/base.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/usage_data.rb | 71 |
2 files changed, 50 insertions, 23 deletions
diff --git a/lib/api/internal/base.rb b/lib/api/internal/base.rb index 9c37b610cca..927639599d2 100644 --- a/lib/api/internal/base.rb +++ b/lib/api/internal/base.rb @@ -109,7 +109,7 @@ module API # group resources based on its IP restrictions post "/allowed" do if repo_type.snippet? && Feature.disabled?(:version_snippets, actor.user) - break response_with_status(code: 404, success: false, message: 'The project you were looking for could not be found.') + break response_with_status(code: 401, success: false, message: 'Snippet git access is disabled.') end # It was moved to a separate method so that EE can alter its behaviour more diff --git a/lib/gitlab/usage_data.rb b/lib/gitlab/usage_data.rb index 7277d288d63..6333e7923c6 100644 --- a/lib/gitlab/usage_data.rb +++ b/lib/gitlab/usage_data.rb @@ -1,5 +1,12 @@ # frozen_string_literal: true +# For hardening usage ping and make it easier to add measures there is in place alt_usage_data method +# which handles StandardError and fallbacks into -1 +# this way not all measures fail if we encounter one exception +# +# Examples: +# alt_usage_data { Gitlab::VERSION } +# alt_usage_data { Gitlab::CurrentSettings.uuid } module Gitlab class UsageData BATCH_SIZE = 100 @@ -24,17 +31,15 @@ module Gitlab end def license_usage_data - usage_data = { - uuid: Gitlab::CurrentSettings.uuid, - hostname: Gitlab.config.gitlab.host, - version: Gitlab::VERSION, - installation_type: installation_type, + { + uuid: alt_usage_data { Gitlab::CurrentSettings.uuid }, + hostname: alt_usage_data { Gitlab.config.gitlab.host }, + version: alt_usage_data { Gitlab::VERSION }, + installation_type: alt_usage_data { installation_type }, active_user_count: count(User.active), recorded_at: Time.now, edition: 'CE' } - - usage_data end # rubocop: disable Metrics/AbcSize @@ -134,18 +139,18 @@ module Gitlab def features_usage_data_ce { - container_registry_enabled: Gitlab.config.registry.enabled, + container_registry_enabled: alt_usage_data { Gitlab.config.registry.enabled }, dependency_proxy_enabled: Gitlab.config.try(:dependency_proxy)&.enabled, - gitlab_shared_runners_enabled: Gitlab.config.gitlab_ci.shared_runners_enabled, - gravatar_enabled: Gitlab::CurrentSettings.gravatar_enabled?, - influxdb_metrics_enabled: Gitlab::Metrics.influx_metrics_enabled?, - ldap_enabled: Gitlab.config.ldap.enabled, - mattermost_enabled: Gitlab.config.mattermost.enabled, - omniauth_enabled: Gitlab::Auth.omniauth_enabled?, - prometheus_metrics_enabled: Gitlab::Metrics.prometheus_metrics_enabled?, - reply_by_email_enabled: Gitlab::IncomingEmail.enabled?, - signup_enabled: Gitlab::CurrentSettings.allow_signup?, - web_ide_clientside_preview_enabled: Gitlab::CurrentSettings.web_ide_clientside_preview_enabled?, + gitlab_shared_runners_enabled: alt_usage_data { Gitlab.config.gitlab_ci.shared_runners_enabled }, + gravatar_enabled: alt_usage_data { Gitlab::CurrentSettings.gravatar_enabled? }, + influxdb_metrics_enabled: alt_usage_data { Gitlab::Metrics.influx_metrics_enabled? }, + ldap_enabled: alt_usage_data { Gitlab.config.ldap.enabled }, + mattermost_enabled: alt_usage_data { Gitlab.config.mattermost.enabled }, + omniauth_enabled: alt_usage_data { Gitlab::Auth.omniauth_enabled? }, + prometheus_metrics_enabled: alt_usage_data { Gitlab::Metrics.prometheus_metrics_enabled? }, + reply_by_email_enabled: alt_usage_data { Gitlab::IncomingEmail.enabled? }, + signup_enabled: alt_usage_data { Gitlab::CurrentSettings.allow_signup? }, + web_ide_clientside_preview_enabled: alt_usage_data { Gitlab::CurrentSettings.web_ide_clientside_preview_enabled? }, ingress_modsecurity_enabled: Feature.enabled?(:ingress_modsecurity) } end @@ -172,10 +177,20 @@ module Gitlab def components_usage_data { - git: { version: Gitlab::Git.version }, - gitaly: { version: Gitaly::Server.all.first.server_version, servers: Gitaly::Server.count, filesystems: Gitaly::Server.filesystems }, - gitlab_pages: { enabled: Gitlab.config.pages.enabled, version: Gitlab::Pages::VERSION }, - database: { adapter: Gitlab::Database.adapter_name, version: Gitlab::Database.version }, + git: { version: alt_usage_data { Gitlab::Git.version } }, + gitaly: { + version: alt_usage_data { Gitaly::Server.all.first.server_version }, + servers: alt_usage_data { Gitaly::Server.count }, + filesystems: alt_usage_data { Gitaly::Server.filesystems } + }, + gitlab_pages: { + enabled: alt_usage_data { Gitlab.config.pages.enabled }, + version: alt_usage_data { Gitlab::Pages::VERSION } + }, + database: { + adapter: alt_usage_data { Gitlab::Database.adapter_name }, + version: alt_usage_data { Gitlab::Database.version } + }, app_server: { type: app_server_type } } end @@ -260,6 +275,18 @@ module Gitlab fallback end + def alt_usage_data(value = nil, fallback: -1, &block) + if block_given? + yield + else + value + end + rescue + fallback + end + + private + def installation_type if Rails.env.production? Gitlab::INSTALLATION_TYPE |