diff options
author | Chris Baumbauer <cab@cabnetworks.net> | 2018-12-16 23:31:38 -0800 |
---|---|---|
committer | Chris Baumbauer <cab@cabnetworks.net> | 2019-01-10 14:13:41 -0800 |
commit | 1102deb0bd04a1bdf550ed74cf381a6bd400a7e0 (patch) | |
tree | d734488f04098bdabbae3ce0621debf0eb6bf918 /app/finders | |
parent | 71026ffd7e71da726a9b740d42093926f8477c3e (diff) | |
download | gitlab-ce-1102deb0bd04a1bdf550ed74cf381a6bd400a7e0.tar.gz |
Initial Serverless Functions detailed view
Diffstat (limited to 'app/finders')
-rw-r--r-- | app/finders/projects/serverless/functions_finder.rb | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/app/finders/projects/serverless/functions_finder.rb b/app/finders/projects/serverless/functions_finder.rb index 2b5d67e79d7..2f2816a4a08 100644 --- a/app/finders/projects/serverless/functions_finder.rb +++ b/app/finders/projects/serverless/functions_finder.rb @@ -15,11 +15,40 @@ module Projects clusters_with_knative_installed.exists? end + def service(environment_scope, name) + knative_service(environment_scope, name)&.first + end + private + def knative_service(environment_scope, name) + clusters_with_knative_installed.preload_knative.map do |cluster| + next if environment_scope != cluster.environment_scope + + services = cluster.application_knative.services_for(ns: cluster.platform_kubernetes&.actual_namespace) + .select { |svc| svc["metadata"]["name"] == name } + + add_metadata(cluster, services).first unless services.nil? + end + end + def knative_services clusters_with_knative_installed.preload_knative.map do |cluster| - cluster.application_knative.services_for(ns: cluster.platform_kubernetes&.actual_namespace) + services = cluster.application_knative.services_for(ns: cluster.platform_kubernetes&.actual_namespace) + add_metadata(cluster, services) unless services.nil? + end + end + + def add_metadata(cluster, services) + services.each do |s| + s["environment_scope"] = cluster.environment_scope + s["cluster_id"] = cluster.id + + if services.length == 1 + s["podcount"] = cluster.application_knative.service_pod_details( + cluster.platform_kubernetes&.actual_namespace, + s["metadata"]["name"]).length + end end end |