mbailey-chef 0.9.12.1
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.
- data/LICENSE +201 -0
- data/README.rdoc +172 -0
- data/bin/chef-client +26 -0
- data/bin/chef-solo +25 -0
- data/bin/knife +26 -0
- data/bin/shef +34 -0
- data/distro/README +2 -0
- data/distro/common/man/man1/chef-indexer.1 +42 -0
- data/distro/common/man/man1/chef-server-webui.1 +106 -0
- data/distro/common/man/man1/chef-server.1 +107 -0
- data/distro/common/man/man1/chef-solr-indexer.1 +55 -0
- data/distro/common/man/man1/chef-solr.1 +55 -0
- data/distro/common/man/man8/chef-client.8 +63 -0
- data/distro/common/man/man8/chef-solo.8 +57 -0
- data/distro/common/man/man8/chef-solr-rebuild.8 +37 -0
- data/distro/common/man/man8/knife.8 +1349 -0
- data/distro/common/man/man8/shef.8 +45 -0
- data/distro/common/markdown/README +3 -0
- data/distro/common/markdown/knife.mkd +832 -0
- data/distro/debian/etc/default/chef-client +4 -0
- data/distro/debian/etc/default/chef-server +9 -0
- data/distro/debian/etc/default/chef-server-webui +9 -0
- data/distro/debian/etc/default/chef-solr +7 -0
- data/distro/debian/etc/default/chef-solr-indexer +7 -0
- data/distro/debian/etc/init/chef-client.conf +17 -0
- data/distro/debian/etc/init/chef-server-webui.conf +17 -0
- data/distro/debian/etc/init/chef-server.conf +17 -0
- data/distro/debian/etc/init/chef-solr-indexer.conf +17 -0
- data/distro/debian/etc/init/chef-solr.conf +17 -0
- data/distro/debian/etc/init.d/chef-client +175 -0
- data/distro/debian/etc/init.d/chef-server +122 -0
- data/distro/debian/etc/init.d/chef-server-webui +123 -0
- data/distro/debian/etc/init.d/chef-solr +177 -0
- data/distro/debian/etc/init.d/chef-solr-indexer +176 -0
- data/distro/redhat/etc/init.d/chef-client +106 -0
- data/distro/redhat/etc/init.d/chef-server +112 -0
- data/distro/redhat/etc/init.d/chef-server-webui +112 -0
- data/distro/redhat/etc/init.d/chef-solr +104 -0
- data/distro/redhat/etc/init.d/chef-solr-indexer +104 -0
- data/distro/redhat/etc/logrotate.d/chef-client +8 -0
- data/distro/redhat/etc/logrotate.d/chef-server +8 -0
- data/distro/redhat/etc/logrotate.d/chef-server-webui +8 -0
- data/distro/redhat/etc/logrotate.d/chef-solr +8 -0
- data/distro/redhat/etc/logrotate.d/chef-solr-indexer +8 -0
- data/distro/redhat/etc/sysconfig/chef-client +15 -0
- data/distro/redhat/etc/sysconfig/chef-server +14 -0
- data/distro/redhat/etc/sysconfig/chef-server-webui +14 -0
- data/distro/redhat/etc/sysconfig/chef-solr +8 -0
- data/distro/redhat/etc/sysconfig/chef-solr-indexer +7 -0
- data/lib/chef/api_client.rb +264 -0
- data/lib/chef/application/agent.rb +18 -0
- data/lib/chef/application/client.rb +246 -0
- data/lib/chef/application/knife.rb +171 -0
- data/lib/chef/application/solo.rb +215 -0
- data/lib/chef/application.rb +127 -0
- data/lib/chef/applications.rb +4 -0
- data/lib/chef/certificate.rb +194 -0
- data/lib/chef/checksum.rb +182 -0
- data/lib/chef/checksum_cache.rb +173 -0
- data/lib/chef/client.rb +304 -0
- data/lib/chef/config.rb +240 -0
- data/lib/chef/cookbook/cookbook_collection.rb +44 -0
- data/lib/chef/cookbook/file_system_file_vendor.rb +54 -0
- data/lib/chef/cookbook/file_vendor.rb +48 -0
- data/lib/chef/cookbook/metadata/version.rb +87 -0
- data/lib/chef/cookbook/metadata.rb +500 -0
- data/lib/chef/cookbook/remote_file_vendor.rb +87 -0
- data/lib/chef/cookbook/syntax_check.rb +136 -0
- data/lib/chef/cookbook_loader.rb +227 -0
- data/lib/chef/cookbook_site_streaming_uploader.rb +244 -0
- data/lib/chef/cookbook_uploader.rb +103 -0
- data/lib/chef/cookbook_version.rb +930 -0
- data/lib/chef/couchdb.rb +239 -0
- data/lib/chef/daemon.rb +172 -0
- data/lib/chef/data_bag.rb +215 -0
- data/lib/chef/data_bag_item.rb +228 -0
- data/lib/chef/exceptions.rb +66 -0
- data/lib/chef/file_access_control.rb +140 -0
- data/lib/chef/file_cache.rb +218 -0
- data/lib/chef/handler/json_file.rb +58 -0
- data/lib/chef/handler.rb +206 -0
- data/lib/chef/index_queue/amqp_client.rb +113 -0
- data/lib/chef/index_queue/consumer.rb +76 -0
- data/lib/chef/index_queue/indexable.rb +76 -0
- data/lib/chef/index_queue.rb +29 -0
- data/lib/chef/knife/bootstrap/archlinux-gems.erb +44 -0
- data/lib/chef/knife/bootstrap/centos5-gems.erb +41 -0
- data/lib/chef/knife/bootstrap/client-install.vbs +80 -0
- data/lib/chef/knife/bootstrap/fedora13-gems.erb +38 -0
- data/lib/chef/knife/bootstrap/ubuntu10.04-apt.erb +32 -0
- data/lib/chef/knife/bootstrap/ubuntu10.04-gems.erb +43 -0
- data/lib/chef/knife/bootstrap/windows-gems.erb +34 -0
- data/lib/chef/knife/bootstrap.rb +181 -0
- data/lib/chef/knife/client_bulk_delete.rb +40 -0
- data/lib/chef/knife/client_create.rb +70 -0
- data/lib/chef/knife/client_delete.rb +45 -0
- data/lib/chef/knife/client_edit.rb +45 -0
- data/lib/chef/knife/client_list.rb +40 -0
- data/lib/chef/knife/client_reregister.rb +56 -0
- data/lib/chef/knife/client_show.rb +50 -0
- data/lib/chef/knife/configure.rb +140 -0
- data/lib/chef/knife/configure_client.rb +52 -0
- data/lib/chef/knife/cookbook_bulk_delete.rb +58 -0
- data/lib/chef/knife/cookbook_create.rb +209 -0
- data/lib/chef/knife/cookbook_delete.rb +143 -0
- data/lib/chef/knife/cookbook_download.rb +130 -0
- data/lib/chef/knife/cookbook_list.rb +41 -0
- data/lib/chef/knife/cookbook_metadata.rb +82 -0
- data/lib/chef/knife/cookbook_metadata_from_file.rb +40 -0
- data/lib/chef/knife/cookbook_show.rb +98 -0
- data/lib/chef/knife/cookbook_site_download.rb +58 -0
- data/lib/chef/knife/cookbook_site_list.rb +56 -0
- data/lib/chef/knife/cookbook_site_search.rb +51 -0
- data/lib/chef/knife/cookbook_site_share.rb +109 -0
- data/lib/chef/knife/cookbook_site_show.rb +57 -0
- data/lib/chef/knife/cookbook_site_unshare.rb +52 -0
- data/lib/chef/knife/cookbook_site_vendor.rb +133 -0
- data/lib/chef/knife/cookbook_test.rb +82 -0
- data/lib/chef/knife/cookbook_upload.rb +95 -0
- data/lib/chef/knife/data_bag_create.rb +59 -0
- data/lib/chef/knife/data_bag_delete.rb +48 -0
- data/lib/chef/knife/data_bag_edit.rb +50 -0
- data/lib/chef/knife/data_bag_from_file.rb +44 -0
- data/lib/chef/knife/data_bag_list.rb +43 -0
- data/lib/chef/knife/data_bag_show.rb +41 -0
- data/lib/chef/knife/ec2_instance_data.rb +46 -0
- data/lib/chef/knife/ec2_server_create.rb +216 -0
- data/lib/chef/knife/ec2_server_delete.rb +90 -0
- data/lib/chef/knife/ec2_server_list.rb +88 -0
- data/lib/chef/knife/exec.rb +52 -0
- data/lib/chef/knife/index_rebuild.rb +51 -0
- data/lib/chef/knife/node_bulk_delete.rb +43 -0
- data/lib/chef/knife/node_create.rb +47 -0
- data/lib/chef/knife/node_delete.rb +44 -0
- data/lib/chef/knife/node_edit.rb +44 -0
- data/lib/chef/knife/node_from_file.rb +42 -0
- data/lib/chef/knife/node_list.rb +41 -0
- data/lib/chef/knife/node_run_list_add.rb +64 -0
- data/lib/chef/knife/node_run_list_remove.rb +45 -0
- data/lib/chef/knife/node_show.rb +54 -0
- data/lib/chef/knife/rackspace_server_create.rb +156 -0
- data/lib/chef/knife/rackspace_server_delete.rb +57 -0
- data/lib/chef/knife/rackspace_server_list.rb +59 -0
- data/lib/chef/knife/recipe_list.rb +32 -0
- data/lib/chef/knife/role_bulk_delete.rb +44 -0
- data/lib/chef/knife/role_create.rb +52 -0
- data/lib/chef/knife/role_delete.rb +44 -0
- data/lib/chef/knife/role_edit.rb +45 -0
- data/lib/chef/knife/role_from_file.rb +46 -0
- data/lib/chef/knife/role_list.rb +40 -0
- data/lib/chef/knife/role_show.rb +51 -0
- data/lib/chef/knife/search.rb +94 -0
- data/lib/chef/knife/slicehost_images_list.rb +53 -0
- data/lib/chef/knife/slicehost_server_create.rb +103 -0
- data/lib/chef/knife/slicehost_server_delete.rb +61 -0
- data/lib/chef/knife/slicehost_server_list.rb +64 -0
- data/lib/chef/knife/ssh.rb +328 -0
- data/lib/chef/knife/status.rb +87 -0
- data/lib/chef/knife/terremark_server_create.rb +152 -0
- data/lib/chef/knife/terremark_server_delete.rb +87 -0
- data/lib/chef/knife/terremark_server_list.rb +77 -0
- data/lib/chef/knife/windows_bootstrap.rb +154 -0
- data/lib/chef/knife.rb +522 -0
- data/lib/chef/log.rb +61 -0
- data/lib/chef/mixin/check_helper.rb +31 -0
- data/lib/chef/mixin/checksum.rb +32 -0
- data/lib/chef/mixin/command/unix.rb +215 -0
- data/lib/chef/mixin/command/windows.rb +72 -0
- data/lib/chef/mixin/command.rb +220 -0
- data/lib/chef/mixin/convert_to_class_name.rb +63 -0
- data/lib/chef/mixin/create_path.rb +56 -0
- data/lib/chef/mixin/deep_merge.rb +225 -0
- data/lib/chef/mixin/deprecation.rb +65 -0
- data/lib/chef/mixin/find_preferred_file.rb +92 -0
- data/lib/chef/mixin/from_file.rb +50 -0
- data/lib/chef/mixin/language.rb +156 -0
- data/lib/chef/mixin/language_include_attribute.rb +61 -0
- data/lib/chef/mixin/language_include_recipe.rb +52 -0
- data/lib/chef/mixin/params_validate.rb +225 -0
- data/lib/chef/mixin/recipe_definition_dsl_core.rb +81 -0
- data/lib/chef/mixin/shell_out.rb +38 -0
- data/lib/chef/mixin/template.rb +95 -0
- data/lib/chef/mixin/xml_escape.rb +140 -0
- data/lib/chef/mixins.rb +16 -0
- data/lib/chef/monkey_patches/dir.rb +36 -0
- data/lib/chef/monkey_patches/string.rb +28 -0
- data/lib/chef/monkey_patches/tempfile.rb +64 -0
- data/lib/chef/node/attribute.rb +465 -0
- data/lib/chef/node.rb +601 -0
- data/lib/chef/openid_registration.rb +187 -0
- data/lib/chef/platform.rb +371 -0
- data/lib/chef/provider/breakpoint.rb +36 -0
- data/lib/chef/provider/cookbook_file.rb +100 -0
- data/lib/chef/provider/cron/solaris.rb +195 -0
- data/lib/chef/provider/cron.rb +186 -0
- data/lib/chef/provider/deploy/revision.rb +73 -0
- data/lib/chef/provider/deploy/timestamped.rb +33 -0
- data/lib/chef/provider/deploy.rb +319 -0
- data/lib/chef/provider/directory.rb +72 -0
- data/lib/chef/provider/env/windows.rb +75 -0
- data/lib/chef/provider/env.rb +152 -0
- data/lib/chef/provider/erl_call.rb +72 -0
- data/lib/chef/provider/execute.rb +58 -0
- data/lib/chef/provider/file.rb +213 -0
- data/lib/chef/provider/git.rb +211 -0
- data/lib/chef/provider/group/dscl.rb +121 -0
- data/lib/chef/provider/group/gpasswd.rb +53 -0
- data/lib/chef/provider/group/groupadd.rb +78 -0
- data/lib/chef/provider/group/pw.rb +84 -0
- data/lib/chef/provider/group/usermod.rb +57 -0
- data/lib/chef/provider/group/windows.rb +79 -0
- data/lib/chef/provider/group.rb +133 -0
- data/lib/chef/provider/http_request.rb +122 -0
- data/lib/chef/provider/ifconfig.rb +132 -0
- data/lib/chef/provider/link.rb +161 -0
- data/lib/chef/provider/log.rb +54 -0
- data/lib/chef/provider/mdadm.rb +91 -0
- data/lib/chef/provider/mount/mount.rb +232 -0
- data/lib/chef/provider/mount/windows.rb +80 -0
- data/lib/chef/provider/mount.rb +117 -0
- data/lib/chef/provider/ohai.rb +41 -0
- data/lib/chef/provider/package/apt.rb +110 -0
- data/lib/chef/provider/package/dpkg.rb +112 -0
- data/lib/chef/provider/package/easy_install.rb +114 -0
- data/lib/chef/provider/package/freebsd.rb +123 -0
- data/lib/chef/provider/package/macports.rb +105 -0
- data/lib/chef/provider/package/pacman.rb +101 -0
- data/lib/chef/provider/package/portage.rb +124 -0
- data/lib/chef/provider/package/rpm.rb +101 -0
- data/lib/chef/provider/package/rubygems.rb +462 -0
- data/lib/chef/provider/package/solaris.rb +127 -0
- data/lib/chef/provider/package/yum-dump.py +128 -0
- data/lib/chef/provider/package/yum.rb +222 -0
- data/lib/chef/provider/package/zypper.rb +133 -0
- data/lib/chef/provider/package.rb +160 -0
- data/lib/chef/provider/remote_directory.rb +140 -0
- data/lib/chef/provider/remote_file.rb +120 -0
- data/lib/chef/provider/route.rb +195 -0
- data/lib/chef/provider/ruby_block.rb +33 -0
- data/lib/chef/provider/script.rb +55 -0
- data/lib/chef/provider/service/arch.rb +109 -0
- data/lib/chef/provider/service/debian.rb +105 -0
- data/lib/chef/provider/service/freebsd.rb +156 -0
- data/lib/chef/provider/service/gentoo.rb +54 -0
- data/lib/chef/provider/service/init.rb +71 -0
- data/lib/chef/provider/service/redhat.rb +60 -0
- data/lib/chef/provider/service/simple.rb +118 -0
- data/lib/chef/provider/service/solaris.rb +85 -0
- data/lib/chef/provider/service/upstart.rb +192 -0
- data/lib/chef/provider/service/windows.rb +129 -0
- data/lib/chef/provider/service.rb +128 -0
- data/lib/chef/provider/subversion.rb +159 -0
- data/lib/chef/provider/template.rb +105 -0
- data/lib/chef/provider/user/dscl.rb +280 -0
- data/lib/chef/provider/user/pw.rb +113 -0
- data/lib/chef/provider/user/useradd.rb +137 -0
- data/lib/chef/provider/user/windows.rb +124 -0
- data/lib/chef/provider/user.rb +187 -0
- data/lib/chef/provider.rb +124 -0
- data/lib/chef/providers.rb +91 -0
- data/lib/chef/recipe.rb +130 -0
- data/lib/chef/resource/apt_package.rb +34 -0
- data/lib/chef/resource/bash.rb +33 -0
- data/lib/chef/resource/breakpoint.rb +35 -0
- data/lib/chef/resource/cookbook_file.rb +45 -0
- data/lib/chef/resource/cron.rb +188 -0
- data/lib/chef/resource/csh.rb +33 -0
- data/lib/chef/resource/deploy.rb +371 -0
- data/lib/chef/resource/deploy_revision.rb +35 -0
- data/lib/chef/resource/directory.rb +76 -0
- data/lib/chef/resource/dpkg_package.rb +34 -0
- data/lib/chef/resource/easy_install_package.rb +41 -0
- data/lib/chef/resource/env.rb +58 -0
- data/lib/chef/resource/erl_call.rb +83 -0
- data/lib/chef/resource/execute.rb +127 -0
- data/lib/chef/resource/file.rb +92 -0
- data/lib/chef/resource/freebsd_package.rb +35 -0
- data/lib/chef/resource/gem_package.rb +49 -0
- data/lib/chef/resource/git.rb +36 -0
- data/lib/chef/resource/group.rb +70 -0
- data/lib/chef/resource/http_request.rb +61 -0
- data/lib/chef/resource/ifconfig.rb +134 -0
- data/lib/chef/resource/link.rb +78 -0
- data/lib/chef/resource/log.rb +62 -0
- data/lib/chef/resource/macports_package.rb +29 -0
- data/lib/chef/resource/mdadm.rb +82 -0
- data/lib/chef/resource/mount.rb +135 -0
- data/lib/chef/resource/ohai.rb +40 -0
- data/lib/chef/resource/package.rb +80 -0
- data/lib/chef/resource/pacman_package.rb +33 -0
- data/lib/chef/resource/perl.rb +33 -0
- data/lib/chef/resource/portage_package.rb +33 -0
- data/lib/chef/resource/python.rb +33 -0
- data/lib/chef/resource/remote_directory.rb +109 -0
- data/lib/chef/resource/remote_file.rb +83 -0
- data/lib/chef/resource/route.rb +135 -0
- data/lib/chef/resource/rpm_package.rb +34 -0
- data/lib/chef/resource/ruby.rb +33 -0
- data/lib/chef/resource/ruby_block.rb +40 -0
- data/lib/chef/resource/scm.rb +146 -0
- data/lib/chef/resource/script.rb +60 -0
- data/lib/chef/resource/service.rb +160 -0
- data/lib/chef/resource/solaris_package.rb +36 -0
- data/lib/chef/resource/subversion.rb +36 -0
- data/lib/chef/resource/template.rb +69 -0
- data/lib/chef/resource/timestamped_deploy.rb +31 -0
- data/lib/chef/resource/user.rb +130 -0
- data/lib/chef/resource/yum_package.rb +43 -0
- data/lib/chef/resource.rb +523 -0
- data/lib/chef/resource_collection/stepable_iterator.rb +124 -0
- data/lib/chef/resource_collection.rb +217 -0
- data/lib/chef/resource_definition.rb +67 -0
- data/lib/chef/resource_definition_list.rb +38 -0
- data/lib/chef/resources.rb +64 -0
- data/lib/chef/rest/auth_credentials.rb +78 -0
- data/lib/chef/rest/cookie_jar.rb +31 -0
- data/lib/chef/rest/rest_request.rb +188 -0
- data/lib/chef/rest.rb +394 -0
- data/lib/chef/role.rb +287 -0
- data/lib/chef/run_context.rb +110 -0
- data/lib/chef/run_list/run_list_expansion.rb +172 -0
- data/lib/chef/run_list/run_list_item.rb +78 -0
- data/lib/chef/run_list.rb +150 -0
- data/lib/chef/run_status.rb +121 -0
- data/lib/chef/runner.rb +107 -0
- data/lib/chef/sandbox.rb +153 -0
- data/lib/chef/search/query.rb +60 -0
- data/lib/chef/shef/ext.rb +568 -0
- data/lib/chef/shef/model_wrapper.rb +120 -0
- data/lib/chef/shef/shef_rest.rb +28 -0
- data/lib/chef/shef/shef_session.rb +271 -0
- data/lib/chef/shef.rb +325 -0
- data/lib/chef/shell_out.rb +413 -0
- data/lib/chef/streaming_cookbook_uploader.rb +201 -0
- data/lib/chef/tasks/chef_repo.rake +256 -0
- data/lib/chef/util/file_edit.rb +122 -0
- data/lib/chef/util/windows/net_group.rb +101 -0
- data/lib/chef/util/windows/net_use.rb +121 -0
- data/lib/chef/util/windows/net_user.rb +198 -0
- data/lib/chef/util/windows/volume.rb +59 -0
- data/lib/chef/util/windows.rb +56 -0
- data/lib/chef/version.rb +21 -0
- data/lib/chef/webui_user.rb +231 -0
- data/lib/chef.rb +39 -0
- metadata +533 -0
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Author:: Bryan McLellan (btm@loftninjas.org), Jesse Nelson (spheromak@gmail.com)
|
|
3
|
+
# Copyright:: Copyright (c) 2009 Bryan McLellan
|
|
4
|
+
# License:: Apache License, Version 2.0
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
# you may not use this file except in compliance with the License.
|
|
8
|
+
# You may obtain a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
# See the License for the specific language governing permissions and
|
|
16
|
+
# limitations under the License.
|
|
17
|
+
#
|
|
18
|
+
|
|
19
|
+
require 'chef/log'
|
|
20
|
+
require 'chef/mixin/command'
|
|
21
|
+
require 'chef/provider'
|
|
22
|
+
require 'ipaddr'
|
|
23
|
+
|
|
24
|
+
class Chef::Provider::Route < Chef::Provider
|
|
25
|
+
include Chef::Mixin::Command
|
|
26
|
+
|
|
27
|
+
attr_accessor :is_running
|
|
28
|
+
|
|
29
|
+
MASK = {'0.0.0.0' => '0',
|
|
30
|
+
'128.0.0.0' => '1',
|
|
31
|
+
'192.0.0.0' => '2',
|
|
32
|
+
'224.0.0.0' => '3',
|
|
33
|
+
'240.0.0.0' => '4',
|
|
34
|
+
'248.0.0.0' => '5',
|
|
35
|
+
'252.0.0.0' => '6',
|
|
36
|
+
'254.0.0.0' => '7',
|
|
37
|
+
'255.0.0.0' => '8',
|
|
38
|
+
'255.128.0.0' => '9',
|
|
39
|
+
'255.192.0.0' => '10',
|
|
40
|
+
'255.224.0.0' => '11',
|
|
41
|
+
'255.240.0.0' => '12',
|
|
42
|
+
'255.248.0.0' => '13',
|
|
43
|
+
'255.252.0.0' => '14',
|
|
44
|
+
'255.254.0.0' => '15',
|
|
45
|
+
'255.255.0.0' => '16',
|
|
46
|
+
'255.255.128.0' => '17',
|
|
47
|
+
'255.255.192.0' => '18',
|
|
48
|
+
'255.255.224.0' => '19',
|
|
49
|
+
'255.255.240.0' => '20',
|
|
50
|
+
'255.255.248.0' => '21',
|
|
51
|
+
'255.255.252.0' => '22',
|
|
52
|
+
'255.255.254.0' => '23',
|
|
53
|
+
'255.255.255.0' => '24',
|
|
54
|
+
'255.255.255.128' => '25',
|
|
55
|
+
'255.255.255.192' => '26',
|
|
56
|
+
'255.255.255.224' => '27',
|
|
57
|
+
'255.255.255.240' => '28',
|
|
58
|
+
'255.255.255.248' => '29',
|
|
59
|
+
'255.255.255.252' => '30',
|
|
60
|
+
'255.255.255.254' => '31',
|
|
61
|
+
'255.255.255.255' => '32' }
|
|
62
|
+
|
|
63
|
+
def load_current_resource
|
|
64
|
+
is_running = nil
|
|
65
|
+
|
|
66
|
+
Chef::Log.debug("Configuring Route #{@new_resource.name}")
|
|
67
|
+
|
|
68
|
+
# cidr or quad dot mask
|
|
69
|
+
if @new_resource.netmask
|
|
70
|
+
new_ip = IPAddr.new("#{@new_resource.target}/#{@new_resource.netmask}")
|
|
71
|
+
else
|
|
72
|
+
new_ip = IPAddr.new(@new_resource.target)
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# pull routes from proc
|
|
76
|
+
if node[:os] == "linux"
|
|
77
|
+
route_file = ::File.open("/proc/net/route", "r")
|
|
78
|
+
while (line = route_file.gets)
|
|
79
|
+
# proc layout
|
|
80
|
+
iface,destination,gateway,flags,refcnt,use,metric,mask,mtu,window,irtt = line.split
|
|
81
|
+
|
|
82
|
+
# need to convert packed adresses int quad dot
|
|
83
|
+
# the addrs are reversed hex packed decimal addrs. so this unwraps them. tho you could
|
|
84
|
+
# do this without ipaddr using unpack. ipaddr has no htoa method.
|
|
85
|
+
#
|
|
86
|
+
destination = IPAddr.new(destination.scan(/../).reverse.to_s.hex, Socket::AF_INET).to_s
|
|
87
|
+
gateway = IPAddr.new(gateway.scan(/../).reverse.to_s.hex, Socket::AF_INET).to_s
|
|
88
|
+
mask = IPAddr.new(mask.scan(/../).reverse.to_s.hex, Socket::AF_INET).to_s
|
|
89
|
+
Chef::Log.debug( "System has route: dest=#{destination} mask=#{mask} gw=#{gateway}")
|
|
90
|
+
|
|
91
|
+
# check if what were trying to configure is already there
|
|
92
|
+
# use an ipaddr object with ip/mask this way we can have
|
|
93
|
+
# a new resource be in cidr format (i don't feel like
|
|
94
|
+
# expanding bitmask by hand.
|
|
95
|
+
#
|
|
96
|
+
running_ip = IPAddr.new("#{destination}/#{mask}")
|
|
97
|
+
Chef::Log.debug( "new ip: #{new_ip.inspect} running ip: #{running_ip.inspect} ")
|
|
98
|
+
is_running = true if running_ip == new_ip
|
|
99
|
+
end
|
|
100
|
+
route_file.close
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
def action_add
|
|
105
|
+
# check to see if load_current_resource found the route
|
|
106
|
+
if is_running
|
|
107
|
+
Chef::Log.debug("Route #{@new_resource.name} already active ")
|
|
108
|
+
else
|
|
109
|
+
command = generate_command(:add)
|
|
110
|
+
|
|
111
|
+
Chef::Log.info("Adding route: #{command} ")
|
|
112
|
+
run_command( :command => command )
|
|
113
|
+
@new_resource.updated_by_last_action(true)
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
#for now we always write the file (ugly but its what it is)
|
|
117
|
+
generate_config
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
def action_delete
|
|
121
|
+
if is_running
|
|
122
|
+
command = generate_command(:delete)
|
|
123
|
+
|
|
124
|
+
Chef::Log.info("Removing route: #{command}")
|
|
125
|
+
run_command( :command => command )
|
|
126
|
+
@new_resource.updated_by_last_action(true)
|
|
127
|
+
else
|
|
128
|
+
Chef::Log.debug("Route #{@new_resource.name} does not exist")
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
def generate_config
|
|
133
|
+
conf = Hash.new
|
|
134
|
+
case node[:platform]
|
|
135
|
+
when ("centos" || "redhat" || "fedora")
|
|
136
|
+
# walk the collection
|
|
137
|
+
run_context.resource_collection.each do |resource|
|
|
138
|
+
if resource.is_a? Chef::Resource::Route
|
|
139
|
+
# default to eth0
|
|
140
|
+
if resource.device
|
|
141
|
+
dev = resource.device
|
|
142
|
+
else
|
|
143
|
+
dev = "eth0"
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
conf[dev] = String.new if conf[dev].nil?
|
|
147
|
+
if resource.action == :add
|
|
148
|
+
conf[dev] = config_file_contents(:add, :target => resource.target, :netmask => resource.netmask, :gateway => resource.gateway)
|
|
149
|
+
else
|
|
150
|
+
# need to do this for the case when the last route on an int
|
|
151
|
+
# is removed
|
|
152
|
+
conf[dev] = config_file_contents(:delete)
|
|
153
|
+
end
|
|
154
|
+
end
|
|
155
|
+
end
|
|
156
|
+
conf.each do |k, v|
|
|
157
|
+
network_file = ::File.new("/etc/sysconfig/network-scripts/route-#{k}", "w")
|
|
158
|
+
network_file.puts(conf[k])
|
|
159
|
+
Chef::Log.debug("writing route.#{k}\n#{conf[k]}")
|
|
160
|
+
network_file.close
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
def generate_command(action)
|
|
166
|
+
common_route_items = ''
|
|
167
|
+
common_route_items << "/#{MASK[@new_resource.netmask.to_s]}" if @new_resource.netmask
|
|
168
|
+
common_route_items << " via #{@new_resource.gateway} " if @new_resource.gateway
|
|
169
|
+
|
|
170
|
+
case action
|
|
171
|
+
when :add
|
|
172
|
+
command = "ip route replace #{@new_resource.target}"
|
|
173
|
+
command << common_route_items
|
|
174
|
+
command << " dev #{@new_resource.device} " if @new_resource.device
|
|
175
|
+
when :delete
|
|
176
|
+
command = "ip route delete #{@new_resource.target}"
|
|
177
|
+
command << common_route_items
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
return command
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
def config_file_contents(action, options={})
|
|
184
|
+
content = ''
|
|
185
|
+
case action
|
|
186
|
+
when :add
|
|
187
|
+
content << "#{options[:target]}"
|
|
188
|
+
content << "/#{options[:netmask]}" if options[:netmask]
|
|
189
|
+
content << " via #{options[:gateway]}" if options[:gateway]
|
|
190
|
+
content << "\n"
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
return content
|
|
194
|
+
end
|
|
195
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Author:: Adam Jacob (<adam@opscode.com>)
|
|
3
|
+
# Author:: AJ Christensen (<aj@opscode.com>)
|
|
4
|
+
# Copyright:: Copyright (c) 2009 Opscode
|
|
5
|
+
# License:: Apache License, Version 2.0
|
|
6
|
+
#
|
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
# you may not use this file except in compliance with the License.
|
|
9
|
+
# You may obtain a copy of the License at
|
|
10
|
+
#
|
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
#
|
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
# See the License for the specific language governing permissions and
|
|
17
|
+
# limitations under the License.
|
|
18
|
+
#
|
|
19
|
+
|
|
20
|
+
class Chef
|
|
21
|
+
class Provider
|
|
22
|
+
class RubyBlock < Chef::Provider
|
|
23
|
+
def load_current_resource
|
|
24
|
+
true
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def action_create
|
|
28
|
+
@new_resource.block.call
|
|
29
|
+
@new_resource.updated_by_last_action(true)
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Author:: Adam Jacob (<adam@opscode.com>)
|
|
3
|
+
# Copyright:: Copyright (c) 2008 Opscode, Inc.
|
|
4
|
+
# License:: Apache License, Version 2.0
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
# you may not use this file except in compliance with the License.
|
|
8
|
+
# You may obtain a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
# See the License for the specific language governing permissions and
|
|
16
|
+
# limitations under the License.
|
|
17
|
+
#
|
|
18
|
+
|
|
19
|
+
require 'tempfile'
|
|
20
|
+
require 'chef/provider/execute'
|
|
21
|
+
|
|
22
|
+
class Chef
|
|
23
|
+
class Provider
|
|
24
|
+
class Script < Chef::Provider::Execute
|
|
25
|
+
|
|
26
|
+
def action_run
|
|
27
|
+
script_file.puts(@new_resource.code)
|
|
28
|
+
script_file.close
|
|
29
|
+
|
|
30
|
+
set_owner_and_group
|
|
31
|
+
|
|
32
|
+
@new_resource.command("\"#{@new_resource.interpreter}\" #{@new_resource.flags} \"#{script_file.path}\"")
|
|
33
|
+
super
|
|
34
|
+
ensure
|
|
35
|
+
unlink_script_file
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def set_owner_and_group
|
|
39
|
+
# FileUtils itself implements a no-op if +user+ or +group+ are nil
|
|
40
|
+
# You can prove this by running FileUtils.chown(nil,nil,'/tmp/file')
|
|
41
|
+
# as an unprivileged user.
|
|
42
|
+
FileUtils.chown(@new_resource.user, @new_resource.group, script_file.path)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def script_file
|
|
46
|
+
@script_file ||= Tempfile.open("chef-script")
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def unlink_script_file
|
|
50
|
+
@script_file && @script_file.close!
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Author:: Jan Zimmek (<jan.zimmek@web.de>)
|
|
3
|
+
# Copyright:: Copyright (c) 2010 Jan Zimmek
|
|
4
|
+
# License:: Apache License, Version 2.0
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
# you may not use this file except in compliance with the License.
|
|
8
|
+
# You may obtain a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
# See the License for the specific language governing permissions and
|
|
16
|
+
# limitations under the License.
|
|
17
|
+
#
|
|
18
|
+
|
|
19
|
+
require 'chef/provider/service/init'
|
|
20
|
+
require 'chef/mixin/command'
|
|
21
|
+
|
|
22
|
+
class Chef::Provider::Service::Arch < Chef::Provider::Service::Init
|
|
23
|
+
|
|
24
|
+
def initialize(new_resource, run_context)
|
|
25
|
+
super
|
|
26
|
+
@init_command = "/etc/rc.d/#{@new_resource.service_name}"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def load_current_resource
|
|
30
|
+
|
|
31
|
+
raise Chef::Exceptions::Service unless ::File.exists?("/etc/rc.conf")
|
|
32
|
+
raise Chef::Exceptions::Service unless ::File.read("/etc/rc.conf").match(/DAEMONS=\((.*)\)/)
|
|
33
|
+
|
|
34
|
+
super
|
|
35
|
+
|
|
36
|
+
@current_resource.enabled(daemons.include?(@current_resource.service_name))
|
|
37
|
+
|
|
38
|
+
@current_resource
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def daemons
|
|
42
|
+
entries = []
|
|
43
|
+
if ::File.read("/etc/rc.conf").match(/DAEMONS=\((.*)\)/)
|
|
44
|
+
entries += $1.split(" ") if $1.length > 0
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
yield(entries) if block_given?
|
|
48
|
+
|
|
49
|
+
entries
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def update_daemons(entries)
|
|
53
|
+
content = ::File.read("/etc/rc.conf").gsub(/DAEMONS=\((.*)\)/, "DAEMONS=(#{entries.join(' ')})")
|
|
54
|
+
::File.open("/etc/rc.conf", "w") do |f|
|
|
55
|
+
f.write(content)
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def enable_service()
|
|
60
|
+
new_daemons = []
|
|
61
|
+
entries = daemons
|
|
62
|
+
|
|
63
|
+
if entries.include?(new_resource.service_name)
|
|
64
|
+
# exists and already enabled
|
|
65
|
+
new_daemons += entries
|
|
66
|
+
else
|
|
67
|
+
if entries.include?("!#{new_resource.service_name}")
|
|
68
|
+
# exists but disabled
|
|
69
|
+
entries.each do |daemon|
|
|
70
|
+
if daemon == "!#{new_resource.service_name}"
|
|
71
|
+
new_daemons << new_resource.service_name
|
|
72
|
+
else
|
|
73
|
+
new_daemons << daemon
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
else
|
|
77
|
+
# does not exist
|
|
78
|
+
new_daemons += entries
|
|
79
|
+
new_daemons << new_resource.service_name
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
update_daemons(new_daemons)
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
def disable_service()
|
|
87
|
+
new_daemons = []
|
|
88
|
+
entries = daemons
|
|
89
|
+
|
|
90
|
+
if entries.include?("!#{new_resource.service_name}")
|
|
91
|
+
# exists and disabled
|
|
92
|
+
new_daemons += entries
|
|
93
|
+
else
|
|
94
|
+
if entries.include?(new_resource.service_name)
|
|
95
|
+
# exists but enabled
|
|
96
|
+
entries.each do |daemon|
|
|
97
|
+
if daemon == new_resource.service_name
|
|
98
|
+
new_daemons << "!#{new_resource.service_name}"
|
|
99
|
+
else
|
|
100
|
+
new_daemons << daemon
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
update_daemons(new_daemons)
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
end
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Author:: AJ Christensen (<aj@hjksolutions.com>)
|
|
3
|
+
# Copyright:: Copyright (c) 2008 Opscode, Inc.
|
|
4
|
+
# License:: Apache License, Version 2.0
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
# you may not use this file except in compliance with the License.
|
|
8
|
+
# You may obtain a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
# See the License for the specific language governing permissions and
|
|
16
|
+
# limitations under the License.
|
|
17
|
+
#
|
|
18
|
+
|
|
19
|
+
require 'chef/provider/service'
|
|
20
|
+
require 'chef/provider/service/init'
|
|
21
|
+
require 'chef/mixin/command'
|
|
22
|
+
|
|
23
|
+
class Chef
|
|
24
|
+
class Provider
|
|
25
|
+
class Service
|
|
26
|
+
class Debian < Chef::Provider::Service::Init
|
|
27
|
+
UPDATE_RC_D_ENABLED_MATCHES = /etc\/rc[\dS].d\/S|not installed/i
|
|
28
|
+
UPDATE_RC_D_PRIORITIES = /etc\/rc([\dS]).d\/([SK])(\d\d)/i
|
|
29
|
+
|
|
30
|
+
def load_current_resource
|
|
31
|
+
super
|
|
32
|
+
|
|
33
|
+
@current_resource.enabled(service_currently_enabled?)
|
|
34
|
+
@current_resource
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def enable_service()
|
|
38
|
+
run_command(:command => "/usr/sbin/update-rc.d #{@new_resource.service_name} defaults")
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def disable_service()
|
|
42
|
+
run_command(:command => "/usr/sbin/update-rc.d -f #{@new_resource.service_name} remove")
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def assert_update_rcd_available
|
|
46
|
+
unless ::File.exists? "/usr/sbin/update-rc.d"
|
|
47
|
+
raise Chef::Exceptions::Service, "/usr/sbin/update-rc.d does not exist!"
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def service_currently_enabled?
|
|
52
|
+
assert_update_rcd_available
|
|
53
|
+
|
|
54
|
+
status = popen4("/usr/sbin/update-rc.d -n -f #{@current_resource.service_name} remove") do |pid, stdin, stdout, stderr|
|
|
55
|
+
priority = {}
|
|
56
|
+
enabled = false
|
|
57
|
+
|
|
58
|
+
stdout.each_line do |line|
|
|
59
|
+
if UPDATE_RC_D_PRIORITIES =~ line
|
|
60
|
+
priority[$1] = [($2 == "S" ? :start : :stop), $3]
|
|
61
|
+
end
|
|
62
|
+
if line =~ UPDATE_RC_D_ENABLED_MATCHES
|
|
63
|
+
enabled = true
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
@current_resource.enabled enabled
|
|
67
|
+
@current_resource.priority priority
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
unless status.exitstatus == 0
|
|
71
|
+
raise Chef::Exceptions::Service, "/usr/sbin/update-rc.d -n -f #{@current_resource.service_name} failed - #{status.inspect}"
|
|
72
|
+
end
|
|
73
|
+
@current_resource.enabled
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def enable_service()
|
|
77
|
+
# If we have a priority which is just a number, we have to
|
|
78
|
+
# construct the actual priority object
|
|
79
|
+
|
|
80
|
+
if @new_resource.priority.is_a? Integer
|
|
81
|
+
run_command(:command => "/usr/sbin/update-rc.d #{@new_resource.service_name} defaults #{@new_resource.priority} #{100 - @new_resource.priority}")
|
|
82
|
+
elsif @new_resource.priority.is_a? Hash
|
|
83
|
+
args = ""
|
|
84
|
+
@new_resource.priority.each do |level, o|
|
|
85
|
+
action = o[0]
|
|
86
|
+
priority = o[1]
|
|
87
|
+
args += "#{action} #{priority} #{level} . "
|
|
88
|
+
end
|
|
89
|
+
run_command(:command => "/usr/sbin/update-rc.d #{@new_resource.service_name} #{args}")
|
|
90
|
+
else # No priority, go with update-rc.d defaults
|
|
91
|
+
run_command(:command => "/usr/sbin/update-rc.d #{@new_resource.service_name} defaults")
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def disable_service()
|
|
97
|
+
run_command(:command => "/usr/sbin/update-rc.d #{@new_resource.service_name} disable")
|
|
98
|
+
# @new_resource.priority({2 => [:stop, 80]})
|
|
99
|
+
# enable_service
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
end
|