Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/services/clusters/aws/proxy_service_spec.rb')
-rw-r--r--spec/services/clusters/aws/proxy_service_spec.rb210
1 files changed, 0 insertions, 210 deletions
diff --git a/spec/services/clusters/aws/proxy_service_spec.rb b/spec/services/clusters/aws/proxy_service_spec.rb
deleted file mode 100644
index 7b0e0512b95..00000000000
--- a/spec/services/clusters/aws/proxy_service_spec.rb
+++ /dev/null
@@ -1,210 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-describe Clusters::Aws::ProxyService do
- let(:role) { create(:aws_role) }
- let(:credentials) { instance_double(Aws::Credentials) }
- let(:client_instance) { instance_double(client) }
-
- let(:region) { 'region' }
- let(:vpc_id) { }
- let(:params) do
- ActionController::Parameters.new({
- resource: resource,
- region: region,
- vpc_id: vpc_id
- })
- end
-
- subject { described_class.new(role, params: params).execute }
-
- context 'external resources' do
- before do
- allow(Clusters::Aws::FetchCredentialsService).to receive(:new) do
- double(execute: credentials)
- end
-
- allow(client).to receive(:new)
- .with(
- credentials: credentials, region: region,
- http_open_timeout: 5, http_read_timeout: 10)
- .and_return(client_instance)
- end
-
- shared_examples 'bad request' do
- it 'returns an empty hash' do
- expect(subject.status).to eq :bad_request
- expect(subject.body).to eq({})
- end
- end
-
- describe 'key_pairs' do
- let(:client) { Aws::EC2::Client }
- let(:resource) { 'key_pairs' }
- let(:response) { double(to_hash: :key_pairs) }
-
- it 'requests a list of key pairs' do
- expect(client_instance).to receive(:describe_key_pairs).once.and_return(response)
- expect(subject.status).to eq :ok
- expect(subject.body).to eq :key_pairs
- end
- end
-
- describe 'roles' do
- let(:client) { Aws::IAM::Client }
- let(:resource) { 'roles' }
- let(:response) { double(to_hash: :roles) }
-
- it 'requests a list of roles' do
- expect(client_instance).to receive(:list_roles).once.and_return(response)
- expect(subject.status).to eq :ok
- expect(subject.body).to eq :roles
- end
- end
-
- describe 'regions' do
- let(:client) { Aws::EC2::Client }
- let(:resource) { 'regions' }
- let(:response) { double(to_hash: :regions) }
-
- it 'requests a list of regions' do
- expect(client_instance).to receive(:describe_regions).once.and_return(response)
- expect(subject.status).to eq :ok
- expect(subject.body).to eq :regions
- end
- end
-
- describe 'security_groups' do
- let(:client) { Aws::EC2::Client }
- let(:resource) { 'security_groups' }
- let(:response) { double(to_hash: :security_groups) }
-
- include_examples 'bad request'
-
- context 'VPC is specified' do
- let(:vpc_id) { 'vpc-1' }
-
- it 'requests a list of security groups for a VPC' do
- expect(client_instance).to receive(:describe_security_groups).once
- .with(filters: [{ name: 'vpc-id', values: [vpc_id] }])
- .and_return(response)
- expect(subject.status).to eq :ok
- expect(subject.body).to eq :security_groups
- end
- end
- end
-
- describe 'subnets' do
- let(:client) { Aws::EC2::Client }
- let(:resource) { 'subnets' }
- let(:response) { double(to_hash: :subnets) }
-
- include_examples 'bad request'
-
- context 'VPC is specified' do
- let(:vpc_id) { 'vpc-1' }
-
- it 'requests a list of subnets for a VPC' do
- expect(client_instance).to receive(:describe_subnets).once
- .with(filters: [{ name: 'vpc-id', values: [vpc_id] }])
- .and_return(response)
- expect(subject.status).to eq :ok
- expect(subject.body).to eq :subnets
- end
- end
- end
-
- describe 'vpcs' do
- let(:client) { Aws::EC2::Client }
- let(:resource) { 'vpcs' }
- let(:response) { double(to_hash: :vpcs) }
-
- it 'requests a list of VPCs' do
- expect(client_instance).to receive(:describe_vpcs).once.and_return(response)
- expect(subject.status).to eq :ok
- expect(subject.body).to eq :vpcs
- end
- end
-
- context 'errors' do
- let(:client) { Aws::EC2::Client }
-
- context 'unknown resource' do
- let(:resource) { 'instances' }
-
- include_examples 'bad request'
- end
-
- context 'client and configuration errors' do
- let(:resource) { 'vpcs' }
-
- before do
- allow(client_instance).to receive(:describe_vpcs).and_raise(error)
- end
-
- context 'error fetching credentials' do
- let(:error) { Aws::STS::Errors::ServiceError.new(nil, 'error message') }
-
- include_examples 'bad request'
- end
-
- context 'credentials not configured' do
- let(:error) { Aws::Errors::MissingCredentialsError.new('error message') }
-
- include_examples 'bad request'
- end
-
- context 'role not configured' do
- let(:error) { Clusters::Aws::FetchCredentialsService::MissingRoleError.new('error message') }
-
- include_examples 'bad request'
- end
-
- context 'EC2 error' do
- let(:error) { Aws::EC2::Errors::ServiceError.new(nil, 'error message') }
-
- include_examples 'bad request'
- end
-
- context 'IAM error' do
- let(:error) { Aws::IAM::Errors::ServiceError.new(nil, 'error message') }
-
- include_examples 'bad request'
- end
-
- context 'STS error' do
- let(:error) { Aws::STS::Errors::ServiceError.new(nil, 'error message') }
-
- include_examples 'bad request'
- end
- end
- end
- end
-
- context 'local resources' do
- describe 'instance_types' do
- let(:resource) { 'instance_types' }
- let(:cloudformation_template) { double }
- let(:instance_types) { double(dig: %w(t3.small)) }
-
- before do
- allow(File).to receive(:read)
- .with(Rails.root.join('vendor', 'aws', 'cloudformation', 'eks_cluster.yaml'))
- .and_return(cloudformation_template)
-
- allow(YAML).to receive(:safe_load)
- .with(cloudformation_template)
- .and_return(instance_types)
- end
-
- it 'returns a list of instance types' do
- expect(subject.status).to eq :ok
- expect(subject.body).to have_key(:instance_types)
- expect(subject.body[:instance_types]).to match_array([
- instance_type_name: 't3.small'
- ])
- end
- end
- end
-end