tylerrick-chef 0.10.8
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 +171 -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/arch/etc/conf.d/chef-client.conf +5 -0
- data/distro/arch/etc/conf.d/chef-expander.conf +8 -0
- data/distro/arch/etc/conf.d/chef-server-webui.conf +10 -0
- data/distro/arch/etc/conf.d/chef-server.conf +10 -0
- data/distro/arch/etc/conf.d/chef-solr.conf +8 -0
- data/distro/arch/etc/rc.d/chef-client +76 -0
- data/distro/arch/etc/rc.d/chef-expander +78 -0
- data/distro/arch/etc/rc.d/chef-server +78 -0
- data/distro/arch/etc/rc.d/chef-server-webui +78 -0
- data/distro/arch/etc/rc.d/chef-solr +78 -0
- data/distro/common/html/chef-client.8.html +146 -0
- data/distro/common/html/chef-expander.8.html +164 -0
- data/distro/common/html/chef-expanderctl.8.html +146 -0
- data/distro/common/html/chef-server-webui.8.html +185 -0
- data/distro/common/html/chef-server.8.html +182 -0
- data/distro/common/html/chef-solo.8.html +191 -0
- data/distro/common/html/chef-solr.8.html +165 -0
- data/distro/common/html/knife-bootstrap.1.html +243 -0
- data/distro/common/html/knife-client.1.html +219 -0
- data/distro/common/html/knife-configure.1.html +170 -0
- data/distro/common/html/knife-cookbook-site.1.html +241 -0
- data/distro/common/html/knife-cookbook.1.html +384 -0
- data/distro/common/html/knife-data-bag.1.html +234 -0
- data/distro/common/html/knife-environment.1.html +267 -0
- data/distro/common/html/knife-exec.1.html +134 -0
- data/distro/common/html/knife-index.1.html +125 -0
- data/distro/common/html/knife-node.1.html +250 -0
- data/distro/common/html/knife-recipe.1.html +92 -0
- data/distro/common/html/knife-role.1.html +200 -0
- data/distro/common/html/knife-search.1.html +288 -0
- data/distro/common/html/knife-ssh.1.html +157 -0
- data/distro/common/html/knife-status.1.html +128 -0
- data/distro/common/html/knife-tag.1.html +137 -0
- data/distro/common/html/knife.1.html +321 -0
- data/distro/common/html/shef.1.html +283 -0
- data/distro/common/man/man1/knife-bootstrap.1 +197 -0
- data/distro/common/man/man1/knife-client.1 +99 -0
- data/distro/common/man/man1/knife-configure.1 +88 -0
- data/distro/common/man/man1/knife-cookbook-site.1 +145 -0
- data/distro/common/man/man1/knife-cookbook.1 +345 -0
- data/distro/common/man/man1/knife-data-bag.1 +130 -0
- data/distro/common/man/man1/knife-environment.1 +178 -0
- data/distro/common/man/man1/knife-exec.1 +46 -0
- data/distro/common/man/man1/knife-index.1 +29 -0
- data/distro/common/man/man1/knife-node.1 +134 -0
- data/distro/common/man/man1/knife-role.1 +88 -0
- data/distro/common/man/man1/knife-search.1 +280 -0
- data/distro/common/man/man1/knife-ssh.1 +83 -0
- data/distro/common/man/man1/knife-status.1 +29 -0
- data/distro/common/man/man1/knife-tag.1 +43 -0
- data/distro/common/man/man1/knife.1 +292 -0
- data/distro/common/man/man1/shef.1 +256 -0
- data/distro/common/man/man8/chef-client.8 +104 -0
- data/distro/common/man/man8/chef-expander.8 +97 -0
- data/distro/common/man/man8/chef-expanderctl.8 +62 -0
- data/distro/common/man/man8/chef-server-webui.8 +155 -0
- data/distro/common/man/man8/chef-server.8 +147 -0
- data/distro/common/man/man8/chef-solo.8 +158 -0
- data/distro/common/man/man8/chef-solr.8 +122 -0
- data/distro/common/markdown/README +3 -0
- data/distro/common/markdown/man1/knife-bootstrap.mkd +142 -0
- data/distro/common/markdown/man1/knife-client.mkd +103 -0
- data/distro/common/markdown/man1/knife-configure.mkd +70 -0
- data/distro/common/markdown/man1/knife-cookbook-site.mkd +123 -0
- data/distro/common/markdown/man1/knife-cookbook.mkd +263 -0
- data/distro/common/markdown/man1/knife-data-bag.mkd +117 -0
- data/distro/common/markdown/man1/knife-environment.mkd +151 -0
- data/distro/common/markdown/man1/knife-exec.mkd +37 -0
- data/distro/common/markdown/man1/knife-index.mkd +30 -0
- data/distro/common/markdown/man1/knife-node.mkd +130 -0
- data/distro/common/markdown/man1/knife-role.mkd +85 -0
- data/distro/common/markdown/man1/knife-search.mkd +180 -0
- data/distro/common/markdown/man1/knife-ssh.mkd +72 -0
- data/distro/common/markdown/man1/knife-status.mkd +36 -0
- data/distro/common/markdown/man1/knife-tag.mkd +39 -0
- data/distro/common/markdown/man1/knife.mkd +220 -0
- data/distro/common/markdown/man1/shef.mkd +189 -0
- data/distro/common/markdown/man8/chef-client.mkd +75 -0
- data/distro/common/markdown/man8/chef-expander.mkd +82 -0
- data/distro/common/markdown/man8/chef-expanderctl.mkd +58 -0
- data/distro/common/markdown/man8/chef-server-webui.mkd +121 -0
- data/distro/common/markdown/man8/chef-server.mkd +121 -0
- data/distro/common/markdown/man8/chef-solo.mkd +107 -0
- data/distro/common/markdown/man8/chef-solr.mkd +89 -0
- data/distro/debian/etc/default/chef-client +4 -0
- data/distro/debian/etc/default/chef-expander +8 -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 +8 -0
- data/distro/debian/etc/init.d/chef-client +185 -0
- data/distro/debian/etc/init.d/chef-expander +176 -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 +176 -0
- data/distro/debian/etc/init/chef-client.conf +17 -0
- data/distro/debian/etc/init/chef-expander.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.conf +17 -0
- data/distro/redhat/etc/init.d/chef-client +110 -0
- data/distro/redhat/etc/init.d/chef-expander +104 -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/logrotate.d/chef-client +8 -0
- data/distro/redhat/etc/logrotate.d/chef-expander +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/sysconfig/chef-client +15 -0
- data/distro/redhat/etc/sysconfig/chef-expander +7 -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/lib/chef.rb +41 -0
- data/lib/chef/api_client.rb +271 -0
- data/lib/chef/application.rb +152 -0
- data/lib/chef/application/agent.rb +18 -0
- data/lib/chef/application/client.rb +285 -0
- data/lib/chef/application/knife.rb +188 -0
- data/lib/chef/application/solo.rb +218 -0
- data/lib/chef/applications.rb +4 -0
- data/lib/chef/certificate.rb +194 -0
- data/lib/chef/checksum.rb +167 -0
- data/lib/chef/checksum/storage.rb +18 -0
- data/lib/chef/checksum/storage/filesystem.rb +56 -0
- data/lib/chef/checksum_cache.rb +189 -0
- data/lib/chef/client.rb +366 -0
- data/lib/chef/config.rb +248 -0
- data/lib/chef/cookbook/chefignore.rb +66 -0
- data/lib/chef/cookbook/cookbook_collection.rb +45 -0
- data/lib/chef/cookbook/cookbook_version_loader.rb +173 -0
- data/lib/chef/cookbook/file_system_file_vendor.rb +56 -0
- data/lib/chef/cookbook/file_vendor.rb +48 -0
- data/lib/chef/cookbook/metadata.rb +629 -0
- data/lib/chef/cookbook/remote_file_vendor.rb +88 -0
- data/lib/chef/cookbook/syntax_check.rb +136 -0
- data/lib/chef/cookbook_loader.rb +121 -0
- data/lib/chef/cookbook_site_streaming_uploader.rb +244 -0
- data/lib/chef/cookbook_uploader.rb +154 -0
- data/lib/chef/cookbook_version.rb +1096 -0
- data/lib/chef/cookbook_version_selector.rb +168 -0
- data/lib/chef/couchdb.rb +246 -0
- data/lib/chef/daemon.rb +172 -0
- data/lib/chef/data_bag.rb +235 -0
- data/lib/chef/data_bag_item.rb +273 -0
- data/lib/chef/encrypted_data_bag_item.rb +139 -0
- data/lib/chef/environment.rb +455 -0
- data/lib/chef/exceptions.rb +154 -0
- data/lib/chef/file_access_control.rb +144 -0
- data/lib/chef/file_cache.rb +218 -0
- data/lib/chef/handler.rb +227 -0
- data/lib/chef/handler/error_report.rb +33 -0
- data/lib/chef/handler/json_file.rb +58 -0
- data/lib/chef/index_queue.rb +29 -0
- data/lib/chef/index_queue/amqp_client.rb +116 -0
- data/lib/chef/index_queue/consumer.rb +76 -0
- data/lib/chef/index_queue/indexable.rb +109 -0
- data/lib/chef/json_compat.rb +52 -0
- data/lib/chef/knife.rb +520 -0
- data/lib/chef/knife/bootstrap.rb +207 -0
- data/lib/chef/knife/bootstrap/archlinux-gems.erb +60 -0
- data/lib/chef/knife/bootstrap/centos5-gems.erb +56 -0
- data/lib/chef/knife/bootstrap/fedora13-gems.erb +43 -0
- data/lib/chef/knife/bootstrap/ubuntu10.04-apt.erb +49 -0
- data/lib/chef/knife/bootstrap/ubuntu10.04-gems.erb +50 -0
- data/lib/chef/knife/client_bulk_delete.rb +65 -0
- data/lib/chef/knife/client_create.rb +79 -0
- data/lib/chef/knife/client_delete.rb +46 -0
- data/lib/chef/knife/client_edit.rb +45 -0
- data/lib/chef/knife/client_list.rb +42 -0
- data/lib/chef/knife/client_reregister.rb +58 -0
- data/lib/chef/knife/client_show.rb +52 -0
- data/lib/chef/knife/configure.rb +149 -0
- data/lib/chef/knife/configure_client.rb +50 -0
- data/lib/chef/knife/cookbook_bulk_delete.rb +72 -0
- data/lib/chef/knife/cookbook_create.rb +274 -0
- data/lib/chef/knife/cookbook_delete.rb +151 -0
- data/lib/chef/knife/cookbook_download.rb +137 -0
- data/lib/chef/knife/cookbook_list.rb +47 -0
- data/lib/chef/knife/cookbook_metadata.rb +107 -0
- data/lib/chef/knife/cookbook_metadata_from_file.rb +44 -0
- data/lib/chef/knife/cookbook_show.rb +102 -0
- data/lib/chef/knife/cookbook_site_download.rb +70 -0
- data/lib/chef/knife/cookbook_site_install.rb +148 -0
- data/lib/chef/knife/cookbook_site_list.rb +62 -0
- data/lib/chef/knife/cookbook_site_search.rb +51 -0
- data/lib/chef/knife/cookbook_site_share.rb +114 -0
- data/lib/chef/knife/cookbook_site_show.rb +57 -0
- data/lib/chef/knife/cookbook_site_unshare.rb +56 -0
- data/lib/chef/knife/cookbook_site_vendor.rb +46 -0
- data/lib/chef/knife/cookbook_test.rb +93 -0
- data/lib/chef/knife/cookbook_upload.rb +240 -0
- data/lib/chef/knife/core/bootstrap_context.rb +100 -0
- data/lib/chef/knife/core/cookbook_scm_repo.rb +148 -0
- data/lib/chef/knife/core/generic_presenter.rb +191 -0
- data/lib/chef/knife/core/node_editor.rb +127 -0
- data/lib/chef/knife/core/node_presenter.rb +136 -0
- data/lib/chef/knife/core/object_loader.rb +75 -0
- data/lib/chef/knife/core/subcommand_loader.rb +112 -0
- data/lib/chef/knife/core/text_formatter.rb +100 -0
- data/lib/chef/knife/core/ui.rb +216 -0
- data/lib/chef/knife/data_bag_create.rb +93 -0
- data/lib/chef/knife/data_bag_delete.rb +51 -0
- data/lib/chef/knife/data_bag_edit.rb +94 -0
- data/lib/chef/knife/data_bag_from_file.rb +87 -0
- data/lib/chef/knife/data_bag_list.rb +46 -0
- data/lib/chef/knife/data_bag_show.rb +81 -0
- data/lib/chef/knife/environment_create.rb +53 -0
- data/lib/chef/knife/environment_delete.rb +45 -0
- data/lib/chef/knife/environment_edit.rb +45 -0
- data/lib/chef/knife/environment_from_file.rb +50 -0
- data/lib/chef/knife/environment_list.rb +42 -0
- data/lib/chef/knife/environment_show.rb +46 -0
- data/lib/chef/knife/exec.rb +51 -0
- data/lib/chef/knife/help.rb +103 -0
- data/lib/chef/knife/help_topics.rb +4 -0
- data/lib/chef/knife/index_rebuild.rb +50 -0
- data/lib/chef/knife/node_bulk_delete.rb +80 -0
- data/lib/chef/knife/node_create.rb +50 -0
- data/lib/chef/knife/node_delete.rb +47 -0
- data/lib/chef/knife/node_edit.rb +72 -0
- data/lib/chef/knife/node_from_file.rb +50 -0
- data/lib/chef/knife/node_list.rb +46 -0
- data/lib/chef/knife/node_run_list_add.rb +67 -0
- data/lib/chef/knife/node_run_list_remove.rb +48 -0
- data/lib/chef/knife/node_show.rb +73 -0
- data/lib/chef/knife/recipe_list.rb +32 -0
- data/lib/chef/knife/role_bulk_delete.rb +70 -0
- data/lib/chef/knife/role_create.rb +55 -0
- data/lib/chef/knife/role_delete.rb +47 -0
- data/lib/chef/knife/role_edit.rb +48 -0
- data/lib/chef/knife/role_from_file.rb +56 -0
- data/lib/chef/knife/role_list.rb +43 -0
- data/lib/chef/knife/role_show.rb +54 -0
- data/lib/chef/knife/search.rb +141 -0
- data/lib/chef/knife/ssh.rb +367 -0
- data/lib/chef/knife/status.rb +104 -0
- data/lib/chef/knife/tag_create.rb +52 -0
- data/lib/chef/knife/tag_delete.rb +60 -0
- data/lib/chef/knife/tag_list.rb +47 -0
- data/lib/chef/log.rb +39 -0
- data/lib/chef/mash.rb +211 -0
- data/lib/chef/mixin/check_helper.rb +31 -0
- data/lib/chef/mixin/checksum.rb +32 -0
- data/lib/chef/mixin/command.rb +163 -0
- data/lib/chef/mixin/command/unix.rb +215 -0
- data/lib/chef/mixin/command/windows.rb +76 -0
- data/lib/chef/mixin/convert_to_class_name.rb +63 -0
- data/lib/chef/mixin/create_path.rb +57 -0
- data/lib/chef/mixin/deep_merge.rb +225 -0
- data/lib/chef/mixin/deprecation.rb +65 -0
- data/lib/chef/mixin/from_file.rb +50 -0
- data/lib/chef/mixin/get_source_from_package.rb +42 -0
- data/lib/chef/mixin/language.rb +163 -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 +78 -0
- data/lib/chef/mixin/shell_out.rb +41 -0
- data/lib/chef/mixin/template.rb +95 -0
- data/lib/chef/mixin/xml_escape.rb +140 -0
- data/lib/chef/mixins.rb +15 -0
- data/lib/chef/monkey_patches/dir.rb +36 -0
- data/lib/chef/monkey_patches/numeric.rb +15 -0
- data/lib/chef/monkey_patches/object.rb +9 -0
- data/lib/chef/monkey_patches/regexp.rb +34 -0
- data/lib/chef/monkey_patches/string.rb +49 -0
- data/lib/chef/monkey_patches/tempfile.rb +64 -0
- data/lib/chef/nil_argument.rb +3 -0
- data/lib/chef/node.rb +677 -0
- data/lib/chef/node/attribute.rb +487 -0
- data/lib/chef/openid_registration.rb +187 -0
- data/lib/chef/platform.rb +434 -0
- data/lib/chef/provider.rb +124 -0
- data/lib/chef/provider/breakpoint.rb +36 -0
- data/lib/chef/provider/cookbook_file.rb +100 -0
- data/lib/chef/provider/cron.rb +186 -0
- data/lib/chef/provider/cron/solaris.rb +195 -0
- data/lib/chef/provider/deploy.rb +418 -0
- data/lib/chef/provider/deploy/revision.rb +80 -0
- data/lib/chef/provider/deploy/timestamped.rb +33 -0
- data/lib/chef/provider/directory.rb +72 -0
- data/lib/chef/provider/env.rb +152 -0
- data/lib/chef/provider/env/windows.rb +75 -0
- data/lib/chef/provider/erl_call.rb +101 -0
- data/lib/chef/provider/execute.rb +65 -0
- data/lib/chef/provider/file.rb +226 -0
- data/lib/chef/provider/git.rb +243 -0
- data/lib/chef/provider/group.rb +133 -0
- data/lib/chef/provider/group/aix.rb +70 -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 +91 -0
- data/lib/chef/provider/group/pw.rb +84 -0
- data/lib/chef/provider/group/suse.rb +53 -0
- data/lib/chef/provider/group/usermod.rb +57 -0
- data/lib/chef/provider/group/windows.rb +79 -0
- data/lib/chef/provider/http_request.rb +122 -0
- data/lib/chef/provider/ifconfig.rb +195 -0
- data/lib/chef/provider/link.rb +164 -0
- data/lib/chef/provider/log.rb +54 -0
- data/lib/chef/provider/mdadm.rb +91 -0
- data/lib/chef/provider/mount.rb +114 -0
- data/lib/chef/provider/mount/mount.rb +240 -0
- data/lib/chef/provider/mount/windows.rb +81 -0
- data/lib/chef/provider/ohai.rb +42 -0
- data/lib/chef/provider/package.rb +200 -0
- data/lib/chef/provider/package/apt.rb +145 -0
- data/lib/chef/provider/package/dpkg.rb +115 -0
- data/lib/chef/provider/package/easy_install.rb +136 -0
- data/lib/chef/provider/package/freebsd.rb +125 -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 +135 -0
- data/lib/chef/provider/package/rpm.rb +104 -0
- data/lib/chef/provider/package/rubygems.rb +465 -0
- data/lib/chef/provider/package/solaris.rb +130 -0
- data/lib/chef/provider/package/yum-dump.py +286 -0
- data/lib/chef/provider/package/yum.rb +1173 -0
- data/lib/chef/provider/package/zypper.rb +144 -0
- data/lib/chef/provider/remote_directory.rb +137 -0
- data/lib/chef/provider/remote_file.rb +118 -0
- data/lib/chef/provider/route.rb +193 -0
- data/lib/chef/provider/ruby_block.rb +34 -0
- data/lib/chef/provider/script.rb +55 -0
- data/lib/chef/provider/service.rb +122 -0
- data/lib/chef/provider/service/arch.rb +116 -0
- data/lib/chef/provider/service/debian.rb +130 -0
- data/lib/chef/provider/service/freebsd.rb +154 -0
- data/lib/chef/provider/service/gentoo.rb +53 -0
- data/lib/chef/provider/service/init.rb +71 -0
- data/lib/chef/provider/service/insserv.rb +52 -0
- data/lib/chef/provider/service/invokercd.rb +35 -0
- data/lib/chef/provider/service/redhat.rb +60 -0
- data/lib/chef/provider/service/simple.rb +120 -0
- data/lib/chef/provider/service/solaris.rb +85 -0
- data/lib/chef/provider/service/systemd.rb +102 -0
- data/lib/chef/provider/service/upstart.rb +198 -0
- data/lib/chef/provider/service/windows.rb +155 -0
- data/lib/chef/provider/subversion.rb +197 -0
- data/lib/chef/provider/template.rb +104 -0
- data/lib/chef/provider/user.rb +186 -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/providers.rb +95 -0
- data/lib/chef/recipe.rb +129 -0
- data/lib/chef/resource.rb +609 -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/conditional.rb +90 -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 +389 -0
- data/lib/chef/resource/deploy_revision.rb +40 -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 +57 -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 +99 -0
- data/lib/chef/resource/freebsd_package.rb +35 -0
- data/lib/chef/resource/gem_package.rb +53 -0
- data/lib/chef/resource/git.rb +46 -0
- data/lib/chef/resource/group.rb +78 -0
- data/lib/chef/resource/http_request.rb +61 -0
- data/lib/chef/resource/ifconfig.rb +144 -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 +134 -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 +147 -0
- data/lib/chef/resource/script.rb +60 -0
- data/lib/chef/resource/service.rb +151 -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 +63 -0
- data/lib/chef/resource_collection.rb +217 -0
- data/lib/chef/resource_collection/stepable_iterator.rb +124 -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.rb +400 -0
- data/lib/chef/rest/auth_credentials.rb +71 -0
- data/lib/chef/rest/cookie_jar.rb +31 -0
- data/lib/chef/rest/rest_request.rb +213 -0
- data/lib/chef/role.rb +343 -0
- data/lib/chef/run_context.rb +126 -0
- data/lib/chef/run_list.rb +165 -0
- data/lib/chef/run_list/run_list_expansion.rb +193 -0
- data/lib/chef/run_list/run_list_item.rb +92 -0
- data/lib/chef/run_list/versioned_recipe_list.rb +68 -0
- data/lib/chef/run_status.rb +121 -0
- data/lib/chef/runner.rb +105 -0
- data/lib/chef/sandbox.rb +153 -0
- data/lib/chef/search/query.rb +65 -0
- data/lib/chef/shef.rb +327 -0
- data/lib/chef/shef/ext.rb +569 -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 +285 -0
- data/lib/chef/shell_out.rb +249 -0
- data/lib/chef/shell_out/unix.rb +223 -0
- data/lib/chef/shell_out/windows.rb +588 -0
- data/lib/chef/solr_query.rb +187 -0
- data/lib/chef/solr_query/lucene.treetop +150 -0
- data/lib/chef/solr_query/lucene_nodes.rb +285 -0
- data/lib/chef/solr_query/query_transform.rb +65 -0
- data/lib/chef/solr_query/solr_http_request.rb +132 -0
- data/lib/chef/streaming_cookbook_uploader.rb +201 -0
- data/lib/chef/tasks/chef_repo.rake +334 -0
- data/lib/chef/util/file_edit.rb +122 -0
- data/lib/chef/util/windows.rb +56 -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/version.rb +23 -0
- data/lib/chef/version_class.rb +70 -0
- data/lib/chef/version_constraint.rb +116 -0
- data/lib/chef/webui_user.rb +231 -0
- metadata +764 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Author:: Bryan McLellan (btm@loftninjas.org)
|
|
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/provider/package'
|
|
20
|
+
require 'chef/mixin/command'
|
|
21
|
+
require 'chef/resource/package'
|
|
22
|
+
require 'chef/mixin/get_source_from_package'
|
|
23
|
+
|
|
24
|
+
class Chef
|
|
25
|
+
class Provider
|
|
26
|
+
class Package
|
|
27
|
+
class Dpkg < Chef::Provider::Package::Apt
|
|
28
|
+
DPKG_INFO = /([a-z\d\-\+]+)\t([\w\d.~-]+)/
|
|
29
|
+
DPKG_INSTALLED = /^Status: install ok installed/
|
|
30
|
+
DPKG_VERSION = /^Version: (.+)$/
|
|
31
|
+
|
|
32
|
+
include Chef::Mixin::GetSourceFromPackage
|
|
33
|
+
|
|
34
|
+
def load_current_resource
|
|
35
|
+
@current_resource = Chef::Resource::Package.new(@new_resource.name)
|
|
36
|
+
@current_resource.package_name(@new_resource.package_name)
|
|
37
|
+
@new_resource.version(nil)
|
|
38
|
+
|
|
39
|
+
# if the source was not set, and we're installing, fail
|
|
40
|
+
if Array(@new_resource.action).include?(:install) && @new_resource.source.nil?
|
|
41
|
+
raise Chef::Exceptions::Package, "Source for package #{@new_resource.name} required for action install"
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# We only -need- source for action install
|
|
45
|
+
if @new_resource.source
|
|
46
|
+
unless ::File.exists?(@new_resource.source)
|
|
47
|
+
raise Chef::Exceptions::Package, "Package #{@new_resource.name} not found: #{@new_resource.source}"
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Get information from the package if supplied
|
|
51
|
+
Chef::Log.debug("#{@new_resource} checking dpkg status")
|
|
52
|
+
status = popen4("dpkg-deb -W #{@new_resource.source}") do |pid, stdin, stdout, stderr|
|
|
53
|
+
stdout.each_line do |line|
|
|
54
|
+
if pkginfo = DPKG_INFO.match(line)
|
|
55
|
+
@current_resource.package_name(pkginfo[1])
|
|
56
|
+
@new_resource.version(pkginfo[2])
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# Check to see if it is installed
|
|
63
|
+
package_installed = nil
|
|
64
|
+
Chef::Log.debug("#{@new_resource} checking install state")
|
|
65
|
+
status = popen4("dpkg -s #{@current_resource.package_name}") do |pid, stdin, stdout, stderr|
|
|
66
|
+
stdout.each_line do |line|
|
|
67
|
+
case line
|
|
68
|
+
when DPKG_INSTALLED
|
|
69
|
+
package_installed = true
|
|
70
|
+
when DPKG_VERSION
|
|
71
|
+
if package_installed
|
|
72
|
+
Chef::Log.debug("#{@new_resource} current version is #{$1}")
|
|
73
|
+
@current_resource.version($1)
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
unless status.exitstatus == 0 || status.exitstatus == 1
|
|
80
|
+
raise Chef::Exceptions::Package, "dpkg failed - #{status.inspect}!"
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
@current_resource
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
def install_package(name, version)
|
|
87
|
+
run_command_with_systems_locale(
|
|
88
|
+
:command => "dpkg -i#{expand_options(@new_resource.options)} #{@new_resource.source}",
|
|
89
|
+
:environment => {
|
|
90
|
+
"DEBIAN_FRONTEND" => "noninteractive"
|
|
91
|
+
}
|
|
92
|
+
)
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def remove_package(name, version)
|
|
96
|
+
run_command_with_systems_locale(
|
|
97
|
+
:command => "dpkg -r#{expand_options(@new_resource.options)} #{@new_resource.package_name}",
|
|
98
|
+
:environment => {
|
|
99
|
+
"DEBIAN_FRONTEND" => "noninteractive"
|
|
100
|
+
}
|
|
101
|
+
)
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
def purge_package(name, version)
|
|
105
|
+
run_command_with_systems_locale(
|
|
106
|
+
:command => "dpkg -P#{expand_options(@new_resource.options)} #{@new_resource.package_name}",
|
|
107
|
+
:environment => {
|
|
108
|
+
"DEBIAN_FRONTEND" => "noninteractive"
|
|
109
|
+
}
|
|
110
|
+
)
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
end
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Author:: Joe Williams (<joe@joetify.com>)
|
|
3
|
+
# Copyright:: Copyright (c) 2009 Joe Williams
|
|
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/package'
|
|
20
|
+
require 'chef/mixin/command'
|
|
21
|
+
require 'chef/mixin/shell_out'
|
|
22
|
+
require 'chef/resource/package'
|
|
23
|
+
require 'chef/mixin/shell_out'
|
|
24
|
+
|
|
25
|
+
class Chef
|
|
26
|
+
class Provider
|
|
27
|
+
class Package
|
|
28
|
+
class EasyInstall < Chef::Provider::Package
|
|
29
|
+
|
|
30
|
+
include Chef::Mixin::ShellOut
|
|
31
|
+
|
|
32
|
+
def install_check(name)
|
|
33
|
+
check = false
|
|
34
|
+
|
|
35
|
+
begin
|
|
36
|
+
# first check to see if we can import it
|
|
37
|
+
output = shell_out!("#{python_binary_path} -c \"import #{name}\"", :returns=>[0,1]).stderr
|
|
38
|
+
if output.include? "ImportError"
|
|
39
|
+
# then check to see if its on the path
|
|
40
|
+
output = shell_out!("#{python_binary_path} -c \"import sys; print sys.path\"", :returns=>[0,1]).stdout
|
|
41
|
+
if output.downcase.include? "#{name.downcase}"
|
|
42
|
+
check = true
|
|
43
|
+
end
|
|
44
|
+
else
|
|
45
|
+
check = true
|
|
46
|
+
end
|
|
47
|
+
rescue
|
|
48
|
+
# it's probably not installed
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
check
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def easy_install_binary_path
|
|
55
|
+
path = @new_resource.easy_install_binary
|
|
56
|
+
path ? path : 'easy_install'
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def python_binary_path
|
|
60
|
+
path = @new_resource.python_binary
|
|
61
|
+
path ? path : 'python'
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def module_name
|
|
65
|
+
m = @new_resource.module_name
|
|
66
|
+
m ? m : @new_resource.name
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def load_current_resource
|
|
70
|
+
@current_resource = Chef::Resource::Package.new(@new_resource.name)
|
|
71
|
+
@current_resource.package_name(@new_resource.package_name)
|
|
72
|
+
@current_resource.version(nil)
|
|
73
|
+
|
|
74
|
+
# get the currently installed version if installed
|
|
75
|
+
package_version = nil
|
|
76
|
+
if install_check(module_name)
|
|
77
|
+
begin
|
|
78
|
+
output = shell_out!("#{python_binary_path} -c \"import #{module_name}; print #{module_name}.__version__\"").stdout
|
|
79
|
+
package_version = output.strip
|
|
80
|
+
rescue
|
|
81
|
+
output = shell_out!("#{python_binary_path} -c \"import sys; print sys.path\"", :returns=>[0,1]).stdout
|
|
82
|
+
|
|
83
|
+
output_array = output.gsub(/[\[\]]/,'').split(/\s*,\s*/)
|
|
84
|
+
package_path = ""
|
|
85
|
+
|
|
86
|
+
output_array.each do |entry|
|
|
87
|
+
if entry.downcase.include?(@new_resource.package_name)
|
|
88
|
+
package_path = entry
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
package_path[/\S\S(.*)\/(.*)-(.*)-py(.*).egg\S/]
|
|
93
|
+
package_version = $3
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
if package_version == @new_resource.version
|
|
98
|
+
Chef::Log.debug("#{@new_resource} at version #{@new_resource.version}")
|
|
99
|
+
@current_resource.version(@new_resource.version)
|
|
100
|
+
else
|
|
101
|
+
Chef::Log.debug("#{@new_resource} at version #{package_version}")
|
|
102
|
+
@current_resource.version(package_version)
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
@current_resource
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def candidate_version
|
|
109
|
+
return @candidate_version if @candidate_version
|
|
110
|
+
|
|
111
|
+
# do a dry run to get the latest version
|
|
112
|
+
result = shell_out!("#{easy_install_binary_path} -n #{@new_resource.package_name}", :returns=>[0,1])
|
|
113
|
+
@candidate_version = result.stdout[/(.*)Best match: (.*) (.*)$/, 3]
|
|
114
|
+
@candidate_version
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
def install_package(name, version)
|
|
118
|
+
run_command(:command => "#{easy_install_binary_path}#{expand_options(@new_resource.options)} \"#{name}==#{version}\"")
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
def upgrade_package(name, version)
|
|
122
|
+
install_package(name, version)
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
def remove_package(name, version)
|
|
126
|
+
run_command(:command => "#{easy_install_binary_path }#{expand_options(@new_resource.options)} -m #{name}")
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
def purge_package(name, version)
|
|
130
|
+
remove_package(name, version)
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
end
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
end
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Authors:: Bryan McLellan (btm@loftninjas.org)
|
|
3
|
+
# Matthew Landauer (matthew@openaustralia.org)
|
|
4
|
+
# Copyright:: Copyright (c) 2009 Bryan McLellan, Matthew Landauer
|
|
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
|
+
require 'chef/provider/package'
|
|
21
|
+
require 'chef/mixin/shell_out'
|
|
22
|
+
require 'chef/resource/package'
|
|
23
|
+
require 'chef/mixin/get_source_from_package'
|
|
24
|
+
|
|
25
|
+
class Chef
|
|
26
|
+
class Provider
|
|
27
|
+
class Package
|
|
28
|
+
class Freebsd < Chef::Provider::Package
|
|
29
|
+
include Chef::Mixin::ShellOut
|
|
30
|
+
|
|
31
|
+
include Chef::Mixin::GetSourceFromPackage
|
|
32
|
+
|
|
33
|
+
def initialize(*args)
|
|
34
|
+
super
|
|
35
|
+
@current_resource = Chef::Resource::Package.new(@new_resource.name)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def current_installed_version
|
|
39
|
+
pkg_info = shell_out!("pkg_info -E \"#{package_name}*\"", :env => nil, :returns => [0,1])
|
|
40
|
+
pkg_info.stdout[/^#{package_name}-(.+)/, 1]
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def port_path
|
|
44
|
+
case @new_resource.package_name
|
|
45
|
+
# When the package name starts with a '/' treat it as the full path to the ports directory
|
|
46
|
+
when /^\//
|
|
47
|
+
@new_resource.package_name
|
|
48
|
+
# Otherwise if the package name contains a '/' not at the start (like 'www/wordpress') treat as a relative
|
|
49
|
+
# path from /usr/ports
|
|
50
|
+
when /\//
|
|
51
|
+
"/usr/ports/#{@new_resource.package_name}"
|
|
52
|
+
# Otherwise look up the path to the ports directory using 'whereis'
|
|
53
|
+
else
|
|
54
|
+
whereis = shell_out!("whereis -s #{@new_resource.package_name}", :env => nil)
|
|
55
|
+
unless path = whereis.stdout[/^#{@new_resource.package_name}:\s+(.+)$/, 1]
|
|
56
|
+
raise Chef::Exceptions::Package, "Could not find port with the name #{@new_resource.package_name}"
|
|
57
|
+
end
|
|
58
|
+
path
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def ports_makefile_variable_value(variable)
|
|
63
|
+
make_v = shell_out!("make -V #{variable}", :cwd => port_path, :env => nil, :returns => [0,1])
|
|
64
|
+
make_v.stdout.strip.split($\).first # $\ is the line separator, i.e., newline
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def ports_candidate_version
|
|
68
|
+
ports_makefile_variable_value("PORTVERSION")
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def load_current_resource
|
|
72
|
+
@current_resource.package_name(@new_resource.package_name)
|
|
73
|
+
|
|
74
|
+
@current_resource.version(current_installed_version)
|
|
75
|
+
Chef::Log.debug("#{@new_resource} current version is #{@current_resource.version}") if @current_resource.version
|
|
76
|
+
|
|
77
|
+
@candidate_version = ports_candidate_version
|
|
78
|
+
Chef::Log.debug("#{@new_resource} ports candidate version is #{@candidate_version}") if @candidate_version
|
|
79
|
+
|
|
80
|
+
@current_resource
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def latest_link_name
|
|
84
|
+
ports_makefile_variable_value("LATEST_LINK")
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# The name of the package (without the version number) as understood by pkg_add and pkg_info
|
|
88
|
+
def package_name
|
|
89
|
+
if ports_makefile_variable_value("PKGNAME") =~ /^(.+)-[^-]+$/
|
|
90
|
+
$1
|
|
91
|
+
else
|
|
92
|
+
raise Chef::Exceptions::Package, "Unexpected form for PKGNAME variable in #{port_path}/Makefile"
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def install_package(name, version)
|
|
97
|
+
unless @current_resource.version
|
|
98
|
+
case @new_resource.source
|
|
99
|
+
when /^ports$/
|
|
100
|
+
shell_out!("make -DBATCH install", :timeout => 1200, :env => nil, :cwd => port_path).status
|
|
101
|
+
when /^http/, /^ftp/
|
|
102
|
+
shell_out!("pkg_add -r #{package_name}", :env => { "PACKAGESITE" => @new_resource.source, 'LC_ALL' => nil }).status
|
|
103
|
+
Chef::Log.debug("#{@new_resource} installed from: #{@new_resource.source}")
|
|
104
|
+
when /^\//
|
|
105
|
+
shell_out!("pkg_add #{@new_resource.name}", :env => { "PKG_PATH" => @new_resource.source , 'LC_ALL'=>nil}).status
|
|
106
|
+
Chef::Log.debug("#{@new_resource} installed from: #{@new_resource.source}")
|
|
107
|
+
else
|
|
108
|
+
shell_out!("pkg_add -r #{latest_link_name}", :env => nil).status
|
|
109
|
+
end
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
def remove_package(name, version)
|
|
114
|
+
# a version is mandatory
|
|
115
|
+
if version
|
|
116
|
+
shell_out!("pkg_delete #{package_name}-#{version}", :env => nil).status
|
|
117
|
+
else
|
|
118
|
+
shell_out!("pkg_delete #{package_name}-#{@current_resource.version}", :env => nil).status
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
end
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
class Chef
|
|
2
|
+
class Provider
|
|
3
|
+
class Package
|
|
4
|
+
class Macports < Chef::Provider::Package
|
|
5
|
+
def load_current_resource
|
|
6
|
+
@current_resource = Chef::Resource::Package.new(@new_resource.name)
|
|
7
|
+
@current_resource.package_name(@new_resource.package_name)
|
|
8
|
+
|
|
9
|
+
@current_resource.version(current_installed_version)
|
|
10
|
+
Chef::Log.debug("#{@new_resource} current version is #{@current_resource.version}") if @current_resource.version
|
|
11
|
+
|
|
12
|
+
@candidate_version = macports_candidate_version
|
|
13
|
+
|
|
14
|
+
if !@new_resource.version and !@candidate_version
|
|
15
|
+
raise Chef::Exceptions::Package, "Could not get a candidate version for this package -- #{@new_resource.name} does not seem to be a valid package!"
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
Chef::Log.debug("#{@new_resource} candidate version is #{@candidate_version}") if @candidate_version
|
|
19
|
+
|
|
20
|
+
@current_resource
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def current_installed_version
|
|
24
|
+
command = "port installed #{@new_resource.package_name}"
|
|
25
|
+
output = get_response_from_command(command)
|
|
26
|
+
|
|
27
|
+
response = nil
|
|
28
|
+
output.each_line do |line|
|
|
29
|
+
match = line.match(/^.+ @([^\s]+) \(active\)$/)
|
|
30
|
+
response = match[1] if match
|
|
31
|
+
end
|
|
32
|
+
response
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def macports_candidate_version
|
|
36
|
+
command = "port info --version #{@new_resource.package_name}"
|
|
37
|
+
output = get_response_from_command(command)
|
|
38
|
+
|
|
39
|
+
match = output.match(/^version: (.+)$/)
|
|
40
|
+
|
|
41
|
+
match ? match[1] : nil
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def install_package(name, version)
|
|
45
|
+
unless @current_resource.version == version
|
|
46
|
+
command = "port#{expand_options(@new_resource.options)} install #{name}"
|
|
47
|
+
command << " @#{version}" if version and !version.empty?
|
|
48
|
+
run_command_with_systems_locale(
|
|
49
|
+
:command => command
|
|
50
|
+
)
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def purge_package(name, version)
|
|
55
|
+
command = "port#{expand_options(@new_resource.options)} uninstall #{name}"
|
|
56
|
+
command << " @#{version}" if version and !version.empty?
|
|
57
|
+
run_command_with_systems_locale(
|
|
58
|
+
:command => command
|
|
59
|
+
)
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def remove_package(name, version)
|
|
63
|
+
command = "port#{expand_options(@new_resource.options)} deactivate #{name}"
|
|
64
|
+
command << " @#{version}" if version and !version.empty?
|
|
65
|
+
|
|
66
|
+
run_command_with_systems_locale(
|
|
67
|
+
:command => command
|
|
68
|
+
)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def upgrade_package(name, version)
|
|
72
|
+
# Saving this to a variable -- weird rSpec behavior
|
|
73
|
+
# happens otherwise...
|
|
74
|
+
current_version = @current_resource.version
|
|
75
|
+
|
|
76
|
+
if current_version.nil? or current_version.empty?
|
|
77
|
+
# Macports doesn't like when you upgrade a package
|
|
78
|
+
# that hasn't been installed.
|
|
79
|
+
install_package(name, version)
|
|
80
|
+
elsif current_version != version
|
|
81
|
+
run_command_with_systems_locale(
|
|
82
|
+
:command => "port#{expand_options(@new_resource.options)} upgrade #{name} @#{version}"
|
|
83
|
+
)
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
private
|
|
88
|
+
def get_response_from_command(command)
|
|
89
|
+
output = nil
|
|
90
|
+
status = popen4(command) do |pid, stdin, stdout, stderr|
|
|
91
|
+
begin
|
|
92
|
+
output = stdout.read
|
|
93
|
+
rescue Exception
|
|
94
|
+
raise Chef::Exceptions::Package, "Could not read from STDOUT on command: #{command}"
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
unless status.exitstatus == 0 || status.exitstatus == 1
|
|
98
|
+
raise Chef::Exceptions::Package, "#{command} failed - #{status.insect}!"
|
|
99
|
+
end
|
|
100
|
+
output
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
end
|