summaryrefslogtreecommitdiff
path: root/qa/qa/service/docker_run/base.rb
blob: 3f42c09ad2c7b64b9ecc33ea906c8cdcf78204eb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# frozen_string_literal: true

module QA
  module Service
    module DockerRun
      class Base
        include Service::Shellout

        def initialize
          @network = Runtime::Scenario.attributes[:network] || 'test'
        end

        def network
          shell "docker network inspect #{@network}"
        rescue CommandError
          'bridge'
        else
          @network
        end

        def pull
          shell "docker pull #{@image}"
        end

        def host_name
          "#{@name}.#{network}"
        end

        def register!
          raise NotImplementedError
        end

        def remove!
          shell "docker rm -f #{@name}" if running?
        end

        def running?
          `docker ps -f name=#{@name}`.include?(@name)
        end
      end
    end
  end
end