indocker 0.1.15 → 0.1.16

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
  SHA256:
3
- metadata.gz: 0d7b649d56c064195abd6e157f81fde131feaf2f05b238381555d44af3451e52
4
- data.tar.gz: e209879510e20425f21f158c6b898d2f08b23115d9c37cc1b67263ec2dc6b00c
3
+ metadata.gz: e93eba781605cba8bdb795ed40a03b16d3602508ca427639b42ead50c25b7ec6
4
+ data.tar.gz: 3e5dc1f5582c8ee45fa4e3583cfea13abf3121e52341eecdc98b8660db700d94
5
5
  SHA512:
6
- metadata.gz: 3708365b48a1f074ab18ceb68f45063132f43252981771b94c41c25a2ab3e6929be52e62add6135bce03e574d7134eed70434c3991a8b2073adac4056be20e1a
7
- data.tar.gz: fc8513c52b6a39062214294fa708159db908ed105d06d848ae186474ea9ca03868dd82e36ab42a2440d49a957e90cb3a8214cfa97537fe2edac10466ba756c9f
6
+ metadata.gz: 4da7e1049911e4d0c12d89d977cfb568687f61568866ec82f737694c1023984ad97d205d25eaa35e19ebc46843d0743d1df07c833c48d293a5c10ca5de0fd792
7
+ data.tar.gz: 1a8205455ebf5da34c8039a87c45772807920e362e8814bee275ef578647a15edf9970a9c53196b5805aeba8d4b3b047e30e329b0637d393a390c9d32c68353f
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- indocker (0.1.15)
4
+ indocker (0.1.16)
5
5
  net-ssh
6
6
 
7
7
  GEM
@@ -369,7 +369,7 @@ module Indocker
369
369
  )
370
370
  end
371
371
 
372
- def launched?(contaner_name, servers: [])
372
+ def launched?(contaner_name, servers: nil)
373
373
  silent_logger = Logger.new(File.open(File::NULL, "w"))
374
374
  Indocker::DeploymentChecker
375
375
  .new(silent_logger, silent_logger)
@@ -49,6 +49,7 @@ class Indocker::ContainerDeployer
49
49
 
50
50
  @logger.info("Container deployment to #{server.user}@#{server.host} finished: #{container.name.to_s.green}")
51
51
 
52
+ deploy_server.close_session
52
53
  progress.finish_deploying_container(container, server)
53
54
  end
54
55
  end
@@ -109,13 +109,15 @@ class Indocker::DeploymentChecker
109
109
  { missing_containers: total_missing_containers, invalid_containers: total_invalid_containers }
110
110
  end
111
111
 
112
- def launched?(container_name, configuration:, servers:)
112
+ def launched?(container_name, configuration:, servers: nil)
113
113
  container = Indocker.containers.detect { |c| c.name == container_name.to_sym }
114
114
  hostnames = (container.get_start_option(:scale) || 1).times.map do |number|
115
115
  Indocker::ContainerHelper.hostname(configuration.name, container, number)
116
116
  end
117
117
 
118
- result = run(configuration: configuration, servers: servers, only_containers: [container.name])
118
+ servers ||= container.servers.map(&:name)
119
+
120
+ result = run(configuration: configuration, servers: container.servers.map(&:name), only_containers: [container.name])
119
121
  result[:missing_containers].empty?
120
122
  end
121
123
  end
@@ -258,15 +258,17 @@ class Indocker::Launchers::ConfigurationDeployer
258
258
  def collect_soft_dependent_containers(containers, configuration)
259
259
  result = containers
260
260
 
261
- result += containers.map do |container|
262
- container.soft_dependent_containers.reject do |soft_dependent_container|
263
- configuration.enabled_containers.include?(soft_dependent_container.name) &&
264
- Indocker.launched?(soft_dependent_container.name)
265
- end
266
- end.flatten
261
+ soft_dependent_containers = containers
262
+ .map(&:soft_dependent_containers)
263
+ .flatten
264
+ .uniq(&:name)
267
265
 
266
+ result += soft_dependent_containers.select do |container|
267
+ configuration.enabled_containers.include?(container.name) &&
268
+ !Indocker.launched?(container.name)
269
+ end
268
270
 
269
- result.uniq
271
+ result
270
272
  end
271
273
 
272
274
  def compile_image(configuration, image, build_server)
@@ -7,35 +7,35 @@ class Indocker::ServerPools::DeployServerPool
7
7
  end
8
8
 
9
9
  def create_connection!(server)
10
- @semaphore.synchronize do
11
- create_connection_unsafe!(server)
12
- end
13
- end
14
-
15
- def each(&proc)
16
- @connections.each(&proc)
17
- end
18
-
19
- def close_sessions
20
- @connections.each(&:close_session)
10
+ connection = Indocker::ServerPools::DeployServerConnection.new(
11
+ logger: @logger,
12
+ configuration: @configuration,
13
+ server: server,
14
+ )
15
+ connection.create_session!
16
+ connection
21
17
  end
22
18
 
23
- private
24
- def create_connection_unsafe!(server)
19
+ def find_or_create_connection!(server)
20
+ @semaphore.synchronize do
25
21
  connection = @connections.detect do |connection|
26
22
  connection.server.host == server.host &&
27
23
  connection.server.port == server.port &&
28
24
  connection.server.user == server.user
29
25
  end
30
26
  if connection.nil?
31
- connection = Indocker::ServerPools::DeployServerConnection.new(
32
- logger: @logger,
33
- configuration: @configuration,
34
- server: server,
35
- )
36
- connection.create_session!
27
+ connection = create_connection!(server)
37
28
  @connections.push(connection)
38
29
  end
39
30
  connection
40
31
  end
32
+ end
33
+
34
+ def each(&proc)
35
+ @connections.each(&proc)
36
+ end
37
+
38
+ def close_sessions
39
+ @connections.each(&:close_session)
40
+ end
41
41
  end
@@ -24,6 +24,7 @@ class Indocker::ServerPools::ServerConnection
24
24
 
25
25
  def close_session
26
26
  @session.close if @session
27
+ @session = nil
27
28
  end
28
29
 
29
30
  def set_busy(flag)
@@ -1,3 +1,3 @@
1
1
  module Indocker
2
- VERSION = "0.1.15"
2
+ VERSION = "0.1.16"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: indocker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.15
4
+ version: 0.1.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ruslan Gatiyatov