chef-dk 1.1.16 → 1.2.20
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +12 -4
- data/Gemfile.lock +84 -68
- data/Rakefile +9 -0
- data/acceptance/Gemfile +3 -0
- data/acceptance/Gemfile.lock +43 -27
- data/chef-dk.gemspec +3 -2
- data/lib/chef-dk/command/install.rb +1 -1
- data/lib/chef-dk/exceptions.rb +10 -0
- data/lib/chef-dk/policyfile/chef_server_cookbook_source.rb +52 -8
- data/lib/chef-dk/policyfile/community_cookbook_source.rb +0 -1
- data/lib/chef-dk/policyfile/cookbook_location_specification.rb +2 -2
- data/lib/chef-dk/policyfile/dsl.rb +4 -2
- data/lib/chef-dk/policyfile/source_uri.rb +57 -0
- data/lib/chef-dk/policyfile/storage_config.rb +3 -0
- data/lib/chef-dk/policyfile_compiler.rb +4 -4
- data/lib/chef-dk/policyfile_services/install.rb +4 -2
- data/lib/chef-dk/skeletons/code_generator/files/default/delivery-project.toml +14 -3
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/metadata.rb +3 -0
- data/lib/chef-dk/skeletons/code_generator/recipes/build_cookbook.rb +2 -0
- data/lib/chef-dk/skeletons/code_generator/templates/default/repo/gitignore.erb +121 -4
- data/lib/chef-dk/version.rb +1 -1
- data/omnibus_overrides.rb +2 -0
- data/spec/unit/command/generator_commands/cookbook_spec.rb +16 -5
- data/spec/unit/command/install_spec.rb +2 -2
- data/spec/unit/fixtures/cookbooks_api/chef_server_universe.json +56 -0
- data/spec/unit/fixtures/cookbooks_api/pruned_chef_server_universe.json +30 -0
- data/spec/unit/policyfile/chef_server_cookbook_source_spec.rb +29 -8
- data/spec/unit/policyfile/cookbook_location_specification_spec.rb +22 -0
- data/spec/unit/policyfile/source_uri_spec.rb +36 -0
- data/spec/unit/policyfile/storage_config_spec.rb +12 -0
- data/spec/unit/policyfile_services/push_spec.rb +16 -0
- data/version_policy.rb +9 -5
- metadata +40 -13
@@ -272,6 +272,28 @@ describe ChefDK::Policyfile::CookbookLocationSpecification do
|
|
272
272
|
expect(cookbook_location_spec).to be_valid
|
273
273
|
end
|
274
274
|
|
275
|
+
end
|
276
|
+
|
277
|
+
describe "when created with a chef_server source" do
|
278
|
+
|
279
|
+
let(:source_options) { { chef_server: "https://api.opscode.com/organizations/chef-oss-dev/cookbooks/my_cookbook/versions/2.0.0/download" } }
|
280
|
+
|
281
|
+
it "has a chef_server installer" do
|
282
|
+
expect(cookbook_location_spec.installer).to be_a_kind_of(CookbookOmnifetch::ChefServerLocation)
|
283
|
+
end
|
284
|
+
|
285
|
+
it "does not have a fixed version" do
|
286
|
+
expect(cookbook_location_spec.version_fixed?).to be false
|
287
|
+
end
|
288
|
+
|
289
|
+
it "is a mirror of a canonical upstream" do
|
290
|
+
expect(cookbook_location_spec.mirrors_canonical_upstream?).to be true
|
291
|
+
end
|
292
|
+
|
293
|
+
it "is valid" do
|
294
|
+
expect(cookbook_location_spec.errors.size).to eq(0)
|
295
|
+
expect(cookbook_location_spec).to be_valid
|
296
|
+
end
|
275
297
|
|
276
298
|
end
|
277
299
|
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
#
|
2
|
+
# Copyright:: Copyright (c) 2016 Chef Software Inc.
|
3
|
+
# License:: Apache License, Version 2.0
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
#
|
17
|
+
|
18
|
+
require 'spec_helper'
|
19
|
+
|
20
|
+
require 'chef-dk/policyfile/source_uri'
|
21
|
+
|
22
|
+
describe ChefDK::Policyfile::SourceURI do
|
23
|
+
subject { described_class.parse(source_uri) }
|
24
|
+
|
25
|
+
describe '#validate' do
|
26
|
+
context 'when the scheme is not https' do
|
27
|
+
let(:source_uri) { 'ftp://chef.example.com' }
|
28
|
+
|
29
|
+
it 'raises ChefDK::InvalidPolicyfileSourceURI' do
|
30
|
+
expect do
|
31
|
+
subject.validate
|
32
|
+
end.to raise_error(ChefDK::InvalidPolicyfileSourceURI)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -115,6 +115,18 @@ describe ChefDK::Policyfile::StorageConfig do
|
|
115
115
|
|
116
116
|
end
|
117
117
|
|
118
|
+
context "when the policyfile file name is actually a lockfile" do
|
119
|
+
|
120
|
+
before do
|
121
|
+
storage_config.use_policyfile("foo.lock.json")
|
122
|
+
end
|
123
|
+
|
124
|
+
it "uses the policyfile .rb file instead" do
|
125
|
+
expect(storage_config.policyfile_filename).to eq("foo.rb")
|
126
|
+
end
|
127
|
+
|
128
|
+
end
|
129
|
+
|
118
130
|
end
|
119
131
|
|
120
132
|
|
@@ -87,6 +87,22 @@ describe ChefDK::PolicyfileServices::Push do
|
|
87
87
|
|
88
88
|
end
|
89
89
|
|
90
|
+
context "when given a path to a Policyfile.lock.json instead of an rb" do
|
91
|
+
|
92
|
+
let(:policyfile_rb_name) { "MyPolicy.rb" }
|
93
|
+
|
94
|
+
let(:policyfile_lock_name) { "MyPolicy.lock.json" }
|
95
|
+
|
96
|
+
let(:push_service) { described_class.new(policyfile: policyfile_lock_name, policy_group: policy_group, ui: ui, config: config, root_dir: working_dir) }
|
97
|
+
|
98
|
+
it "loads the correct policyfile" do
|
99
|
+
storage_config = push_service.storage_config
|
100
|
+
expect(storage_config.policyfile_lock_filename).to eq(policyfile_lock_path)
|
101
|
+
expect(storage_config.policyfile_filename).to eq(policyfile_rb_path)
|
102
|
+
end
|
103
|
+
|
104
|
+
end
|
105
|
+
|
90
106
|
context "when no lockfile is present" do
|
91
107
|
|
92
108
|
it "errors out" do
|
data/version_policy.rb
CHANGED
@@ -47,9 +47,9 @@ OMNIBUS_OVERRIDES = {
|
|
47
47
|
# software def so we don't need to override that
|
48
48
|
"libzmq" => "4.0.5",
|
49
49
|
|
50
|
-
|
51
|
-
#
|
52
|
-
|
50
|
+
# For 1.2 stable release only, pin to 1.1.0 of kitchen-dokken. After the 1.2
|
51
|
+
# release, unpin and bring in kitchen-dokken 2.x.
|
52
|
+
"kitchen-dokken" => "1.1.0"
|
53
53
|
}
|
54
54
|
|
55
55
|
#
|
@@ -60,7 +60,7 @@ OMNIBUS_OVERRIDES = {
|
|
60
60
|
# name of the rubygem (gem list -re <rubygem name> gets us the latest version).
|
61
61
|
#
|
62
62
|
OMNIBUS_RUBYGEMS_AT_LATEST_VERSION = {
|
63
|
-
|
63
|
+
rubygems: "rubygems-update",
|
64
64
|
# bundler: "bundler", # pinned to 1.12.5 until we figure out how we're failing on 1.13.0
|
65
65
|
}
|
66
66
|
|
@@ -76,7 +76,7 @@ ACCEPTABLE_OUTDATED_GEMS = [
|
|
76
76
|
"activesupport", # anchored by outdated google-api-client
|
77
77
|
"celluloid", # ridley requires 0.16.x
|
78
78
|
"celluloid-io", # ridley requires 0.16.x
|
79
|
-
"cucumber-core",
|
79
|
+
"cucumber-core", # Until cucumber 2.0
|
80
80
|
"fog-cloudatcost", # fog restricts this for probably no good reason
|
81
81
|
"fog-dynect", # fog restricts this for probably no good reason
|
82
82
|
"fog-google", # fog-google 0.2+ requires Ruby 2.0+, fog 2.0.0 will include it
|
@@ -88,6 +88,10 @@ ACCEPTABLE_OUTDATED_GEMS = [
|
|
88
88
|
"rubocop", # cookstyle pins to 0.39.0 in 0.0.1
|
89
89
|
"slop", # expected to disappear with pry 0.11
|
90
90
|
"timers", # anchored by outdated celluloid
|
91
|
+
"github_changelog_generator", # we use a forked version that differs from rubygems
|
92
|
+
"addressable", # sawyer limits to < 2.6
|
93
|
+
"faraday", # ridely restrcits this 0.9.x
|
94
|
+
"thor", # berkshelf restricts this to < 0.19.2
|
91
95
|
|
92
96
|
# We have a task called update_stable_channel_gems which scans and pins to the
|
93
97
|
# latest released chef/chef-config/opscode-pushy-client but it pulls from the
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef-dk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel DeLeo
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2017-01-27 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: mixlib-cli
|
@@ -90,38 +90,58 @@ dependencies:
|
|
90
90
|
version: '12.5'
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: solve
|
93
|
+
requirement: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - "<"
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '4.0'
|
98
|
+
- - ">"
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: '2.0'
|
101
|
+
type: :runtime
|
102
|
+
prerelease: false
|
103
|
+
version_requirements: !ruby/object:Gem::Requirement
|
104
|
+
requirements:
|
105
|
+
- - "<"
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
version: '4.0'
|
108
|
+
- - ">"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '2.0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: addressable
|
93
113
|
requirement: !ruby/object:Gem::Requirement
|
94
114
|
requirements:
|
95
115
|
- - ">="
|
96
116
|
- !ruby/object:Gem::Version
|
97
|
-
version: 2.
|
117
|
+
version: 2.3.5
|
118
|
+
- - "<"
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '2.6'
|
98
121
|
type: :runtime
|
99
122
|
prerelease: false
|
100
123
|
version_requirements: !ruby/object:Gem::Requirement
|
101
124
|
requirements:
|
102
125
|
- - ">="
|
103
126
|
- !ruby/object:Gem::Version
|
104
|
-
version: 2.
|
127
|
+
version: 2.3.5
|
128
|
+
- - "<"
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '2.6'
|
105
131
|
- !ruby/object:Gem::Dependency
|
106
132
|
name: cookbook-omnifetch
|
107
133
|
requirement: !ruby/object:Gem::Requirement
|
108
134
|
requirements:
|
109
135
|
- - "~>"
|
110
136
|
- !ruby/object:Gem::Version
|
111
|
-
version: '0.
|
112
|
-
- - ">="
|
113
|
-
- !ruby/object:Gem::Version
|
114
|
-
version: 0.2.2
|
137
|
+
version: '0.5'
|
115
138
|
type: :runtime
|
116
139
|
prerelease: false
|
117
140
|
version_requirements: !ruby/object:Gem::Requirement
|
118
141
|
requirements:
|
119
142
|
- - "~>"
|
120
143
|
- !ruby/object:Gem::Version
|
121
|
-
version: '0.
|
122
|
-
- - ">="
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: 0.2.2
|
144
|
+
version: '0.5'
|
125
145
|
- !ruby/object:Gem::Dependency
|
126
146
|
name: diff-lcs
|
127
147
|
requirement: !ruby/object:Gem::Requirement
|
@@ -326,6 +346,7 @@ files:
|
|
326
346
|
- lib/chef-dk/policyfile/reports/table_printer.rb
|
327
347
|
- lib/chef-dk/policyfile/reports/upload.rb
|
328
348
|
- lib/chef-dk/policyfile/solution_dependencies.rb
|
349
|
+
- lib/chef-dk/policyfile/source_uri.rb
|
329
350
|
- lib/chef-dk/policyfile/storage_config.rb
|
330
351
|
- lib/chef-dk/policyfile/undo_record.rb
|
331
352
|
- lib/chef-dk/policyfile/undo_stack.rb
|
@@ -484,6 +505,8 @@ files:
|
|
484
505
|
- spec/unit/fixtures/cookbook_cache/foo-1.0.0/chefignore
|
485
506
|
- spec/unit/fixtures/cookbook_cache/foo-1.0.0/metadata.rb
|
486
507
|
- spec/unit/fixtures/cookbook_cache/foo-1.0.0/recipes/default.rb
|
508
|
+
- spec/unit/fixtures/cookbooks_api/chef_server_universe.json
|
509
|
+
- spec/unit/fixtures/cookbooks_api/pruned_chef_server_universe.json
|
487
510
|
- spec/unit/fixtures/cookbooks_api/pruned_small_universe.json
|
488
511
|
- spec/unit/fixtures/cookbooks_api/small_universe.json
|
489
512
|
- spec/unit/fixtures/cookbooks_api/universe.json
|
@@ -564,6 +587,7 @@ files:
|
|
564
587
|
- spec/unit/policyfile/reports/install_spec.rb
|
565
588
|
- spec/unit/policyfile/reports/upload_spec.rb
|
566
589
|
- spec/unit/policyfile/solution_dependencies_spec.rb
|
590
|
+
- spec/unit/policyfile/source_uri_spec.rb
|
567
591
|
- spec/unit/policyfile/storage_config_spec.rb
|
568
592
|
- spec/unit/policyfile/undo_record_spec.rb
|
569
593
|
- spec/unit/policyfile/undo_stack_spec.rb
|
@@ -632,7 +656,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
632
656
|
version: '0'
|
633
657
|
requirements: []
|
634
658
|
rubyforge_project:
|
635
|
-
rubygems_version: 2.6.
|
659
|
+
rubygems_version: 2.6.10
|
636
660
|
signing_key:
|
637
661
|
specification_version: 4
|
638
662
|
summary: A streamlined development and deployment workflow for Chef platform.
|
@@ -711,6 +735,8 @@ test_files:
|
|
711
735
|
- spec/unit/fixtures/cookbook_cache/foo-1.0.0/chefignore
|
712
736
|
- spec/unit/fixtures/cookbook_cache/foo-1.0.0/metadata.rb
|
713
737
|
- spec/unit/fixtures/cookbook_cache/foo-1.0.0/recipes/default.rb
|
738
|
+
- spec/unit/fixtures/cookbooks_api/chef_server_universe.json
|
739
|
+
- spec/unit/fixtures/cookbooks_api/pruned_chef_server_universe.json
|
714
740
|
- spec/unit/fixtures/cookbooks_api/pruned_small_universe.json
|
715
741
|
- spec/unit/fixtures/cookbooks_api/small_universe.json
|
716
742
|
- spec/unit/fixtures/cookbooks_api/universe.json
|
@@ -791,6 +817,7 @@ test_files:
|
|
791
817
|
- spec/unit/policyfile/reports/install_spec.rb
|
792
818
|
- spec/unit/policyfile/reports/upload_spec.rb
|
793
819
|
- spec/unit/policyfile/solution_dependencies_spec.rb
|
820
|
+
- spec/unit/policyfile/source_uri_spec.rb
|
794
821
|
- spec/unit/policyfile/storage_config_spec.rb
|
795
822
|
- spec/unit/policyfile/undo_record_spec.rb
|
796
823
|
- spec/unit/policyfile/undo_stack_spec.rb
|