Class: Gitlab::QA::Scenario::Test::Integration::GitalyCluster
- Inherits:
-
Gitlab::QA::Scenario::Template
- Object
- Gitlab::QA::Scenario::Template
- Gitlab::QA::Scenario::Test::Integration::GitalyCluster
- Defined in:
- lib/gitlab/qa/scenario/test/integration/gitaly_cluster.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#gitlab_name ⇒ Object
readonly
Returns the value of attribute gitlab_name.
-
#spec_suite ⇒ Object
readonly
Returns the value of attribute spec_suite.
Instance Method Summary collapse
-
#initialize ⇒ GitalyCluster
constructor
A new instance of GitalyCluster.
-
#perform(release, *rspec_args) ⇒ Object
rubocop:disable Metrics/AbcSize.
Methods inherited from Gitlab::QA::Scenario::Template
Constructor Details
#initialize ⇒ GitalyCluster
Returns a new instance of GitalyCluster.
9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/gitlab/qa/scenario/test/integration/gitaly_cluster.rb', line 9 def initialize @gitlab_name = 'gitlab-gitaly-cluster' @primary_node_name = 'gitaly1' @secondary_node_name = 'gitaly2' @tertiary_node_name = 'gitaly3' @praefect_node_name = 'praefect' @database = 'postgres' @spec_suite = 'Test::Instance::All' @network = 'test' @env = {} @tag = 'gitaly_cluster' end |
Instance Attribute Details
#gitlab_name ⇒ Object (readonly)
Returns the value of attribute gitlab_name.
7 8 9 |
# File 'lib/gitlab/qa/scenario/test/integration/gitaly_cluster.rb', line 7 def gitlab_name @gitlab_name end |
#spec_suite ⇒ Object (readonly)
Returns the value of attribute spec_suite.
7 8 9 |
# File 'lib/gitlab/qa/scenario/test/integration/gitaly_cluster.rb', line 7 def spec_suite @spec_suite end |
Instance Method Details
#perform(release, *rspec_args) ⇒ Object
rubocop:disable Metrics/AbcSize
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/gitlab/qa/scenario/test/integration/gitaly_cluster.rb', line 23 def perform(release, *rspec_args) gitaly_primary_node = gitaly(@primary_node_name, release) gitaly_secondary_node = gitaly(@secondary_node_name, release) gitaly_tertiary_node = gitaly(@tertiary_node_name, release) sql_node = Component::PostgreSQL.new.tap do |sql| sql.name = @database sql.network = @network sql.instance(skip_teardown: true) do sql.run_psql '-d template1 -c "CREATE DATABASE praefect_production OWNER postgres"' end end praefect_node = Component::Gitlab.new.tap do |praefect| praefect.release = QA::Release.new(release) praefect.name = @praefect_node_name praefect.network = @network praefect.skip_availability_check = true praefect.omnibus_config = praefect_omnibus_configuration praefect.instance(skip_teardown: true) end Component::Gitlab.perform do |gitlab| gitlab.release = QA::Release.new(release) gitlab.name = gitlab_name gitlab.network = @network gitlab.omnibus_config = gitlab_omnibus_configuration gitlab.instance do puts "Running Gitaly Cluster specs!" if @tag rspec_args << "--" unless rspec_args.include?('--') rspec_args << "--tag" << @tag end Component::Specs.perform do |specs| specs.suite = spec_suite specs.release = gitlab.release specs.network = gitlab.network specs.args = [gitlab.address, *rspec_args] specs.env = @env end end end ensure praefect_node&.teardown sql_node&.teardown gitaly_primary_node&.teardown gitaly_secondary_node&.teardown gitaly_tertiary_node&.teardown end |