summaryrefslogtreecommitdiff
path: root/lib/chef/dsl
Commit message (Collapse)AuthorAgeFilesLines
* Remove copyright dateslcg/remove-copyright-datesLamont Granquist2020-04-1313-13/+13
| | | | | | | | Legally incredibly dubious, particularly since we don't follow it strictly as policy, and we have git history instead, which does it right. This is just a waste of time and a cargo cult. Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* Make sure we reference the correct ChefVaultTim Smith2020-03-101-2/+2
| | | | Signed-off-by: Tim Smith <tsmith@chef.io>
* Add the chef-vault helpers from the chef-vault cookbookmore_vault_helpersTim Smith2020-03-102-0/+86
| | | | | | Add these to universal so that existing users can use chef-vault data bags without the need for the cookbook. This allows us to deprecate that cookbook entirely. Signed-off-by: Tim Smith <tsmith@chef.io>
* Update all our links to use the new docs site formatTim Smith2020-03-042-4/+4
| | | | | | When we migrated to hugo the URLs changed a bit. Nothing ends in .html and we moved all the resources into their own dir. Signed-off-by: Tim Smith <tsmith@chef.io>
* Deprecate the older_than_win_2012_or_8? helperolder_than_win_2012_or_8Tim Smith2020-02-281-1/+2
| | | | | | Within Chef this is only used in the windows_feature_powershell resource which I've cleaned up. Signed-off-by: Tim Smith <tsmith@chef.io>
* Remove the "Core" DSL for Chef-16Lamont Granquist2020-02-273-73/+10
| | | | | | | | | | | | | | | | | | | | | | This lets us avoid using declare_resource in old style core resources. As everything gets converted over to custom resources this is going away anyway. We haven't seen any issues from using the recipe DSL in custom resources in core. Clearly this is potentially breaking since any references to Chef::DSL::Core need to be changed to Chef::DSL::Recipe (although I'm not sure who would have done that other than maybe us somewhere, I had a note in there that nobody should probably touch the Core DSL). This greatly simplifies the major DSLs down to two: Recipe DSL - things that only make sense in a context where there is a resource_collection Universal DSL - things that apply everywhere Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* Chefstyle fixes identified with Rubocop 0.80Tim Smith2020-02-181-2/+2
| | | | | | The new Rubocop detects more unnecessary returns. This fixes these ahead of time so we can roll out the new Rubocop engine without breaking builds later. Signed-off-by: Tim Smith <tsmith@chef.io>
* declare_resource.rb: consistently use `/x/y.txt`Michel Alexandre Salim2020-01-241-9/+9
| | | | | | | | The code examples inconsistently refer to `/x/y.txy` as well as `x/y.txt`, it seems that the latter is intended. Obvious fix. Signed-off-by: Michel Alexandre Salim <michel@fb.com>
* Add chef-utils gem with various recipe DSL helpersLamont Granquist2019-11-082-19/+10
| | | | | | | | | | | | | This is the implementation of [RFC-087](https://github.com/chef-boneyard/chef-rfc/blob/master/rfc087-distro-sugar-helpers.md) although some of the specifics have been iterated on and changed. The documentation will be in the [README.md](https://github.com/chef/chef/tree/master/chef-utils/README.md) once this is merged. While this PR mostly moves chef-sugar utilities into core-chef via this chef-utils gem, the scope of the chef-utils gem should be considered larger than just that. As an example this PR moves the Mash class into this gem for reuse in ohai as well. Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* Style/ClassCheckLamont Granquist2019-07-051-1/+1
| | | | | | convert kind_of? to is_a? Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* Style/EmptyLiteralLamont Granquist2019-07-051-1/+1
| | | | Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* fix Layout/EmptyLineAfterGuardClauseLamont Granquist2019-07-022-0/+4
| | | | | | | i like this one, gives visual priority to returns or raises that are buried in the middle of things. Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* Better target mode shell_outlcg/better-target-mode-shell-outLamont Granquist2019-05-231-2/+0
| | | | | | | | - integrates target-mode fully with shell_out - removes the train_or_shellout mixin - apt_package is now fully supported in target-mode Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* Change some more require to require_relativeLamont Granquist2019-05-101-1/+1
| | | | Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* Convert require to require_relativeLamont Granquist2019-05-0810-33/+33
| | | | | | | This gives a speed boost since rubygems does not have to scan through every gem in the gemset in order to find the file. Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* Target mode code tweakslcg/target-mode-tweaksLamont Granquist2019-05-071-0/+1
| | | | | | | | | | | | The train_or_shell mixin should mixin its dependent mixins and require them, which removes the need to do that in the calling classes. Include TrainOrShell correctly in the Universal DSL. Few more code tweaks ("protected" is largely worthless in ruby and was always being misused here). Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* Target Mode initial implementationBryan McLellan2019-05-061-0/+1
| | | | Signed-off-by: Bryan McLellan <btm@chef.io>
* Chef-15 DSL changeslcg/chef-15-dsl-changesLamont Granquist2019-05-033-18/+29
| | | | | | | | Move the data_query, powershell and registry_helper DSLs up to universal. Move the `tagged?` helper into data_query for organizational purposes. Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* WIP: Remove audit mode from chef-clientTim Smith2019-03-112-53/+0
| | | | | | | | This just gives us a line count to the change and perhaps a starting point for when we do this in Chef 15 Signed-off-by: Tim Smith <tsmith@chef.io> Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* add missing require linelcg/lazy-universalLamont Granquist2019-02-201-0/+1
| | | | Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* add LazyModuleInclude to Universal DSLLamont Granquist2019-02-201-1/+2
| | | | | | | somehow this was missed in #4942 which makes this DSL much less useful as a target. Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* changes for rubocop engine upgrades.lcg/rubocop-upgradesLamont Granquist2019-01-151-1/+1
| | | | | | | this is the result of changes to rules we already previously had enabled. Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* now user can use tagged method in both only_if and not_ifKapil Chouhan2018-11-291-0/+7
| | | | Signed-off-by: Kapil Chouhan <kapil.chouhan@msystechnologies.com>
* Remove Chef provisioning lazy loadingprovisioningTim Smith2018-11-022-62/+3
| | | | | | Remove the lazy loading of chef provisioning resources Signed-off-by: Tim Smith <tsmith@chef.io>
* Remove legacy require_recipe DSL methodTim Smith2018-10-261-6/+0
| | | | | | | We've been warning on this one for YEARS and we have a Foodcritic rule for it as well, which has been around since before I was at Chef. Signed-off-by: Tim Smith <tsmith@chef.io>
* Move the older_than_win_2012_or_8? to platform_introspectionTim Smith2018-07-061-0/+5
| | | | Signed-off-by: Tim Smith <tsmith@chef.io>
* fix Style/PreferredHashMethodsLamont Granquist2018-07-022-2/+2
| | | | | | | absolutely hard requirement on the fixes that went into chef-config 2.2.11, so the floor of that gem is bumped up. Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* fix Style/HashSyntaxLamont Granquist2018-07-021-1/+1
| | | | Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* add the resources() dsl method to providerslcg/fix-resources-dsl-methodLamont Granquist2018-04-121-1/+23
| | | | | | | | | | | Custom resource actions were picking this up via delegation to the wrapping resource, and that wiring was removed in 14, so that API then got dropped accidentally. This should fix that back up. It also consistently injects the resource APIs into resources and providers both now (and consistently across core resources and custom resources). Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* mechanical conversion of most debug log statements to traceThom May2018-03-262-8/+8
| | | | Signed-off-by: Thom May <thom@chef.io>
* rubocop fixes from engine bump to 0.54.0lcg/rubocop-fixesLamont Granquist2018-03-211-2/+2
| | | | | | some cops got a little stricter. Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* Merge branch 'master' into sp/powershell_execStuart Preston2018-03-071-8/+1
|\ | | | | | | Signed-off-by: <>
| * Remove support for Windows 20032k3Tim Smith2018-03-021-8/+1
| | | | | | | | | | | | Windows 2003 is fully end of life at this point and hasn't been supported by Chef for quite a while. EXTENDED support for Windows 2003 ended July 14, 2015. We avoid a good number of WMI queries by removing this support entirely. Signed-off-by: Tim Smith <tsmith@chef.io>
* | Initial commit of new Chef PowerShell supportStuart Preston2018-03-031-0/+2
|/ | | | Signed-off-by: Stuart Preston <stuart@chef.io>
* Remove previously deprecated mixins and Chef::DSL::Recipe::FullDSLchef14_deprecationsTim Smith2018-01-015-32/+6
| | | | | | | | | | | | We wired these up previously with deprecations. They've been deprecated for a long time and are pretty rarely used on the Supermarket. Additionally we have Foodcritic rules to detect their usage: FC102: Deprecated Chef::DSL::Recipe::FullDSL class used FC100: Deprecated Chef::Mixin::Language mixin used FC099: Deprecated Chef::Mixin::LanguageIncludeRecipe mixin used FC098: Deprecated Chef::Mixin::RecipeDefinitionDSLCore mixin used FC097: Deprecated Chef::Mixin::LanguageIncludeAttribute mixin used Signed-off-by: Tim Smith <tsmith@chef.io>
* Deprecate property namespace magicLamont Granquist2017-06-081-1/+9
| | | | | | | This forces everyone to starting using new_resource.property_name instead of just property_name. Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* Chef-13: fix notifying array resourcesLamont Granquist2017-03-311-1/+1
| | | | | | | | this also deprecates the multi-resource notification syntax where `foo[a,b]` would attempt to notify both `foo[a]` and `foo[b]` because that is hella ambiguous. Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* make nameless properties opt-inLamont Granquist2017-03-301-4/+4
| | | | Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* Chef-13: Support nameless resources and remove deprecated multi-arg resourcesLamont Granquist2017-03-301-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes nameless resources work in the DSL: ```ruby apt_update ``` It does it by giving it an empty-string name of "" It also drops support for multi-arg resources, that has been deprecated for some time: ```ruby some_resource "foo", "bar", "baz" ``` Note that multipackage package resources do not use multiple args, but a single argument which is an arry: ```ruby package [ "lsof", "strace", "tcpdump" ] ``` So this change does not affect that usage. Multi-arg has been deprecated for some time now and its not clear that it was ever used by anyone. Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* Chef-13: Simplify DSL creationLamont Granquist2017-03-211-6/+0
| | | | | | | | | | | | | | we did actually have tests around creating actions with spaces and hyphens in their names. we had fallback code for properties, but it was broken and threw a "private method define_resource called" and then it created a closure and didn't have the `name` in the binding so it called itself and blew up the stack. this change walks that back. it does prove that we still support UTF-8 in property names, actions and DSL names, which i'd argue is more than enough. Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* Chef-13: remove method_missing from the DSLLamont Granquist2017-03-212-79/+1
| | | | Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* Chef-13: Remove declare_resource create_if_missing APILamont Granquist2017-03-142-18/+12
| | | | | | | | | | | | | Likely nobody cares about this change, I added it and then a release or two later introduced the better edit_resource style of API. I also changed "created_at" to be a proper named parameter, instead of a positional parameter, which is a breaking change in an API that has been around for quite some time -- makes the API consistent since I added it as a named parameter to the new APIs when I wrote them. Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* fix specs: RedundantReturn, RedundantSelf, RedundantBeginLamont Granquist2017-02-135-43/+39
| | | | | | department of redundancy department Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* Make docker? return booleanAndrew Brown2016-12-121-2/+2
| | | | | | Trivial change to ensure node.docker? returns either true or false. Signed-off-by: Andrew Brown <andrew.j.brown@gmail.com>
* Structure deprecations with additional metadatatm/deprecation_with_urlThom May2016-11-162-4/+4
| | | | | | | | This adds URLs to each class of deprecation, and correctly prints and formats them for maximum user efficiency. We also provide the URL to the data collector for Visibility to ingest. Signed-off-by: Thom May <thom@chef.io>
* Fix a few bad copyrightsTim Smith2016-10-205-5/+5
| | | | | | I think this happened when we merged the Opscode and Chef copyrights Signed-off-by: Tim Smith <tsmith@chef.io>
* remove dependency on Chef.run_context global stateLamont Granquist2016-10-181-1/+1
| | | | | | introduce run_context.root_run_context that avoids global state Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* remove block_given?lcg/edit_resource_scopeLamont Granquist2016-10-101-2/+2
| | | | Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* pass new_resource to edit_resource through instance_execLamont Granquist2016-10-101-1/+7
| | | | | | | | | | helps with scoping issues, best practice would be to always use the |new_resource| argument to the block when using edit_resource inside of resources https://github.com/chef/chef/issues/5438 Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
* disable Style/OptionalArgumentsLamont Granquist2016-08-161-1/+1
| | | | | | | | fixing this would either be hella ugly or would change the API just prevent more of this leaking into the codebase Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>