dust-deploy 0.10.6 → 0.10.7

Sign up to get free protection for your applications and to get access to all the features.
data/changelog.md CHANGED
@@ -1,6 +1,21 @@
1
1
  Changelog
2
2
  =============
3
3
 
4
+ 0.10.7
5
+ ------------
6
+
7
+ - sshd recipe supports conditional blocks
8
+
9
+ recipes:
10
+ sshd:
11
+ Match:
12
+ User john:
13
+ ChrootDirectory: /srv
14
+ ForceCommand: internal-sftp
15
+ AllowTcpForwarding: no
16
+ X11Forwarding: no
17
+
18
+
4
19
  0.10.6
5
20
  ------------
6
21
 
data/lib/dust/helper.rb CHANGED
@@ -41,25 +41,31 @@ class Hash
41
41
  self
42
42
  end
43
43
 
44
-
44
+
45
45
  # converts each value to an array, so .each and .combine won't get hickups
46
46
  def values_to_array!
47
- self.keys.each { |k| self[k] = [ self[k] ] unless self[k].is_a? Array }
47
+ self.keys.each { |k| self[k] = [ self[k] ] unless self[k].is_a? Array }
48
48
  end
49
-
49
+
50
50
  # converts each value that is a boolean to 'yes' resp. 'no' strings
51
51
  def boolean_to_string!
52
- self.each { |k, v| self[k] = v ? 'yes' : 'no' if v.is_a? TrueClass or v.is_a? FalseClass }
53
- end
52
+ self.each do |k, v|
53
+ self[k] = 'yes' if v.is_a? TrueClass
54
+ self[k] = 'no' if v.is_a? FalseClass
55
+
56
+ # recursion
57
+ v.boolean_to_string! if v.is_a? Hash
58
+ end
59
+ end
54
60
  end
55
61
 
56
62
 
57
63
  class String
58
64
  # stole this from Afz902k who posted something similar at stackoverflow.com
59
- # adds ability to check if a class with the name of a string exists
65
+ # adds ability to check if a class with the name of a string exists
60
66
  def to_class
61
67
  Kernel.const_get self.capitalize
62
- rescue NameError
68
+ rescue NameError
63
69
  nil
64
70
  end
65
71
 
@@ -75,7 +81,7 @@ module Dust
75
81
  # converts string to kilobytes (rounded)
76
82
  def self.convert_size s
77
83
  i, unit = s.split(' ')
78
-
84
+
79
85
  case unit.downcase
80
86
  when 'kb'
81
87
  return i.to_i
@@ -1,7 +1,7 @@
1
1
  class Sshd < Recipe
2
-
2
+
3
3
  desc 'sshd:deploy', 'installs and configures the ssh server'
4
- def deploy
4
+ def deploy
5
5
  if @node.uses_pacman?
6
6
  return unless @node.install_package 'openssh'
7
7
  else
@@ -9,7 +9,6 @@ class Sshd < Recipe
9
9
  end
10
10
 
11
11
  generate_default_config
12
- @config.values_to_array!
13
12
 
14
13
  check_hostkeys
15
14
  apply_configuration
@@ -28,7 +27,7 @@ class Sshd < Recipe
28
27
  'HostKey' => [ '/etc/ssh/ssh_host_dsa_key',
29
28
  '/etc/ssh/ssh_host_ecdsa_key',
30
29
  '/etc/ssh/ssh_host_rsa_key' ],
31
- 'PasswordAuthentication' => 'yes',
30
+ 'PasswordAuthentication' => 'yes',
32
31
  'ChallengeResponseAuthentication' => 'no',
33
32
  'X11Forwarding' => 'yes',
34
33
  'UsePAM' => 'yes',
@@ -58,9 +57,25 @@ class Sshd < Recipe
58
57
 
59
58
  def apply_configuration
60
59
  @sshd_config = ''
61
- @config.each do |key, values|
62
- values.each { |value| @sshd_config << "#{key} #{value}\n" }
60
+ conditional_blocks = ''
61
+
62
+ @config.each do |key, value|
63
+
64
+ # hashes are conditional blocks
65
+ # which have to be placed at the end of the file
66
+ if value.is_a? Hash
67
+ value.each do |k, v|
68
+ conditional_blocks << "#{key} #{k}\n"
69
+ v.to_array.each { |x, y| conditional_blocks << " #{x} #{y}\n" }
70
+ end
71
+
72
+ else
73
+ value.to_array.each { |value| @sshd_config << "#{key} #{value}\n" }
74
+ end
63
75
  end
76
+
77
+ # append conditional blocks
78
+ @sshd_config << conditional_blocks
64
79
  end
65
80
 
66
81
  def check_hostkeys
data/lib/dust/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Dust
2
- VERSION = "0.10.6"
2
+ VERSION = "0.10.7"
3
3
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 10
8
- - 6
9
- version: 0.10.6
8
+ - 7
9
+ version: 0.10.7
10
10
  platform: ruby
11
11
  authors:
12
12
  - kris kechagia
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2012-04-18 00:00:00 +02:00
17
+ date: 2012-04-23 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency