busser 0.5.0 → 0.6.0.beta.1
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.
- checksums.yaml +4 -4
- data/lib/busser/command/test.rb +3 -2
- data/lib/busser/helpers.rb +4 -2
- data/lib/busser/runner_plugin/dummy.rb +1 -9
- data/lib/busser/version.rb +1 -1
- metadata +4 -6
- data/lib/busser/chef_apply.rb +0 -108
- data/lib/busser/chef_ext.rb +0 -52
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9a782f54c494ef115c46f5eb93a425ab68fa0a66
|
4
|
+
data.tar.gz: db0848cdaf0125f4278ca07235a1e17622e029d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1c5dc8dab0ae8e6c2a9308b0672840ff2a7b3f02ea48c34c6c16163ca33b79810cc5e882251158d97fa26f44f4ef5c6107baf5f16da8c150b378b7414cb770bf
|
7
|
+
data.tar.gz: 8ea4c37df7a079eba2c40466702c7ac1314255ba83e3be2c0964b59617d4c0bc6c50e5447b037b65d8631857a2094ab7443182d8d2f961fce1d5975dc3435783
|
data/lib/busser/command/test.rb
CHANGED
@@ -68,8 +68,9 @@ module Busser
|
|
68
68
|
prepare_recipe = suite_path(runner).join("prepare_recipe.rb")
|
69
69
|
|
70
70
|
if prepare_recipe.exist?
|
71
|
-
|
72
|
-
|
71
|
+
warn "Apologies, but Busser no longer supports the" +
|
72
|
+
" prepare_recipe.rb file. Please use prepare.sh and optionally" +
|
73
|
+
" shell out to chef-apply in an Omnibus installtion."
|
73
74
|
end
|
74
75
|
end
|
75
76
|
end
|
data/lib/busser/helpers.rb
CHANGED
@@ -47,8 +47,10 @@ module Busser
|
|
47
47
|
end
|
48
48
|
|
49
49
|
def chef_apply(config = {}, &block)
|
50
|
-
|
51
|
-
|
50
|
+
warn "Apologies, but Busser no longer supports the chef_apply helper," +
|
51
|
+
" so the contents of this block will not be exectued. Please refactor" +
|
52
|
+
" your code to use Thor actions, shell out commands or another" +
|
53
|
+
" strategy"
|
52
54
|
end
|
53
55
|
|
54
56
|
def install_gem(gem, version = nil)
|
@@ -29,17 +29,9 @@ class Busser::RunnerPlugin::Dummy < Busser::RunnerPlugin::Base
|
|
29
29
|
# use.
|
30
30
|
#
|
31
31
|
postinstall do
|
32
|
-
# ensure that dummy_path gets pulled into the chef_apply block closure,
|
33
|
-
# otherwise the Chef will not understand dummy_path in its run context
|
34
32
|
dummy_path = suite_path("dummy").to_s
|
35
33
|
|
36
|
-
|
37
|
-
# using resources such as package, remote_file, etc.
|
38
|
-
chef_apply do
|
39
|
-
directory(dummy_path) { recursive true }
|
40
|
-
end
|
41
|
-
|
42
|
-
# create a dummy file
|
34
|
+
empty_directory(dummy_path)
|
43
35
|
create_file("#{dummy_path}/foobar.txt", "The Dummy Driver.")
|
44
36
|
end
|
45
37
|
|
data/lib/busser/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: busser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0.beta.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fletcher Nichol
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-11-
|
11
|
+
date: 2013-11-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -208,8 +208,6 @@ files:
|
|
208
208
|
- features/suite_path_command.feature
|
209
209
|
- features/support/env.rb
|
210
210
|
- lib/busser.rb
|
211
|
-
- lib/busser/chef_apply.rb
|
212
|
-
- lib/busser/chef_ext.rb
|
213
211
|
- lib/busser/cli.rb
|
214
212
|
- lib/busser/command/deserialize.rb
|
215
213
|
- lib/busser/command/plugin.rb
|
@@ -266,9 +264,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
266
264
|
version: 1.9.1
|
267
265
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
268
266
|
requirements:
|
269
|
-
- - '
|
267
|
+
- - '>'
|
270
268
|
- !ruby/object:Gem::Version
|
271
|
-
version:
|
269
|
+
version: 1.3.1
|
272
270
|
requirements: []
|
273
271
|
rubyforge_project:
|
274
272
|
rubygems_version: 2.0.3
|
data/lib/busser/chef_apply.rb
DELETED
@@ -1,108 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
#
|
3
|
-
# Author:: Fletcher Nichol (<fnichol@nichol.ca>)
|
4
|
-
#
|
5
|
-
# Copyright (C) 2013, Fletcher Nichol
|
6
|
-
#
|
7
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
-
# you may not use this file except in compliance with the License.
|
9
|
-
# You may obtain a copy of the License at
|
10
|
-
#
|
11
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
-
#
|
13
|
-
# Unless required by applicable law or agreed to in writing, software
|
14
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
-
# See the License for the specific language governing permissions and
|
17
|
-
# limitations under the License.
|
18
|
-
|
19
|
-
require 'busser/chef_ext'
|
20
|
-
|
21
|
-
module Busser
|
22
|
-
|
23
|
-
# A modified re-implementation of chef-apply which ships with Chef 11 gems.
|
24
|
-
#
|
25
|
-
# @author Fletcher Nichol <fnichol@nichol.ca>
|
26
|
-
#
|
27
|
-
class ChefApply
|
28
|
-
|
29
|
-
def initialize(config = {}, &block)
|
30
|
-
@config = { :why_run => false }.merge(config)
|
31
|
-
@apply_block = block
|
32
|
-
|
33
|
-
if ! config.has_key?(:file) && ! block_given?
|
34
|
-
raise ArgumentError, ":file or block must be given"
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
def converge
|
39
|
-
as_solo do
|
40
|
-
load_recipe
|
41
|
-
Chef::Runner.new(run_context).converge
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
private
|
46
|
-
|
47
|
-
attr_reader :config, :apply_block
|
48
|
-
|
49
|
-
COOKBOOK_NAME = "(chef-apply cookbook)".freeze
|
50
|
-
COOKBOOK_RECIPE = "(chef-apply recipe)".freeze
|
51
|
-
|
52
|
-
def as_solo
|
53
|
-
log_level = Chef::Log.level
|
54
|
-
solo_mode = Chef::Config[:solo]
|
55
|
-
why_run = Chef::Config[:why_run]
|
56
|
-
|
57
|
-
Chef::Log.level = chef_log_level
|
58
|
-
Chef::Config[:solo] = true
|
59
|
-
Chef::Config[:why_run] = config[:why_run]
|
60
|
-
yield
|
61
|
-
ensure
|
62
|
-
Chef::Config[:why_run] = why_run
|
63
|
-
Chef::Config[:solo] = solo_mode
|
64
|
-
Chef::Log.level = log_level
|
65
|
-
end
|
66
|
-
|
67
|
-
def load_recipe
|
68
|
-
recipe = Chef::Recipe.new(COOKBOOK_NAME, COOKBOOK_RECIPE, run_context)
|
69
|
-
|
70
|
-
if config[:file]
|
71
|
-
recipe.from_file(config[:file].to_s)
|
72
|
-
else
|
73
|
-
recipe.instance_eval(&apply_block)
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
def run_context
|
78
|
-
@run_context ||= begin
|
79
|
-
if client.events.nil?
|
80
|
-
Chef::RunContext.new(client.node, cookbook_collection)
|
81
|
-
else
|
82
|
-
Chef::RunContext.new(client.node, cookbook_collection, client.events)
|
83
|
-
end
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
|
-
def cookbook_collection
|
88
|
-
@cookbook_collection ||= begin
|
89
|
-
cookbook = Chef::CookbookVersion.new(COOKBOOK_NAME)
|
90
|
-
Chef::CookbookCollection.new({ COOKBOOK_NAME => cookbook })
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
def client
|
95
|
-
@client ||= begin
|
96
|
-
client = Chef::Client.new
|
97
|
-
client.run_ohai
|
98
|
-
client.load_node
|
99
|
-
client.build_node
|
100
|
-
client
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
def chef_log_level
|
105
|
-
(ENV['BUSSER_LOG_LEVEL'] && ENV['BUSSER_LOG_LEVEL'].to_sym) || :info
|
106
|
-
end
|
107
|
-
end
|
108
|
-
end
|
data/lib/busser/chef_ext.rb
DELETED
@@ -1,52 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
#
|
3
|
-
# Author:: Fletcher Nichol (<fnichol@nichol.ca>)
|
4
|
-
#
|
5
|
-
# Copyright (C) 2013, Fletcher Nichol
|
6
|
-
#
|
7
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
-
# you may not use this file except in compliance with the License.
|
9
|
-
# You may obtain a copy of the License at
|
10
|
-
#
|
11
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
-
#
|
13
|
-
# Unless required by applicable law or agreed to in writing, software
|
14
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
-
# See the License for the specific language governing permissions and
|
17
|
-
# limitations under the License.
|
18
|
-
|
19
|
-
require 'chef/client'
|
20
|
-
require 'chef/providers'
|
21
|
-
require 'chef/resources'
|
22
|
-
require 'chef/cookbook_version'
|
23
|
-
|
24
|
-
# Monkey patches to Chef core classes to allow for chef-apply functionality.
|
25
|
-
class Chef
|
26
|
-
|
27
|
-
# Backwards compatible shim for older Chef clients.
|
28
|
-
class Client
|
29
|
-
attr_reader :events
|
30
|
-
end
|
31
|
-
|
32
|
-
# Chef::CookbookVersion, monkey patched to use simpler file source
|
33
|
-
# paths (always uses local files instead of manifest records).
|
34
|
-
#
|
35
|
-
# Implementation from the sandwich project at:
|
36
|
-
# https://github.com/sometimesfood/sandwich
|
37
|
-
#
|
38
|
-
class CookbookVersion
|
39
|
-
# Determines the absolute source filename on disk for various file
|
40
|
-
# resources from their relative path
|
41
|
-
#
|
42
|
-
# @param [Chef::Node] node the node object, ignored
|
43
|
-
# @param [Symbol] segment the segment of the current resource, ignored
|
44
|
-
# @param [String] source the source file path
|
45
|
-
# @param [String] target the target file path, ignored
|
46
|
-
# @return [String] the preferred source filename
|
47
|
-
def preferred_filename_on_disk_location(node, segment, source, target = nil)
|
48
|
-
# keep absolute paths, convert relative paths into absolute paths
|
49
|
-
source.start_with?('/') ? source : File.join(Dir.getwd, source)
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|