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,187 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Author:: Adam Jacob (<adam@opscode.com>)
|
|
3
|
+
# Author:: Daniel DeLeo (<dan@opscode.com>)
|
|
4
|
+
# Author:: Seth Falcon (<seth@opscode.com>)
|
|
5
|
+
# Copyright:: Copyright (c) 2009-2011 Opscode, Inc.
|
|
6
|
+
# License:: Apache License, Version 2.0
|
|
7
|
+
#
|
|
8
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
9
|
+
# you may not use this file except in compliance with the License.
|
|
10
|
+
# You may obtain a copy of the License at
|
|
11
|
+
#
|
|
12
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
13
|
+
#
|
|
14
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
15
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
16
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
17
|
+
# See the License for the specific language governing permissions and
|
|
18
|
+
# limitations under the License.
|
|
19
|
+
#
|
|
20
|
+
|
|
21
|
+
require 'chef/mixin/xml_escape'
|
|
22
|
+
require 'chef/log'
|
|
23
|
+
require 'chef/config'
|
|
24
|
+
require 'chef/couchdb'
|
|
25
|
+
require 'chef/solr_query/solr_http_request'
|
|
26
|
+
require 'chef/solr_query/query_transform'
|
|
27
|
+
|
|
28
|
+
class Chef
|
|
29
|
+
class SolrQuery
|
|
30
|
+
|
|
31
|
+
ID_KEY = "X_CHEF_id_CHEF_X"
|
|
32
|
+
DEFAULT_PARAMS = Mash.new(:start => 0, :rows => 1000, :sort => "#{ID_KEY} asc", :wt => 'json', :indent => 'off').freeze
|
|
33
|
+
FILTER_PARAM_MAP = {:database => 'X_CHEF_database_CHEF_X', :type => "X_CHEF_type_CHEF_X", :data_bag => 'data_bag'}
|
|
34
|
+
VALID_PARAMS = [:start,:rows,:sort,:q,:type]
|
|
35
|
+
BUILTIN_SEARCH_TYPES = ["role","node","client","environment"]
|
|
36
|
+
DATA_BAG_ITEM = 'data_bag_item'
|
|
37
|
+
|
|
38
|
+
include Chef::Mixin::XMLEscape
|
|
39
|
+
|
|
40
|
+
attr_accessor :query
|
|
41
|
+
attr_accessor :params
|
|
42
|
+
|
|
43
|
+
# Create a new Query object - takes the solr_url and optional
|
|
44
|
+
# Chef::CouchDB object to inflate objects into.
|
|
45
|
+
def initialize(couchdb = nil)
|
|
46
|
+
@filter_query = {}
|
|
47
|
+
@params = {}
|
|
48
|
+
|
|
49
|
+
if couchdb.nil?
|
|
50
|
+
@database = Chef::Config[:couchdb_database]
|
|
51
|
+
@couchdb = Chef::CouchDB.new(nil, Chef::Config[:couchdb_database])
|
|
52
|
+
else
|
|
53
|
+
unless couchdb.respond_to?(:couchdb_database)
|
|
54
|
+
Chef::Log.warn("Passing the database name to Chef::Solr::Query initialization is deprecated. Please pass in the Chef::CouchDB object instead.")
|
|
55
|
+
@database = couchdb
|
|
56
|
+
@couchdb = Chef::CouchDB.new(nil, couchdb)
|
|
57
|
+
else
|
|
58
|
+
@database = couchdb.couchdb_database
|
|
59
|
+
@couchdb = couchdb
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def self.from_params(params, couchdb=nil)
|
|
65
|
+
query = new(couchdb)
|
|
66
|
+
query.params = VALID_PARAMS.inject({}) do |p, param_name|
|
|
67
|
+
p[param_name] = params[param_name] if params.key?(param_name)
|
|
68
|
+
p
|
|
69
|
+
end
|
|
70
|
+
query.update_filter_query_from_params
|
|
71
|
+
query.update_query_from_params
|
|
72
|
+
query
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
def filter_by(filter_query_params)
|
|
76
|
+
filter_query_params.each do |key, value|
|
|
77
|
+
@filter_query[FILTER_PARAM_MAP[key]] = value
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def filter_query
|
|
82
|
+
@filter_query.map { |param, value| "+#{param}:#{value}" }.join(' ')
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def filter_by_type(type)
|
|
86
|
+
case type
|
|
87
|
+
when *BUILTIN_SEARCH_TYPES
|
|
88
|
+
filter_by(:type => type)
|
|
89
|
+
else
|
|
90
|
+
filter_by(:type => DATA_BAG_ITEM, :data_bag => type)
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
def update_filter_query_from_params
|
|
95
|
+
filter_by(:database => @database)
|
|
96
|
+
filter_by_type(params.delete(:type))
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
def update_query_from_params
|
|
100
|
+
original_query = URI.decode(params.delete(:q) || "*:*")
|
|
101
|
+
@query = Chef::SolrQuery::QueryTransform.transform(original_query)
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
def objects
|
|
105
|
+
if !object_ids.empty?
|
|
106
|
+
@bulk_objects ||= @couchdb.bulk_get(object_ids)
|
|
107
|
+
Chef::Log.debug { "Bulk get of objects: #{@bulk_objects.inspect}" }
|
|
108
|
+
@bulk_objects
|
|
109
|
+
else
|
|
110
|
+
[]
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def object_ids
|
|
115
|
+
@object_ids ||= results["response"]["docs"].map { |d| d[ID_KEY] }
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
def results
|
|
119
|
+
@results ||= SolrHTTPRequest.select(self.to_hash)
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
# Search Solr for objects of a given type, for a given query.
|
|
123
|
+
def search
|
|
124
|
+
{ "rows" => objects, "start" => results["response"]["start"],
|
|
125
|
+
"total" => results["response"]["numFound"] }
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
def to_hash
|
|
129
|
+
options = DEFAULT_PARAMS.merge(params)
|
|
130
|
+
options[:fq] = filter_query
|
|
131
|
+
options[:q] = @query
|
|
132
|
+
options
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
START_XML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n".freeze
|
|
136
|
+
START_DELETE_BY_QUERY = "<delete><query>".freeze
|
|
137
|
+
END_DELETE_BY_QUERY = "</query></delete>\n".freeze
|
|
138
|
+
COMMIT = "<commit/>\n".freeze
|
|
139
|
+
|
|
140
|
+
def commit(opts={})
|
|
141
|
+
SolrHTTPRequest.update("#{START_XML}#{COMMIT}")
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
def delete_database(db)
|
|
145
|
+
query_data = xml_escape("X_CHEF_database_CHEF_X:#{db}")
|
|
146
|
+
xml = "#{START_XML}#{START_DELETE_BY_QUERY}#{query_data}#{END_DELETE_BY_QUERY}"
|
|
147
|
+
SolrHTTPRequest.update(xml)
|
|
148
|
+
commit
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
def rebuild_index(db=Chef::Config[:couchdb_database])
|
|
152
|
+
delete_database(db)
|
|
153
|
+
|
|
154
|
+
results = {}
|
|
155
|
+
[Chef::ApiClient, Chef::Node, Chef::Role, Chef::Environment].each do |klass|
|
|
156
|
+
results[klass.name] = reindex_all(klass) ? "success" : "failed"
|
|
157
|
+
end
|
|
158
|
+
databags = Chef::DataBag.cdb_list(true)
|
|
159
|
+
Chef::Log.info("Reloading #{databags.size.to_s} #{Chef::DataBag} objects into the indexer")
|
|
160
|
+
databags.each { |i| i.add_to_index; i.list(true).each { |x| x.add_to_index } }
|
|
161
|
+
results[Chef::DataBag.name] = "success"
|
|
162
|
+
results
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
def reindex_all(klass, metadata={})
|
|
166
|
+
begin
|
|
167
|
+
items = klass.cdb_list(true)
|
|
168
|
+
Chef::Log.info("Reloading #{items.size.to_s} #{klass.name} objects into the indexer")
|
|
169
|
+
items.each { |i| i.add_to_index }
|
|
170
|
+
rescue Net::HTTPServerException => e
|
|
171
|
+
# 404s are okay, there might not be any of that kind of object...
|
|
172
|
+
if e.message =~ /Not Found/
|
|
173
|
+
Chef::Log.warn("Could not load #{klass.name} objects from couch for re-indexing (this is ok if you don't have any of these)")
|
|
174
|
+
return false
|
|
175
|
+
else
|
|
176
|
+
raise e
|
|
177
|
+
end
|
|
178
|
+
rescue Exception => e
|
|
179
|
+
Chef::Log.fatal("Chef encountered an error while attempting to load #{klass.name} objects back into the index")
|
|
180
|
+
raise e
|
|
181
|
+
end
|
|
182
|
+
true
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
end
|
|
187
|
+
end
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Author:: Seth Falcon (<seth@opscode.com>)
|
|
3
|
+
# Copyright:: Copyright (c) 2010-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
|
+
grammar Lucene
|
|
20
|
+
|
|
21
|
+
rule body
|
|
22
|
+
(expression / space)* <Body>
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
rule expression
|
|
26
|
+
operation / group / field / field_range / term / string
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
rule term
|
|
30
|
+
keyword valid_letter+ <Term> / !keyword !"?" valid_letter <Term>
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
rule field
|
|
34
|
+
field_name ":" (term/string/group) <Field>
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
rule field_range
|
|
38
|
+
field_name ":" "[" range_value " TO " range_value "]" <InclFieldRange>
|
|
39
|
+
/
|
|
40
|
+
field_name ":" "{" range_value " TO " range_value "}" <ExclFieldRange>
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
rule field_name
|
|
44
|
+
!keyword valid_letter+ <FieldName>
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
rule range_value
|
|
48
|
+
valid_letter+ <RangeValue> / "*" <RangeValue>
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
rule group
|
|
52
|
+
space? '(' body ')' space? <Group>
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
rule operation
|
|
56
|
+
binary_op / unary_op / fuzzy_op / boost_op
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
rule unary_op
|
|
60
|
+
not_op / required_op / prohibited_op
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
rule binary_op
|
|
64
|
+
(group / field / field_range / term) space? boolean_operator space+ body <BinaryOp>
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
rule boolean_operator
|
|
68
|
+
and_operator / or_operator
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
rule and_operator
|
|
72
|
+
'AND' <AndOperator> / '&&' <AndOperator>
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
rule or_operator
|
|
76
|
+
'OR' <OrOperator> / '||' <OrOperator>
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
rule not_op
|
|
80
|
+
not_operator space (group / field / field_range / term / string) <UnaryOp>
|
|
81
|
+
/
|
|
82
|
+
bang_operator space? (group / field / field_range / term / string) <UnaryOp>
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
rule not_operator
|
|
86
|
+
'NOT' <NotOperator>
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
rule bang_operator
|
|
90
|
+
'!' <NotOperator>
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
rule required_op
|
|
94
|
+
!valid_letter required_operator (term/string) <UnaryOp>
|
|
95
|
+
/
|
|
96
|
+
required_operator (term/string) <UnaryOp>
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
rule required_operator
|
|
100
|
+
'+' <RequiredOperator>
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
rule prohibited_op
|
|
104
|
+
!valid_letter prohibited_operator (field/field_range/term/string) <UnaryOp>
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
rule prohibited_operator
|
|
108
|
+
'-' <ProhibitedOperator>
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
rule boost_op
|
|
112
|
+
(term/string) '^' fuzzy_param <BoostOp>
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
rule fuzzy_op
|
|
116
|
+
(term/string) '~' fuzzy_param? (space / !valid_letter) <FuzzyOp>
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
rule fuzzy_param
|
|
120
|
+
[0-9] '.'? [0-9] <FuzzyParam> / [0-9]+ <FuzzyParam>
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
rule string
|
|
124
|
+
'"' term (space term)* '"' <Phrase>
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
rule keyword
|
|
128
|
+
'AND' / 'OR' / 'NOT'
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
rule valid_letter
|
|
132
|
+
start_letter+ ([a-zA-Z0-9*?_.-] / '\\' special_char)*
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
rule start_letter
|
|
136
|
+
[a-zA-Z0-9._*] / '\\' special_char
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
rule end_letter
|
|
140
|
+
[a-zA-Z0-9*?_.] / '\\' special_char
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
rule special_char
|
|
144
|
+
[-+&|!(){}\[\]^"~*?:\\]
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
rule space
|
|
148
|
+
[\s]+
|
|
149
|
+
end
|
|
150
|
+
end
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Author:: Seth Falcon (<seth@opscode.com>)
|
|
3
|
+
# Copyright:: Copyright (c) 2010-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 'treetop'
|
|
20
|
+
|
|
21
|
+
module Lucene
|
|
22
|
+
SEP = "__=__"
|
|
23
|
+
|
|
24
|
+
class Term < Treetop::Runtime::SyntaxNode
|
|
25
|
+
def to_array
|
|
26
|
+
"T:#{self.text_value}"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def transform
|
|
30
|
+
self.text_value
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
class Field < Treetop::Runtime::SyntaxNode
|
|
35
|
+
def to_array
|
|
36
|
+
field = self.elements[0].text_value
|
|
37
|
+
term = self.elements[1].to_array
|
|
38
|
+
"(F:#{field} #{term})"
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def transform
|
|
42
|
+
field = self.elements[0].text_value
|
|
43
|
+
term = self.elements[1]
|
|
44
|
+
if term.is_a? Phrase
|
|
45
|
+
str = term.transform
|
|
46
|
+
# remove quotes
|
|
47
|
+
str = str[1 ... (str.length - 1)]
|
|
48
|
+
"content:\"#{field}#{SEP}#{str}\""
|
|
49
|
+
else
|
|
50
|
+
"content:#{field}#{SEP}#{term.transform}"
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
class FieldRange < Treetop::Runtime::SyntaxNode
|
|
56
|
+
|
|
57
|
+
def to_array
|
|
58
|
+
field = self.elements[0].text_value
|
|
59
|
+
range_start = self.elements[1].to_array
|
|
60
|
+
range_end = self.elements[2].to_array
|
|
61
|
+
"(FR:#{field} #{left}#{range_start}#{right} #{left}#{range_end}#{right})"
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def transform
|
|
65
|
+
field = self.elements[0].text_value
|
|
66
|
+
range_start = self.elements[1].transform
|
|
67
|
+
range_end = self.elements[2].transform
|
|
68
|
+
# FIXME: handle special cases for missing start/end
|
|
69
|
+
if ("*" == range_start && "*" == range_end)
|
|
70
|
+
"content:#{field}#{SEP}*"
|
|
71
|
+
elsif "*" == range_end
|
|
72
|
+
"content:#{left}#{field}#{SEP}#{range_start} TO #{field}#{SEP}\\ufff0#{right}"
|
|
73
|
+
elsif "*" == range_start
|
|
74
|
+
"content:#{left}#{field}#{SEP} TO #{field}#{SEP}#{range_end}#{right}"
|
|
75
|
+
else
|
|
76
|
+
"content:#{left}#{field}#{SEP}#{range_start} TO #{field}#{SEP}#{range_end}#{right}"
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
class InclFieldRange < FieldRange
|
|
83
|
+
def left
|
|
84
|
+
"["
|
|
85
|
+
end
|
|
86
|
+
def right
|
|
87
|
+
"]"
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
class ExclFieldRange < FieldRange
|
|
92
|
+
def left
|
|
93
|
+
"{"
|
|
94
|
+
end
|
|
95
|
+
def right
|
|
96
|
+
"}"
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
class RangeValue < Treetop::Runtime::SyntaxNode
|
|
101
|
+
def to_array
|
|
102
|
+
self.text_value
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
def transform
|
|
106
|
+
to_array
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
class FieldName < Treetop::Runtime::SyntaxNode
|
|
111
|
+
def to_array
|
|
112
|
+
self.text_value
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
def transform
|
|
116
|
+
to_array
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
class Body < Treetop::Runtime::SyntaxNode
|
|
122
|
+
def to_array
|
|
123
|
+
self.elements.map { |x| x.to_array }.join(" ")
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
def transform
|
|
127
|
+
self.elements.map { |x| x.transform }.join(" ")
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
class Group < Treetop::Runtime::SyntaxNode
|
|
132
|
+
def to_array
|
|
133
|
+
"(" + self.elements[0].to_array + ")"
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
def transform
|
|
137
|
+
"(" + self.elements[0].transform + ")"
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
class BinaryOp < Treetop::Runtime::SyntaxNode
|
|
142
|
+
def to_array
|
|
143
|
+
op = self.elements[1].to_array
|
|
144
|
+
a = self.elements[0].to_array
|
|
145
|
+
b = self.elements[2].to_array
|
|
146
|
+
"(#{op} #{a} #{b})"
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
def transform
|
|
150
|
+
op = self.elements[1].transform
|
|
151
|
+
a = self.elements[0].transform
|
|
152
|
+
b = self.elements[2].transform
|
|
153
|
+
"#{a} #{op} #{b}"
|
|
154
|
+
end
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
class AndOperator < Treetop::Runtime::SyntaxNode
|
|
158
|
+
def to_array
|
|
159
|
+
"OP:AND"
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
def transform
|
|
163
|
+
"AND"
|
|
164
|
+
end
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
class OrOperator < Treetop::Runtime::SyntaxNode
|
|
168
|
+
def to_array
|
|
169
|
+
"OP:OR"
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
def transform
|
|
173
|
+
"OR"
|
|
174
|
+
end
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
class FuzzyOp < Treetop::Runtime::SyntaxNode
|
|
178
|
+
def to_array
|
|
179
|
+
a = self.elements[0].to_array
|
|
180
|
+
param = self.elements[1]
|
|
181
|
+
if param
|
|
182
|
+
"(OP:~ #{a} #{param.to_array})"
|
|
183
|
+
else
|
|
184
|
+
"(OP:~ #{a})"
|
|
185
|
+
end
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
def transform
|
|
189
|
+
a = self.elements[0].transform
|
|
190
|
+
param = self.elements[1]
|
|
191
|
+
if param
|
|
192
|
+
"#{a}~#{param.transform}"
|
|
193
|
+
else
|
|
194
|
+
"#{a}~"
|
|
195
|
+
end
|
|
196
|
+
end
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
class BoostOp < Treetop::Runtime::SyntaxNode
|
|
200
|
+
def to_array
|
|
201
|
+
a = self.elements[0].to_array
|
|
202
|
+
param = self.elements[1]
|
|
203
|
+
"(OP:^ #{a} #{param.to_array})"
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
def transform
|
|
207
|
+
a = self.elements[0].transform
|
|
208
|
+
param = self.elements[1]
|
|
209
|
+
"#{a}^#{param.transform}"
|
|
210
|
+
end
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
class FuzzyParam < Treetop::Runtime::SyntaxNode
|
|
214
|
+
def to_array
|
|
215
|
+
self.text_value
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
def transform
|
|
219
|
+
self.text_value
|
|
220
|
+
end
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
class UnaryOp < Treetop::Runtime::SyntaxNode
|
|
224
|
+
def to_array
|
|
225
|
+
op = self.elements[0].to_array
|
|
226
|
+
a = self.elements[1].to_array
|
|
227
|
+
"(#{op} #{a})"
|
|
228
|
+
end
|
|
229
|
+
|
|
230
|
+
def transform
|
|
231
|
+
op = self.elements[0].transform
|
|
232
|
+
a = self.elements[1].transform
|
|
233
|
+
spc = case op
|
|
234
|
+
when "+", "-"
|
|
235
|
+
""
|
|
236
|
+
else
|
|
237
|
+
" "
|
|
238
|
+
end
|
|
239
|
+
"#{op}#{spc}#{a}"
|
|
240
|
+
end
|
|
241
|
+
|
|
242
|
+
end
|
|
243
|
+
|
|
244
|
+
class NotOperator < Treetop::Runtime::SyntaxNode
|
|
245
|
+
def to_array
|
|
246
|
+
"OP:NOT"
|
|
247
|
+
end
|
|
248
|
+
|
|
249
|
+
def transform
|
|
250
|
+
"NOT"
|
|
251
|
+
end
|
|
252
|
+
|
|
253
|
+
end
|
|
254
|
+
|
|
255
|
+
class RequiredOperator < Treetop::Runtime::SyntaxNode
|
|
256
|
+
def to_array
|
|
257
|
+
"OP:+"
|
|
258
|
+
end
|
|
259
|
+
|
|
260
|
+
def transform
|
|
261
|
+
"+"
|
|
262
|
+
end
|
|
263
|
+
|
|
264
|
+
end
|
|
265
|
+
|
|
266
|
+
class ProhibitedOperator < Treetop::Runtime::SyntaxNode
|
|
267
|
+
def to_array
|
|
268
|
+
"OP:-"
|
|
269
|
+
end
|
|
270
|
+
|
|
271
|
+
def transform
|
|
272
|
+
"-"
|
|
273
|
+
end
|
|
274
|
+
end
|
|
275
|
+
|
|
276
|
+
class Phrase < Treetop::Runtime::SyntaxNode
|
|
277
|
+
def to_array
|
|
278
|
+
"STR:#{self.text_value}"
|
|
279
|
+
end
|
|
280
|
+
|
|
281
|
+
def transform
|
|
282
|
+
"#{self.text_value}"
|
|
283
|
+
end
|
|
284
|
+
end
|
|
285
|
+
end
|