chef 0.9.18 → 0.10.0.beta.0

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.
Files changed (177) hide show
  1. data/README.rdoc +0 -3
  2. data/distro/arch/etc/rc.d/chef-server +0 -4
  3. data/distro/arch/etc/rc.d/chef-server-webui +0 -4
  4. data/distro/arch/etc/rc.d/chef-solr +0 -4
  5. data/distro/arch/etc/rc.d/chef-solr-indexer +0 -4
  6. data/lib/chef.rb +3 -3
  7. data/lib/chef/api_client.rb +1 -1
  8. data/lib/chef/application.rb +11 -1
  9. data/lib/chef/application/client.rb +18 -22
  10. data/lib/chef/application/knife.rb +28 -29
  11. data/lib/chef/application/solo.rb +14 -12
  12. data/lib/chef/client.rb +112 -54
  13. data/lib/chef/config.rb +4 -0
  14. data/lib/chef/cookbook/chefignore.rb +66 -0
  15. data/lib/chef/cookbook/cookbook_collection.rb +6 -5
  16. data/lib/chef/cookbook/cookbook_version_loader.rb +151 -0
  17. data/lib/chef/cookbook/file_system_file_vendor.rb +10 -8
  18. data/lib/chef/cookbook/metadata.rb +200 -108
  19. data/lib/chef/cookbook_loader.rb +39 -163
  20. data/lib/chef/cookbook_uploader.rb +100 -78
  21. data/lib/chef/cookbook_version.rb +92 -47
  22. data/lib/chef/cookbook_version_selector.rb +163 -0
  23. data/lib/chef/couchdb.rb +9 -1
  24. data/lib/chef/data_bag.rb +1 -1
  25. data/lib/chef/data_bag_item.rb +1 -1
  26. data/lib/chef/encrypted_data_bag_item.rb +126 -0
  27. data/lib/chef/environment.rb +386 -0
  28. data/lib/chef/exceptions.rb +82 -1
  29. data/lib/chef/index_queue/amqp_client.rb +15 -12
  30. data/lib/chef/index_queue/indexable.rb +38 -4
  31. data/lib/chef/json_compat.rb +3 -3
  32. data/lib/chef/knife.rb +97 -202
  33. data/lib/chef/knife/bootstrap.rb +27 -61
  34. data/lib/chef/knife/bootstrap/archlinux-gems.erb +4 -2
  35. data/lib/chef/knife/bootstrap/centos5-gems.erb +6 -15
  36. data/lib/chef/knife/bootstrap/fedora13-gems.erb +3 -4
  37. data/lib/chef/knife/bootstrap/ubuntu10.04-apt.erb +2 -2
  38. data/lib/chef/knife/bootstrap/ubuntu10.04-gems.erb +6 -5
  39. data/lib/chef/knife/client_bulk_delete.rb +6 -3
  40. data/lib/chef/knife/client_create.rb +13 -10
  41. data/lib/chef/knife/client_delete.rb +10 -7
  42. data/lib/chef/knife/client_edit.rb +9 -6
  43. data/lib/chef/knife/client_list.rb +8 -5
  44. data/lib/chef/knife/client_reregister.rb +9 -6
  45. data/lib/chef/knife/client_show.rb +9 -6
  46. data/lib/chef/knife/configure.rb +15 -19
  47. data/lib/chef/knife/configure_client.rb +4 -4
  48. data/lib/chef/knife/cookbook_bulk_delete.rb +11 -8
  49. data/lib/chef/knife/cookbook_create.rb +120 -55
  50. data/lib/chef/knife/cookbook_delete.rb +18 -12
  51. data/lib/chef/knife/cookbook_download.rb +10 -6
  52. data/lib/chef/knife/cookbook_list.rb +15 -6
  53. data/lib/chef/knife/cookbook_metadata.rb +41 -21
  54. data/lib/chef/knife/cookbook_metadata_from_file.rb +4 -0
  55. data/lib/chef/knife/cookbook_show.rb +16 -5
  56. data/lib/chef/knife/cookbook_site_download.rb +2 -2
  57. data/lib/chef/knife/cookbook_site_share.rb +18 -13
  58. data/lib/chef/knife/cookbook_site_unshare.rb +7 -4
  59. data/lib/chef/knife/cookbook_site_vendor.rb +21 -18
  60. data/lib/chef/knife/cookbook_test.rb +14 -14
  61. data/lib/chef/knife/cookbook_upload.rb +91 -40
  62. data/lib/chef/knife/data_bag_create.rb +41 -6
  63. data/lib/chef/knife/data_bag_delete.rb +5 -3
  64. data/lib/chef/knife/data_bag_edit.rb +55 -11
  65. data/lib/chef/knife/data_bag_from_file.rb +47 -7
  66. data/lib/chef/knife/data_bag_list.rb +4 -1
  67. data/lib/chef/knife/data_bag_show.rb +44 -4
  68. data/lib/chef/knife/environment_create.rb +53 -0
  69. data/lib/chef/knife/environment_delete.rb +45 -0
  70. data/lib/chef/knife/environment_edit.rb +45 -0
  71. data/lib/chef/knife/environment_from_file.rb +39 -0
  72. data/lib/chef/knife/environment_list.rb +42 -0
  73. data/lib/chef/knife/environment_show.rb +46 -0
  74. data/lib/chef/knife/exec.rb +1 -1
  75. data/lib/chef/knife/index_rebuild.rb +8 -9
  76. data/lib/chef/knife/node_bulk_delete.rb +9 -6
  77. data/lib/chef/knife/node_create.rb +9 -6
  78. data/lib/chef/knife/node_delete.rb +10 -7
  79. data/lib/chef/knife/node_edit.rb +129 -10
  80. data/lib/chef/knife/node_from_file.rb +10 -7
  81. data/lib/chef/knife/node_list.rb +11 -6
  82. data/lib/chef/knife/node_run_list_add.rb +10 -7
  83. data/lib/chef/knife/node_run_list_remove.rb +9 -6
  84. data/lib/chef/knife/node_show.rb +15 -7
  85. data/lib/chef/knife/recipe_list.rb +4 -3
  86. data/lib/chef/knife/role_bulk_delete.rb +9 -6
  87. data/lib/chef/knife/role_create.rb +9 -6
  88. data/lib/chef/knife/role_delete.rb +10 -7
  89. data/lib/chef/knife/role_edit.rb +11 -8
  90. data/lib/chef/knife/role_from_file.rb +10 -7
  91. data/lib/chef/knife/role_list.rb +8 -5
  92. data/lib/chef/knife/role_show.rb +11 -8
  93. data/lib/chef/knife/search.rb +33 -10
  94. data/lib/chef/knife/ssh.rb +33 -61
  95. data/lib/chef/knife/status.rb +7 -4
  96. data/lib/chef/knife/subcommand_loader.rb +101 -0
  97. data/lib/chef/knife/tag_create.rb +31 -0
  98. data/lib/chef/knife/tag_delete.rb +31 -0
  99. data/lib/chef/knife/tag_list.rb +29 -0
  100. data/lib/chef/knife/ui.rb +229 -0
  101. data/lib/chef/knife/windows_bootstrap.rb +8 -5
  102. data/lib/chef/log.rb +5 -59
  103. data/lib/chef/mash.rb +211 -0
  104. data/lib/chef/mixins.rb +1 -2
  105. data/lib/chef/nil_argument.rb +3 -0
  106. data/lib/chef/node.rb +96 -34
  107. data/lib/chef/platform.rb +27 -0
  108. data/lib/chef/provider/cookbook_file.rb +21 -20
  109. data/lib/chef/provider/deploy/revision.rb +3 -0
  110. data/lib/chef/provider/file.rb +20 -11
  111. data/lib/chef/provider/git.rb +26 -26
  112. data/lib/chef/provider/group/aix.rb +70 -0
  113. data/lib/chef/provider/group/groupadd.rb +7 -4
  114. data/lib/chef/provider/group/usermod.rb +1 -1
  115. data/lib/chef/provider/package.rb +28 -28
  116. data/lib/chef/provider/package/dpkg.rb +1 -1
  117. data/lib/chef/provider/package/portage.rb +50 -39
  118. data/lib/chef/provider/package/rubygems.rb +1 -1
  119. data/lib/chef/provider/package/zypper.rb +3 -20
  120. data/lib/chef/provider/remote_directory.rb +0 -2
  121. data/lib/chef/provider/remote_file.rb +2 -3
  122. data/lib/chef/provider/service/arch.rb +28 -35
  123. data/lib/chef/provider/service/simple.rb +1 -1
  124. data/lib/chef/provider/subversion.rb +22 -22
  125. data/lib/chef/providers.rb +1 -0
  126. data/lib/chef/recipe.rb +10 -12
  127. data/lib/chef/resource.rb +49 -42
  128. data/lib/chef/resource/gem_package.rb +7 -3
  129. data/lib/chef/resource/git.rb +5 -5
  130. data/lib/chef/resource/package.rb +7 -7
  131. data/lib/chef/resource/scm.rb +2 -1
  132. data/lib/chef/resource/solaris_package.rb +0 -1
  133. data/lib/chef/resource/yum_package.rb +0 -1
  134. data/lib/chef/rest.rb +7 -16
  135. data/lib/chef/rest/rest_request.rb +0 -16
  136. data/lib/chef/role.rb +67 -13
  137. data/lib/chef/run_context.rb +37 -21
  138. data/lib/chef/run_list.rb +30 -15
  139. data/lib/chef/run_list/run_list_expansion.rb +41 -20
  140. data/lib/chef/run_list/run_list_item.rb +20 -6
  141. data/lib/chef/run_list/versioned_recipe_list.rb +68 -0
  142. data/lib/chef/runner.rb +7 -15
  143. data/lib/chef/search/query.rb +12 -7
  144. data/lib/chef/shef.rb +6 -7
  145. data/lib/chef/shef/shef_session.rb +40 -35
  146. data/lib/chef/shell_out.rb +22 -201
  147. data/lib/chef/shell_out/unix.rb +224 -0
  148. data/lib/chef/shell_out/windows.rb +95 -0
  149. data/lib/chef/solr_query.rb +187 -0
  150. data/lib/chef/solr_query/lucene.treetop +145 -0
  151. data/lib/chef/solr_query/lucene_nodes.rb +285 -0
  152. data/lib/chef/solr_query/query_transform.rb +65 -0
  153. data/lib/chef/solr_query/solr_http_request.rb +118 -0
  154. data/lib/chef/version.rb +4 -2
  155. data/lib/chef/version_class.rb +70 -0
  156. data/lib/chef/version_constraint.rb +116 -0
  157. metadata +68 -37
  158. data/lib/chef/cookbook/metadata/version.rb +0 -87
  159. data/lib/chef/knife/bluebox_images_list.rb +0 -54
  160. data/lib/chef/knife/bluebox_server_create.rb +0 -157
  161. data/lib/chef/knife/bluebox_server_delete.rb +0 -63
  162. data/lib/chef/knife/bluebox_server_list.rb +0 -59
  163. data/lib/chef/knife/ec2_instance_data.rb +0 -46
  164. data/lib/chef/knife/ec2_server_create.rb +0 -218
  165. data/lib/chef/knife/ec2_server_delete.rb +0 -87
  166. data/lib/chef/knife/ec2_server_list.rb +0 -89
  167. data/lib/chef/knife/rackspace_server_create.rb +0 -184
  168. data/lib/chef/knife/rackspace_server_delete.rb +0 -57
  169. data/lib/chef/knife/rackspace_server_list.rb +0 -59
  170. data/lib/chef/knife/slicehost_images_list.rb +0 -53
  171. data/lib/chef/knife/slicehost_server_create.rb +0 -103
  172. data/lib/chef/knife/slicehost_server_delete.rb +0 -61
  173. data/lib/chef/knife/slicehost_server_list.rb +0 -64
  174. data/lib/chef/knife/terremark_server_create.rb +0 -152
  175. data/lib/chef/knife/terremark_server_delete.rb +0 -87
  176. data/lib/chef/knife/terremark_server_list.rb +0 -77
  177. data/lib/chef/mixin/find_preferred_file.rb +0 -92
@@ -6,9 +6,9 @@
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
8
8
  # You may obtain a copy of the License at
9
- #
9
+ #
10
10
  # http://www.apache.org/licenses/LICENSE-2.0
11
- #
11
+ #
12
12
  # Unless required by applicable law or agreed to in writing, software
13
13
  # distributed under the License is distributed on an "AS IS" BASIS,
14
14
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -17,34 +17,30 @@
17
17
  #
18
18
 
19
19
  require 'chef/knife'
20
- require 'chef/json_compat'
21
- require 'tempfile'
22
- require 'erubis'
23
20
 
24
21
  class Chef
25
22
  class Knife
26
23
  class Bootstrap < Knife
27
24
 
25
+ deps do
26
+ require 'chef/json_compat'
27
+ require 'tempfile'
28
+ require 'erubis'
29
+ end
30
+
28
31
  banner "knife bootstrap FQDN [RUN LIST...] (options)"
29
32
 
30
33
  option :ssh_user,
31
34
  :short => "-x USERNAME",
32
35
  :long => "--ssh-user USERNAME",
33
36
  :description => "The ssh username",
34
- :default => "root"
37
+ :default => "root"
35
38
 
36
39
  option :ssh_password,
37
40
  :short => "-P PASSWORD",
38
41
  :long => "--ssh-password PASSWORD",
39
42
  :description => "The ssh password"
40
43
 
41
- option :ssh_port,
42
- :short => "-p PORT",
43
- :long => "--ssh-port PORT",
44
- :description => "The ssh port",
45
- :default => "22",
46
- :proc => Proc.new { |key| Chef::Config[:knife][:ssh_port] = key }
47
-
48
44
  option :identity_file,
49
45
  :short => "-i IDENTITY_FILE",
50
46
  :long => "--identity-file IDENTITY_FILE",
@@ -59,11 +55,6 @@ class Chef
59
55
  :long => "--prerelease",
60
56
  :description => "Install the pre-release chef gems"
61
57
 
62
- option :bootstrap_version,
63
- :long => "--bootstrap-version",
64
- :description => "The version of Chef to install",
65
- :proc => lambda { |v| Chef::Config[:bootstrap_version] = v }
66
-
67
58
  option :distro,
68
59
  :short => "-d DISTRO",
69
60
  :long => "--distro DISTRO",
@@ -84,12 +75,14 @@ class Chef
84
75
  :short => "-r RUN_LIST",
85
76
  :long => "--run-list RUN_LIST",
86
77
  :description => "Comma separated list of roles/recipes to apply",
87
- :proc => lambda { |o| o.split(",") },
78
+ :proc => lambda { |o| o.split(/[\s,]+/) },
88
79
  :default => []
89
80
 
90
- def h
91
- @highline ||= HighLine.new
92
- end
81
+ option :no_host_key_verify,
82
+ :long => "--no-host-key-verify",
83
+ :description => "Disable host key verification",
84
+ :boolean => true,
85
+ :default => false
93
86
 
94
87
  def load_template(template=nil)
95
88
  # Are we bootstrapping using an already shipped template?
@@ -108,12 +101,12 @@ class Chef
108
101
  end
109
102
 
110
103
  unless template
111
- Chef::Log.info("Can not find bootstrap definition for #{config[:distro]}")
104
+ ui.info("Can not find bootstrap definition for #{config[:distro]}")
112
105
  raise Errno::ENOENT
113
106
  end
114
107
 
115
108
  Chef::Log.debug("Found bootstrap template in #{File.dirname(template)}")
116
-
109
+
117
110
  IO.read(template).chomp
118
111
  end
119
112
 
@@ -124,16 +117,18 @@ class Chef
124
117
  Erubis::Eruby.new(template).evaluate(context)
125
118
  end
126
119
 
127
- def run
120
+ def run
128
121
  require 'highline'
122
+ require 'net/ssh'
129
123
 
130
124
  validate_name_args!
125
+ @node_name = Array(@name_args).first
126
+ # back compat--templates may use this setting:
127
+ config[:server_name] = @node_name
131
128
 
132
129
  $stdout.sync = true
133
130
 
134
- Chef::Log.info("Bootstrapping Chef on #{h.color(config[:server_name], :bold)}")
135
-
136
- knife_ssh.load_late_dependencies
131
+ ui.info("Bootstrapping Chef on #{ui.color(@node_name, :bold)}")
137
132
 
138
133
  begin
139
134
  knife_ssh.run
@@ -147,7 +142,7 @@ class Chef
147
142
 
148
143
  def validate_name_args!
149
144
  if Array(@name_args).first.nil?
150
- Chef::Log.error("Must pass an FQDN or ip to bootstrap")
145
+ ui.error("Must pass an FQDN or ip to bootstrap")
151
146
  exit 1
152
147
  end
153
148
  end
@@ -159,11 +154,11 @@ class Chef
159
154
  def knife_ssh
160
155
  ssh = Chef::Knife::Ssh.new
161
156
  ssh.name_args = [ server_name, ssh_command ]
162
- ssh.config[:ssh_user] = config[:ssh_user]
157
+ ssh.config[:ssh_user] = config[:ssh_user]
163
158
  ssh.config[:ssh_password] = config[:ssh_password]
164
- ssh.config[:ssh_port] = Chef::Config[:knife][:ssh_port] || config[:ssh_port]
165
159
  ssh.config[:identity_file] = config[:identity_file]
166
160
  ssh.config[:manual] = true
161
+ ssh.config[:no_host_key_verify] = config[:no_host_key_verify]
167
162
  ssh
168
163
  end
169
164
 
@@ -184,36 +179,7 @@ class Chef
184
179
  command
185
180
  end
186
181
 
187
- module TemplateHelper
188
-
189
- #
190
- # == Chef::Knife::Bootstrap::TemplateHelper
191
- #
192
- # The methods in the TemplateHelper module expect to have access to
193
- # the instance varialbles set above as part of the context in the
194
- # Chef::Knife::Bootstrap#render_context method. Those instance
195
- # variables are:
196
- #
197
- # * @config - a hash of knife's config values
198
- # * @run_list - the run list for the node to boostrap
199
- #
200
-
201
- ::Erubis::Context.send(:include, Chef::Knife::Bootstrap::TemplateHelper)
202
-
203
- def bootstrap_version_string(type=nil)
204
- version = Chef::Config[:bootstrap_version] || Chef::VERSION
205
- case type
206
- when :gems
207
- if @config[:prerelease]
208
- "--prerelease"
209
- else
210
- "--version #{version}"
211
- end
212
- else
213
- version
214
- end
215
- end
216
- end
217
182
  end
218
183
  end
219
184
  end
185
+
@@ -3,8 +3,7 @@ if [ ! -f /usr/bin/chef-client ]; then
3
3
  pacman -Syy
4
4
  pacman -S --noconfirm ruby ntp base-devel
5
5
  ntpdate -u pool.ntp.org
6
- gem install ohai --no-rdoc --no-ri --verbose
7
- gem install chef --no-rdoc --no-ri --verbose <%= bootstrap_version_string(:gems) %>
6
+ gem install ohai chef --no-rdoc --no-ri --verbose <%= '--prerelease' if @config[:prerelease] %>
8
7
  fi
9
8
 
10
9
  mkdir -p /etc/chef
@@ -27,6 +26,9 @@ validation_client_name "<%= Chef::Config[:validation_client_name] %>"
27
26
  <% else %>
28
27
  node_name "<%= @config[:chef_node_name] %>"
29
28
  <% end %>
29
+ <% if Chef::Config[:environment] != nil %>
30
+ environment "<%= Chef::Config[:environment]%>"
31
+ <% end %>
30
32
  # ArchLinux follows the Filesystem Hierarchy Standard
31
33
  file_cache_path "/var/cache/chef"
32
34
  file_backup_path "/var/lib/chef/backup"
@@ -1,21 +1,12 @@
1
1
  bash -c '
2
- if [ ! -f /usr/bin/chef-client ]; then
3
- rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
4
- rpm -Uvh http://download.elff.bravenet.com/5/i386/elff-release-5-3.noarch.rpm
2
+ rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
3
+ rpm -Uvh http://download.elff.bravenet.com/5/i386/elff-release-5-3.noarch.rpm
5
4
 
6
- yum install -y ruby ruby-devel gcc gcc-c++ automake autoconf make
7
-
8
- cd /tmp
9
- wget http://production.cf.rubygems.org/rubygems/rubygems-1.3.7.tgz
10
- tar zxf rubygems-1.3.7.tgz
11
- cd rubygems-1.3.7
12
- ruby setup.rb --no-format-executable
13
- fi
5
+ yum install -q -y ruby ruby-devel gcc gcc-c++ automake autoconf rubygems make
14
6
 
15
7
  gem update --system
16
8
  gem update
17
- gem install ohai --no-rdoc --no-ri --verbose
18
- gem install chef --no-rdoc --no-ri --verbose <%= bootstrap_version_string(:gems) %>
9
+ gem install ohai chef --no-rdoc --no-ri --verbose <%= '--prerelease' if @config[:prerelease] %>
19
10
 
20
11
  mkdir -p /etc/chef
21
12
 
@@ -34,10 +25,10 @@ log_location STDOUT
34
25
  chef_server_url "<%= Chef::Config[:chef_server_url] %>"
35
26
  validation_client_name "<%= Chef::Config[:validation_client_name] %>"
36
27
  <% if @config[:chef_node_name] == nil %>
37
- # Using default node name (fqdn)
28
+ # Using default node name"
38
29
  <% else %>
39
30
  node_name "<%= @config[:chef_node_name] %>"
40
- <% end %>
31
+ <% end %>
41
32
  EOP
42
33
  ) > /etc/chef/client.rb
43
34
 
@@ -1,10 +1,9 @@
1
1
  bash -c '
2
- yum install -y ruby ruby-devel gcc gcc-c++ automake autoconf rubygems make
2
+ yum install -q -y ruby ruby-devel gcc gcc-c++ automake autoconf rubygems make
3
3
 
4
4
  gem update --system
5
5
  gem update
6
- gem install ohai --no-rdoc --no-ri --verbose
7
- gem install chef --no-rdoc --no-ri --verbose <%= bootstrap_version_string(:gems) %>
6
+ gem install ohai chef --no-rdoc --no-ri --verbose <%= '--prerelease' if @config[:prerelease] %>
8
7
 
9
8
  mkdir -p /etc/chef
10
9
 
@@ -26,7 +25,7 @@ validation_client_name "<%= Chef::Config[:validation_client_name] %>"
26
25
  # Using default node name"
27
26
  <% else %>
28
27
  node_name "<%= @config[:chef_node_name] %>"
29
- <% end %>
28
+ <% end %>
30
29
  EOP
31
30
  ) > /etc/chef/client.rb
32
31
 
@@ -1,6 +1,6 @@
1
1
  bash -c '
2
2
  if [ ! -f /usr/bin/chef-client ]; then
3
- echo "chef chef/chef_server_url string <%= Chef::Config[:chef_server_url] %>" | debconf-set-selections
3
+ echo "chef chef/chef_server_url string <%= Chef::Config[:chef_server_url] %>" | debconf-set-selections
4
4
  [ -f /etc/apt/sources.list.d/opscode.list ] || echo "deb http://apt.opscode.com lucid main" > /etc/apt/sources.list.d/opscode.list
5
5
  wget -O- http://apt.opscode.com/packages@opscode.com.gpg.key | apt-key add -
6
6
  fi
@@ -21,7 +21,7 @@ rm /tmp/validation.pem
21
21
 
22
22
  <% if @config[:chef_node_name] %>
23
23
  [ `grep -qx "node_name \"<%= @config[:chef_node_name] %>\"" /etc/chef/client.rb` ] || echo "node_name \"<%= @config[:chef_node_name] %>\"" >> /etc/chef/client.rb
24
- <% end -%>
24
+ <% end -%>
25
25
 
26
26
  (
27
27
  cat <<'EOP'
@@ -8,9 +8,7 @@ if [ ! -f /usr/bin/chef-client ]; then
8
8
  cd rubygems-1.3.7
9
9
  ruby setup.rb --no-format-executable
10
10
  fi
11
-
12
- gem install ohai --no-rdoc --no-ri --verbose
13
- gem install chef --no-rdoc --no-ri --verbose <%= bootstrap_version_string(:gems) %>
11
+ gem install ohai chef --no-rdoc --no-ri --verbose <%= '--prerelease' if @config[:prerelease] %>
14
12
 
15
13
  mkdir -p /etc/chef
16
14
 
@@ -29,10 +27,13 @@ log_location STDOUT
29
27
  chef_server_url "<%= Chef::Config[:chef_server_url] %>"
30
28
  validation_client_name "<%= Chef::Config[:validation_client_name] %>"
31
29
  <% if @config[:chef_node_name] == nil %>
32
- # Using default node name (fqdn)
30
+ # Using default node name"
33
31
  <% else %>
34
32
  node_name "<%= @config[:chef_node_name] %>"
35
- <% end %>
33
+ <% end %>
34
+ <% if Chef::Config[:environment] != nil %>
35
+ environment "<%= Chef::Config[:environment]%>"
36
+ <% end %>
36
37
  EOP
37
38
  ) > /etc/chef/client.rb
38
39
 
@@ -17,18 +17,21 @@
17
17
  #
18
18
 
19
19
  require 'chef/knife'
20
- require 'chef/api_client'
21
- require 'chef/json_compat'
22
20
 
23
21
  class Chef
24
22
  class Knife
25
23
  class ClientBulkDelete < Knife
26
24
 
25
+ deps do
26
+ require 'chef/api_client'
27
+ require 'chef/json_compat'
28
+ end
29
+
27
30
  banner "knife client bulk delete REGEX (options)"
28
31
 
29
32
  def run
30
33
  if @name_args.length < 1
31
- Chef::Log.fatal("You must supply a regular expression to match the results against")
34
+ ui.fatal("You must supply a regular expression to match the results against")
32
35
  exit 42
33
36
  else
34
37
  bulk_delete(Chef::ApiClient, "client", nil, nil, @name_args[0])
@@ -6,9 +6,9 @@
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
8
8
  # You may obtain a copy of the License at
9
- #
9
+ #
10
10
  # http://www.apache.org/licenses/LICENSE-2.0
11
- #
11
+ #
12
12
  # Unless required by applicable law or agreed to in writing, software
13
13
  # distributed under the License is distributed on an "AS IS" BASIS,
14
14
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -17,18 +17,21 @@
17
17
  #
18
18
 
19
19
  require 'chef/knife'
20
- require 'chef/api_client'
21
- require 'chef/json_compat'
22
20
 
23
21
  class Chef
24
22
  class Knife
25
23
  class ClientCreate < Knife
26
24
 
25
+ deps do
26
+ require 'chef/api_client'
27
+ require 'chef/json_compat'
28
+ end
29
+
27
30
  option :file,
28
31
  :short => "-f FILE",
29
32
  :long => "--file FILE",
30
33
  :description => "Write the key to a file"
31
-
34
+
32
35
  option :admin,
33
36
  :short => "-a",
34
37
  :long => "--admin",
@@ -42,20 +45,20 @@ class Chef
42
45
 
43
46
  if @client_name.nil?
44
47
  show_usage
45
- Chef::Log.fatal("You must specify a client name")
48
+ ui.fatal("You must specify a client name")
46
49
  exit 1
47
50
  end
48
-
51
+
49
52
  client = Chef::ApiClient.new
50
53
  client.name(@client_name)
51
54
  client.admin(config[:admin])
52
-
55
+
53
56
  output = edit_data(client)
54
57
 
55
58
  key = output.save
56
59
 
57
- Chef::Log.info("Created (or updated) #{output}")
58
-
60
+ ui.info("Created (or updated) #{output}")
61
+
59
62
  if config[:file]
60
63
  File.open(config[:file], "w") do |f|
61
64
  f.print(key['private_key'])
@@ -6,9 +6,9 @@
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
8
8
  # You may obtain a copy of the License at
9
- #
9
+ #
10
10
  # http://www.apache.org/licenses/LICENSE-2.0
11
- #
11
+ #
12
12
  # Unless required by applicable law or agreed to in writing, software
13
13
  # distributed under the License is distributed on an "AS IS" BASIS,
14
14
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -17,24 +17,27 @@
17
17
  #
18
18
 
19
19
  require 'chef/knife'
20
- require 'chef/api_client'
21
- require 'chef/json_compat'
22
20
 
23
21
  class Chef
24
22
  class Knife
25
23
  class ClientDelete < Knife
26
24
 
25
+ deps do
26
+ require 'chef/api_client'
27
+ require 'chef/json_compat'
28
+ end
29
+
27
30
  banner "knife client delete CLIENT (options)"
28
31
 
29
- def run
32
+ def run
30
33
  @client_name = @name_args[0]
31
34
 
32
35
  if @client_name.nil?
33
36
  show_usage
34
- Chef::Log.fatal("You must specify a client name")
37
+ ui.fatal("You must specify a client name")
35
38
  exit 1
36
39
  end
37
-
40
+
38
41
  delete_object(Chef::ApiClient, @client_name)
39
42
  end
40
43
 
@@ -6,9 +6,9 @@
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
8
8
  # You may obtain a copy of the License at
9
- #
9
+ #
10
10
  # http://www.apache.org/licenses/LICENSE-2.0
11
- #
11
+ #
12
12
  # Unless required by applicable law or agreed to in writing, software
13
13
  # distributed under the License is distributed on an "AS IS" BASIS,
14
14
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -17,13 +17,16 @@
17
17
  #
18
18
 
19
19
  require 'chef/knife'
20
- require 'chef/api_client'
21
- require 'chef/json_compat'
22
20
 
23
21
  class Chef
24
22
  class Knife
25
23
  class ClientEdit < Knife
26
24
 
25
+ deps do
26
+ require 'chef/api_client'
27
+ require 'chef/json_compat'
28
+ end
29
+
27
30
  banner "knife client edit CLIENT (options)"
28
31
 
29
32
  def run
@@ -31,10 +34,10 @@ class Chef
31
34
 
32
35
  if @client_name.nil?
33
36
  show_usage
34
- Chef::Log.fatal("You must specify a client name")
37
+ ui.fatal("You must specify a client name")
35
38
  exit 1
36
39
  end
37
-
40
+
38
41
  edit_object(Chef::ApiClient, @client_name)
39
42
  end
40
43
  end