From dd3aecda7478abbd87e777e2da97004cada519e8 Mon Sep 17 00:00:00 2001 From: James Fargher Date: Fri, 17 May 2019 14:32:15 +0100 Subject: Remove unused instance-level cluster methods Fixes group/instance level cluster feature flag checking. --- app/models/clusters/cluster.rb | 12 ++++++++---- app/models/concerns/deployment_platform.rb | 23 ++--------------------- spec/models/concerns/deployment_platform_spec.rb | 18 ++++++++++++++++++ 3 files changed, 28 insertions(+), 25 deletions(-) diff --git a/app/models/clusters/cluster.rb b/app/models/clusters/cluster.rb index 9299e61dad3..41f6a216c2f 100644 --- a/app/models/clusters/cluster.rb +++ b/app/models/clusters/cluster.rb @@ -117,10 +117,14 @@ module Clusters def self.ancestor_clusters_for_clusterable(clusterable, hierarchy_order: :asc) return [] if clusterable.is_a?(Instance) - hierarchy_groups = clusterable.ancestors_upto(hierarchy_order: hierarchy_order).eager_load(:clusters) - hierarchy_groups = hierarchy_groups.merge(current_scope) if current_scope - - hierarchy_groups.flat_map(&:clusters) + Instance.new.clusters + clusters = [] + if clusterable.group_clusters_enabled? + hierarchy_groups = clusterable.ancestors_upto(hierarchy_order: hierarchy_order).eager_load(:clusters) + hierarchy_groups = hierarchy_groups.merge(current_scope) if current_scope + clusters += hierarchy_groups.flat_map(&:clusters) + end + clusters += Instance.new.clusters + clusters end def status_name diff --git a/app/models/concerns/deployment_platform.rb b/app/models/concerns/deployment_platform.rb index 9ac0d612db3..945a9565e50 100644 --- a/app/models/concerns/deployment_platform.rb +++ b/app/models/concerns/deployment_platform.rb @@ -13,8 +13,7 @@ module DeploymentPlatform def find_deployment_platform(environment) find_cluster_platform_kubernetes(environment: environment) || - find_group_cluster_platform_kubernetes_with_feature_guard(environment: environment) || - find_instance_cluster_platform_kubernetes_with_feature_guard(environment: environment) || + find_cluster_hierarchy_platform_kubernetes(environment: environment) || find_kubernetes_service_integration || build_cluster_and_deployment_platform end @@ -25,30 +24,12 @@ module DeploymentPlatform .last&.platform_kubernetes end - def find_group_cluster_platform_kubernetes_with_feature_guard(environment: nil) - return unless group_clusters_enabled? - - find_group_cluster_platform_kubernetes(environment: environment) - end - # EE would override this and utilize environment argument - def find_group_cluster_platform_kubernetes(environment: nil) + def find_cluster_hierarchy_platform_kubernetes(environment: nil) Clusters::Cluster.enabled.default_environment.ancestor_clusters_for_clusterable(self) .first&.platform_kubernetes end - def find_instance_cluster_platform_kubernetes_with_feature_guard(environment: nil) - return unless Clusters::Instance.enabled? - - find_instance_cluster_platform_kubernetes(environment: environment) - end - - # EE would override this and utilize environment argument - def find_instance_cluster_platform_kubernetes(environment: nil) - Clusters::Instance.new.clusters.enabled.default_environment - .first&.platform_kubernetes - end - def find_kubernetes_service_integration services.deployment.reorder(nil).find_by(active: true) end diff --git a/spec/models/concerns/deployment_platform_spec.rb b/spec/models/concerns/deployment_platform_spec.rb index 0e34d8fccf3..92c3ab79509 100644 --- a/spec/models/concerns/deployment_platform_spec.rb +++ b/spec/models/concerns/deployment_platform_spec.rb @@ -127,6 +127,24 @@ describe DeploymentPlatform do end end + context 'when instance has configured kubernetes cluster' do + let!(:cluster) { create(:cluster, :provided_by_gcp, :instance) } + + it 'returns the Kubernetes platform' do + is_expected.to eq(cluster.platform_kubernetes) + end + + context 'feature flag disabled' do + before do + stub_feature_flags(instance_clusters: false) + end + + it 'returns nil' do + is_expected.to be_nil + end + end + end + context 'when user configured kubernetes integration from project services' do let!(:kubernetes_service) { create(:kubernetes_service, project: project) } -- cgit v1.2.3