summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKamil Trzciński <ayufan@ayufan.eu>2018-12-27 09:58:41 +0000
committerKamil Trzciński <ayufan@ayufan.eu>2018-12-27 09:58:41 +0000
commit6b02f502c84450d5e23866fef0d3da600d7c78ae (patch)
tree4ca55b589534d36471fb0cea96a50afca8603cea
parent2b6bdbe671d5b650ce38b8f2a6cfd814c8d519d7 (diff)
parent6d4c2529f94e7d96a456cf14d8f5187087637f32 (diff)
downloadgitlab-ce-6b02f502c84450d5e23866fef0d3da600d7c78ae.tar.gz
Merge branch '55551-nomethoderror-undefined-method-for-nil-nilclass' into 'master'
Handle nil terminals in Clusters::Platforms::Kubernetes Closes #55551 See merge request gitlab-org/gitlab-ce!23925
-rw-r--r--app/models/clusters/platforms/kubernetes.rb2
-rw-r--r--spec/models/clusters/platforms/kubernetes_spec.rb3
2 files changed, 3 insertions, 2 deletions
diff --git a/app/models/clusters/platforms/kubernetes.rb b/app/models/clusters/platforms/kubernetes.rb
index 6cec497b4e4..0dc0c4f80d6 100644
--- a/app/models/clusters/platforms/kubernetes.rb
+++ b/app/models/clusters/platforms/kubernetes.rb
@@ -106,7 +106,7 @@ module Clusters
def terminals(environment)
with_reactive_cache do |data|
pods = filter_by_label(data[:pods], app: environment.slug)
- terminals = pods.flat_map { |pod| terminals_for_pod(api_url, actual_namespace, pod) }
+ terminals = pods.flat_map { |pod| terminals_for_pod(api_url, actual_namespace, pod) }.compact
terminals.each { |terminal| add_terminal_auth(terminal, terminal_auth) }
end
end
diff --git a/spec/models/clusters/platforms/kubernetes_spec.rb b/spec/models/clusters/platforms/kubernetes_spec.rb
index f3af9d59786..e6b076adc76 100644
--- a/spec/models/clusters/platforms/kubernetes_spec.rb
+++ b/spec/models/clusters/platforms/kubernetes_spec.rb
@@ -325,12 +325,13 @@ describe Clusters::Platforms::Kubernetes, :use_clean_rails_memory_store_caching
context 'with valid pods' do
let(:pod) { kube_pod(app: environment.slug) }
+ let(:pod_with_no_terminal) { kube_pod(app: environment.slug, status: "Pending") }
let(:terminals) { kube_terminals(service, pod) }
before do
stub_reactive_cache(
service,
- pods: [pod, pod, kube_pod(app: "should-be-filtered-out")]
+ pods: [pod, pod, pod_with_no_terminal, kube_pod(app: "should-be-filtered-out")]
)
end