percheron 0.7.2 → 0.7.3

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: 15de7f98c12439599c7f39ba23c9667d3114d493
4
- data.tar.gz: e5efd6cf80b855d2bc6a477db9406165708f0b9d
3
+ metadata.gz: d1ba6e0501b9cf6ab5cb77737fec3fb01de42339
4
+ data.tar.gz: 603bd092e32325a8f7048836cc6bf591a34968da
5
5
  SHA512:
6
- metadata.gz: ad718e1b22ec751f618b29d0bd37e716fea413291152738d692746dbd9fec849190f78e324de88608271c138455c682d02ef15b3cdcbb23b70593b9b7cc6878b
7
- data.tar.gz: 77b283bb036e996e2847ebfb5fe6c77ce11351fd6061ae1352e319d9fd464cef506dbfd30c8cccdbe395bfc44d199d2ed007be08f9dd9402355704ef71ba7a51
6
+ metadata.gz: c7c5dc74228d637d145daf3e7179392b3919d9e575573285a0d57ef5c1540589fe2c657d4a30d6568a3e2be482a42d20b9399ea56e8fa6a15cf9dd73d36d792c
7
+ data.tar.gz: 998bc9494e00c05e73ff9667ecd51502315208aee1f9900a40854832b072a68a8f93e3b70c0629fde4336c7fb7207d112bf2dade4eaa75019ddbf0bf2933446f
data/README.md CHANGED
@@ -53,9 +53,16 @@ $ gem install percheron
53
53
 
54
54
  TODO
55
55
 
56
+ ## Debugging
57
+
58
+ To debug Percheron, set the `DEBUG=true` environment variable.
59
+
60
+ To debug Percheron and Docker, set the `DOCKER_DEBUG=true` environment variable.
61
+
56
62
  ## Examples
57
63
 
58
64
  * [Rails](https://github.com/ashmckenzie/percheron-rails#quickstart) - Rails 4.2, PostgreSQL, redis, HAProxy and postfix
65
+ * [Redis](https://github.com/ashmckenzie/percheron-redis#quickstart) - Redis cluster + sentinel, master, two slaves and tools
59
66
  * [Torrent](https://github.com/ashmckenzie/percheron-torrent#quickstart) - Tracker (chihaya), seeder (aria2) and three peers (aria2)
60
67
  * [SaltStack](https://github.com/ashmckenzie/percheron-saltstack#quickstart) - SaltStack v2015.2.0rc2 with master and minion
61
68
 
@@ -4,9 +4,9 @@ module Percheron
4
4
 
5
5
  include Base
6
6
 
7
- def initialize(container, delete_image: true)
7
+ def initialize(container, force: false)
8
8
  @container = container
9
- @delete_image = delete_image
9
+ @force = force
10
10
  end
11
11
 
12
12
  def execute!
@@ -19,20 +19,20 @@ module Percheron
19
19
 
20
20
  private
21
21
 
22
- attr_reader :container, :delete_image
22
+ attr_reader :container, :force
23
23
 
24
24
  def stop!
25
25
  Stop.new(container).execute!
26
26
  end
27
27
 
28
28
  def delete_image?
29
- delete_image && container.image_exists? && container.buildable?
29
+ container.image_exists? && container.buildable?
30
30
  end
31
31
 
32
32
  def delete_container!
33
33
  return nil unless container.exists?
34
34
  $logger.info "Deleting '#{container.name}' container"
35
- container.docker_container.remove
35
+ container.docker_container.remove(force: force)
36
36
  rescue Docker::Error::ConflictError => e
37
37
  $logger.error "Unable to delete '%s' container - %s" % [ container.name, e.inspect ]
38
38
  end
@@ -40,7 +40,7 @@ module Percheron
40
40
  def delete_image!
41
41
  return nil unless delete_image?
42
42
  $logger.info "Deleting '#{container.image_name}' image"
43
- container.image.remove
43
+ container.image.remove(force: force)
44
44
  rescue Docker::Error::ConflictError => e
45
45
  $logger.error "Unable to delete '%s' image - %s" % [ container.image_name, e.inspect ]
46
46
  end
@@ -12,15 +12,18 @@ module Percheron
12
12
  end
13
13
 
14
14
  def execute!
15
- Validators::DockerClient.new.validate_docker_client_available!
16
15
  $logger.debug "Executing #{shell} on '#{container.name}' container"
17
- exec!
16
+ exec! if valid?
18
17
  end
19
18
 
20
19
  private
21
20
 
22
21
  attr_reader :container, :shell
23
22
 
23
+ def valid?
24
+ Validators::DockerClient.new.valid?
25
+ end
26
+
24
27
  def exec!
25
28
  system('%s exec -ti %s %s' % [ DOCKER_CLIENT, container.full_name, shell ])
26
29
  end
@@ -4,7 +4,6 @@ module Percheron
4
4
 
5
5
  parameter('STACK_NAME', 'stack name', required: true)
6
6
  parameter('CONTAINER_NAME', 'container name', required: true)
7
-
8
7
  option('--follow', :flag, 'follow the logs', default: false)
9
8
 
10
9
  def execute
@@ -3,10 +3,11 @@ module Percheron
3
3
  class Purge < Abstract
4
4
 
5
5
  default_parameters!
6
+ option([ '-f', '--force' ], :flag, 'Force container/image removal', default: false)
6
7
 
7
8
  def execute
8
9
  super
9
- stack.purge!(container_names: container_names)
10
+ stack.purge!(container_names: container_names, force: force?)
10
11
  end
11
12
  end
12
13
  end
@@ -4,7 +4,6 @@ module Percheron
4
4
 
5
5
  parameter('STACK_NAME', 'stack name', required: true)
6
6
  parameter('CONTAINER_NAME', 'container name', required: true)
7
-
8
7
  option('--shell', 'SHELL', 'Shell to use', default: Percheron::Actions::Shell::DEFAULT_SHELL)
9
8
 
10
9
  def execute
@@ -74,8 +74,8 @@ module Percheron
74
74
  execute!(Actions::Recreate, filter_container_names(container_names), start: start)
75
75
  end
76
76
 
77
- def purge!(container_names: [])
78
- execute!(Actions::Purge, filter_container_names(container_names).reverse)
77
+ def purge!(container_names: [], force: false)
78
+ execute!(Actions::Purge, filter_container_names(container_names).reverse, force: force)
79
79
  end
80
80
 
81
81
  def execute!(klass, container_names, args=nil)
@@ -1,3 +1,3 @@
1
1
  module Percheron
2
- VERSION = '0.7.2'
2
+ VERSION = '0.7.3'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: percheron
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.2
4
+ version: 0.7.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ash McKenzie
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-24 00:00:00.000000000 Z
11
+ date: 2015-04-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: clamp