ChefFS is an easy Chef API that will let you talk to the server, the local repository and even an in-memory file system for testing! It is meant to be used in chef-zero, local mode, knife diff/upload/download/backup/restore, and cheffish.
git clone https://github.com/jkeiser/chef-fs
bundle install
bundle exec "require 'chef_fs'; puts ChefFS.list('/nodes')"
Before working on the code, if you plan to contribute your changes, you should read the contributing guidelines:
The basic process for contributing is:
- Fork this repo on GitHub.
- Create a feature branch for your work.
- Make your change, including tests.
- Submit a pull request.
We use RSpec for unit/spec tests. To run the full suite, run:
bundle exec rake spec
You can run individual test files by running the rspec executable:
bundle exec rspec spec/unit/FILE.rb
Ohai has some Rake tasks for doing various things.
rake -T
rake clobber_package # Remove package products
rake gem # Build the gem file chef-fs-$VERSION.gem
rake install # install the gem locally
rake make_spec # create a gemspec file
rake package # Build all the packages
rake repackage # Force a rebuild of the package files
rake spec # Run specs
($VERSION is the current version, from the GemSpec in Rakefile)
To release a new version:
- Ensure the CHANGELOG is up to date.
- Ship DOC_CHANGES (put the docs wherever they belong) and empty it out.
- Update the version number in
version.rb
bundle exec rake release
(this will create a git tag for the version, push git commits and tags, and build and push the.gem
file to rubygems.org
Source:
Issues:
- a chef project
- Author:: John Keiser (jkeiser@chef.io)
- Copyright:: Copyright (c) 2008-2015 Chef Software, Inc.
- License:: Apache License, Version 2.0
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.