Class: Gitlab::QA::Component::InternetTunnel
- Inherits:
-
Object
- Object
- Gitlab::QA::Component::InternetTunnel
- Includes:
- Scenario::Actable
- Defined in:
- lib/gitlab/qa/component/internet_tunnel.rb
Constant Summary collapse
- DOCKER_IMAGE =
'gitlab/ssh-tunnel'.freeze
- DOCKER_IMAGE_TAG =
'1.0.0'.freeze
Instance Attribute Summary collapse
-
#gitlab_hostname ⇒ Object
writeonly
Sets the attribute gitlab_hostname.
-
#name ⇒ Object
writeonly
Sets the attribute name.
-
#network ⇒ Object
Returns the value of attribute network.
Instance Method Summary collapse
-
#initialize ⇒ InternetTunnel
constructor
A new instance of InternetTunnel.
- #instance ⇒ Object
- #url ⇒ Object
Methods included from Scenario::Actable
Constructor Details
#initialize ⇒ InternetTunnel
Returns a new instance of InternetTunnel.
15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/gitlab/qa/component/internet_tunnel.rb', line 15 def initialize @docker = Docker::Engine.new @volumes = {} key_dir = ENV['CI_PROJECT_DIR'] || Dir.tmpdir @ssh_key = Tempfile.new('tunnel-ssh-private-key', key_dir) @ssh_key.write(ENV.fetch('TUNNEL_SSH_PRIVATE_KEY')) @ssh_key.close File.chmod(0o600, @ssh_key.path) @volumes['/root/.ssh/id_rsa'] = @ssh_key.path end |
Instance Attribute Details
#gitlab_hostname=(value) ⇒ Object (writeonly)
Sets the attribute gitlab_hostname
12 13 14 |
# File 'lib/gitlab/qa/component/internet_tunnel.rb', line 12 def gitlab_hostname=(value) @gitlab_hostname = value end |
#name=(value) ⇒ Object
Sets the attribute name
12 13 14 |
# File 'lib/gitlab/qa/component/internet_tunnel.rb', line 12 def name=(value) @name = value end |
#network ⇒ Object
Returns the value of attribute network.
13 14 15 |
# File 'lib/gitlab/qa/component/internet_tunnel.rb', line 13 def network @network end |
Instance Method Details
#instance ⇒ Object
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/gitlab/qa/component/internet_tunnel.rb', line 29 def instance raise ArgumentError, 'Please provide a block!' unless block_given? prepare start yield self ensure teardown end |
#url ⇒ Object
40 41 42 |
# File 'lib/gitlab/qa/component/internet_tunnel.rb', line 40 def url "https://#{subdomain}.#{tunnel_server_hostname}" end |