chef 10.28.2-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE +201 -0
- data/README.rdoc +177 -0
- data/Rakefile +128 -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 +90 -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 +145 -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 +185 -0
- data/distro/common/html/chef-solr.8.html +165 -0
- data/distro/common/html/knife-bootstrap.1.html +241 -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 +381 -0
- data/distro/common/html/knife-data-bag.1.html +235 -0
- data/distro/common/html/knife-environment.1.html +265 -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 +156 -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 +320 -0
- data/distro/common/html/shef.1.html +283 -0
- data/distro/common/man/man1/knife-bootstrap.1 +201 -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 +332 -0
- data/distro/common/man/man1/knife-data-bag.1 +123 -0
- data/distro/common/man/man1/knife-environment.1 +168 -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 +79 -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 +288 -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 +126 -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 +141 -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 +121 -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 +69 -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 +218 -0
- data/distro/common/markdown/man1/shef.mkd +189 -0
- data/distro/common/markdown/man8/chef-client.mkd +74 -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 +5 -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 +210 -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 +121 -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/distro/windows/service_manager.rb +164 -0
- data/lib/chef.rb +41 -0
- data/lib/chef/api_client.rb +293 -0
- data/lib/chef/application.rb +168 -0
- data/lib/chef/application/agent.rb +18 -0
- data/lib/chef/application/client.rb +322 -0
- data/lib/chef/application/knife.rb +183 -0
- data/lib/chef/application/solo.rb +248 -0
- data/lib/chef/application/windows_service.rb +227 -0
- data/lib/chef/applications.rb +4 -0
- data/lib/chef/certificate.rb +161 -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 +190 -0
- data/lib/chef/client.rb +499 -0
- data/lib/chef/config.rb +330 -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 +171 -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 +84 -0
- data/lib/chef/cookbook/synchronizer.rb +218 -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 +173 -0
- data/lib/chef/cookbook_version.rb +1081 -0
- data/lib/chef/cookbook_version_selector.rb +168 -0
- data/lib/chef/couchdb.rb +246 -0
- data/lib/chef/daemon.rb +187 -0
- data/lib/chef/data_bag.rb +239 -0
- data/lib/chef/data_bag_item.rb +277 -0
- data/lib/chef/encrypted_data_bag_item.rb +268 -0
- data/lib/chef/environment.rb +458 -0
- data/lib/chef/event_dispatch/base.rb +311 -0
- data/lib/chef/event_dispatch/dispatcher.rb +42 -0
- data/lib/chef/exceptions.rb +192 -0
- data/lib/chef/file_access_control.rb +75 -0
- data/lib/chef/file_access_control/unix.rb +216 -0
- data/lib/chef/file_access_control/windows.rb +310 -0
- data/lib/chef/file_cache.rb +220 -0
- data/lib/chef/formatters/base.rb +247 -0
- data/lib/chef/formatters/doc.rb +236 -0
- data/lib/chef/formatters/error_descriptor.rb +66 -0
- data/lib/chef/formatters/error_inspectors.rb +19 -0
- data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +111 -0
- data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +106 -0
- data/lib/chef/formatters/error_inspectors/cookbook_resolve_error_inspector.rb +146 -0
- data/lib/chef/formatters/error_inspectors/cookbook_sync_error_inspector.rb +80 -0
- data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +125 -0
- data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +137 -0
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +109 -0
- data/lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb +118 -0
- data/lib/chef/formatters/error_mapper.rb +85 -0
- data/lib/chef/formatters/minimal.rb +235 -0
- data/lib/chef/handler.rb +235 -0
- data/lib/chef/handler/error_report.rb +33 -0
- data/lib/chef/handler/json_file.rb +64 -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 +149 -0
- data/lib/chef/knife.rb +537 -0
- data/lib/chef/knife/bootstrap.rb +233 -0
- data/lib/chef/knife/bootstrap/archlinux-gems.erb +62 -0
- data/lib/chef/knife/bootstrap/centos5-gems.erb +62 -0
- data/lib/chef/knife/bootstrap/chef-full.erb +60 -0
- data/lib/chef/knife/bootstrap/fedora13-gems.erb +44 -0
- data/lib/chef/knife/bootstrap/ubuntu10.04-apt.erb +53 -0
- data/lib/chef/knife/bootstrap/ubuntu10.04-gems.erb +48 -0
- data/lib/chef/knife/bootstrap/ubuntu12.04-gems.erb +46 -0
- data/lib/chef/knife/bootstrap/ubuntu12.10-gems.erb +60 -0
- data/lib/chef/knife/client_bulk_delete.rb +65 -0
- data/lib/chef/knife/client_create.rb +80 -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 +59 -0
- data/lib/chef/knife/client_show.rb +52 -0
- data/lib/chef/knife/configure.rb +168 -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 +447 -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 +109 -0
- data/lib/chef/knife/cookbook_site_install.rb +164 -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 +60 -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 +290 -0
- data/lib/chef/knife/core/bootstrap_context.rb +106 -0
- data/lib/chef/knife/core/cookbook_scm_repo.rb +160 -0
- data/lib/chef/knife/core/generic_presenter.rb +191 -0
- data/lib/chef/knife/core/node_editor.rb +130 -0
- data/lib/chef/knife/core/node_presenter.rb +137 -0
- data/lib/chef/knife/core/object_loader.rb +112 -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 +217 -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 +136 -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 +83 -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 +86 -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 +75 -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 +459 -0
- data/lib/chef/knife/status.rb +119 -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 +225 -0
- data/lib/chef/mixin/check_helper.rb +31 -0
- data/lib/chef/mixin/checksum.rb +32 -0
- data/lib/chef/mixin/command.rb +164 -0
- data/lib/chef/mixin/command/unix.rb +220 -0
- data/lib/chef/mixin/command/windows.rb +76 -0
- data/lib/chef/mixin/convert_to_class_name.rb +65 -0
- data/lib/chef/mixin/create_path.rb +57 -0
- data/lib/chef/mixin/deep_merge.rb +247 -0
- data/lib/chef/mixin/deprecation.rb +65 -0
- data/lib/chef/mixin/enforce_ownership_and_permissions.rb +39 -0
- data/lib/chef/mixin/file_class.rb +46 -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 +249 -0
- data/lib/chef/mixin/language_include_attribute.rb +61 -0
- data/lib/chef/mixin/language_include_recipe.rb +58 -0
- data/lib/chef/mixin/params_validate.rb +238 -0
- data/lib/chef/mixin/path_sanity.rb +67 -0
- data/lib/chef/mixin/recipe_definition_dsl_core.rb +86 -0
- data/lib/chef/mixin/securable.rb +180 -0
- data/lib/chef/mixin/shell_out.rb +69 -0
- data/lib/chef/mixin/template.rb +100 -0
- data/lib/chef/mixin/why_run.rb +332 -0
- data/lib/chef/mixin/xml_escape.rb +140 -0
- data/lib/chef/mixins.rb +18 -0
- data/lib/chef/monkey_patches/dir.rb +36 -0
- data/lib/chef/monkey_patches/fileutils.rb +65 -0
- data/lib/chef/monkey_patches/moneta.rb +50 -0
- data/lib/chef/monkey_patches/net_http.rb +22 -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 +682 -0
- data/lib/chef/node/attribute.rb +504 -0
- data/lib/chef/openid_registration.rb +187 -0
- data/lib/chef/platform.rb +520 -0
- data/lib/chef/provider.rb +223 -0
- data/lib/chef/provider/breakpoint.rb +36 -0
- data/lib/chef/provider/cookbook_file.rb +105 -0
- data/lib/chef/provider/cron.rb +214 -0
- data/lib/chef/provider/cron/solaris.rb +56 -0
- data/lib/chef/provider/deploy.rb +474 -0
- data/lib/chef/provider/deploy/revision.rb +80 -0
- data/lib/chef/provider/deploy/timestamped.rb +32 -0
- data/lib/chef/provider/directory.rb +128 -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 +106 -0
- data/lib/chef/provider/execute.rb +68 -0
- data/lib/chef/provider/file.rb +355 -0
- data/lib/chef/provider/git.rb +260 -0
- data/lib/chef/provider/group.rb +159 -0
- data/lib/chef/provider/group/aix.rb +70 -0
- data/lib/chef/provider/group/dscl.rb +129 -0
- data/lib/chef/provider/group/gpasswd.rb +65 -0
- data/lib/chef/provider/group/groupadd.rb +96 -0
- data/lib/chef/provider/group/groupmod.rb +120 -0
- data/lib/chef/provider/group/pw.rb +93 -0
- data/lib/chef/provider/group/suse.rb +60 -0
- data/lib/chef/provider/group/usermod.rb +68 -0
- data/lib/chef/provider/group/windows.rb +79 -0
- data/lib/chef/provider/http_request.rb +136 -0
- data/lib/chef/provider/ifconfig.rb +214 -0
- data/lib/chef/provider/link.rb +130 -0
- data/lib/chef/provider/log.rb +54 -0
- data/lib/chef/provider/mdadm.rb +92 -0
- data/lib/chef/provider/mount.rb +128 -0
- data/lib/chef/provider/mount/mount.rb +252 -0
- data/lib/chef/provider/mount/windows.rb +81 -0
- data/lib/chef/provider/ohai.rb +47 -0
- data/lib/chef/provider/package.rb +229 -0
- data/lib/chef/provider/package/apt.rb +147 -0
- data/lib/chef/provider/package/dpkg.rb +128 -0
- data/lib/chef/provider/package/easy_install.rb +136 -0
- data/lib/chef/provider/package/freebsd.rb +149 -0
- data/lib/chef/provider/package/ips.rb +101 -0
- data/lib/chef/provider/package/macports.rb +105 -0
- data/lib/chef/provider/package/pacman.rb +111 -0
- data/lib/chef/provider/package/portage.rb +143 -0
- data/lib/chef/provider/package/rpm.rb +121 -0
- data/lib/chef/provider/package/rubygems.rb +580 -0
- data/lib/chef/provider/package/smartos.rb +84 -0
- data/lib/chef/provider/package/solaris.rb +139 -0
- data/lib/chef/provider/package/yum-dump.py +307 -0
- data/lib/chef/provider/package/yum.rb +1261 -0
- data/lib/chef/provider/package/zypper.rb +144 -0
- data/lib/chef/provider/remote_directory.rb +178 -0
- data/lib/chef/provider/remote_file.rb +126 -0
- data/lib/chef/provider/resource_update.rb +55 -0
- data/lib/chef/provider/route.rb +223 -0
- data/lib/chef/provider/ruby_block.rb +39 -0
- data/lib/chef/provider/script.rb +57 -0
- data/lib/chef/provider/service.rb +158 -0
- data/lib/chef/provider/service/arch.rb +113 -0
- data/lib/chef/provider/service/debian.rb +152 -0
- data/lib/chef/provider/service/freebsd.rb +175 -0
- data/lib/chef/provider/service/gentoo.rb +67 -0
- data/lib/chef/provider/service/init.rb +87 -0
- data/lib/chef/provider/service/insserv.rb +52 -0
- data/lib/chef/provider/service/invokercd.rb +35 -0
- data/lib/chef/provider/service/macosx.rb +144 -0
- data/lib/chef/provider/service/redhat.rb +77 -0
- data/lib/chef/provider/service/simple.rb +172 -0
- data/lib/chef/provider/service/solaris.rb +86 -0
- data/lib/chef/provider/service/systemd.rb +115 -0
- data/lib/chef/provider/service/upstart.rb +232 -0
- data/lib/chef/provider/service/windows.rb +163 -0
- data/lib/chef/provider/subversion.rb +214 -0
- data/lib/chef/provider/template.rb +117 -0
- data/lib/chef/provider/user.rb +207 -0
- data/lib/chef/provider/user/dscl.rb +280 -0
- data/lib/chef/provider/user/pw.rb +113 -0
- data/lib/chef/provider/user/solaris.rb +90 -0
- data/lib/chef/provider/user/useradd.rb +153 -0
- data/lib/chef/provider/user/windows.rb +124 -0
- data/lib/chef/providers.rb +101 -0
- data/lib/chef/recipe.rb +129 -0
- data/lib/chef/reserved_names.rb +9 -0
- data/lib/chef/resource.rb +912 -0
- data/lib/chef/resource/apt_package.rb +43 -0
- data/lib/chef/resource/bash.rb +33 -0
- data/lib/chef/resource/breakpoint.rb +35 -0
- data/lib/chef/resource/chef_gem.rb +53 -0
- data/lib/chef/resource/conditional.rb +101 -0
- data/lib/chef/resource/cookbook_file.rb +52 -0
- data/lib/chef/resource/cron.rb +202 -0
- data/lib/chef/resource/csh.rb +33 -0
- data/lib/chef/resource/deploy.rb +403 -0
- data/lib/chef/resource/deploy_revision.rb +40 -0
- data/lib/chef/resource/directory.rb +65 -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 +63 -0
- data/lib/chef/resource/erl_call.rb +86 -0
- data/lib/chef/resource/execute.rb +132 -0
- data/lib/chef/resource/file.rb +96 -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 +83 -0
- data/lib/chef/resource/http_request.rb +64 -0
- data/lib/chef/resource/ifconfig.rb +149 -0
- data/lib/chef/resource/ips_package.rb +42 -0
- data/lib/chef/resource/link.rb +92 -0
- data/lib/chef/resource/log.rb +74 -0
- data/lib/chef/resource/macports_package.rb +29 -0
- data/lib/chef/resource/mdadm.rb +105 -0
- data/lib/chef/resource/mount.rb +139 -0
- data/lib/chef/resource/ohai.rb +54 -0
- data/lib/chef/resource/package.rb +84 -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 +125 -0
- data/lib/chef/resource/remote_file.rb +90 -0
- data/lib/chef/resource/route.rb +140 -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 +51 -0
- data/lib/chef/resource/scm.rb +151 -0
- data/lib/chef/resource/script.rb +63 -0
- data/lib/chef/resource/service.rb +164 -0
- data/lib/chef/resource/smartos_package.rb +36 -0
- data/lib/chef/resource/solaris_package.rb +36 -0
- data/lib/chef/resource/subversion.rb +37 -0
- data/lib/chef/resource/template.rb +76 -0
- data/lib/chef/resource/timestamped_deploy.rb +31 -0
- data/lib/chef/resource/user.rb +134 -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/resource_platform_map.rb +151 -0
- data/lib/chef/resource_reporter.rb +281 -0
- data/lib/chef/resources.rb +67 -0
- data/lib/chef/rest.rb +510 -0
- data/lib/chef/rest/auth_credentials.rb +73 -0
- data/lib/chef/rest/cookie_jar.rb +31 -0
- data/lib/chef/rest/rest_request.rb +229 -0
- data/lib/chef/role.rb +349 -0
- data/lib/chef/run_context.rb +236 -0
- data/lib/chef/run_list.rb +165 -0
- data/lib/chef/run_list/run_list_expansion.rb +206 -0
- data/lib/chef/run_list/run_list_item.rb +99 -0
- data/lib/chef/run_list/versioned_recipe_list.rb +68 -0
- data/lib/chef/run_status.rb +124 -0
- data/lib/chef/runner.rb +95 -0
- data/lib/chef/sandbox.rb +153 -0
- data/lib/chef/scan_access_control.rb +135 -0
- data/lib/chef/search/query.rb +65 -0
- data/lib/chef/shef.rb +327 -0
- data/lib/chef/shef/ext.rb +591 -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 +296 -0
- data/lib/chef/shell_out.rb +6 -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 +132 -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
- data/lib/chef/win32/api.rb +364 -0
- data/lib/chef/win32/api/error.rb +921 -0
- data/lib/chef/win32/api/file.rb +535 -0
- data/lib/chef/win32/api/memory.rb +105 -0
- data/lib/chef/win32/api/process.rb +41 -0
- data/lib/chef/win32/api/psapi.rb +51 -0
- data/lib/chef/win32/api/security.rb +341 -0
- data/lib/chef/win32/api/system.rb +192 -0
- data/lib/chef/win32/api/unicode.rb +178 -0
- data/lib/chef/win32/error.rb +73 -0
- data/lib/chef/win32/file.rb +167 -0
- data/lib/chef/win32/file/info.rb +100 -0
- data/lib/chef/win32/handle.rb +55 -0
- data/lib/chef/win32/memory.rb +101 -0
- data/lib/chef/win32/process.rb +84 -0
- data/lib/chef/win32/security.rb +489 -0
- data/lib/chef/win32/security/ace.rb +125 -0
- data/lib/chef/win32/security/acl.rb +101 -0
- data/lib/chef/win32/security/securable_object.rb +109 -0
- data/lib/chef/win32/security/security_descriptor.rb +93 -0
- data/lib/chef/win32/security/sid.rb +199 -0
- data/lib/chef/win32/security/token.rb +64 -0
- data/lib/chef/win32/unicode.rb +43 -0
- data/lib/chef/win32/version.rb +119 -0
- data/spec/data/bad-config.rb +1 -0
- data/spec/data/big_json.json +2 -0
- data/spec/data/big_json_plus_one.json +2 -0
- data/spec/data/bootstrap/test-hints.erb +12 -0
- data/spec/data/bootstrap/test.erb +1 -0
- data/spec/data/cb_version_cookbooks/tatft/README.rdoc +3 -0
- data/spec/data/cb_version_cookbooks/tatft/attributes/default.rb +1 -0
- data/spec/data/cb_version_cookbooks/tatft/definitions/runit_service.rb +1 -0
- data/spec/data/cb_version_cookbooks/tatft/files/default/giant_blob.tgz +1 -0
- data/spec/data/cb_version_cookbooks/tatft/libraries/ownage.rb +1 -0
- data/spec/data/cb_version_cookbooks/tatft/providers/lwp.rb +1 -0
- data/spec/data/cb_version_cookbooks/tatft/recipes/default.rb +1 -0
- data/spec/data/cb_version_cookbooks/tatft/resources/lwr.rb +1 -0
- data/spec/data/cb_version_cookbooks/tatft/templates/default/configuration.erb +0 -0
- data/spec/data/checksum/random.txt +1 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-600hhz-0 +1 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-6m8zdk-0 +0 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ahd2gq-0 +1 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-api8ux-0 +1 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-b0r1m1-0 +1 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-bfygsi-0 +1 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-el14l6-0 +1 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ivrl3y-0 +1 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-kkbs85-0 +1 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ory1ux-0 +1 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-pgsq76-0 +1 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ra8uim-0 +1 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-t7k1g-0 +1 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-t8g0sv-0 +1 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ufy6g3-0 +1 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-x2d6j9-0 +1 -0
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-xi0l6h-0 +1 -0
- data/spec/data/config.rb +6 -0
- data/spec/data/cookbooks/angrybash/recipes/default.rb +8 -0
- data/spec/data/cookbooks/apache2/files/default/apache2_module_conf_generate.pl +2 -0
- data/spec/data/cookbooks/apache2/recipes/default.rb +3 -0
- data/spec/data/cookbooks/borken/recipes/default.rb +2 -0
- data/spec/data/cookbooks/borken/templates/default/borken.erb +2 -0
- data/spec/data/cookbooks/chefignore +8 -0
- data/spec/data/cookbooks/java/files/default/java.response +2 -0
- data/spec/data/cookbooks/openldap/attributes/default.rb +15 -0
- data/spec/data/cookbooks/openldap/attributes/smokey.rb +1 -0
- data/spec/data/cookbooks/openldap/definitions/client.rb +5 -0
- data/spec/data/cookbooks/openldap/definitions/server.rb +5 -0
- data/spec/data/cookbooks/openldap/files/default/.dotfile +1 -0
- data/spec/data/cookbooks/openldap/files/default/.ssh/id_rsa +1 -0
- data/spec/data/cookbooks/openldap/files/default/remotedir/.a_dotdir/.a_dotfile_in_a_dotdir +1 -0
- data/spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file1.txt +3 -0
- data/spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file2.txt +3 -0
- data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/.a_dotfile +1 -0
- data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/remote_subdir_file1.txt +3 -0
- data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/remote_subdir_file2.txt +3 -0
- data/spec/data/cookbooks/openldap/files/default/remotedir/subdir_with_no_file_just_a_subsubdir/the_subsubdir/some_file.txt +3 -0
- data/spec/data/cookbooks/openldap/recipes/default.rb +3 -0
- data/spec/data/cookbooks/openldap/recipes/gigantor.rb +3 -0
- data/spec/data/cookbooks/openldap/recipes/one.rb +15 -0
- data/spec/data/cookbooks/openldap/templates/default/openldap_stuff.conf.erb +1 -0
- data/spec/data/cookbooks/openldap/templates/default/openldap_variable_stuff.conf.erb +1 -0
- data/spec/data/cookbooks/openldap/templates/default/test.erb +1 -0
- data/spec/data/definitions/test.rb +5 -0
- data/spec/data/environment-config.rb +5 -0
- data/spec/data/fileedit/blank +0 -0
- data/spec/data/fileedit/hosts +4 -0
- data/spec/data/gems/chef-integration-test-0.1.0.gem +0 -0
- data/spec/data/git_bundles/sinatra-test-app-with-callback-files.gitbundle +0 -0
- data/spec/data/git_bundles/sinatra-test-app-with-symlinks.gitbundle +0 -0
- data/spec/data/git_bundles/sinatra-test-app.gitbundle +0 -0
- data/spec/data/kitchen/chefignore +6 -0
- data/spec/data/kitchen/openldap/attributes/default.rb +3 -0
- data/spec/data/kitchen/openldap/attributes/robinson.rb +3 -0
- data/spec/data/kitchen/openldap/definitions/client.rb +3 -0
- data/spec/data/kitchen/openldap/definitions/drewbarrymore.rb +3 -0
- data/spec/data/kitchen/openldap/recipes/gigantor.rb +3 -0
- data/spec/data/kitchen/openldap/recipes/ignoreme.rb +3 -0
- data/spec/data/kitchen/openldap/recipes/woot.rb +3 -0
- data/spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb +0 -0
- data/spec/data/knife-site-subcommands/plugins/knife/example_subcommand.rb +0 -0
- data/spec/data/knife_subcommand/test_explicit_category.rb +7 -0
- data/spec/data/knife_subcommand/test_name_mapping.rb +4 -0
- data/spec/data/knife_subcommand/test_yourself.rb +13 -0
- data/spec/data/lwrp/providers/buck_passer.rb +3 -0
- data/spec/data/lwrp/providers/buck_passer_2.rb +10 -0
- data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +16 -0
- data/spec/data/lwrp/providers/monkey_name_printer.rb +5 -0
- data/spec/data/lwrp/providers/paint_drying_watcher.rb +7 -0
- data/spec/data/lwrp/providers/thumb_twiddler.rb +7 -0
- data/spec/data/lwrp/resources/bar.rb +1 -0
- data/spec/data/lwrp/resources/foo.rb +3 -0
- data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +1 -0
- data/spec/data/lwrp_const_scoping/resources/conflict.rb +0 -0
- data/spec/data/lwrp_override/providers/buck_passer.rb +10 -0
- data/spec/data/lwrp_override/resources/foo.rb +4 -0
- data/spec/data/metadata/quick_start/metadata.rb +19 -0
- data/spec/data/nodes/default.rb +15 -0
- data/spec/data/nodes/test.example.com.rb +17 -0
- data/spec/data/nodes/test.rb +15 -0
- data/spec/data/object_loader/environments/test.json +5 -0
- data/spec/data/object_loader/environments/test.rb +2 -0
- data/spec/data/object_loader/environments/test_json_class.json +6 -0
- data/spec/data/object_loader/nodes/test.json +5 -0
- data/spec/data/object_loader/nodes/test.rb +2 -0
- data/spec/data/object_loader/nodes/test_json_class.json +6 -0
- data/spec/data/object_loader/roles/test.json +5 -0
- data/spec/data/object_loader/roles/test.rb +2 -0
- data/spec/data/object_loader/roles/test_json_class.json +6 -0
- data/spec/data/old_home_dir/my-dot-emacs +0 -0
- data/spec/data/old_home_dir/my-dot-vim +0 -0
- data/spec/data/recipes/test.rb +7 -0
- data/spec/data/remote_directory_data/remote_dir_file.txt +1 -0
- data/spec/data/remote_directory_data/remote_subdirectory/remote_subdir_file.txt +1 -0
- data/spec/data/remote_file/nyan_cat.png +0 -0
- data/spec/data/run_context/cookbooks/test/attributes/george.rb +1 -0
- data/spec/data/run_context/cookbooks/test/definitions/new_animals.rb +9 -0
- data/spec/data/run_context/cookbooks/test/definitions/new_cat.rb +5 -0
- data/spec/data/run_context/cookbooks/test/recipes/default.rb +5 -0
- data/spec/data/run_context/cookbooks/test/recipes/one.rb +7 -0
- data/spec/data/run_context/cookbooks/test/recipes/two.rb +7 -0
- data/spec/data/run_context/nodes/run_context.rb +5 -0
- data/spec/data/search_queries_to_transform.txt +98 -0
- data/spec/data/ssl/5e707473.0 +18 -0
- data/spec/data/ssl/chef-rspec.cert +27 -0
- data/spec/data/ssl/chef-rspec.key +27 -0
- data/spec/data/ssl/key.pem +15 -0
- data/spec/data/ssl/private_key.pem +27 -0
- data/spec/data/ssl/private_key_with_whitespace.pem +32 -0
- data/spec/data/templates/seattle.txt +1 -0
- data/spec/functional/knife/cookbook_delete_spec.rb +160 -0
- data/spec/functional/knife/exec_spec.rb +60 -0
- data/spec/functional/knife/ssh_spec.rb +268 -0
- data/spec/functional/resource/cookbook_file_spec.rb +75 -0
- data/spec/functional/resource/deploy_revision_spec.rb +515 -0
- data/spec/functional/resource/directory_spec.rb +39 -0
- data/spec/functional/resource/file_spec.rb +69 -0
- data/spec/functional/resource/link_spec.rb +572 -0
- data/spec/functional/resource/remote_directory_spec.rb +114 -0
- data/spec/functional/resource/remote_file_spec.rb +65 -0
- data/spec/functional/resource/template_spec.rb +68 -0
- data/spec/functional/tiny_server_spec.rb +78 -0
- data/spec/rcov.opts +2 -0
- data/spec/spec_helper.rb +82 -0
- data/spec/stress/win32/file_spec.rb +37 -0
- data/spec/stress/win32/memory_spec.rb +22 -0
- data/spec/stress/win32/security_spec.rb +69 -0
- data/spec/support/chef_helpers.rb +65 -0
- data/spec/support/lib/chef/provider/easy.rb +35 -0
- data/spec/support/lib/chef/provider/snakeoil.rb +40 -0
- data/spec/support/lib/chef/resource/cat.rb +41 -0
- data/spec/support/lib/chef/resource/one_two_three_four.rb +43 -0
- data/spec/support/lib/chef/resource/zen_master.rb +46 -0
- data/spec/support/matchers/leak.rb +96 -0
- data/spec/support/mock/constant.rb +52 -0
- data/spec/support/mock/platform.rb +18 -0
- data/spec/support/platform_helpers.rb +39 -0
- data/spec/support/platforms/prof/gc.rb +54 -0
- data/spec/support/platforms/prof/win32.rb +46 -0
- data/spec/support/shared/functional/directory_resource.rb +85 -0
- data/spec/support/shared/functional/file_resource.rb +202 -0
- data/spec/support/shared/functional/knife.rb +37 -0
- data/spec/support/shared/functional/securable_resource.rb +402 -0
- data/spec/support/shared/unit/api_error_inspector.rb +192 -0
- data/spec/tiny_server.rb +202 -0
- data/spec/unit/api_client_spec.rb +257 -0
- data/spec/unit/application/agent_spec.rb +0 -0
- data/spec/unit/application/client_spec.rb +171 -0
- data/spec/unit/application/knife_spec.rb +152 -0
- data/spec/unit/application/server_spec.rb +0 -0
- data/spec/unit/application/solo_spec.rb +167 -0
- data/spec/unit/application_spec.rb +239 -0
- data/spec/unit/certificate_spec.rb +76 -0
- data/spec/unit/checksum/storage/filesystem_spec.rb +69 -0
- data/spec/unit/checksum_cache_spec.rb +209 -0
- data/spec/unit/checksum_spec.rb +94 -0
- data/spec/unit/chef_spec.rb +25 -0
- data/spec/unit/client_spec.rb +290 -0
- data/spec/unit/config_spec.rb +223 -0
- data/spec/unit/cookbook/chefignore_spec.rb +39 -0
- data/spec/unit/cookbook/metadata_spec.rb +627 -0
- data/spec/unit/cookbook/synchronizer_spec.rb +306 -0
- data/spec/unit/cookbook/syntax_check_spec.rb +211 -0
- data/spec/unit/cookbook_loader_spec.rb +145 -0
- data/spec/unit/cookbook_manifest_spec.rb +554 -0
- data/spec/unit/cookbook_spec.rb +101 -0
- data/spec/unit/cookbook_version_spec.rb +406 -0
- data/spec/unit/couchdb_spec.rb +274 -0
- data/spec/unit/daemon_spec.rb +302 -0
- data/spec/unit/data_bag_item_spec.rb +280 -0
- data/spec/unit/data_bag_spec.rb +169 -0
- data/spec/unit/encrypted_data_bag_item_spec.rb +293 -0
- data/spec/unit/environment_spec.rb +492 -0
- data/spec/unit/exceptions_spec.rb +74 -0
- data/spec/unit/file_access_control_spec.rb +282 -0
- data/spec/unit/file_cache_spec.rb +114 -0
- data/spec/unit/formatters/error_inspectors/compile_error_inspector_spec.rb +202 -0
- data/spec/unit/formatters/error_inspectors/cookbook_resolve_error_inspector_spec.rb +93 -0
- data/spec/unit/formatters/error_inspectors/cookbook_sync_error_inspector_spec.rb +43 -0
- data/spec/unit/formatters/error_inspectors/node_load_error_inspector_spec.rb +27 -0
- data/spec/unit/formatters/error_inspectors/registration_error_inspector_spec.rb +27 -0
- data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +182 -0
- data/spec/unit/formatters/error_inspectors/run_list_expansion_error_inspector_spec.rb +93 -0
- data/spec/unit/handler/json_file_spec.rb +64 -0
- data/spec/unit/handler_spec.rb +216 -0
- data/spec/unit/index_queue_spec.rb +391 -0
- data/spec/unit/json_compat_spec.rb +61 -0
- data/spec/unit/knife/bootstrap_spec.rb +265 -0
- data/spec/unit/knife/client_bulk_delete_spec.rb +78 -0
- data/spec/unit/knife/client_create_spec.rb +74 -0
- data/spec/unit/knife/client_delete_spec.rb +40 -0
- data/spec/unit/knife/client_edit_spec.rb +40 -0
- data/spec/unit/knife/client_list_spec.rb +34 -0
- data/spec/unit/knife/client_reregister_spec.rb +62 -0
- data/spec/unit/knife/client_show_spec.rb +42 -0
- data/spec/unit/knife/config_file_selection_spec.rb +118 -0
- data/spec/unit/knife/configure_client_spec.rb +83 -0
- data/spec/unit/knife/configure_spec.rb +229 -0
- data/spec/unit/knife/cookbook_bulk_delete_spec.rb +87 -0
- data/spec/unit/knife/cookbook_create_spec.rb +271 -0
- data/spec/unit/knife/cookbook_delete_spec.rb +239 -0
- data/spec/unit/knife/cookbook_download_spec.rb +217 -0
- data/spec/unit/knife/cookbook_list_spec.rb +88 -0
- data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +65 -0
- data/spec/unit/knife/cookbook_metadata_spec.rb +172 -0
- data/spec/unit/knife/cookbook_show_spec.rb +223 -0
- data/spec/unit/knife/cookbook_site_download_spec.rb +151 -0
- data/spec/unit/knife/cookbook_site_install_spec.rb +148 -0
- data/spec/unit/knife/cookbook_site_share_spec.rb +146 -0
- data/spec/unit/knife/cookbook_site_unshare_spec.rb +77 -0
- data/spec/unit/knife/cookbook_test_spec.rb +83 -0
- data/spec/unit/knife/cookbook_upload_spec.rb +148 -0
- data/spec/unit/knife/core/bootstrap_context_spec.rb +135 -0
- data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +187 -0
- data/spec/unit/knife/core/object_loader_spec.rb +81 -0
- data/spec/unit/knife/core/subcommand_loader_spec.rb +54 -0
- data/spec/unit/knife/core/ui_spec.rb +160 -0
- data/spec/unit/knife/data_bag_create_spec.rb +101 -0
- data/spec/unit/knife/data_bag_edit_spec.rb +96 -0
- data/spec/unit/knife/data_bag_from_file_spec.rb +198 -0
- data/spec/unit/knife/data_bag_show_spec.rb +105 -0
- data/spec/unit/knife/environment_create_spec.rb +91 -0
- data/spec/unit/knife/environment_delete_spec.rb +71 -0
- data/spec/unit/knife/environment_edit_spec.rb +79 -0
- data/spec/unit/knife/environment_from_file_spec.rb +89 -0
- data/spec/unit/knife/environment_list_spec.rb +54 -0
- data/spec/unit/knife/environment_show_spec.rb +52 -0
- data/spec/unit/knife/index_rebuild_spec.rb +65 -0
- data/spec/unit/knife/knife_help.rb +92 -0
- data/spec/unit/knife/node_bulk_delete_spec.rb +97 -0
- data/spec/unit/knife/node_delete_spec.rb +68 -0
- data/spec/unit/knife/node_edit_spec.rb +88 -0
- data/spec/unit/knife/node_from_file_spec.rb +59 -0
- data/spec/unit/knife/node_list_spec.rb +63 -0
- data/spec/unit/knife/node_run_list_add_spec.rb +125 -0
- data/spec/unit/knife/node_run_list_remove_spec.rb +73 -0
- data/spec/unit/knife/node_show_spec.rb +48 -0
- data/spec/unit/knife/role_bulk_delete_spec.rb +80 -0
- data/spec/unit/knife/role_create_spec.rb +80 -0
- data/spec/unit/knife/role_delete_spec.rb +67 -0
- data/spec/unit/knife/role_edit_spec.rb +79 -0
- data/spec/unit/knife/role_from_file_spec.rb +69 -0
- data/spec/unit/knife/role_list_spec.rb +56 -0
- data/spec/unit/knife/ssh_spec.rb +293 -0
- data/spec/unit/knife/status_spec.rb +43 -0
- data/spec/unit/knife/tag_create_spec.rb +23 -0
- data/spec/unit/knife/tag_delete_spec.rb +25 -0
- data/spec/unit/knife/tag_list_spec.rb +23 -0
- data/spec/unit/knife_spec.rb +295 -0
- data/spec/unit/log_spec.rb +24 -0
- data/spec/unit/lwrp_spec.rb +256 -0
- data/spec/unit/mash_spec.rb +51 -0
- data/spec/unit/mixin/checksum_spec.rb +41 -0
- data/spec/unit/mixin/command_spec.rb +105 -0
- data/spec/unit/mixin/convert_to_class_name_spec.rb +50 -0
- data/spec/unit/mixin/deep_merge_spec.rb +786 -0
- data/spec/unit/mixin/deprecation_spec.rb +34 -0
- data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +90 -0
- data/spec/unit/mixin/language_spec.rb +305 -0
- data/spec/unit/mixin/params_validate_spec.rb +405 -0
- data/spec/unit/mixin/path_sanity_spec.rb +80 -0
- data/spec/unit/mixin/securable_spec.rb +254 -0
- data/spec/unit/mixin/shell_out_spec.rb +109 -0
- data/spec/unit/mixin/template_spec.rb +104 -0
- data/spec/unit/mixin/xml_escape_spec.rb +54 -0
- data/spec/unit/monkey_patches/string_spec.rb +37 -0
- data/spec/unit/node/attribute_spec.rb +1033 -0
- data/spec/unit/node_spec.rb +744 -0
- data/spec/unit/openid_registration_spec.rb +153 -0
- data/spec/unit/platform_spec.rb +241 -0
- data/spec/unit/provider/breakpoint_spec.rb +54 -0
- data/spec/unit/provider/cookbook_file_spec.rb +218 -0
- data/spec/unit/provider/cron/solaris_spec.rb +121 -0
- data/spec/unit/provider/cron_spec.rb +812 -0
- data/spec/unit/provider/deploy/revision_spec.rb +103 -0
- data/spec/unit/provider/deploy/timestamped_spec.rb +40 -0
- data/spec/unit/provider/deploy_spec.rb +620 -0
- data/spec/unit/provider/directory_spec.rb +156 -0
- data/spec/unit/provider/env_spec.rb +232 -0
- data/spec/unit/provider/erl_call_spec.rb +86 -0
- data/spec/unit/provider/execute_spec.rb +63 -0
- data/spec/unit/provider/file_spec.rb +505 -0
- data/spec/unit/provider/git_spec.rb +342 -0
- data/spec/unit/provider/group/dscl_spec.rb +294 -0
- data/spec/unit/provider/group/gpasswd_spec.rb +108 -0
- data/spec/unit/provider/group/groupadd_spec.rb +161 -0
- data/spec/unit/provider/group/groupmod_spec.rb +134 -0
- data/spec/unit/provider/group/pw_spec.rb +140 -0
- data/spec/unit/provider/group/usermod_spec.rb +95 -0
- data/spec/unit/provider/group/windows_spec.rb +94 -0
- data/spec/unit/provider/group_spec.rb +259 -0
- data/spec/unit/provider/http_request_spec.rb +178 -0
- data/spec/unit/provider/ifconfig_spec.rb +213 -0
- data/spec/unit/provider/link_spec.rb +252 -0
- data/spec/unit/provider/log_spec.rb +81 -0
- data/spec/unit/provider/mdadm_spec.rb +128 -0
- data/spec/unit/provider/mount/mount_spec.rb +398 -0
- data/spec/unit/provider/mount/windows_spec.rb +134 -0
- data/spec/unit/provider/mount_spec.rb +160 -0
- data/spec/unit/provider/ohai_spec.rb +85 -0
- data/spec/unit/provider/package/apt_spec.rb +352 -0
- data/spec/unit/provider/package/dpkg_spec.rb +216 -0
- data/spec/unit/provider/package/easy_install_spec.rb +112 -0
- data/spec/unit/provider/package/freebsd_spec.rb +259 -0
- data/spec/unit/provider/package/ips_spec.rb +210 -0
- data/spec/unit/provider/package/macports_spec.rb +203 -0
- data/spec/unit/provider/package/pacman_spec.rb +206 -0
- data/spec/unit/provider/package/portage_spec.rb +320 -0
- data/spec/unit/provider/package/rpm_spec.rb +152 -0
- data/spec/unit/provider/package/rubygems_spec.rb +639 -0
- data/spec/unit/provider/package/smartos_spec.rb +83 -0
- data/spec/unit/provider/package/solaris_spec.rb +181 -0
- data/spec/unit/provider/package/yum_spec.rb +1856 -0
- data/spec/unit/provider/package/zypper_spec.rb +159 -0
- data/spec/unit/provider/package_spec.rb +427 -0
- data/spec/unit/provider/remote_directory_spec.rb +222 -0
- data/spec/unit/provider/remote_file_spec.rb +288 -0
- data/spec/unit/provider/route_spec.rb +226 -0
- data/spec/unit/provider/ruby_block_spec.rb +38 -0
- data/spec/unit/provider/script_spec.rb +96 -0
- data/spec/unit/provider/service/arch_service_spec.rb +330 -0
- data/spec/unit/provider/service/debian_service_spec.rb +254 -0
- data/spec/unit/provider/service/freebsd_service_spec.rb +379 -0
- data/spec/unit/provider/service/gentoo_service_spec.rb +144 -0
- data/spec/unit/provider/service/init_service_spec.rb +212 -0
- data/spec/unit/provider/service/insserv_service_spec.rb +76 -0
- data/spec/unit/provider/service/invokercd_service_spec.rb +212 -0
- data/spec/unit/provider/service/macosx_spec.rb +229 -0
- data/spec/unit/provider/service/redhat_spec.rb +156 -0
- data/spec/unit/provider/service/simple_service_spec.rb +171 -0
- data/spec/unit/provider/service/solaris_smf_service_spec.rb +140 -0
- data/spec/unit/provider/service/systemd_service_spec.rb +239 -0
- data/spec/unit/provider/service/upstart_service_spec.rb +314 -0
- data/spec/unit/provider/service/windows_spec.rb +235 -0
- data/spec/unit/provider/service_spec.rb +169 -0
- data/spec/unit/provider/subversion_spec.rb +281 -0
- data/spec/unit/provider/template_spec.rb +196 -0
- data/spec/unit/provider/user/dscl_spec.rb +454 -0
- data/spec/unit/provider/user/pw_spec.rb +235 -0
- data/spec/unit/provider/user/solaris_spec.rb +414 -0
- data/spec/unit/provider/user/useradd_spec.rb +386 -0
- data/spec/unit/provider/user/windows_spec.rb +178 -0
- data/spec/unit/provider/user_spec.rb +468 -0
- data/spec/unit/provider_spec.rb +169 -0
- data/spec/unit/recipe_spec.rb +268 -0
- data/spec/unit/resource/apt_package_spec.rb +43 -0
- data/spec/unit/resource/bash_spec.rb +40 -0
- data/spec/unit/resource/breakpoint_spec.rb +43 -0
- data/spec/unit/resource/chef_gem_spec.rb +49 -0
- data/spec/unit/resource/conditional_spec.rb +147 -0
- data/spec/unit/resource/cookbook_file_spec.rb +89 -0
- data/spec/unit/resource/cron_spec.rb +181 -0
- data/spec/unit/resource/csh_spec.rb +40 -0
- data/spec/unit/resource/deploy_revision_spec.rb +47 -0
- data/spec/unit/resource/deploy_spec.rb +259 -0
- data/spec/unit/resource/directory_spec.rb +82 -0
- data/spec/unit/resource/dpkg_package_spec.rb +38 -0
- data/spec/unit/resource/easy_install_package_spec.rb +48 -0
- data/spec/unit/resource/env_spec.rb +85 -0
- data/spec/unit/resource/erl_call_spec.rb +81 -0
- data/spec/unit/resource/execute_spec.rb +124 -0
- data/spec/unit/resource/file_spec.rb +121 -0
- data/spec/unit/resource/freebsd_package_spec.rb +39 -0
- data/spec/unit/resource/gem_package_spec.rb +49 -0
- data/spec/unit/resource/git_spec.rb +46 -0
- data/spec/unit/resource/group_spec.rb +148 -0
- data/spec/unit/resource/http_request_spec.rb +59 -0
- data/spec/unit/resource/ifconfig_spec.rb +46 -0
- data/spec/unit/resource/ips_package_spec.rb +43 -0
- data/spec/unit/resource/link_spec.rb +118 -0
- data/spec/unit/resource/log_spec.rb +70 -0
- data/spec/unit/resource/macports_package_spec.rb +37 -0
- data/spec/unit/resource/mdadm_spec.rb +102 -0
- data/spec/unit/resource/mount_spec.rb +158 -0
- data/spec/unit/resource/ohai_spec.rb +62 -0
- data/spec/unit/resource/package_spec.rb +80 -0
- data/spec/unit/resource/pacman_package_spec.rb +38 -0
- data/spec/unit/resource/perl_spec.rb +40 -0
- data/spec/unit/resource/portage_package_spec.rb +38 -0
- data/spec/unit/resource/python_spec.rb +40 -0
- data/spec/unit/resource/remote_directory_spec.rb +97 -0
- data/spec/unit/resource/remote_file_spec.rb +125 -0
- data/spec/unit/resource/route_spec.rb +107 -0
- data/spec/unit/resource/rpm_package_spec.rb +38 -0
- data/spec/unit/resource/ruby_block_spec.rb +57 -0
- data/spec/unit/resource/ruby_spec.rb +40 -0
- data/spec/unit/resource/scm_spec.rb +159 -0
- data/spec/unit/resource/script_spec.rb +69 -0
- data/spec/unit/resource/service_spec.rb +165 -0
- data/spec/unit/resource/smartos_package_spec.rb +38 -0
- data/spec/unit/resource/subversion_spec.rb +58 -0
- data/spec/unit/resource/template_spec.rb +108 -0
- data/spec/unit/resource/timestamped_deploy_spec.rb +28 -0
- data/spec/unit/resource/user_spec.rb +122 -0
- data/spec/unit/resource/yum_package_spec.rb +85 -0
- data/spec/unit/resource_collection/stepable_iterator_spec.rb +144 -0
- data/spec/unit/resource_collection_spec.rb +257 -0
- data/spec/unit/resource_definition_spec.rb +119 -0
- data/spec/unit/resource_platform_map_spec.rb +164 -0
- data/spec/unit/resource_reporter_spec.rb +591 -0
- data/spec/unit/resource_spec.rb +721 -0
- data/spec/unit/rest/auth_credentials_spec.rb +431 -0
- data/spec/unit/rest_spec.rb +644 -0
- data/spec/unit/role_spec.rb +275 -0
- data/spec/unit/run_context_spec.rb +64 -0
- data/spec/unit/run_list/run_list_expansion_spec.rb +129 -0
- data/spec/unit/run_list/run_list_item_spec.rb +117 -0
- data/spec/unit/run_list/versioned_recipe_list_spec.rb +123 -0
- data/spec/unit/run_list_spec.rb +521 -0
- data/spec/unit/run_status_spec.rb +145 -0
- data/spec/unit/runner_spec.rb +303 -0
- data/spec/unit/scan_access_control_spec.rb +182 -0
- data/spec/unit/search/query_spec.rb +99 -0
- data/spec/unit/shef/model_wrapper_spec.rb +97 -0
- data/spec/unit/shef/shef_ext_spec.rb +153 -0
- data/spec/unit/shef/shef_session_spec.rb +154 -0
- data/spec/unit/shef_spec.rb +161 -0
- data/spec/unit/solr_query/query_transform_spec.rb +454 -0
- data/spec/unit/solr_query/solr_http_request_spec.rb +244 -0
- data/spec/unit/solr_query_spec.rb +203 -0
- data/spec/unit/util/file_edit_spec.rb +135 -0
- data/spec/unit/version_class_spec.rb +172 -0
- data/spec/unit/version_constraint_spec.rb +134 -0
- data/spec/unit/webui_user_spec.rb +238 -0
- data/tasks/rspec.rb +75 -0
- metadata +1548 -0
@@ -0,0 +1,192 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Seth Chisamore (<schisamo@opscode.com>)
|
3
|
+
# Copyright:: Copyright 2011 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/win32/api'
|
20
|
+
|
21
|
+
class Chef
|
22
|
+
module ReservedNames::Win32
|
23
|
+
module API
|
24
|
+
module System
|
25
|
+
extend Chef::ReservedNames::Win32::API
|
26
|
+
|
27
|
+
###############################################
|
28
|
+
# Win32 API Constants
|
29
|
+
###############################################
|
30
|
+
|
31
|
+
# http://msdn.microsoft.com/en-us/library/ms724833(v=vs.85).aspx
|
32
|
+
|
33
|
+
# Suite Masks
|
34
|
+
# Microsoft BackOffice components are installed.
|
35
|
+
VER_SUITE_BACKOFFICE = 0x00000004
|
36
|
+
# Windows Server 2003, Web Edition is installed.
|
37
|
+
VER_SUITE_BLADE = 0x00000400
|
38
|
+
# Windows Server 2003, Compute Cluster Edition is installed.
|
39
|
+
VER_SUITE_COMPUTE_SERVER = 0x00004000
|
40
|
+
# Windows Server 2008 Datacenter, Windows Server 2003, Datacenter Edition, or Windows 2000 Datacenter Server is installed.
|
41
|
+
VER_SUITE_DATACENTER = 0x00000080
|
42
|
+
# Windows Server 2008 Enterprise, Windows Server 2003, Enterprise Edition, or Windows 2000 Advanced Server is installed. Refer to the Remarks section for more information about this bit flag.
|
43
|
+
VER_SUITE_ENTERPRISE = 0x00000002
|
44
|
+
# Windows XP Embedded is installed.
|
45
|
+
VER_SUITE_EMBEDDEDNT = 0x00000040
|
46
|
+
# Windows Vista Home Premium, Windows Vista Home Basic, or Windows XP Home Edition is installed.
|
47
|
+
VER_SUITE_PERSONAL = 0x00000200
|
48
|
+
# Remote Desktop is supported, but only one interactive session is supported. This value is set unless the system is running in application server mode.
|
49
|
+
VER_SUITE_SINGLEUSERTS = 0x00000100
|
50
|
+
# Microsoft Small Business Server was once installed on the system, but may have been upgraded to another version of Windows. Refer to the Remarks section for more information about this bit flag.
|
51
|
+
VER_SUITE_SMALLBUSINESS = 0x00000001
|
52
|
+
# Microsoft Small Business Server is installed with the restrictive client license in force. Refer to the Remarks section for more information about this bit flag.
|
53
|
+
VER_SUITE_SMALLBUSINESS_RESTRICTED = 0x00000020
|
54
|
+
# Windows Storage Server 2003 R2 or Windows Storage Server 2003is installed.
|
55
|
+
VER_SUITE_STORAGE_SERVER = 0x00002000
|
56
|
+
# Terminal Services is installed. This value is always set.
|
57
|
+
# If VER_SUITE_TERMINAL is set but VER_SUITE_SINGLEUSERTS is not set, the system is running in application server mode.
|
58
|
+
VER_SUITE_TERMINAL = 0x00000010
|
59
|
+
# Windows Home Server is installed.
|
60
|
+
VER_SUITE_WH_SERVER = 0x00008000
|
61
|
+
|
62
|
+
# Product Type
|
63
|
+
# The system is a domain controller and the operating system is Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, or Windows 2000 Server.
|
64
|
+
VER_NT_DOMAIN_CONTROLLER = 0x0000002
|
65
|
+
# The operating system is Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, or Windows 2000 Server.
|
66
|
+
# Note that a server that is also a domain controller is reported as VER_NT_DOMAIN_CONTROLLER, not VER_NT_SERVER.
|
67
|
+
VER_NT_SERVER = 0x0000003
|
68
|
+
# The operating system is Windows 7, Windows Vista, Windows XP Professional, Windows XP Home Edition, or Windows 2000 Professional.
|
69
|
+
VER_NT_WORKSTATION = 0x0000001
|
70
|
+
|
71
|
+
# Product Info
|
72
|
+
# http://msdn.microsoft.com/en-us/library/ms724358(v=vs.85).aspx
|
73
|
+
PRODUCT_BUSINESS = 0x00000006 # Business
|
74
|
+
PRODUCT_BUSINESS_N = 0x00000010 # Business N
|
75
|
+
PRODUCT_CLUSTER_SERVER = 0x00000012 # HPC Edition
|
76
|
+
PRODUCT_DATACENTER_SERVER = 0x00000008 # Server Datacenter (full installation)
|
77
|
+
PRODUCT_DATACENTER_SERVER_CORE = 0x0000000C # Server Datacenter (core installation)
|
78
|
+
PRODUCT_DATACENTER_SERVER_CORE_V = 0x00000027 # Server Datacenter without Hyper-V (core installation)
|
79
|
+
PRODUCT_DATACENTER_SERVER_V = 0x00000025 # Server Datacenter without Hyper-V (full installation)
|
80
|
+
PRODUCT_ENTERPRISE = 0x00000004 # Enterprise
|
81
|
+
PRODUCT_ENTERPRISE_E = 0x00000046 # Not supported
|
82
|
+
PRODUCT_ENTERPRISE_N = 0x0000001B # Enterprise N
|
83
|
+
PRODUCT_ENTERPRISE_SERVER = 0x0000000A # Server Enterprise (full installation)
|
84
|
+
PRODUCT_ENTERPRISE_SERVER_CORE = 0x0000000E # Server Enterprise (core installation)
|
85
|
+
PRODUCT_ENTERPRISE_SERVER_CORE_V = 0x00000029 # Server Enterprise without Hyper-V (core installation)
|
86
|
+
PRODUCT_ENTERPRISE_SERVER_IA64 = 0x0000000F # Server Enterprise for Itanium-based Systems
|
87
|
+
PRODUCT_ENTERPRISE_SERVER_V = 0x00000026 # Server Enterprise without Hyper-V (full installation)
|
88
|
+
PRODUCT_HOME_BASIC = 0x00000002 # Home Basic
|
89
|
+
PRODUCT_HOME_BASIC_E = 0x00000043 # Not supported
|
90
|
+
PRODUCT_HOME_BASIC_N = 0x00000005 # Home Basic N
|
91
|
+
PRODUCT_HOME_PREMIUM = 0x00000003 # Home Premium
|
92
|
+
PRODUCT_HOME_PREMIUM_E = 0x00000044 # Not supported
|
93
|
+
PRODUCT_HOME_PREMIUM_N = 0x0000001A # Home Premium N
|
94
|
+
PRODUCT_HYPERV = 0x0000002A # Microsoft Hyper-V Server
|
95
|
+
PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT = 0x0000001E # Windows Essential Business Server Management Server
|
96
|
+
PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING = 0x00000020 # Windows Essential Business Server Messaging Server
|
97
|
+
PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY = 0x0000001F # Windows Essential Business Server Security Server
|
98
|
+
PRODUCT_PROFESSIONAL = 0x00000030 # Professional
|
99
|
+
PRODUCT_PROFESSIONAL_E = 0x00000045 # Not supported
|
100
|
+
PRODUCT_PROFESSIONAL_N = 0x00000031 # Professional N
|
101
|
+
PRODUCT_SERVER_FOR_SMALLBUSINESS = 0x00000018 # Windows Server 2008 for Windows Essential Server Solutions
|
102
|
+
PRODUCT_SERVER_FOR_SMALLBUSINESS_V = 0x00000023 # Windows Server 2008 without Hyper-V for Windows Essential Server Solutions
|
103
|
+
PRODUCT_SERVER_FOUNDATION = 0x00000021 # Server Foundation
|
104
|
+
PRODUCT_HOME_PREMIUM_SERVER = 0x00000022 # Windows Home Server 2011
|
105
|
+
PRODUCT_SB_SOLUTION_SERVER = 0x00000032 # Windows Small Business Server 2011 Essentials
|
106
|
+
PRODUCT_HOME_SERVER = 0x00000013 # Windows Storage Server 2008 R2 Essentials
|
107
|
+
PRODUCT_SMALLBUSINESS_SERVER = 0x00000009 # Windows Small Business Server
|
108
|
+
PRODUCT_SOLUTION_EMBEDDEDSERVER = 0x00000038 # Windows MultiPoint Server
|
109
|
+
PRODUCT_STANDARD_SERVER = 0x00000007 # Server Standard (full installation)
|
110
|
+
PRODUCT_STANDARD_SERVER_CORE = 0x0000000D # Server Standard (core installation)
|
111
|
+
PRODUCT_STANDARD_SERVER_CORE_V = 0x00000028 # Server Standard without Hyper-V (core installation)
|
112
|
+
PRODUCT_STANDARD_SERVER_V = 0x00000024 # Server Standard without Hyper-V (full installation)
|
113
|
+
PRODUCT_STARTER = 0x0000000B # Starter
|
114
|
+
PRODUCT_STARTER_E = 0x00000042 # Not supported
|
115
|
+
PRODUCT_STARTER_N = 0x0000002F # Starter N
|
116
|
+
PRODUCT_STORAGE_ENTERPRISE_SERVER = 0x00000017 # Storage Server Enterprise
|
117
|
+
PRODUCT_STORAGE_EXPRESS_SERVER = 0x00000014 # Storage Server Express
|
118
|
+
PRODUCT_STORAGE_STANDARD_SERVER = 0x00000015 # Storage Server Standard
|
119
|
+
PRODUCT_STORAGE_WORKGROUP_SERVER = 0x00000016 # Storage Server Workgroup
|
120
|
+
PRODUCT_UNDEFINED = 0x00000000 # An unknown product
|
121
|
+
PRODUCT_ULTIMATE = 0x00000001 # Ultimate
|
122
|
+
PRODUCT_ULTIMATE_E = 0x00000047 # Not supported
|
123
|
+
PRODUCT_ULTIMATE_N = 0x0000001C # Ultimate N
|
124
|
+
PRODUCT_WEB_SERVER = 0x00000011 # Web Server (full installation)
|
125
|
+
PRODUCT_WEB_SERVER_CORE = 0x0000001D # Web Server (core installation)
|
126
|
+
|
127
|
+
# GetSystemMetrics
|
128
|
+
# The build number if the system is Windows Server 2003 R2; otherwise, 0.
|
129
|
+
SM_SERVERR2 = 89
|
130
|
+
|
131
|
+
###############################################
|
132
|
+
# Win32 API Bindings
|
133
|
+
###############################################
|
134
|
+
|
135
|
+
ffi_lib 'kernel32', 'user32'
|
136
|
+
|
137
|
+
class OSVERSIONINFOEX < FFI::Struct
|
138
|
+
layout :dw_os_version_info_size, :DWORD,
|
139
|
+
:dw_major_version, :DWORD,
|
140
|
+
:dw_minor_version, :DWORD,
|
141
|
+
:dw_build_number, :DWORD,
|
142
|
+
:dw_platform_id, :DWORD,
|
143
|
+
:sz_csd_version, [:BYTE, 256],
|
144
|
+
:w_service_pack_major, :WORD,
|
145
|
+
:w_service_pack_minor, :WORD,
|
146
|
+
:w_suite_mask, :WORD,
|
147
|
+
:w_product_type, :BYTE,
|
148
|
+
:w_reserved, :BYTE
|
149
|
+
end
|
150
|
+
|
151
|
+
=begin
|
152
|
+
BOOL WINAPI CloseHandle(
|
153
|
+
__in HANDLE hObject
|
154
|
+
);
|
155
|
+
=end
|
156
|
+
safe_attach_function :CloseHandle, [ :HANDLE ], :BOOL
|
157
|
+
|
158
|
+
=begin
|
159
|
+
DWORD WINAPI GetVersion(void);
|
160
|
+
=end
|
161
|
+
safe_attach_function :GetVersion, [], :DWORD
|
162
|
+
|
163
|
+
=begin
|
164
|
+
BOOL WINAPI GetVersionEx(
|
165
|
+
__inout LPOSVERSIONINFO lpVersionInfo
|
166
|
+
);
|
167
|
+
=end
|
168
|
+
safe_attach_function :GetVersionExW, [:pointer], :BOOL
|
169
|
+
safe_attach_function :GetVersionExA, [:pointer], :BOOL
|
170
|
+
|
171
|
+
=begin
|
172
|
+
BOOL WINAPI GetProductInfo(
|
173
|
+
__in DWORD dwOSMajorVersion,
|
174
|
+
__in DWORD dwOSMinorVersion,
|
175
|
+
__in DWORD dwSpMajorVersion,
|
176
|
+
__in DWORD dwSpMinorVersion,
|
177
|
+
__out PDWORD pdwReturnedProductType
|
178
|
+
);
|
179
|
+
=end
|
180
|
+
safe_attach_function :GetProductInfo, [:DWORD, :DWORD, :DWORD, :DWORD, :PDWORD], :BOOL
|
181
|
+
|
182
|
+
=begin
|
183
|
+
int WINAPI GetSystemMetrics(
|
184
|
+
__in int nIndex
|
185
|
+
);
|
186
|
+
=end
|
187
|
+
safe_attach_function :GetSystemMetrics, [:int], :int
|
188
|
+
|
189
|
+
end
|
190
|
+
end
|
191
|
+
end
|
192
|
+
end
|
@@ -0,0 +1,178 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Seth Chisamore (<schisamo@opscode.com>)
|
3
|
+
# Copyright:: Copyright 2011 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/win32/api'
|
20
|
+
|
21
|
+
class Chef
|
22
|
+
module ReservedNames::Win32
|
23
|
+
module API
|
24
|
+
module Unicode
|
25
|
+
extend Chef::ReservedNames::Win32::API
|
26
|
+
|
27
|
+
###############################################
|
28
|
+
# Win32 API Constants
|
29
|
+
###############################################
|
30
|
+
|
31
|
+
CP_ACP = 0
|
32
|
+
CP_OEMCP = 1
|
33
|
+
CP_MACCP = 2
|
34
|
+
CP_THREAD_ACP = 3
|
35
|
+
CP_SYMBOL = 42
|
36
|
+
CP_UTF7 = 65000
|
37
|
+
CP_UTF8 = 65001
|
38
|
+
|
39
|
+
MB_PRECOMPOSED = 0x00000001
|
40
|
+
MB_COMPOSITE = 0x00000002
|
41
|
+
MB_USEGLYPHCHARS = 0x00000004
|
42
|
+
MB_ERR_INVALID_CHARS = 0x00000008
|
43
|
+
|
44
|
+
WC_COMPOSITECHECK = 0x00000200
|
45
|
+
WC_DISCARDNS = 0x00000010
|
46
|
+
WC_SEPCHARS = 0x00000020
|
47
|
+
WC_DEFAULTCHAR = 0x00000040
|
48
|
+
WC_NO_BEST_FIT_CHARS = 0x00000400
|
49
|
+
|
50
|
+
ANSI_CHARSET = 0
|
51
|
+
DEFAULT_CHARSET = 1
|
52
|
+
SYMBOL_CHARSET = 2
|
53
|
+
SHIFTJIS_CHARSET = 128
|
54
|
+
HANGEUL_CHARSET = 129
|
55
|
+
HANGUL_CHARSET = 129
|
56
|
+
GB2312_CHARSET = 134
|
57
|
+
CHINESEBIG5_CHARSET = 136
|
58
|
+
OEM_CHARSET = 255
|
59
|
+
JOHAB_CHARSET = 130
|
60
|
+
HEBREW_CHARSET = 177
|
61
|
+
ARABIC_CHARSET = 178
|
62
|
+
GREEK_CHARSET = 161
|
63
|
+
TURKISH_CHARSET = 162
|
64
|
+
VIETNAMESE_CHARSET = 163
|
65
|
+
THAI_CHARSET = 222
|
66
|
+
EASTEUROPE_CHARSET = 238
|
67
|
+
RUSSIAN_CHARSET = 204
|
68
|
+
|
69
|
+
IS_TEXT_UNICODE_ASCII16 = 0x0001
|
70
|
+
IS_TEXT_UNICODE_REVERSE_ASCII16 = 0x0010
|
71
|
+
IS_TEXT_UNICODE_STATISTICS = 0x0002
|
72
|
+
IS_TEXT_UNICODE_REVERSE_STATISTICS = 0x0020
|
73
|
+
IS_TEXT_UNICODE_CONTROLS = 0x0004
|
74
|
+
IS_TEXT_UNICODE_REVERSE_CONTROLS = 0x0040
|
75
|
+
IS_TEXT_UNICODE_SIGNATURE = 0x0008
|
76
|
+
IS_TEXT_UNICODE_REVERSE_SIGNATURE = 0x0080
|
77
|
+
IS_TEXT_UNICODE_ILLEGAL_CHARS = 0x0100
|
78
|
+
IS_TEXT_UNICODE_ODD_LENGTH = 0x0200
|
79
|
+
IS_TEXT_UNICODE_DBCS_LEADBYTE = 0x0400
|
80
|
+
IS_TEXT_UNICODE_NULL_BYTES = 0x1000
|
81
|
+
IS_TEXT_UNICODE_UNICODE_MASK = 0x000F
|
82
|
+
IS_TEXT_UNICODE_REVERSE_MASK = 0x00F0
|
83
|
+
IS_TEXT_UNICODE_NOT_UNICODE_MASK = 0x0F00
|
84
|
+
IS_TEXT_UNICODE_NOT_ASCII_MASK = 0xF000
|
85
|
+
|
86
|
+
TCI_SRCCHARSET = 1
|
87
|
+
TCI_SRCCODEPAGE = 2
|
88
|
+
TCI_SRCFONTSIG = 3
|
89
|
+
TCI_SRCLOCALE = 0x100
|
90
|
+
|
91
|
+
###############################################
|
92
|
+
# Win32 API Bindings
|
93
|
+
###############################################
|
94
|
+
|
95
|
+
ffi_lib 'kernel32', 'advapi32'
|
96
|
+
|
97
|
+
=begin
|
98
|
+
BOOL IsTextUnicode(
|
99
|
+
__in const VOID *lpv,
|
100
|
+
__in int iSize,
|
101
|
+
__inout LPINT lpiResult
|
102
|
+
);
|
103
|
+
=end
|
104
|
+
safe_attach_function :IsTextUnicode, [:pointer, :int, :LPINT], :BOOL
|
105
|
+
|
106
|
+
=begin
|
107
|
+
int MultiByteToWideChar(
|
108
|
+
__in UINT CodePage,
|
109
|
+
__in DWORD dwFlags,
|
110
|
+
__in LPCSTR lpMultiByteStr,
|
111
|
+
__in int cbMultiByte,
|
112
|
+
__out LPWSTR lpWideCharStr,
|
113
|
+
__in int cchWideChar
|
114
|
+
);
|
115
|
+
=end
|
116
|
+
safe_attach_function :MultiByteToWideChar, [:UINT, :DWORD, :LPCSTR, :int, :LPWSTR, :int], :int
|
117
|
+
|
118
|
+
=begin
|
119
|
+
int WideCharToMultiByte(
|
120
|
+
__in UINT CodePage,
|
121
|
+
__in DWORD dwFlags,
|
122
|
+
__in LPCWSTR lpWideCharStr,
|
123
|
+
__in int cchWideChar,
|
124
|
+
__out LPSTR lpMultiByteStr,
|
125
|
+
__in int cbMultiByte,
|
126
|
+
__in LPCSTR lpDefaultChar,
|
127
|
+
__out LPBOOL lpUsedDefaultChar
|
128
|
+
);
|
129
|
+
=end
|
130
|
+
safe_attach_function :WideCharToMultiByte, [:UINT, :DWORD, :LPCWSTR, :int, :LPSTR, :int, :LPCSTR, :LPBOOL], :int
|
131
|
+
|
132
|
+
###############################################
|
133
|
+
# Helpers
|
134
|
+
###############################################
|
135
|
+
|
136
|
+
def utf8_to_wide(ustring)
|
137
|
+
# ensure it is actually UTF-8
|
138
|
+
# Ruby likes to mark binary data as ASCII-8BIT
|
139
|
+
ustring = (ustring + "").force_encoding('UTF-8') if ustring.respond_to?(:force_encoding) && ustring.encoding.name != "UTF-8"
|
140
|
+
|
141
|
+
# ensure we have the double-null termination Windows Wide likes
|
142
|
+
ustring = ustring + "\000\000" if ustring[-1].chr != "\000"
|
143
|
+
|
144
|
+
# encode it all as UTF-16LE AKA Windows Wide Character AKA Windows Unicode
|
145
|
+
ustring = begin
|
146
|
+
if ustring.respond_to?(:encode)
|
147
|
+
ustring.encode('UTF-16LE')
|
148
|
+
else
|
149
|
+
require 'iconv'
|
150
|
+
Iconv.conv("UTF-16LE", "UTF-8", ustring)
|
151
|
+
end
|
152
|
+
end
|
153
|
+
ustring
|
154
|
+
end
|
155
|
+
|
156
|
+
def wide_to_utf8(wstring)
|
157
|
+
# ensure it is actually UTF-16LE
|
158
|
+
# Ruby likes to mark binary data as ASCII-8BIT
|
159
|
+
wstring = wstring.force_encoding('UTF-16LE') if wstring.respond_to?(:force_encoding)
|
160
|
+
|
161
|
+
# encode it all as UTF-8
|
162
|
+
wstring = begin
|
163
|
+
if wstring.respond_to?(:encode)
|
164
|
+
wstring.encode('UTF-8')
|
165
|
+
else
|
166
|
+
require 'iconv'
|
167
|
+
Iconv.conv("UTF-8", "UTF-16LE", wstring)
|
168
|
+
end
|
169
|
+
end
|
170
|
+
# remove trailing CRLF and NULL characters
|
171
|
+
wstring.strip!
|
172
|
+
wstring
|
173
|
+
end
|
174
|
+
|
175
|
+
end
|
176
|
+
end
|
177
|
+
end
|
178
|
+
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
#
|
2
|
+
# Author:: John Keiser (<jkeiser@opscode.com>)
|
3
|
+
# Copyright:: Copyright 2011 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/win32/api/error'
|
20
|
+
require 'chef/win32/memory'
|
21
|
+
require 'chef/win32/unicode'
|
22
|
+
require 'chef/exceptions'
|
23
|
+
|
24
|
+
class Chef
|
25
|
+
module ReservedNames::Win32
|
26
|
+
class Error
|
27
|
+
include Chef::ReservedNames::Win32::API::Error
|
28
|
+
extend Chef::ReservedNames::Win32::API::Error
|
29
|
+
|
30
|
+
def self.format_message(message_id = 0, args = {})
|
31
|
+
flags = args[:flags] || FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ARGUMENT_ARRAY
|
32
|
+
source = args[:source]
|
33
|
+
language_id = args[:language_id] || 0
|
34
|
+
varargs = args[:varargs] || [:int, 0]
|
35
|
+
buffer = FFI::MemoryPointer.new :pointer
|
36
|
+
num_chars = FormatMessageW(flags | FORMAT_MESSAGE_ALLOCATE_BUFFER, source, message_id, language_id, buffer, 0, *varargs)
|
37
|
+
if num_chars == 0
|
38
|
+
raise!
|
39
|
+
end
|
40
|
+
|
41
|
+
# Extract the string
|
42
|
+
begin
|
43
|
+
return buffer.read_pointer.read_wstring(num_chars)
|
44
|
+
ensure
|
45
|
+
Chef::ReservedNames::Win32::Memory.local_free(buffer.read_pointer)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def self.get_last_error
|
50
|
+
GetLastError()
|
51
|
+
end
|
52
|
+
|
53
|
+
# Raises the last error. This should only be called by
|
54
|
+
# Win32 API wrapper functions, and then only when wrapped
|
55
|
+
# in an if() statement (since it unconditionally exits)
|
56
|
+
# === Returns
|
57
|
+
# nil::: always returns nil when it does not raise
|
58
|
+
# === Raises
|
59
|
+
# Chef::Exceptions::Win32APIError:::
|
60
|
+
def self.raise!(message = nil)
|
61
|
+
code = get_last_error
|
62
|
+
msg = format_message(code).strip
|
63
|
+
formatted_message = ""
|
64
|
+
formatted_message << message if message
|
65
|
+
formatted_message << "---- Begin Win32 API output ----\n"
|
66
|
+
formatted_message << "System Error Code: #{code}\n"
|
67
|
+
formatted_message << "System Error Message: #{msg}\n"
|
68
|
+
formatted_message << "---- End Win32 API output ----\n"
|
69
|
+
raise Chef::Exceptions::Win32APIError, msg + "\n" + formatted_message
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
@@ -0,0 +1,167 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Seth Chisamore (<schisamo@opscode.com>)
|
3
|
+
# Author:: Mark Mzyk (<mmzyk@ospcode.com>)
|
4
|
+
# Copyright:: Copyright 2011 Opscode, Inc.
|
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/win32/api/file'
|
21
|
+
require 'chef/win32/api/security'
|
22
|
+
require 'chef/win32/error'
|
23
|
+
|
24
|
+
class Chef
|
25
|
+
module ReservedNames::Win32
|
26
|
+
class File
|
27
|
+
include Chef::ReservedNames::Win32::API::File
|
28
|
+
extend Chef::ReservedNames::Win32::API::File
|
29
|
+
|
30
|
+
# Creates a symbolic link called +new_name+ for the file or directory
|
31
|
+
# +old_name+.
|
32
|
+
#
|
33
|
+
# This method requires Windows Vista or later to work. Otherwise, it
|
34
|
+
# returns nil as per MRI.
|
35
|
+
#
|
36
|
+
def self.link(old_name, new_name)
|
37
|
+
raise Errno::ENOENT, "(#{old_name}, #{new_name})" unless ::File.exist?(old_name)
|
38
|
+
# TODO do a check for CreateHardLinkW and
|
39
|
+
# raise NotImplemented exception on older Windows
|
40
|
+
old_name = encode_path(old_name)
|
41
|
+
new_name = encode_path(new_name)
|
42
|
+
unless CreateHardLinkW(new_name, old_name, nil)
|
43
|
+
Chef::ReservedNames::Win32::Error.raise!
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
# Creates a symbolic link called +new_name+ for the file or directory
|
48
|
+
# +old_name+.
|
49
|
+
#
|
50
|
+
# This method requires Windows Vista or later to work. Otherwise, it
|
51
|
+
# returns nil as per MRI.
|
52
|
+
#
|
53
|
+
def self.symlink(old_name, new_name)
|
54
|
+
# raise Errno::ENOENT, "(#{old_name}, #{new_name})" unless ::File.exist?(old_name)
|
55
|
+
# TODO do a check for CreateSymbolicLinkW and
|
56
|
+
# raise NotImplemented exception on older Windows
|
57
|
+
flags = ::File.directory?(old_name) ? SYMBOLIC_LINK_FLAG_DIRECTORY : 0
|
58
|
+
old_name = encode_path(old_name)
|
59
|
+
new_name = encode_path(new_name)
|
60
|
+
unless CreateSymbolicLinkW(new_name, old_name, flags)
|
61
|
+
Chef::ReservedNames::Win32::Error.raise!
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
# Return true if the named file is a symbolic link, false otherwise.
|
66
|
+
#
|
67
|
+
# This method requires Windows Vista or later to work. Otherwise, it
|
68
|
+
# always returns false as per MRI.
|
69
|
+
#
|
70
|
+
def self.symlink?(file_name)
|
71
|
+
is_symlink = false
|
72
|
+
path = encode_path(file_name)
|
73
|
+
if ::File.exists?(file_name)
|
74
|
+
if ((GetFileAttributesW(path) & FILE_ATTRIBUTE_REPARSE_POINT) > 0)
|
75
|
+
file_search_handle(file_name) do |handle, find_data|
|
76
|
+
if find_data[:dw_reserved_0] == IO_REPARSE_TAG_SYMLINK
|
77
|
+
is_symlink = true
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
is_symlink
|
83
|
+
end
|
84
|
+
|
85
|
+
# Returns the path of the of the symbolic link referred to by +file+.
|
86
|
+
#
|
87
|
+
# Requires Windows Vista or later. On older versions of Windows it
|
88
|
+
# will raise a NotImplementedError, as per MRI.
|
89
|
+
#
|
90
|
+
def self.readlink(link_name)
|
91
|
+
raise Errno::ENOENT, link_name unless ::File.exists?(link_name)
|
92
|
+
symlink_file_handle(link_name) do |handle|
|
93
|
+
# Go to DeviceIoControl to get the symlink information
|
94
|
+
# http://msdn.microsoft.com/en-us/library/windows/desktop/aa364571(v=vs.85).aspx
|
95
|
+
reparse_buffer = FFI::MemoryPointer.new(MAXIMUM_REPARSE_DATA_BUFFER_SIZE)
|
96
|
+
parsed_size = FFI::Buffer.new(:long).write_long(0)
|
97
|
+
if DeviceIoControl(handle, FSCTL_GET_REPARSE_POINT, nil, 0, reparse_buffer, MAXIMUM_REPARSE_DATA_BUFFER_SIZE, parsed_size, nil) == 0
|
98
|
+
Chef::ReservedNames::Win32::Error.raise!
|
99
|
+
end
|
100
|
+
|
101
|
+
# Ensure it's a symbolic link
|
102
|
+
reparse_buffer = REPARSE_DATA_BUFFER.new(reparse_buffer)
|
103
|
+
if reparse_buffer[:ReparseTag] != IO_REPARSE_TAG_SYMLINK
|
104
|
+
raise Errno::EACCES, "#{link_name} is not a symlink"
|
105
|
+
end
|
106
|
+
|
107
|
+
# Return the link destination (strip off \??\ at the beginning, which is a local filesystem thing)
|
108
|
+
link_dest = reparse_buffer.reparse_buffer.substitute_name
|
109
|
+
if link_dest =~ /^\\\?\?\\/
|
110
|
+
link_dest = link_dest[4..-1]
|
111
|
+
end
|
112
|
+
link_dest
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
# Gets the short form of a path (Administrator -> ADMINI~1)
|
117
|
+
def self.get_short_path_name(path)
|
118
|
+
path = path.to_wstring
|
119
|
+
size = GetShortPathNameW(path, nil, 0)
|
120
|
+
if size == 0
|
121
|
+
Chef::ReservedNames::Win32::Error.raise!
|
122
|
+
end
|
123
|
+
result = FFI::MemoryPointer.new :char, (size+1)*2
|
124
|
+
if GetShortPathNameW(path, result, size+1) == 0
|
125
|
+
Chef::ReservedNames::Win32::Error.raise!
|
126
|
+
end
|
127
|
+
result.read_wstring(size)
|
128
|
+
end
|
129
|
+
|
130
|
+
# Gets the long form of a path (ADMINI~1 -> Administrator)
|
131
|
+
def self.get_long_path_name(path)
|
132
|
+
path = path.to_wstring
|
133
|
+
size = GetLongPathNameW(path, nil, 0)
|
134
|
+
if size == 0
|
135
|
+
Chef::ReservedNames::Win32::Error.raise!
|
136
|
+
end
|
137
|
+
result = FFI::MemoryPointer.new :char, (size+1)*2
|
138
|
+
if GetLongPathNameW(path, result, size+1) == 0
|
139
|
+
Chef::ReservedNames::Win32::Error.raise!
|
140
|
+
end
|
141
|
+
result.read_wstring(size)
|
142
|
+
end
|
143
|
+
|
144
|
+
def self.info(file_name)
|
145
|
+
Info.new(file_name)
|
146
|
+
end
|
147
|
+
|
148
|
+
def self.verify_links_supported!
|
149
|
+
begin
|
150
|
+
CreateSymbolicLinkW(nil)
|
151
|
+
rescue Chef::Exceptions::Win32APIFunctionNotImplemented => e
|
152
|
+
raise e
|
153
|
+
rescue Exception
|
154
|
+
# things are ok.
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
158
|
+
# ::File compat
|
159
|
+
class << self
|
160
|
+
alias :stat :info
|
161
|
+
end
|
162
|
+
|
163
|
+
end
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
require 'chef/win32/file/info'
|