baleen 0.0.10 → 0.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dea787c2508dcec0087aaf90800a907abc167953
4
- data.tar.gz: 0ec3d68926b8f838f1cf83beb2d239b44beb2d70
3
+ metadata.gz: d482b118da5859fd3b1fb245b78a59d1082f36be
4
+ data.tar.gz: 4749f3562b29a41eab13e88db428d647616892cb
5
5
  SHA512:
6
- metadata.gz: 610ab1e0ebdf2acdc7d610b864cd9398f6b09b967d48e6e5462b4c314fbc6ec7e09c1441e30c33f5a496415c994341c30189d5bc1b5a6d92b80f6801a38b8afe
7
- data.tar.gz: f7f80725e98c6cc1feecc7fec29cdc13c24fd87dbf8bb80f7278d0d1042c10cc50bb3499bebe0c5e331299936c7720475f6cc5467dc150e71957cfd0c82eb542
6
+ metadata.gz: ffb1079d77d5c6a90d3471d4ddf09e5f28ba1b6b8ca0b80bda15eb5e00486fbcb334792a7fe501fc481ac38ffdef9aad32aa821cb36b6642899d0df07c333a23
7
+ data.tar.gz: 088b559d02e2afbc8afd176be5f0f2f9a2ac08df90dd29b64c331693d92279c40f32bf96dc216c91de17887bbdf32c1ae4890a61f5dcb2b647de9213d7e1ed3a
data/Gemfile CHANGED
@@ -2,6 +2,3 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in baleen.gemspec
4
4
  gemspec
5
-
6
- #gem 'docker-client', path: File.expand_path("/Users/kimh/git/docker-ruby", __FILE__)
7
- #gem 'baleen', path: File.expand_path("/Users/kimh/git/baleen", __FILE__)
@@ -28,6 +28,7 @@ Gem::Specification.new do |spec|
28
28
 
29
29
  spec.add_runtime_dependency 'celluloid'
30
30
  spec.add_runtime_dependency 'celluloid-io'
31
+ spec.add_runtime_dependency 'docker-api'
31
32
  spec.add_runtime_dependency 'colorize'
32
33
  spec.add_runtime_dependency 'thor'
33
34
 
@@ -4,27 +4,20 @@ module Baleen
4
4
  class DockerClient
5
5
  Result = Struct.new("Result", :status_code, :container_id, :log)
6
6
 
7
- def initialize(containers)
8
- @containers = containers
9
- end
10
-
11
7
  def create_container(params)
12
- @container = @containers.create([params.shell, params.opt, params.commands], params.image)
8
+ @container = Docker::Container.create('Cmd' => [params.shell, params.opt, params.commands], 'Image' => params.image)
13
9
  end
14
10
 
15
11
  def start_container
16
- id = @container["Id"]
17
-
18
- info "Start container #{id}"
19
- @containers.start(id)
20
- @containers.wait(id)
21
- info "Finish container #{id}"
12
+ info "Start container #{@container.id}"
13
+ @container.start
14
+ @container.wait
15
+ info "Finish container #{@container.id}"
22
16
  end
23
17
 
24
18
  def result
25
- id = @container["Id"]
26
- rst = @containers.show(id)
27
- log = @containers.logs(id)
19
+ rst = @container.json
20
+ log = @container.attach(:stream => false, :stdout => true, :stderr => true, :logs => true)
28
21
 
29
22
  Result.new(
30
23
  rst["State"]["ExitCode"],
@@ -33,16 +26,6 @@ module Baleen
33
26
  )
34
27
  end
35
28
 
36
- def kill_all
37
- @containers.list.each do |container|
38
- @containers.kill(container["Id"])
39
- end
40
- end
41
-
42
- def status
43
- info @containers.list
44
- end
45
-
46
29
  end
47
30
 
48
31
  end
@@ -9,10 +9,6 @@ module Baleen
9
9
  def initialize(opt = {}); super() end
10
10
  end
11
11
 
12
- class PingPong < Base
13
- def initialize(opt = {}); super() end
14
- end
15
-
16
12
  class Cucumber < Base
17
13
  def initialize(image: nil, work_dir: "./", files: "features", shell: "/bin/bash", opt: "-c", exe: "bundle exec cucumber", before_command: nil, command: nil)
18
14
  super()
@@ -47,8 +47,7 @@ module Baleen
47
47
 
48
48
  CONCURRENCY=2
49
49
 
50
- def initialize(containers, socket, msg)
51
- @containers = containers
50
+ def initialize(socket, msg)
52
51
  @socket = socket
53
52
  @queue = []
54
53
  @results = []
@@ -73,14 +72,14 @@ module Baleen
73
72
  def create_runners
74
73
  target_files.map {|file|
75
74
  @params.files = file
76
- Runner.new(@containers, @params)
75
+ Runner.new(@params)
77
76
  }.each_slice(CONCURRENCY).map {|r| r}
78
77
  end
79
78
 
80
79
  def target_files
81
80
  params = @params.dup
82
81
  params.command = %{find #{params.files} | grep "\\.feature"}
83
- runner = Runner.new(@containers, params)
82
+ runner = Runner.new(params)
84
83
  runner.run
85
84
  runner.status.log.split("\n")
86
85
  end
@@ -95,8 +94,8 @@ module Baleen
95
94
 
96
95
  attr_reader :status
97
96
 
98
- def initialize(containers, params)
99
- @docker_client = Container::DockerClient.new(containers)
97
+ def initialize(params)
98
+ @docker_client = Container::DockerClient.new
100
99
  @status = nil
101
100
  @params = params
102
101
  end
@@ -119,7 +118,7 @@ module Baleen
119
118
  begin
120
119
  @docker_client.create_container(@params)
121
120
  @docker_client.start_container
122
- rescue Docker::Error::ContainerNotFound => e
121
+ rescue Excon::Errors::NotFound => e
123
122
  count += 1
124
123
  if count > max_retry
125
124
  raise Baleen::Error::StartContainerFail
@@ -11,12 +11,8 @@ module Baleen
11
11
  include Celluloid::IO
12
12
  finalizer :shutdown
13
13
 
14
- attr_accessor :containers
15
-
16
14
  def initialize(docker_host: "127.0.0.1", docker_port: 4243, port: 5533)
17
- @base_url = "http://#{docker_host}:#{docker_port}"
18
- @docker = Docker::API.new(base_url: @base_url)
19
- @containers = @docker.containers
15
+ Docker.url = "http://#{docker_host}:#{docker_port}"
20
16
  @server = TCPServer.new("0.0.0.0", port)
21
17
  async.run
22
18
  end
@@ -52,12 +48,10 @@ module Baleen
52
48
  msg = parse_request(message)
53
49
 
54
50
  case msg
55
- when Message::Request::PingPong
56
- socket.puts "pong"
57
51
  when Message::Request::ClientDisconnect
58
52
  socket.close
59
53
  when Message::Request::Cucumber
60
- manager = RunnerManager.new(@containers, socket, msg)
54
+ manager = RunnerManager.new(socket, msg)
61
55
  manager.run
62
56
  else
63
57
  warn "Received unknown request"
@@ -1,3 +1,3 @@
1
1
  module Baleen
2
- VERSION = "0.0.10"
2
+ VERSION = "0.0.11"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: baleen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kim, Hirokuni
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - '>='
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: docker-api
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: colorize
113
127
  requirement: !ruby/object:Gem::Requirement