-
Notifications
You must be signed in to change notification settings - Fork 313
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use the Berkshelf API Server in the resolver #693
Conversation
an API server will now start and run with no builders started during the test suite you can add to the cache with the helper methods included by Berkshelf::Rspec::BerksAPIServer
Berksfile#install will instantiate an installer and run it Initial pass for installing scm based dependencies Initial pass for installing dependencies defined by the Berks API in a Chef Server or on the Community site
this is now replaced by a source that contains a chef server cache builder
dependencies either have an explicit location or they have none
@sethvargo I'll implement the unit tests where they make sense. I've looked over your suggestions/comments and made changes. Take a peek and re-review. |
@reset the only thing left is what we talked about in review today - using |
invalid = (options.keys & [:site, :path, :git]).map { |opt| "'#{opt}" } | ||
raise InternalError, "Cannot specify #{invalid.join(' and ')} for a Cookbook Source!" | ||
if (options.keys & [:path, :git]).size > 1 | ||
invalid = (options.keys & [:path, :git]).map { |opt| "'#{opt}" } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are we missing a ' after opt?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we catch :github here too?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wow. THAT'S and impressive catch 👍
Couple notes inline, but in general I'm close to ready to merge. I think coping gracefully with "site :opscode" as a special case until 4.0 is worth doing. Once we have those covered and the cukes fixed, I could be shaved-ice ready. |
will now programatically ensure there are not duplicate or two location keys in the options hash fix formatting of the invalid message
@ivey @sethvargo pretty sure all of your comments are addressed. Take a peek. |
🍧 I say let's do it. |
Use the Berkshelf API Server in the resolver
🎈 |
changes
source
keyword which points to a Berkshelf API endpoint--skip-dependencies
flag on install/upload. This was introduced as a temporary workaround for our slow resolver/uploader.--path
option forberks install
. This command + flag combination should be replaced with the more appropriately namedberks vendor
.berks outdated
. This was a BETA feature that can now be properly implemented now that we have an entire view of the universe (see Properly implementberks outdated
#731).refactors
Berkshelf::Location::Base
Berkshelf::Installer
Berkshelf::Downloader
. It now downloads dependencies and attempts to download them from any API endpoints specified with thesource
keyword in the order they appear in the Berksfile.follow-up tickets
All of these tickets need to be completed after this branch has been merged
berks vendor
command to replaceberks install --path
#729berks outdated
#731