summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/api/entities.rb6
-rw-r--r--lib/gitlab/usage_data.rb16
2 files changed, 13 insertions, 9 deletions
diff --git a/lib/api/entities.rb b/lib/api/entities.rb
index 312c8d5b548..cc45679dd0e 100644
--- a/lib/api/entities.rb
+++ b/lib/api/entities.rb
@@ -1044,7 +1044,11 @@ module API
expose :job_events
# Expose serialized properties
expose :properties do |service, options|
- service.properties.slice(*service.api_field_names)
+ if service.properties.present?
+ service.properties.slice(*service.api_field_names)
+ else
+ service.data_fields.as_json.slice(*service.api_field_names)
+ end
end
end
diff --git a/lib/gitlab/usage_data.rb b/lib/gitlab/usage_data.rb
index a93301cb4ce..e6df1884a33 100644
--- a/lib/gitlab/usage_data.rb
+++ b/lib/gitlab/usage_data.rb
@@ -172,16 +172,16 @@ module Gitlab
def jira_usage
# Jira Cloud does not support custom domains as per https://jira.atlassian.com/browse/CLOUD-6999
# so we can just check for subdomains of atlassian.net
- services = count(
- Service.unscoped.where(type: :JiraService, active: true)
- .group("CASE WHEN properties LIKE '%.atlassian.net%' THEN 'cloud' ELSE 'server' END"),
- fallback: Hash.new(-1)
- )
+ services = Service.unscoped.where(type: :JiraService, active: true).includes(:jira_tracker_data)
+
+ counts = services.group_by do |service|
+ service.jira_tracker_data.url.include?('.atlassian.net') ? :cloud : :server
+ end
{
- projects_jira_server_active: services['server'] || 0,
- projects_jira_cloud_active: services['cloud'] || 0,
- projects_jira_active: services['server'] == -1 ? -1 : services.values.sum
+ projects_jira_server_active: counts[:server]&.count || 0,
+ projects_jira_cloud_active: counts[:cloud]&.count || 0,
+ projects_jira_active: services ? count(services) : -1
}
end