eycloud-helper-common 0.1.0 → 0.2.0
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.
- data/ChangeLog.md +6 -0
- data/attributes/owner.rb +2 -0
- data/eycloud-helper-common.gemspec +3 -1
- data/libraries/managed_template.rb +39 -0
- data/metadata.json +1 -1
- data/metadata.rb +1 -1
- metadata +30 -6
data/ChangeLog.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# ChangeLog
|
2
2
|
|
3
|
+
## v0.2
|
4
|
+
|
5
|
+
* `managed_template` - allows a recipe's files to have `keep.xyz` ("keep files") support
|
6
|
+
* `node[:owner_name]` & `node[:owner_pass]` attributes
|
7
|
+
* `chef` + `yajl-ruby` dependencies for use by "ey-recipes init --chef --on-deploy"
|
8
|
+
|
3
9
|
## v0.1
|
4
10
|
|
5
11
|
* `ruby_block` is provided for recipes wanting to run on Chef 0.6 as well as modern Chef.
|
data/attributes/owner.rb
ADDED
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
$:.push File.expand_path("../lib", __FILE__)
|
3
3
|
|
4
|
-
version = "0.
|
4
|
+
version = "0.2.0" # TODO get from metadata.json or .rb
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "eycloud-helper-common"
|
@@ -18,5 +18,7 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.require_paths = ["lib"]
|
19
19
|
|
20
20
|
# s.add_dependency("eycloud-helper-cronjobs")
|
21
|
+
s.add_dependency("chef")
|
22
|
+
s.add_dependency("yajl-ruby")
|
21
23
|
s.add_development_dependency("rake")
|
22
24
|
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# This is just a small wrapper around template that allows us to add a not_if condition as follows:
|
2
|
+
# take the full path of the template "/data/someservice.conf" and check for a file on the filesystem
|
3
|
+
# called "/data/keep.someservice.conf"
|
4
|
+
|
5
|
+
# so for this managed_template resource
|
6
|
+
# managed_template "/data/someservice.conf" do
|
7
|
+
# owner "ez"
|
8
|
+
# mode 0755
|
9
|
+
# source 'someservice.conf.erb'
|
10
|
+
# action :create
|
11
|
+
# variables :applications => ['foo', 'bar', 'baz']
|
12
|
+
# end
|
13
|
+
#
|
14
|
+
# a not_if condition as follows gets automatically added for you:
|
15
|
+
# not_if { File.exists?("/data/keep.someservice.conf") }
|
16
|
+
#
|
17
|
+
# This allows for a user of a managed system to say "Hey I've made changes to this
|
18
|
+
# config file, DO NOT CLOBBER IT! KTHXBYE" by just prepending any file they want to manage by hand with 'keep.'
|
19
|
+
|
20
|
+
class Chef
|
21
|
+
class Resource
|
22
|
+
class ManagedTemplate < Template
|
23
|
+
if Chef::VERSION == '0.6.0.2'
|
24
|
+
def initialize(name, collection = nil, node = nil)
|
25
|
+
super(name, collection, node)
|
26
|
+
not_if { ::File.exists?(name.sub(/(.*)(\/)/, '\1/keep.')) }
|
27
|
+
end
|
28
|
+
else
|
29
|
+
def initialize(name, run_context=nil)
|
30
|
+
super(name, run_context)
|
31
|
+
not_if { ::File.exists?(name.sub(/(.*)(\/)/, '\1/keep.')) }
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
Chef::Platform.platforms[:default].merge! :managed_template => Chef::Provider::Template
|
39
|
+
|
data/metadata.json
CHANGED
data/metadata.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eycloud-helper-common
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,33 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-03-
|
12
|
+
date: 2012-03-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: chef
|
16
|
+
requirement: &70285966541120 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70285966541120
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: yajl-ruby
|
27
|
+
requirement: &70285966537580 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70285966537580
|
14
36
|
- !ruby/object:Gem::Dependency
|
15
37
|
name: rake
|
16
|
-
requirement: &
|
38
|
+
requirement: &70285966536080 !ruby/object:Gem::Requirement
|
17
39
|
none: false
|
18
40
|
requirements:
|
19
41
|
- - ! '>='
|
@@ -21,7 +43,7 @@ dependencies:
|
|
21
43
|
version: '0'
|
22
44
|
type: :development
|
23
45
|
prerelease: false
|
24
|
-
version_requirements: *
|
46
|
+
version_requirements: *70285966536080
|
25
47
|
description: Common recipe for EY Cloud
|
26
48
|
email:
|
27
49
|
- drnicwilliams@gmail.com
|
@@ -34,7 +56,9 @@ files:
|
|
34
56
|
- Gemfile
|
35
57
|
- README.md
|
36
58
|
- Rakefile
|
59
|
+
- attributes/owner.rb
|
37
60
|
- eycloud-helper-common.gemspec
|
61
|
+
- libraries/managed_template.rb
|
38
62
|
- libraries/ruby_block.rb
|
39
63
|
- metadata.json
|
40
64
|
- metadata.rb
|
@@ -52,7 +76,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
52
76
|
version: '0'
|
53
77
|
segments:
|
54
78
|
- 0
|
55
|
-
hash:
|
79
|
+
hash: 2025999302468870265
|
56
80
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
57
81
|
none: false
|
58
82
|
requirements:
|
@@ -61,7 +85,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
61
85
|
version: '0'
|
62
86
|
segments:
|
63
87
|
- 0
|
64
|
-
hash:
|
88
|
+
hash: 2025999302468870265
|
65
89
|
requirements: []
|
66
90
|
rubyforge_project:
|
67
91
|
rubygems_version: 1.8.17
|