diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-03-13 00:09:34 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-03-13 00:09:34 +0000 |
commit | 3cd08f4bf96cda3e9d3abf233095107832b17c20 (patch) | |
tree | dc09a618783a79d70f2a404374d4b850ccf9cc84 /app/services | |
parent | dd4bee69b7d55620f7dc9db8c36b478bd4959755 (diff) | |
download | gitlab-ce-3cd08f4bf96cda3e9d3abf233095107832b17c20.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/services')
-rw-r--r-- | app/services/pod_logs/base_service.rb | 8 | ||||
-rw-r--r-- | app/services/pod_logs/elasticsearch_service.rb | 28 | ||||
-rw-r--r-- | app/services/projects/update_repository_storage_service.rb | 14 | ||||
-rw-r--r-- | app/services/x509_certificate_revoke_service.rb | 9 |
4 files changed, 38 insertions, 21 deletions
diff --git a/app/services/pod_logs/base_service.rb b/app/services/pod_logs/base_service.rb index 668ee6b88a8..d94d4e92eb6 100644 --- a/app/services/pod_logs/base_service.rb +++ b/app/services/pod_logs/base_service.rb @@ -10,8 +10,6 @@ module PodLogs CACHE_KEY_GET_POD_LOG = 'get_pod_log' K8S_NAME_MAX_LENGTH = 253 - SUCCESS_RETURN_KEYS = %i(status logs pod_name container_name pods).freeze - def id cluster.id end @@ -49,6 +47,10 @@ module PodLogs %w(pod_name container_name) end + def success_return_keys + %i(status logs pod_name container_name pods) + end + def check_arguments(result) return error(_('Cluster does not exist')) if cluster.nil? return error(_('Namespace is empty')) if namespace.blank? @@ -122,7 +124,7 @@ module PodLogs end def filter_return_keys(result) - result.slice(*SUCCESS_RETURN_KEYS) + result.slice(*success_return_keys) end def filter_params(params) diff --git a/app/services/pod_logs/elasticsearch_service.rb b/app/services/pod_logs/elasticsearch_service.rb index cd56565ec61..3bb6e2bd846 100644 --- a/app/services/pod_logs/elasticsearch_service.rb +++ b/app/services/pod_logs/elasticsearch_service.rb @@ -10,6 +10,7 @@ module PodLogs :check_container_name, :check_times, :check_search, + :check_cursor, :pod_logs, :filter_return_keys @@ -18,7 +19,11 @@ module PodLogs private def valid_params - %w(pod_name container_name search start end) + super + %w(search start end cursor) + end + + def success_return_keys + super + %i(cursor) end def check_times(result) @@ -36,19 +41,28 @@ module PodLogs success(result) end + def check_cursor(result) + result[:cursor] = params['cursor'] if params.key?('cursor') + + success(result) + end + def pod_logs(result) client = cluster&.application_elastic_stack&.elasticsearch_client return error(_('Unable to connect to Elasticsearch')) unless client - result[:logs] = ::Gitlab::Elasticsearch::Logs.new(client).pod_logs( + response = ::Gitlab::Elasticsearch::Logs.new(client).pod_logs( namespace, result[:pod_name], - result[:container_name], - result[:search], - result[:start], - result[:end] + container_name: result[:container_name], + search: result[:search], + start_time: result[:start], + end_time: result[:end], + cursor: result[:cursor] ) + result.merge!(response) + success(result) rescue Elasticsearch::Transport::Transport::ServerError => e ::Gitlab::ErrorTracking.track_exception(e) @@ -58,6 +72,8 @@ module PodLogs # there is no method on the exception other than the class name to determine the type of error encountered. status_code: e.class.name.split('::').last }) + rescue ::Gitlab::Elasticsearch::Logs::InvalidCursor + error(_('Invalid cursor value provided')) end end end diff --git a/app/services/projects/update_repository_storage_service.rb b/app/services/projects/update_repository_storage_service.rb index 1565b534b19..0adfd4f8fd7 100644 --- a/app/services/projects/update_repository_storage_service.rb +++ b/app/services/projects/update_repository_storage_service.rb @@ -5,19 +5,12 @@ module Projects include Gitlab::ShellAdapter Error = Class.new(StandardError) - RepositoryAlreadyMoved = Class.new(StandardError) def initialize(project) @project = project end def execute(new_repository_storage_key) - # Raising an exception is a little heavy handed but this behavior (doing - # nothing if the repo is already on the right storage) prevents data - # loss, so it is valuable for us to be able to observe it via the - # exception. - raise RepositoryAlreadyMoved if project.repository_storage == new_repository_storage_key - mirror_repositories(new_repository_storage_key) mark_old_paths_for_archive @@ -30,7 +23,7 @@ module Projects success - rescue Error => e + rescue Error, ArgumentError, Gitlab::Git::BaseError => e project.update(repository_read_only: false) Gitlab::ErrorTracking.track_exception(e, project_path: project.full_path) @@ -65,10 +58,7 @@ module Projects raw_repository.gl_repository, full_path) - unless new_repository.fetch_repository_as_mirror(raw_repository) - raise Error, s_('UpdateRepositoryStorage|Failed to fetch %{type} repository as mirror') % { type: type.name } - end - + new_repository.replicate(raw_repository) new_checksum = new_repository.checksum if checksum != new_checksum diff --git a/app/services/x509_certificate_revoke_service.rb b/app/services/x509_certificate_revoke_service.rb new file mode 100644 index 00000000000..fdd0dd74a59 --- /dev/null +++ b/app/services/x509_certificate_revoke_service.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class X509CertificateRevokeService + def execute(certificate) + return unless certificate.revoked? + + certificate.x509_commit_signatures.update_all(verification_status: :unverified) + end +end |