summaryrefslogtreecommitdiff
path: root/spec/migrations
diff options
context:
space:
mode:
authorShinya Maeda <shinya@gitlab.com>2017-12-15 22:43:25 +0900
committerShinya Maeda <shinya@gitlab.com>2018-01-08 16:22:17 +0900
commit8e6ffe358873ff56eb1d2b6354fac39ce2dfa80e (patch)
tree19e7298970e0309841b50d68e34fa2cdaa27b051 /spec/migrations
parent4dc14576d506218c71debb3a0600acdf855afe09 (diff)
downloadgitlab-ce-8e6ffe358873ff56eb1d2b6354fac39ce2dfa80e.tar.gz
Fix test
Diffstat (limited to 'spec/migrations')
-rw-r--r--spec/migrations/migrate_kubernetes_service_to_new_clusters_architectures_spec.rb239
1 files changed, 52 insertions, 187 deletions
diff --git a/spec/migrations/migrate_kubernetes_service_to_new_clusters_architectures_spec.rb b/spec/migrations/migrate_kubernetes_service_to_new_clusters_architectures_spec.rb
index 0f270dd37da..d3fa1fe9054 100644
--- a/spec/migrations/migrate_kubernetes_service_to_new_clusters_architectures_spec.rb
+++ b/spec/migrations/migrate_kubernetes_service_to_new_clusters_architectures_spec.rb
@@ -54,205 +54,70 @@ describe MigrateKubernetesServiceToNewClustersArchitectures, :migration do
end
context 'when unique KubernetesService spawned from Service Template' do
- it 'migrates the KubernetesService to Platform::Kubernetes' do
+ let(:sample_num) { 2 }
+ let(:projects) { create_list(:project, sample_num) }
+
+ let!(:kubernetes_service_template) do
+ create(:kubernetes_service,
+ project: nil,
+ template: true,
+ api_url: "https://sample.kubernetes.com",
+ token: "token-sample",
+ ca_pem: "ca_pem-sample")
+ end
+
+ let!(:kubernetes_services) do
+ projects.map do |project|
+ create(:kubernetes_service,
+ project: project,
+ api_url: kubernetes_service_template.api_url,
+ token: kubernetes_service_template.token,
+ ca_pem: kubernetes_service_template.ca_pem)
+ end
+ end
+
+ it 'migrates the KubernetesService to Platform::Kubernetes without template' do
+ expect{ migrate! }.to change { Clusters::Cluster.count }.by(sample_num)
+ projects.each do |project|
+ project.clusters.last.tap do |cluster|
+ expect(cluster.platform_kubernetes.api_url).to eq(project.kubernetes_service.api_url)
+ expect(cluster.platform_kubernetes.ca_pem).to eq(project.kubernetes_service.ca_pem)
+ expect(cluster.platform_kubernetes.token).to eq(project.kubernetes_service.token)
+ expect(project.kubernetes_service).not_to be_active
+ expect(project.kubernetes_service.properties['migrated']).to be_truthy
+ end
+ end
end
end
context 'when synced KubernetesService exists' do
+ let(:project) { create(:project) }
+ let(:cluster) { create(:cluster, :provided_by_gcp, projects: [project]) }
+ let!(:platform_kubernetes) { cluster.platform_kubernetes }
+
+ let!(:kubernetes_service) do
+ create(:kubernetes_service,
+ project: project,
+ active: cluster.enabled,
+ api_url: platform_kubernetes.api_url,
+ token: platform_kubernetes.token,
+ ca_pem: platform_kubernetes.ca_cert)
+ end
+
it 'does not migrate the KubernetesService' do # Because the corresponding Platform::Kubernetes already exists
+ expect{ migrate! }.not_to change { Clusters::Cluster.count }
+ expect(kubernetes_service).to be_active
+ expect(kubernetes_service.properties['migrated']).to be_falsy
end
end
context 'when KubernetesService does not exist' do
- it 'does not migrate the KubernetesService' do
+ let!(:project) { create(:project) }
+ it 'does not migrate the KubernetesService' do
+ expect{ migrate! }.not_to change { Clusters::Cluster.count }
end
end
-
- # context 'when user configured kubernetes from CI/CD > Clusters' do
- # let(:project) { create(:project) }
- # let(:user) { create(:user) }
-
- # # Platforms::Kubernetes (New archtecture)
- # let!(:cluster) do
- # create(:cluster,
- # projects: [project],
- # user: user,
- # provider_type: :gcp,
- # platform_type: :kubernetes,
- # provider_gcp: provider_gcp,
- # platform_kubernetes: platform_kubernetes)
- # end
-
- # let(:provider_gcp) { create(:cluster_provider_gcp, :created) }
- # let(:platform_kubernetes) { create(:cluster_platform_kubernetes, :configured) }
-
- # # KubernetesService (Automatically synchronized when Platforms::Kubernetes created)
- # let!(:kubernetes_service) { create(:kubernetes_service, project: project) }
-
- # context 'when user is using the cluster' do
- # it 'migrates' do
- # expect{ migrate! }.not_to change { Clusters::Cluster.count }
- # expect(cluster).to be_active
- # expect(kubernetes_service).not_to be_active
- # end
- # end
-
- # context 'when user disabled cluster' do
- # before do
- # disable_cluster!
- # end
-
- # context 'when user configured kubernetes from Integration > Kubernetes' do
- # before do
- # kubernetes_service.update(
- # active: true,
- # api_url: 'http://new.kube.com',
- # ca_pem: nil,
- # token: 'z' * 40).reload
- # end
-
- # context 'when user is using the kubernetes service' do
- # it 'migrates' do
- # expect{ migrate! }.to change { Clusters::Cluster.count }.by(1)
-
- # Clusters::Cluster.last.tap do |c|
- # expect(c).to be_active
- # expect(c.platform_kubernetes.api_url).to eq(kubernetes_service.api_url)
- # expect(c.platform_kubernetes.ca_pem).to eq(kubernetes_service.ca_pem)
- # expect(c.platform_kubernetes.token).to eq(kubernetes_service.token)
- # end
-
- # expect(kubernetes_service).not_to be_active
- # end
- # end
-
- # context 'when user stopped using the kubernetes service' do
- # before do
- # kubernetes_service.update(active: false)
- # end
-
- # it 'migrates' do
- # expect{ migrate! }.to change { Clusters::Cluster.count }.by(1)
-
- # Clusters::Cluster.last.tap do |c|
- # expect(c).not_to be_active
- # expect(c.platform_kubernetes.api_url).to eq(kubernetes_service.api_url)
- # expect(c.platform_kubernetes.ca_pem).to eq(kubernetes_service.ca_pem)
- # expect(c.platform_kubernetes.token).to eq(kubernetes_service.token)
- # end
-
- # expect(kubernetes_service).not_to be_active
- # end
- # end
- # end
- # end
-
- # context 'when user deleted cluster' do
- # before do
- # destory_cluster!
- # end
-
- # context 'when user configured kubernetes from Integration > Kubernetes' do
- # let!(:new_kubernetes_service) do
- # project.create_kubernetes_service(
- # active: true,
- # api_url: 'http://123.123.123.123',
- # ca_pem: nil,
- # token: 'a' * 40)
- # end
-
- # context 'when user is using the kubernetes service' do
- # it 'migrates' do
- # expect{ migrate! }.to change { Clusters::Cluster.count }.by(1)
-
- # Clusters::Cluster.last.tap do |c|
- # expect(c).to be_active
- # expect(c.platform_kubernetes.api_url).to eq(new_kubernetes_service.api_url)
- # expect(c.platform_kubernetes.ca_pem).to eq(new_kubernetes_service.ca_pem)
- # expect(c.platform_kubernetes.token).to eq(new_kubernetes_service.token)
- # end
-
- # expect(new_kubernetes_service).not_to be_active
- # end
- # end
-
- # context 'when user stopped using the kubernetes service' do
- # before do
- # new_kubernetes_service.update(active: false)
- # end
-
- # it 'migrates' do
- # expect{ migrate! }.to change { Clusters::Cluster.count }.by(1)
-
- # Clusters::Cluster.last.tap do |c|
- # expect(c).not_to be_active
- # expect(c.platform_kubernetes.api_url).to eq(new_kubernetes_service.api_url)
- # expect(c.platform_kubernetes.ca_pem).to eq(new_kubernetes_service.ca_pem)
- # expect(c.platform_kubernetes.token).to eq(new_kubernetes_service.token)
- # end
-
- # expect(new_kubernetes_service).not_to be_active
- # end
- # end
- # end
- # end
- # end
-
- # context 'when user configured kubernetes from Integration > Kubernetes' do
- # let(:project) { create(:project) }
- # let!(:kubernetes_service) { create(:kubernetes_service, project: project) }
-
- # context 'when user is using the kubernetes service' do
- # it 'migrates' do
- # expect{ migrate! }.to change { Clusters::Cluster.count }.by(1)
-
- # Clusters::Cluster.last.tap do |c|
- # expect(c).to be_active
- # expect(c.platform_kubernetes.api_url).to eq(kubernetes_service.api_url)
- # expect(c.platform_kubernetes.ca_pem).to eq(kubernetes_service.ca_pem)
- # expect(c.platform_kubernetes.token).to eq(kubernetes_service.token)
- # end
-
- # expect(kubernetes_service).not_to be_active
- # end
- # end
-
- # context 'when user stopped using the kubernetes service' do
- # before do
- # kubernetes_service.update(active: false)
- # end
-
- # it 'migrates' do
- # expect{ migrate! }.to change { Clusters::Cluster.count }.by(1)
-
- # Clusters::Cluster.last.tap do |c|
- # expect(c).not_to be_active
- # expect(c.platform_kubernetes.api_url).to eq(kubernetes_service.api_url)
- # expect(c.platform_kubernetes.ca_pem).to eq(kubernetes_service.ca_pem)
- # expect(c.platform_kubernetes.token).to eq(kubernetes_service.token)
- # end
-
- # expect(kubernetes_service).not_to be_active
- # end
- # end
- # end
-
- # context 'when nothing is configured' do
- # it 'migrates' do
- # expect{ migrate! }.not_to change { Clusters::Cluster.count }
- # end
- # end
-
- # def disable_cluster!
- # cluster.update!(enabled: false)
- # kubernetes_service.update!(active: false)
- # end
-
- # def destory_cluster!
- # cluster.destroy!
- # kubernetes_service.destroy!
- # end
end