chef-extensions 0.3.0 → 0.4.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/.rvmrc +1 -1
- data/chef-extensions.gemspec +2 -4
- data/lib/chef-extensions.rb +2 -1
- data/lib/chef-extensions/ec2.rb +7 -1
- data/lib/chef-extensions/ip.rb +3 -3
- data/lib/chef-extensions/platform.rb +24 -0
- data/lib/chef-extensions/version.rb +1 -1
- data/test/chef-extensions/platform_test.rb +44 -0
- data/test/test_helper.rb +1 -2
- metadata +8 -20
data/.rvmrc
CHANGED
@@ -1 +1 @@
|
|
1
|
-
rvm use --create
|
1
|
+
rvm use --create 1.8.7@chef-extensions
|
data/chef-extensions.gemspec
CHANGED
@@ -7,7 +7,6 @@ Gem::Specification.new do |s|
|
|
7
7
|
s.version = Chef::Extensions::VERSION
|
8
8
|
s.authors = ["Gerhard Lazu"]
|
9
9
|
s.email = ["gerhard@lazu.co.uk"]
|
10
|
-
s.homepage = "http://gchef.github.com/chef-extensions"
|
11
10
|
s.summary = %q{Chef extensions, can be used stand-alone}
|
12
11
|
s.description = %q{Commands useful for checking internet connectivity, VM presence etc.}
|
13
12
|
|
@@ -18,11 +17,10 @@ Gem::Specification.new do |s|
|
|
18
17
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
18
|
s.require_paths = ["lib"]
|
20
19
|
|
21
|
-
s.add_development_dependency
|
20
|
+
s.add_development_dependency 'chef'
|
22
21
|
s.add_development_dependency 'guard-minitest'
|
23
22
|
s.add_development_dependency 'minitest'
|
24
23
|
s.add_development_dependency 'pry'
|
25
|
-
s.add_development_dependency
|
24
|
+
s.add_development_dependency 'rdiscount'
|
26
25
|
s.add_development_dependency "rocco"
|
27
|
-
s.add_development_dependency 'turn'
|
28
26
|
end
|
data/lib/chef-extensions.rb
CHANGED
data/lib/chef-extensions/ec2.rb
CHANGED
@@ -6,8 +6,14 @@ class Chef
|
|
6
6
|
# **Get the instance ID from AWS's metadata service** <br />
|
7
7
|
# If we don't hear back within 1 second, time out.
|
8
8
|
def instance_id
|
9
|
-
`curl --connect-timeout 1
|
9
|
+
`curl --connect-timeout 1 #{aws_url} 2>&1`.chomp
|
10
10
|
end
|
11
|
+
|
12
|
+
protected
|
13
|
+
|
14
|
+
def aws_url
|
15
|
+
"http://169.254.169.254/2011-01-01/meta-data/instance-id"
|
16
|
+
end
|
11
17
|
end
|
12
18
|
end
|
13
19
|
end
|
data/lib/chef-extensions/ip.rb
CHANGED
@@ -11,7 +11,7 @@ class Chef
|
|
11
11
|
# **Get all public IPv4 addresses** <br />
|
12
12
|
# Some of them might be local to the host, but it's not easy to say which
|
13
13
|
# is which without expensive queries and a complicated logic. <br />
|
14
|
-
#
|
14
|
+
# This method excludes localhost.
|
15
15
|
def public_ipv4
|
16
16
|
local_ipv4 - localhost_ipv4
|
17
17
|
end
|
@@ -27,7 +27,7 @@ class Chef
|
|
27
27
|
end
|
28
28
|
|
29
29
|
# **Runs ifconfig shell utility** <br />
|
30
|
-
# Caching was not necessary, but it helps
|
30
|
+
# Caching was not necessary, but it helps when testing.
|
31
31
|
def ifconfig
|
32
32
|
@ifconfig ||= `ifconfig`
|
33
33
|
end
|
@@ -45,7 +45,7 @@ class Chef
|
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
48
|
-
# Linux's ifconfig returns a slightly different version
|
48
|
+
# Linux's ifconfig returns a slightly different version than OS X's.
|
49
49
|
def linux_filter
|
50
50
|
"#{awk} { print $4 }'"
|
51
51
|
end
|
@@ -14,6 +14,30 @@ class Chef
|
|
14
14
|
def linux?
|
15
15
|
RUBY_PLATFORM.index('linux')
|
16
16
|
end
|
17
|
+
|
18
|
+
# Returns true if architecture is 64bit!
|
19
|
+
#
|
20
|
+
def amd64?
|
21
|
+
!! architecture.index("x86_64")
|
22
|
+
end
|
23
|
+
|
24
|
+
# Returns true if architecture is 32bit!
|
25
|
+
#
|
26
|
+
def i386?
|
27
|
+
! amd64?
|
28
|
+
end
|
29
|
+
|
30
|
+
# Package friendly architecture string
|
31
|
+
#
|
32
|
+
def arch
|
33
|
+
amd64? ? "amd64" : "i386"
|
34
|
+
end
|
35
|
+
|
36
|
+
# Retrieves and caches the architecture type
|
37
|
+
#
|
38
|
+
def architecture
|
39
|
+
@architecture ||= `uname -m`
|
40
|
+
end
|
17
41
|
end
|
18
42
|
end
|
19
43
|
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require File.expand_path('../../test_helper', __FILE__)
|
2
|
+
require 'chef-extensions/platform'
|
3
|
+
|
4
|
+
class Chef
|
5
|
+
module Extensions
|
6
|
+
describe Platform do
|
7
|
+
describe "32bit architectures" do
|
8
|
+
before do
|
9
|
+
Platform.instance_variable_set(:@architecture, "i686")
|
10
|
+
end
|
11
|
+
|
12
|
+
it "amd64?" do
|
13
|
+
Platform.amd64?.must_equal false
|
14
|
+
end
|
15
|
+
|
16
|
+
it "i386?" do
|
17
|
+
Platform.i386?.must_equal true
|
18
|
+
end
|
19
|
+
|
20
|
+
it "arch" do
|
21
|
+
Platform.arch.must_equal "i386"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe "64bit architectures" do
|
26
|
+
before do
|
27
|
+
Platform.instance_variable_set(:@architecture, "x86_64")
|
28
|
+
end
|
29
|
+
|
30
|
+
it "amd64?" do
|
31
|
+
Platform.amd64?.must_equal true
|
32
|
+
end
|
33
|
+
|
34
|
+
it "i386?" do
|
35
|
+
Platform.i386?.must_equal false
|
36
|
+
end
|
37
|
+
|
38
|
+
it "arch" do
|
39
|
+
Platform.arch.must_equal "amd64"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef-extensions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 15
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 4
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 0.4.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Gerhard Lazu
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-
|
18
|
+
date: 2012-03-27 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: chef
|
@@ -101,20 +101,6 @@ dependencies:
|
|
101
101
|
version: "0"
|
102
102
|
type: :development
|
103
103
|
version_requirements: *id006
|
104
|
-
- !ruby/object:Gem::Dependency
|
105
|
-
name: turn
|
106
|
-
prerelease: false
|
107
|
-
requirement: &id007 !ruby/object:Gem::Requirement
|
108
|
-
none: false
|
109
|
-
requirements:
|
110
|
-
- - ">="
|
111
|
-
- !ruby/object:Gem::Version
|
112
|
-
hash: 3
|
113
|
-
segments:
|
114
|
-
- 0
|
115
|
-
version: "0"
|
116
|
-
type: :development
|
117
|
-
version_requirements: *id007
|
118
104
|
description: Commands useful for checking internet connectivity, VM presence etc.
|
119
105
|
email:
|
120
106
|
- gerhard@lazu.co.uk
|
@@ -140,10 +126,11 @@ files:
|
|
140
126
|
- lib/chef-extensions/platform.rb
|
141
127
|
- lib/chef-extensions/version.rb
|
142
128
|
- test/chef-extensions/ip_test.rb
|
129
|
+
- test/chef-extensions/platform_test.rb
|
143
130
|
- test/fixtures/osx.ifconfig
|
144
131
|
- test/fixtures/ubuntu.ifconfig
|
145
132
|
- test/test_helper.rb
|
146
|
-
homepage:
|
133
|
+
homepage:
|
147
134
|
licenses: []
|
148
135
|
|
149
136
|
post_install_message:
|
@@ -172,12 +159,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
172
159
|
requirements: []
|
173
160
|
|
174
161
|
rubyforge_project: chef-extensions
|
175
|
-
rubygems_version: 1.8.
|
162
|
+
rubygems_version: 1.8.17
|
176
163
|
signing_key:
|
177
164
|
specification_version: 3
|
178
165
|
summary: Chef extensions, can be used stand-alone
|
179
166
|
test_files:
|
180
167
|
- test/chef-extensions/ip_test.rb
|
168
|
+
- test/chef-extensions/platform_test.rb
|
181
169
|
- test/fixtures/osx.ifconfig
|
182
170
|
- test/fixtures/ubuntu.ifconfig
|
183
171
|
- test/test_helper.rb
|