Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-05-20 12:09:15 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2022-05-20 12:09:15 +0300
commit084d7453e0866f2b29923552fb1c5f380f283ab5 (patch)
treefdd15d5bb61ee49bb739492c1fda5d589180c74b /app
parent9558f52fd8da408c4ef7ecfb792902cbe91e4e64 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/projects/default_project_templates.js4
-rw-r--r--app/models/namespace.rb15
-rw-r--r--app/services/service_ping/submit_service.rb11
-rw-r--r--app/workers/gitlab_service_ping_worker.rb20
4 files changed, 45 insertions, 5 deletions
diff --git a/app/assets/javascripts/projects/default_project_templates.js b/app/assets/javascripts/projects/default_project_templates.js
index 6708b7bd9e2..24ebc465435 100644
--- a/app/assets/javascripts/projects/default_project_templates.js
+++ b/app/assets/javascripts/projects/default_project_templates.js
@@ -105,4 +105,8 @@ export default {
text: s__('ProjectTemplates|Kotlin Native for Linux'),
icon: '.template-option .icon-gitlab_logo',
},
+ jsonnet: {
+ text: s__('ProjectTemplates|Jsonnet for Dynamic Child Pipelines'),
+ icon: '.template-option .icon-gitlab_logo',
+ },
};
diff --git a/app/models/namespace.rb b/app/models/namespace.rb
index af29850971f..516699696f3 100644
--- a/app/models/namespace.rb
+++ b/app/models/namespace.rb
@@ -427,6 +427,21 @@ class Namespace < ApplicationRecord
aggregation_schedule.present?
end
+ def container_repositories_size
+ strong_memoize(:container_repositories_size) do
+ next unless Gitlab.com?
+ next unless ContainerRegistry::GitlabApiClient.supports_gitlab_api?
+ next 0 if all_container_repositories.empty?
+ next unless all_container_repositories.all_migrated?
+
+ ContainerRegistry::GitlabApiClient.deduplicated_size(full_path)
+ end
+ end
+
+ def all_container_repositories
+ ContainerRepository.for_project_id(all_projects)
+ end
+
def pages_virtual_domain
Pages::VirtualDomain.new(
all_projects_with_pages.includes(:route, :project_feature, pages_metadatum: :pages_deployment),
diff --git a/app/services/service_ping/submit_service.rb b/app/services/service_ping/submit_service.rb
index 343fc00a2f0..b850592f7ba 100644
--- a/app/services/service_ping/submit_service.rb
+++ b/app/services/service_ping/submit_service.rb
@@ -10,8 +10,9 @@ module ServicePing
SubmissionError = Class.new(StandardError)
- def initialize(skip_db_write: false)
+ def initialize(skip_db_write: false, payload: nil)
@skip_db_write = skip_db_write
+ @payload = payload
end
def execute
@@ -19,7 +20,7 @@ module ServicePing
start = Time.current
begin
- usage_data = ServicePing::BuildPayload.new.execute
+ usage_data = payload || ServicePing::BuildPayload.new.execute
response = submit_usage_data_payload(usage_data)
rescue StandardError => e
return unless Gitlab::CurrentSettings.usage_ping_enabled?
@@ -34,7 +35,7 @@ module ServicePing
}
submit_payload({ error: error_payload }, path: ERROR_PATH)
- usage_data = Gitlab::Usage::ServicePingReport.for(output: :all_metrics_values)
+ usage_data = payload || Gitlab::Usage::ServicePingReport.for(output: :all_metrics_values)
response = submit_usage_data_payload(usage_data)
end
@@ -45,7 +46,7 @@ module ServicePing
raise SubmissionError, "Invalid usage_data_id in response: #{version_usage_data_id}"
end
- unless @skip_db_write
+ unless skip_db_write
raw_usage_data = save_raw_usage_data(usage_data)
raw_usage_data.update_version_metadata!(usage_data_id: version_usage_data_id)
ServicePing::DevopsReport.new(response).execute
@@ -58,6 +59,8 @@ module ServicePing
private
+ attr_reader :payload, :skip_db_write
+
def metrics_collection_time(payload, parents = [])
return [] unless payload.is_a?(Hash)
diff --git a/app/workers/gitlab_service_ping_worker.rb b/app/workers/gitlab_service_ping_worker.rb
index 6cf46458b1e..0f7b3ba56a5 100644
--- a/app/workers/gitlab_service_ping_worker.rb
+++ b/app/workers/gitlab_service_ping_worker.rb
@@ -25,7 +25,25 @@ class GitlabServicePingWorker # rubocop:disable Scalability/IdempotentWorker
# Splay the request over a minute to avoid thundering herd problems.
sleep(rand(0.0..60.0).round(3))
- ServicePing::SubmitService.new.execute
+ ServicePing::SubmitService.new(payload: usage_data).execute
end
end
+
+ def usage_data
+ return unless Feature.enabled?(:prerecord_service_ping_data)
+
+ ServicePing::BuildPayload.new.execute.tap do |payload|
+ record = {
+ recorded_at: payload[:recorded_at],
+ payload: payload,
+ created_at: Time.current,
+ updated_at: Time.current
+ }
+
+ RawUsageData.upsert(record, unique_by: :recorded_at)
+ end
+ rescue StandardError => err
+ Gitlab::ErrorTracking.track_and_raise_for_dev_exception(err)
+ nil
+ end
end