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/pod_logs | |
parent | dd4bee69b7d55620f7dc9db8c36b478bd4959755 (diff) | |
download | gitlab-ce-3cd08f4bf96cda3e9d3abf233095107832b17c20.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/services/pod_logs')
-rw-r--r-- | app/services/pod_logs/base_service.rb | 8 | ||||
-rw-r--r-- | app/services/pod_logs/elasticsearch_service.rb | 28 |
2 files changed, 27 insertions, 9 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 |