diff options
author | Matija Čupić <matteeyah@gmail.com> | 2018-03-30 17:34:10 +0200 |
---|---|---|
committer | Matija Čupić <matteeyah@gmail.com> | 2018-03-30 18:31:11 +0200 |
commit | b26913a30c608f81c44abece263da8d01faf0126 (patch) | |
tree | 9990096775ab7dfb5c8fe1066f90ca5856b4cdc7 | |
parent | f6fa84298282c78229e4028655cb87011372e2b2 (diff) | |
download | gitlab-ce-b26913a30c608f81c44abece263da8d01faf0126.tar.gz |
Extract cluster installed query to scope
-rw-r--r-- | app/models/clusters/cluster.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/usage_data.rb | 2 | ||||
-rw-r--r-- | spec/models/clusters/cluster_spec.rb | 12 |
3 files changed, 15 insertions, 1 deletions
diff --git a/app/models/clusters/cluster.rb b/app/models/clusters/cluster.rb index 05e8d266bcf..77947d515c1 100644 --- a/app/models/clusters/cluster.rb +++ b/app/models/clusters/cluster.rb @@ -53,6 +53,8 @@ module Clusters scope :disabled, -> { where(enabled: false) } scope :user_provided, -> { where(provider_type: ::Clusters::Cluster.provider_types[:user]) } scope :gcp_provided, -> { where(provider_type: ::Clusters::Cluster.provider_types[:gcp]) } + scope :gcp_installed, -> { gcp_provided.includes(:provider_gcp).where(cluster_providers_gcp: { status: ::Clusters::Providers::Gcp.state_machines[:status].states[:created].value }) } + scope :default_environment, -> { where(environment_scope: DEFAULT_ENVIRONMENT) } def status_name diff --git a/lib/gitlab/usage_data.rb b/lib/gitlab/usage_data.rb index 48decb4c8db..8c0a4d55ea2 100644 --- a/lib/gitlab/usage_data.rb +++ b/lib/gitlab/usage_data.rb @@ -51,7 +51,7 @@ module Gitlab clusters: ::Clusters::Cluster.count, clusters_enabled: ::Clusters::Cluster.enabled.count, clusters_disabled: ::Clusters::Cluster.disabled.count, - clusters_platforms_gke: ::Clusters::Cluster.gcp_provided.includes(:provider_gcp).where(cluster_providers_gcp: { status: ::Clusters::Providers::Gcp.state_machines[:status].states[:created].value }).enabled.count, + clusters_platforms_gke: ::Clusters::Cluster.gcp_installed.enabled.count, clusters_platforms_user: ::Clusters::Cluster.user_provided.enabled.count, clusters_applications_helm: ::Clusters::Applications::Helm.installed.count, clusters_applications_ingress: ::Clusters::Applications::Ingress.installed.count, diff --git a/spec/models/clusters/cluster_spec.rb b/spec/models/clusters/cluster_spec.rb index ae96e5d1aa2..b942554d67b 100644 --- a/spec/models/clusters/cluster_spec.rb +++ b/spec/models/clusters/cluster_spec.rb @@ -63,6 +63,18 @@ describe Clusters::Cluster do it { is_expected.to contain_exactly(cluster) } end + describe '.gcp_installed' do + subject { described_class.gcp_installed } + + let!(:cluster) { create(:cluster, :provided_by_gcp) } + + before do + create(:cluster, :providing_by_gcp) + end + + it { is_expected.to contain_exactly(cluster) } + end + describe 'validation' do subject { cluster.valid? } |