From ed2f7e23d675b1ab16a4e93a78b5aa9c3e0d698a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Cunha?= Date: Fri, 15 Feb 2019 11:16:45 +0000 Subject: Rename scope to imply :installed and :updated result - Adds to specs the case where apps are also updated - Rename scope calls on Gitlab::UsageData and Clusters::Cluster - Removes a duplicated spec --- app/models/clusters/cluster.rb | 2 +- app/models/clusters/concerns/application_status.rb | 9 +++++++- ...t-knative-domain-after-it-has-been-deployed.yml | 5 +++++ lib/gitlab/usage_data.rb | 12 +++++------ spec/models/clusters/applications/helm_spec.rb | 7 ++++--- spec/models/clusters/applications/ingress_spec.rb | 12 ----------- spec/models/clusters/applications/knative_spec.rb | 24 ---------------------- .../clusters/applications/prometheus_spec.rb | 14 +------------ spec/models/clusters/applications/runner_spec.rb | 12 ----------- .../cluster_application_status_shared_examples.rb | 13 ++++++++++++ 10 files changed, 38 insertions(+), 72 deletions(-) create mode 100644 changelogs/unreleased/56937-edit-knative-domain-after-it-has-been-deployed.yml diff --git a/app/models/clusters/cluster.rb b/app/models/clusters/cluster.rb index 7025fc2cc02..8df293664ce 100644 --- a/app/models/clusters/cluster.rb +++ b/app/models/clusters/cluster.rb @@ -99,7 +99,7 @@ module Clusters where('NOT EXISTS (?)', subquery) end - scope :with_knative_installed, -> { joins(:application_knative).merge(Clusters::Applications::Knative.installed) } + scope :with_knative_installed, -> { joins(:application_knative).merge(Clusters::Applications::Knative.available) } scope :preload_knative, -> { preload( diff --git a/app/models/clusters/concerns/application_status.rb b/app/models/clusters/concerns/application_status.rb index 5c0164831bc..1273ed83abe 100644 --- a/app/models/clusters/concerns/application_status.rb +++ b/app/models/clusters/concerns/application_status.rb @@ -6,7 +6,14 @@ module Clusters extend ActiveSupport::Concern included do - scope :installed, -> { where(status: self.state_machines[:status].states[:installed].value) } + scope :available, -> do + where( + status: [ + self.state_machines[:status].states[:installed].value, + self.state_machines[:status].states[:updated].value + ] + ) + end state_machine :status, initial: :not_installable do state :not_installable, value: -2 diff --git a/changelogs/unreleased/56937-edit-knative-domain-after-it-has-been-deployed.yml b/changelogs/unreleased/56937-edit-knative-domain-after-it-has-been-deployed.yml new file mode 100644 index 00000000000..11d93b34700 --- /dev/null +++ b/changelogs/unreleased/56937-edit-knative-domain-after-it-has-been-deployed.yml @@ -0,0 +1,5 @@ +--- +title: Fixes functions finder for upgraded Knative app +merge_request: 25067 +author: +type: fixed diff --git a/lib/gitlab/usage_data.rb b/lib/gitlab/usage_data.rb index a65f4a8639c..0101ccc046a 100644 --- a/lib/gitlab/usage_data.rb +++ b/lib/gitlab/usage_data.rb @@ -64,12 +64,12 @@ module Gitlab group_clusters_disabled: count(::Clusters::Cluster.disabled.group_type), clusters_platforms_gke: count(::Clusters::Cluster.gcp_installed.enabled), clusters_platforms_user: count(::Clusters::Cluster.user_provided.enabled), - clusters_applications_helm: count(::Clusters::Applications::Helm.installed), - clusters_applications_ingress: count(::Clusters::Applications::Ingress.installed), - clusters_applications_cert_managers: count(::Clusters::Applications::CertManager.installed), - clusters_applications_prometheus: count(::Clusters::Applications::Prometheus.installed), - clusters_applications_runner: count(::Clusters::Applications::Runner.installed), - clusters_applications_knative: count(::Clusters::Applications::Knative.installed), + clusters_applications_helm: count(::Clusters::Applications::Helm.available), + clusters_applications_ingress: count(::Clusters::Applications::Ingress.available), + clusters_applications_cert_managers: count(::Clusters::Applications::CertManager.available), + clusters_applications_prometheus: count(::Clusters::Applications::Prometheus.available), + clusters_applications_runner: count(::Clusters::Applications::Runner.available), + clusters_applications_knative: count(::Clusters::Applications::Knative.available), in_review_folder: count(::Environment.in_review_folder), groups: count(Group), issues: count(Issue), diff --git a/spec/models/clusters/applications/helm_spec.rb b/spec/models/clusters/applications/helm_spec.rb index 64f6d9c8bb4..f16eff92167 100644 --- a/spec/models/clusters/applications/helm_spec.rb +++ b/spec/models/clusters/applications/helm_spec.rb @@ -3,16 +3,17 @@ require 'rails_helper' describe Clusters::Applications::Helm do include_examples 'cluster application core specs', :clusters_applications_helm - describe '.installed' do - subject { described_class.installed } + describe '.available' do + subject { described_class.available } let!(:installed_cluster) { create(:clusters_applications_helm, :installed) } + let!(:updated_cluster) { create(:clusters_applications_helm, :updated) } before do create(:clusters_applications_helm, :errored) end - it { is_expected.to contain_exactly(installed_cluster) } + it { is_expected.to contain_exactly(installed_cluster, updated_cluster) } end describe '#issue_client_cert' do diff --git a/spec/models/clusters/applications/ingress_spec.rb b/spec/models/clusters/applications/ingress_spec.rb index 03ca18c6943..d5fd42509a3 100644 --- a/spec/models/clusters/applications/ingress_spec.rb +++ b/spec/models/clusters/applications/ingress_spec.rb @@ -16,18 +16,6 @@ describe Clusters::Applications::Ingress do allow(ClusterWaitForIngressIpAddressWorker).to receive(:perform_async) end - describe '.installed' do - subject { described_class.installed } - - let!(:cluster) { create(:clusters_applications_ingress, :installed) } - - before do - create(:clusters_applications_ingress, :errored) - end - - it { is_expected.to contain_exactly(cluster) } - end - describe '#make_installed!' do before do application.make_installed! diff --git a/spec/models/clusters/applications/knative_spec.rb b/spec/models/clusters/applications/knative_spec.rb index cd29e0d4f53..006b922ab27 100644 --- a/spec/models/clusters/applications/knative_spec.rb +++ b/spec/models/clusters/applications/knative_spec.rb @@ -24,30 +24,6 @@ describe Clusters::Applications::Knative do it { expect(knative_no_rbac).to be_not_installable } end - describe '.installed' do - subject { described_class.installed } - - let!(:cluster) { create(:clusters_applications_knative, :installed) } - - before do - create(:clusters_applications_knative, :errored) - end - - it { is_expected.to contain_exactly(cluster) } - end - - describe '#make_installed' do - subject { described_class.installed } - - let!(:cluster) { create(:clusters_applications_knative, :installed) } - - before do - create(:clusters_applications_knative, :errored) - end - - it { is_expected.to contain_exactly(cluster) } - end - describe 'make_installed with external_ip' do before do application.make_installed! diff --git a/spec/models/clusters/applications/prometheus_spec.rb b/spec/models/clusters/applications/prometheus_spec.rb index caf59b0fc31..2250ef301aa 100644 --- a/spec/models/clusters/applications/prometheus_spec.rb +++ b/spec/models/clusters/applications/prometheus_spec.rb @@ -9,18 +9,6 @@ describe Clusters::Applications::Prometheus do include_examples 'cluster application helm specs', :clusters_applications_prometheus include_examples 'cluster application initial status specs' - describe '.installed' do - subject { described_class.installed } - - let!(:cluster) { create(:clusters_applications_prometheus, :installed) } - - before do - create(:clusters_applications_prometheus, :errored) - end - - it { is_expected.to contain_exactly(cluster) } - end - describe 'transition to installed' do let(:project) { create(:project) } let(:cluster) { create(:cluster, :with_installed_helm, projects: [project]) } @@ -192,7 +180,7 @@ describe Clusters::Applications::Prometheus do end context 'with knative installed' do - let(:knative) { create(:clusters_applications_knative, :installed ) } + let(:knative) { create(:clusters_applications_knative, :updated ) } let(:prometheus) { create(:clusters_applications_prometheus, cluster: knative.cluster) } subject { prometheus.install_command } diff --git a/spec/models/clusters/applications/runner_spec.rb b/spec/models/clusters/applications/runner_spec.rb index 38758ff97bc..5e5b25cbf8a 100644 --- a/spec/models/clusters/applications/runner_spec.rb +++ b/spec/models/clusters/applications/runner_spec.rb @@ -11,18 +11,6 @@ describe Clusters::Applications::Runner do it { is_expected.to belong_to(:runner) } - describe '.installed' do - subject { described_class.installed } - - let!(:cluster) { create(:clusters_applications_runner, :installed) } - - before do - create(:clusters_applications_runner, :errored) - end - - it { is_expected.to contain_exactly(cluster) } - end - describe '#install_command' do let(:kubeclient) { double('kubernetes client') } let(:gitlab_runner) { create(:clusters_applications_runner, runner: ci_runner) } diff --git a/spec/support/shared_examples/models/cluster_application_status_shared_examples.rb b/spec/support/shared_examples/models/cluster_application_status_shared_examples.rb index c96a65cb56a..b8c19cab0c4 100644 --- a/spec/support/shared_examples/models/cluster_application_status_shared_examples.rb +++ b/spec/support/shared_examples/models/cluster_application_status_shared_examples.rb @@ -9,6 +9,19 @@ shared_examples 'cluster application status specs' do |application_name| end end + describe '.available' do + subject { described_class.available } + + let!(:installed_cluster) { create(application_name, :installed) } + let!(:updated_cluster) { create(application_name, :updated) } + + before do + create(application_name, :errored) + end + + it { is_expected.to contain_exactly(installed_cluster, updated_cluster) } + end + describe 'status state machine' do describe '#make_installing' do subject { create(application_name, :scheduled) } -- cgit v1.2.1