baleen 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
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