chef-extensions 0.2.0 → 0.2.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.
- data/.deliver +2 -0
- data/.gitignore +1 -0
- data/.rvmrc +1 -0
- data/Rakefile +13 -36
- data/lib/chef-extensions/ec2.rb +1 -1
- data/lib/chef-extensions/ip.rb +39 -11
- data/lib/chef-extensions/platform.rb +19 -0
- data/lib/chef-extensions/version.rb +1 -2
- data/test/chef-extensions/ip_test.rb +22 -22
- data/test/fixtures/osx.ifconfig +33 -0
- data/test/fixtures/ubuntu.ifconfig +26 -0
- metadata +133 -89
- data/docs/index.html +0 -108
- data/docs/lib/chef-extensions.html +0 -0
- data/docs/lib/chef-extensions/ip.html +0 -68
- data/docs/lib/chef-extensions/version.html +0 -56
data/.deliver
ADDED
data/.gitignore
CHANGED
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm use --create ree@chef-extensions
|
data/Rakefile
CHANGED
@@ -5,7 +5,7 @@ require 'rake/testtask'
|
|
5
5
|
|
6
6
|
require 'rdiscount'
|
7
7
|
require 'rocco/tasks'
|
8
|
-
Rocco::make '
|
8
|
+
Rocco::make 'gh-pages/'
|
9
9
|
|
10
10
|
Rake::TestTask.new do |t|
|
11
11
|
t.pattern = 'test/**/*_test.rb'
|
@@ -18,43 +18,20 @@ task :version do
|
|
18
18
|
puts Chef::Extensions::VERSION
|
19
19
|
end
|
20
20
|
|
21
|
-
desc 'Build rocco
|
22
|
-
task :docs => :rocco
|
23
|
-
|
24
|
-
|
21
|
+
desc 'Build rocco gh-pages'
|
22
|
+
task :docs => :rocco do
|
23
|
+
%x{
|
24
|
+
cd gh-pages;
|
25
|
+
mv lib/* .;
|
26
|
+
rm -fr lib;
|
27
|
+
cp chef-extensions.html index.html
|
28
|
+
}
|
29
|
+
end
|
30
|
+
# Aliases for docs task
|
25
31
|
task :doc => :docs
|
32
|
+
task :generate => :docs
|
26
33
|
|
27
34
|
desc 'Build docs and open in browser for the reading'
|
28
35
|
task :read => :docs do
|
29
|
-
sh 'open
|
30
|
-
end
|
31
|
-
|
32
|
-
# Make index.html a copy of chef-extensions.html
|
33
|
-
file 'docs/index.html' => 'docs/lib/chef-extensions.html' do |f|
|
34
|
-
cp 'docs/lib/chef-extensions.html', 'docs/index.html', :preserve => true
|
35
|
-
end
|
36
|
-
task :docs => 'docs/index.html'
|
37
|
-
CLEAN.include 'docs/index.html'
|
38
|
-
|
39
|
-
# Update the pages/ directory clone
|
40
|
-
file 'docs/.git' => ['docs/', '.git/refs/heads/gh-pages'] do |f|
|
41
|
-
sh "cd docs && git init -q && git remote add o ../.git" if !File.exist?(f.name)
|
42
|
-
sh "cd docs && git fetch -q o && git reset -q --hard o/gh-pages && touch ."
|
43
|
-
end
|
44
|
-
CLOBBER.include 'docs/.git'
|
45
|
-
|
46
|
-
# GITHUB PAGES ===============================================================
|
47
|
-
|
48
|
-
desc 'Update gh-pages branch'
|
49
|
-
task :pages => ['docs/.git', :docs] do
|
50
|
-
rev = `git rev-parse --short HEAD`.strip
|
51
|
-
Dir.chdir 'docs' do
|
52
|
-
sh "git add *.html"
|
53
|
-
sh "git commit -m 'rebuild pages from #{rev}'" do |ok,res|
|
54
|
-
if ok
|
55
|
-
verbose { puts "gh-pages updated" }
|
56
|
-
sh "git push -q o HEAD:gh-pages"
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
36
|
+
sh 'open gh-pages/index.html'
|
60
37
|
end
|
data/lib/chef-extensions/ec2.rb
CHANGED
@@ -3,7 +3,7 @@ class Chef
|
|
3
3
|
module EC2
|
4
4
|
extend self
|
5
5
|
|
6
|
-
# **Get the instance ID from AWS's metadata service**
|
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
9
|
`curl --connect-timeout 1 http://169.254.169.254/2011-01-01/meta-data/instance-id 2>&1`.chomp
|
data/lib/chef-extensions/ip.rb
CHANGED
@@ -1,25 +1,53 @@
|
|
1
|
-
require '
|
1
|
+
require File.expand_path('../platform', __FILE__)
|
2
2
|
|
3
3
|
class Chef
|
4
4
|
module Extensions
|
5
5
|
module IP
|
6
6
|
extend self
|
7
7
|
|
8
|
+
# **Get all local IPv4 addresses** <br />
|
9
|
+
# It excludes localhost. Easily adaptable to IPv6. <br />
|
10
|
+
# In Ruby 1.9, this is a simple call to `Socket.ip_address_list`.
|
8
11
|
def all
|
9
|
-
|
12
|
+
local_ips - localhost
|
10
13
|
end
|
11
14
|
|
12
|
-
|
13
|
-
all.select(&:ipv4?)
|
14
|
-
end
|
15
|
+
protected
|
15
16
|
|
16
|
-
|
17
|
-
|
18
|
-
|
17
|
+
def local_ips
|
18
|
+
`echo "#{ifconfig}" | #{filter}`.split("\n")
|
19
|
+
end
|
20
|
+
|
21
|
+
def localhost
|
22
|
+
["127.0.0.1"]
|
23
|
+
end
|
24
|
+
|
25
|
+
def ifconfig
|
26
|
+
@ifconfig ||= `ifconfig`
|
27
|
+
end
|
28
|
+
|
29
|
+
def filter
|
30
|
+
@filter ||= if Platform.linux?
|
31
|
+
linux_filter
|
32
|
+
elsif Platform.os_x?
|
33
|
+
os_x_filter
|
34
|
+
else
|
35
|
+
raise "Only works on Linux or OS X"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def linux_filter
|
40
|
+
"#{awk} { print $4 }'"
|
41
|
+
end
|
42
|
+
|
43
|
+
def os_x_filter
|
44
|
+
"#{awk} { print $2 }'"
|
45
|
+
end
|
46
|
+
|
47
|
+
def awk
|
48
|
+
%{awk -F"[: ]+" '/inet /}
|
49
|
+
end
|
19
50
|
|
20
|
-
def addresses(type)
|
21
|
-
self.send(type).map(&:ip_address)
|
22
|
-
end
|
23
51
|
end
|
24
52
|
end
|
25
53
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class Chef
|
2
|
+
module Extensions
|
3
|
+
module Platform
|
4
|
+
extend self
|
5
|
+
|
6
|
+
# Returns true if running on OS X
|
7
|
+
#
|
8
|
+
def os_x?
|
9
|
+
RUBY_PLATFORM.index('darwin')
|
10
|
+
end
|
11
|
+
|
12
|
+
# Returns true if running on Linux
|
13
|
+
#
|
14
|
+
def linux?
|
15
|
+
RUBY_PLATFORM.index('linux')
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -4,35 +4,35 @@ require 'chef-extensions/ip'
|
|
4
4
|
class Chef
|
5
5
|
module Extensions
|
6
6
|
describe IP do
|
7
|
-
describe "
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
end
|
7
|
+
describe "osx" do
|
8
|
+
before do
|
9
|
+
ifconfig = IO.read(File.expand_path('../../fixtures/osx.ifconfig', __FILE__))
|
10
|
+
IP.instance_variable_set(:@ifconfig, ifconfig)
|
12
11
|
end
|
13
|
-
end
|
14
12
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
13
|
+
it "all IPv4 addresses, excluding localhost" do
|
14
|
+
IP.all.must_equal([
|
15
|
+
"10.100.1.11",
|
16
|
+
"10.100.1.10",
|
17
|
+
"192.168.86.1",
|
18
|
+
"192.168.203.1",
|
19
|
+
"11.11.11.1"
|
20
|
+
])
|
20
21
|
end
|
21
22
|
end
|
22
23
|
|
23
|
-
describe "
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
24
|
+
describe "ubuntu" do
|
25
|
+
before do
|
26
|
+
ifconfig = IO.read(File.expand_path('../../fixtures/ubuntu.ifconfig', __FILE__))
|
27
|
+
IP.instance_variable_set(:@ifconfig, ifconfig)
|
28
|
+
IP.instance_variable_set(:@filter, IP.send(:linux_filter))
|
28
29
|
end
|
29
|
-
end
|
30
30
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
31
|
+
it "all IPv4 addresses, excluding localhost" do
|
32
|
+
IP.all.must_equal([
|
33
|
+
"10.0.1.10",
|
34
|
+
"11.11.11.10"
|
35
|
+
])
|
36
36
|
end
|
37
37
|
end
|
38
38
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
|
2
|
+
inet 127.0.0.1 netmask 0xff000000
|
3
|
+
inet6 ::1 prefixlen 128
|
4
|
+
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
|
5
|
+
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
|
6
|
+
stf0: flags=0<> mtu 1280
|
7
|
+
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
|
8
|
+
ether 58:b0:35:7f:97:aa
|
9
|
+
inet6 fe80::5ab0:35ff:fe7f:97aa%en1 prefixlen 64 scopeid 0x4
|
10
|
+
inet 10.100.1.11 netmask 0xffffff00 broadcast 10.100.2.255
|
11
|
+
media: autoselect
|
12
|
+
status: active
|
13
|
+
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
|
14
|
+
ether 58:b0:35:f5:84:1e
|
15
|
+
inet6 fe80::5ab0:35ff:fef5:841e%en0 prefixlen 64 scopeid 0x5
|
16
|
+
inet 10.100.1.10 netmask 0xffffff00 broadcast 10.100.2.255
|
17
|
+
media: autoselect (1000baseT <full-duplex,flow-control>)
|
18
|
+
status: active
|
19
|
+
fw0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 4078
|
20
|
+
lladdr d8:30:62:ff:fe:f3:80:76
|
21
|
+
media: autoselect <full-duplex>
|
22
|
+
status: inactive
|
23
|
+
vmnet1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
|
24
|
+
ether 00:50:56:c0:00:01
|
25
|
+
inet 192.168.86.1 netmask 0xffffff00 broadcast 192.168.86.255
|
26
|
+
vmnet8: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
|
27
|
+
ether 00:50:56:c0:00:08
|
28
|
+
inet 192.168.203.1 netmask 0xffffff00 broadcast 192.168.203.255
|
29
|
+
vboxnet0: flags=8842<BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
|
30
|
+
ether 0a:00:27:00:00:00
|
31
|
+
vboxnet1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
|
32
|
+
ether 0a:00:27:00:00:01
|
33
|
+
inet 11.11.11.1 netmask 0xffffff00 broadcast 11.11.11.255
|
@@ -0,0 +1,26 @@
|
|
1
|
+
eth0 Link encap:Ethernet HWaddr 08:00:27:41:53:f3
|
2
|
+
inet addr:10.0.1.10 Bcast:10.0.2.255 Mask:255.255.255.0
|
3
|
+
inet6 addr: fe80::a00:27ff:fe41:53f3/64 Scope:Link
|
4
|
+
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
|
5
|
+
RX packets:369 errors:0 dropped:0 overruns:0 frame:0
|
6
|
+
TX packets:256 errors:0 dropped:0 overruns:0 carrier:0
|
7
|
+
collisions:0 txqueuelen:1000
|
8
|
+
RX bytes:44565 (44.5 KB) TX bytes:37502 (37.5 KB)
|
9
|
+
|
10
|
+
eth1 Link encap:Ethernet HWaddr 08:00:27:76:c1:19
|
11
|
+
inet addr:11.11.11.10 Bcast:11.11.11.255 Mask:255.255.255.0
|
12
|
+
inet6 addr: fe80::a00:27ff:fe76:c119/64 Scope:Link
|
13
|
+
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
|
14
|
+
RX packets:114 errors:0 dropped:0 overruns:0 frame:0
|
15
|
+
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
|
16
|
+
collisions:0 txqueuelen:1000
|
17
|
+
RX bytes:15736 (15.7 KB) TX bytes:468 (468.0 B)
|
18
|
+
|
19
|
+
lo Link encap:Local Loopback
|
20
|
+
inet addr:127.0.0.1 Mask:255.0.0.0
|
21
|
+
inet6 addr: ::1/128 Scope:Host
|
22
|
+
UP LOOPBACK RUNNING MTU:16436 Metric:1
|
23
|
+
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
|
24
|
+
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
|
25
|
+
collisions:0 txqueuelen:0
|
26
|
+
RX bytes:560 (560.0 B) TX bytes:560 (560.0 B)
|
metadata
CHANGED
@@ -1,153 +1,197 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef-extensions
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 21
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 2
|
9
|
+
- 1
|
10
|
+
version: 0.2.1
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Gerhard Lazu
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
|
18
|
+
date: 2012-02-15 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
15
21
|
name: chef
|
16
|
-
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
17
24
|
none: false
|
18
|
-
requirements:
|
19
|
-
- -
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 3
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
version: "0"
|
22
32
|
type: :development
|
23
|
-
|
24
|
-
|
25
|
-
- !ruby/object:Gem::Dependency
|
33
|
+
version_requirements: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
26
35
|
name: guard-minitest
|
27
|
-
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
28
38
|
none: false
|
29
|
-
requirements:
|
30
|
-
- -
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
hash: 3
|
43
|
+
segments:
|
44
|
+
- 0
|
45
|
+
version: "0"
|
33
46
|
type: :development
|
34
|
-
|
35
|
-
|
36
|
-
- !ruby/object:Gem::Dependency
|
47
|
+
version_requirements: *id002
|
48
|
+
- !ruby/object:Gem::Dependency
|
37
49
|
name: guard-rocco
|
38
|
-
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
39
52
|
none: false
|
40
|
-
requirements:
|
41
|
-
- -
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
hash: 3
|
57
|
+
segments:
|
58
|
+
- 0
|
59
|
+
version: "0"
|
44
60
|
type: :development
|
45
|
-
|
46
|
-
|
47
|
-
- !ruby/object:Gem::Dependency
|
61
|
+
version_requirements: *id003
|
62
|
+
- !ruby/object:Gem::Dependency
|
48
63
|
name: minitest
|
49
|
-
|
64
|
+
prerelease: false
|
65
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
50
66
|
none: false
|
51
|
-
requirements:
|
52
|
-
- -
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
|
67
|
+
requirements:
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
hash: 3
|
71
|
+
segments:
|
72
|
+
- 0
|
73
|
+
version: "0"
|
55
74
|
type: :development
|
56
|
-
|
57
|
-
|
58
|
-
- !ruby/object:Gem::Dependency
|
75
|
+
version_requirements: *id004
|
76
|
+
- !ruby/object:Gem::Dependency
|
59
77
|
name: pry
|
60
|
-
|
78
|
+
prerelease: false
|
79
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
61
80
|
none: false
|
62
|
-
requirements:
|
63
|
-
- -
|
64
|
-
- !ruby/object:Gem::Version
|
65
|
-
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
hash: 3
|
85
|
+
segments:
|
86
|
+
- 0
|
87
|
+
version: "0"
|
66
88
|
type: :development
|
67
|
-
|
68
|
-
|
69
|
-
- !ruby/object:Gem::Dependency
|
89
|
+
version_requirements: *id005
|
90
|
+
- !ruby/object:Gem::Dependency
|
70
91
|
name: rdiscount
|
71
|
-
|
92
|
+
prerelease: false
|
93
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
72
94
|
none: false
|
73
|
-
requirements:
|
74
|
-
- -
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
|
95
|
+
requirements:
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
hash: 3
|
99
|
+
segments:
|
100
|
+
- 0
|
101
|
+
version: "0"
|
77
102
|
type: :development
|
78
|
-
|
79
|
-
|
80
|
-
- !ruby/object:Gem::Dependency
|
103
|
+
version_requirements: *id006
|
104
|
+
- !ruby/object:Gem::Dependency
|
81
105
|
name: rocco
|
82
|
-
|
106
|
+
prerelease: false
|
107
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
83
108
|
none: false
|
84
|
-
requirements:
|
85
|
-
- -
|
86
|
-
- !ruby/object:Gem::Version
|
87
|
-
|
109
|
+
requirements:
|
110
|
+
- - ">="
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
hash: 3
|
113
|
+
segments:
|
114
|
+
- 0
|
115
|
+
version: "0"
|
88
116
|
type: :development
|
89
|
-
|
90
|
-
|
91
|
-
- !ruby/object:Gem::Dependency
|
117
|
+
version_requirements: *id007
|
118
|
+
- !ruby/object:Gem::Dependency
|
92
119
|
name: turn
|
93
|
-
|
120
|
+
prerelease: false
|
121
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
94
122
|
none: false
|
95
|
-
requirements:
|
96
|
-
- -
|
97
|
-
- !ruby/object:Gem::Version
|
98
|
-
|
123
|
+
requirements:
|
124
|
+
- - ">="
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
hash: 3
|
127
|
+
segments:
|
128
|
+
- 0
|
129
|
+
version: "0"
|
99
130
|
type: :development
|
100
|
-
|
101
|
-
version_requirements: *2160315680
|
131
|
+
version_requirements: *id008
|
102
132
|
description: Commands useful for checking internet connectivity, VM presence etc.
|
103
|
-
email:
|
133
|
+
email:
|
104
134
|
- gerhard@lazu.co.uk
|
105
135
|
executables: []
|
136
|
+
|
106
137
|
extensions: []
|
138
|
+
|
107
139
|
extra_rdoc_files: []
|
108
|
-
|
140
|
+
|
141
|
+
files:
|
142
|
+
- .deliver
|
109
143
|
- .gitignore
|
144
|
+
- .rvmrc
|
110
145
|
- Gemfile
|
111
146
|
- Guardfile
|
112
147
|
- LICENSE
|
113
148
|
- README.md
|
114
149
|
- Rakefile
|
115
150
|
- chef-extensions.gemspec
|
116
|
-
- docs/index.html
|
117
|
-
- docs/lib/chef-extensions.html
|
118
|
-
- docs/lib/chef-extensions/ip.html
|
119
|
-
- docs/lib/chef-extensions/version.html
|
120
151
|
- lib/chef-extensions.rb
|
121
152
|
- lib/chef-extensions/ec2.rb
|
122
153
|
- lib/chef-extensions/ip.rb
|
154
|
+
- lib/chef-extensions/platform.rb
|
123
155
|
- lib/chef-extensions/version.rb
|
124
156
|
- test/chef-extensions/ip_test.rb
|
157
|
+
- test/fixtures/osx.ifconfig
|
158
|
+
- test/fixtures/ubuntu.ifconfig
|
125
159
|
- test/test_helper.rb
|
126
160
|
homepage: http://gchef.github.com/chef-extensions
|
127
161
|
licenses: []
|
162
|
+
|
128
163
|
post_install_message:
|
129
164
|
rdoc_options: []
|
130
|
-
|
165
|
+
|
166
|
+
require_paths:
|
131
167
|
- lib
|
132
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
168
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
133
169
|
none: false
|
134
|
-
requirements:
|
135
|
-
- -
|
136
|
-
- !ruby/object:Gem::Version
|
137
|
-
|
138
|
-
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
hash: 3
|
174
|
+
segments:
|
175
|
+
- 0
|
176
|
+
version: "0"
|
177
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
139
178
|
none: false
|
140
|
-
requirements:
|
141
|
-
- -
|
142
|
-
- !ruby/object:Gem::Version
|
143
|
-
|
179
|
+
requirements:
|
180
|
+
- - ">="
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
hash: 3
|
183
|
+
segments:
|
184
|
+
- 0
|
185
|
+
version: "0"
|
144
186
|
requirements: []
|
187
|
+
|
145
188
|
rubyforge_project: chef-extensions
|
146
189
|
rubygems_version: 1.8.10
|
147
190
|
signing_key:
|
148
191
|
specification_version: 3
|
149
192
|
summary: Chef extensions, can be used stand-alone
|
150
|
-
test_files:
|
193
|
+
test_files:
|
151
194
|
- test/chef-extensions/ip_test.rb
|
195
|
+
- test/fixtures/osx.ifconfig
|
196
|
+
- test/fixtures/ubuntu.ifconfig
|
152
197
|
- test/test_helper.rb
|
153
|
-
has_rdoc:
|
data/docs/index.html
DELETED
@@ -1,108 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
<meta http-equiv="content-type" content="text/html;charset=utf-8">
|
5
|
-
<title>chef-extensions.rb</title>
|
6
|
-
<link rel="stylesheet" href="http://jashkenas.github.com/docco/resources/docco.css">
|
7
|
-
</head>
|
8
|
-
<body>
|
9
|
-
<div id='container'>
|
10
|
-
<div id="background"></div>
|
11
|
-
<div id="jump_to">
|
12
|
-
Jump To …
|
13
|
-
<div id="jump_wrapper">
|
14
|
-
<div id="jump_page">
|
15
|
-
<a class="source" href="chef-extensions.html">chef-extensions.rb</a>
|
16
|
-
<a class="source" href="chef-extensions/version.html">version.rb</a>
|
17
|
-
</div>
|
18
|
-
</div>
|
19
|
-
</div>
|
20
|
-
<table cellspacing=0 cellpadding=0>
|
21
|
-
<thead>
|
22
|
-
<tr>
|
23
|
-
<th class=docs><h1>chef-extensions.rb</h1></th>
|
24
|
-
<th class=code></th>
|
25
|
-
</tr>
|
26
|
-
</thead>
|
27
|
-
<tbody>
|
28
|
-
<tr id='section-1'>
|
29
|
-
<td class=docs>
|
30
|
-
<div class="pilwrap">
|
31
|
-
<a class="pilcrow" href="#section-1">¶</a>
|
32
|
-
</div>
|
33
|
-
|
34
|
-
</td>
|
35
|
-
<td class=code>
|
36
|
-
<div class='highlight'><pre><span class="nb">require</span> <span class="s1">'chef-extensions/version'</span>
|
37
|
-
<span class="nb">require</span> <span class="s1">'securerandom'</span>
|
38
|
-
|
39
|
-
<span class="k">module</span> <span class="nn">Chef</span>
|
40
|
-
<span class="k">module</span> <span class="nn">Extensions</span>
|
41
|
-
<span class="kp">extend</span> <span class="nb">self</span></pre></div>
|
42
|
-
</td>
|
43
|
-
</tr>
|
44
|
-
<tr id='section-2'>
|
45
|
-
<td class=docs>
|
46
|
-
<div class="pilwrap">
|
47
|
-
<a class="pilcrow" href="#section-2">¶</a>
|
48
|
-
</div>
|
49
|
-
<p><strong>Ping Google’s DNS.</strong> <br />
|
50
|
-
If it doesn’t hear back within 1s, it’s safe to
|
51
|
-
assume that we don’t have internet connectivity</p>
|
52
|
-
</td>
|
53
|
-
<td class=code>
|
54
|
-
<div class='highlight'><pre> <span class="k">def</span> <span class="nf">wan_up?</span>
|
55
|
-
<span class="sb">`ping -c 1 8.8.8.8 -W 2`</span><span class="o">.</span><span class="n">include?</span> <span class="s2">"1 received"</span>
|
56
|
-
<span class="k">end</span></pre></div>
|
57
|
-
</td>
|
58
|
-
</tr>
|
59
|
-
<tr id='section-3'>
|
60
|
-
<td class=docs>
|
61
|
-
<div class="pilwrap">
|
62
|
-
<a class="pilcrow" href="#section-3">¶</a>
|
63
|
-
</div>
|
64
|
-
<p><strong>Checks if vagrant user exists.</strong> <br />
|
65
|
-
If it does, we’re running in the context of a VirtualBox VM, provisioned
|
66
|
-
through Vagrant.</p>
|
67
|
-
</td>
|
68
|
-
<td class=code>
|
69
|
-
<div class='highlight'><pre> <span class="k">def</span> <span class="nf">vagrant?</span>
|
70
|
-
<span class="vi">@vagrant</span> <span class="o">||=</span> <span class="sb">`id vagrant 2>&1`</span><span class="o">.</span><span class="n">index</span> <span class="s1">'uid'</span>
|
71
|
-
<span class="k">end</span></pre></div>
|
72
|
-
</td>
|
73
|
-
</tr>
|
74
|
-
<tr id='section-4'>
|
75
|
-
<td class=docs>
|
76
|
-
<div class="pilwrap">
|
77
|
-
<a class="pilcrow" href="#section-4">¶</a>
|
78
|
-
</div>
|
79
|
-
<p><strong>Get this instance’s ID.</strong> <br />
|
80
|
-
If within 1s it gets a response which starts with ‘i-’, it’s safe to
|
81
|
-
assume that we’re running within the context of an EC2 instance.</p>
|
82
|
-
</td>
|
83
|
-
<td class=code>
|
84
|
-
<div class='highlight'><pre> <span class="k">def</span> <span class="nf">ec2?</span>
|
85
|
-
<span class="vi">@ec2</span> <span class="o">||=</span> <span class="sb">`curl --connect-timeout 1 http://169.254.169.254/2011-01-01/meta-data/instance-id 2>&1`</span><span class="o">.</span><span class="n">include?</span><span class="p">(</span><span class="s1">'i-'</span><span class="p">)</span>
|
86
|
-
<span class="k">end</span></pre></div>
|
87
|
-
</td>
|
88
|
-
</tr>
|
89
|
-
<tr id='section-5'>
|
90
|
-
<td class=docs>
|
91
|
-
<div class="pilwrap">
|
92
|
-
<a class="pilcrow" href="#section-5">¶</a>
|
93
|
-
</div>
|
94
|
-
<p><strong>Generate base64 password using SecureRandom.</strong> <br />
|
95
|
-
Trims the ending ==.</p>
|
96
|
-
|
97
|
-
</td>
|
98
|
-
<td class=code>
|
99
|
-
<div class='highlight'><pre> <span class="k">def</span> <span class="nf">password</span><span class="p">(</span><span class="n">length</span><span class="o">=</span><span class="mi">20</span><span class="p">)</span>
|
100
|
-
<span class="no">SecureRandom</span><span class="o">.</span><span class="n">base64</span><span class="p">(</span><span class="n">length</span><span class="o">+</span><span class="mi">2</span><span class="p">)</span><span class="o">.</span><span class="n">tr</span><span class="p">(</span><span class="s1">'='</span><span class="p">,</span> <span class="s1">''</span><span class="p">)</span>
|
101
|
-
<span class="k">end</span>
|
102
|
-
<span class="k">end</span>
|
103
|
-
<span class="k">end</span></pre></div>
|
104
|
-
</td>
|
105
|
-
</tr>
|
106
|
-
</table>
|
107
|
-
</div>
|
108
|
-
</body>
|
File without changes
|
@@ -1,68 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
<meta http-equiv="content-type" content="text/html;charset=utf-8">
|
5
|
-
<title>ip.rb</title>
|
6
|
-
<link rel="stylesheet" href="http://jashkenas.github.com/docco/resources/docco.css">
|
7
|
-
</head>
|
8
|
-
<body>
|
9
|
-
<div id='container'>
|
10
|
-
<div id="background"></div>
|
11
|
-
<div id="jump_to">
|
12
|
-
Jump To …
|
13
|
-
<div id="jump_wrapper">
|
14
|
-
<div id="jump_page">
|
15
|
-
<a class="source" href="../chef-extensions.html">chef-extensions.rb</a>
|
16
|
-
<a class="source" href="ec2.html">ec2.rb</a>
|
17
|
-
<a class="source" href="ip.html">ip.rb</a>
|
18
|
-
<a class="source" href="version.html">version.rb</a>
|
19
|
-
</div>
|
20
|
-
</div>
|
21
|
-
</div>
|
22
|
-
<table cellspacing=0 cellpadding=0>
|
23
|
-
<thead>
|
24
|
-
<tr>
|
25
|
-
<th class=docs><h1>ip.rb</h1></th>
|
26
|
-
<th class=code></th>
|
27
|
-
</tr>
|
28
|
-
</thead>
|
29
|
-
<tbody>
|
30
|
-
<tr id='section-1'>
|
31
|
-
<td class=docs>
|
32
|
-
<div class="pilwrap">
|
33
|
-
<a class="pilcrow" href="#section-1">¶</a>
|
34
|
-
</div>
|
35
|
-
|
36
|
-
|
37
|
-
</td>
|
38
|
-
<td class=code>
|
39
|
-
<div class='highlight'><pre><span class="nb">require</span> <span class="s1">'socket'</span>
|
40
|
-
|
41
|
-
<span class="k">class</span> <span class="nc">Chef</span>
|
42
|
-
<span class="k">module</span> <span class="nn">Extensions</span>
|
43
|
-
<span class="k">module</span> <span class="nn">IP</span>
|
44
|
-
<span class="kp">extend</span> <span class="nb">self</span>
|
45
|
-
|
46
|
-
<span class="k">def</span> <span class="nf">all</span>
|
47
|
-
<span class="vi">@all</span> <span class="o">||=</span> <span class="no">Socket</span><span class="o">.</span><span class="n">ip_address_list</span>
|
48
|
-
<span class="k">end</span>
|
49
|
-
|
50
|
-
<span class="k">def</span> <span class="nf">ipv4</span>
|
51
|
-
<span class="n">all</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="o">&</span><span class="ss">:ipv4?</span><span class="p">)</span>
|
52
|
-
<span class="k">end</span>
|
53
|
-
|
54
|
-
<span class="k">def</span> <span class="nf">ipv6</span>
|
55
|
-
<span class="n">all</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="o">&</span><span class="ss">:ipv6?</span><span class="p">)</span>
|
56
|
-
<span class="k">end</span>
|
57
|
-
|
58
|
-
<span class="k">def</span> <span class="nf">addresses</span><span class="p">(</span><span class="nb">type</span><span class="p">)</span>
|
59
|
-
<span class="nb">self</span><span class="o">.</span><span class="n">send</span><span class="p">(</span><span class="nb">type</span><span class="p">)</span><span class="o">.</span><span class="n">map</span><span class="p">(</span><span class="o">&</span><span class="ss">:ip_address</span><span class="p">)</span>
|
60
|
-
<span class="k">end</span>
|
61
|
-
<span class="k">end</span>
|
62
|
-
<span class="k">end</span>
|
63
|
-
<span class="k">end</span></pre></div>
|
64
|
-
</td>
|
65
|
-
</tr>
|
66
|
-
</table>
|
67
|
-
</div>
|
68
|
-
</body>
|
@@ -1,56 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
<meta http-equiv="content-type" content="text/html;charset=utf-8">
|
5
|
-
<title>version.rb</title>
|
6
|
-
<link rel="stylesheet" href="http://jashkenas.github.com/docco/resources/docco.css">
|
7
|
-
</head>
|
8
|
-
<body>
|
9
|
-
<div id='container'>
|
10
|
-
<div id="background"></div>
|
11
|
-
<div id="jump_to">
|
12
|
-
Jump To …
|
13
|
-
<div id="jump_wrapper">
|
14
|
-
<div id="jump_page">
|
15
|
-
<a class="source" href="../chef-extensions.html">chef-extensions.rb</a>
|
16
|
-
<a class="source" href="version.html">version.rb</a>
|
17
|
-
</div>
|
18
|
-
</div>
|
19
|
-
</div>
|
20
|
-
<table cellspacing=0 cellpadding=0>
|
21
|
-
<thead>
|
22
|
-
<tr>
|
23
|
-
<th class=docs><h1>version.rb</h1></th>
|
24
|
-
<th class=code></th>
|
25
|
-
</tr>
|
26
|
-
</thead>
|
27
|
-
<tbody>
|
28
|
-
<tr id='section-1'>
|
29
|
-
<td class=docs>
|
30
|
-
<div class="pilwrap">
|
31
|
-
<a class="pilcrow" href="#section-1">¶</a>
|
32
|
-
</div>
|
33
|
-
|
34
|
-
</td>
|
35
|
-
<td class=code>
|
36
|
-
<div class='highlight'><pre><span class="k">module</span> <span class="nn">Chef</span>
|
37
|
-
<span class="k">module</span> <span class="nn">Extensions</span></pre></div>
|
38
|
-
</td>
|
39
|
-
</tr>
|
40
|
-
<tr id='section-2'>
|
41
|
-
<td class=docs>
|
42
|
-
<div class="pilwrap">
|
43
|
-
<a class="pilcrow" href="#section-2">¶</a>
|
44
|
-
</div>
|
45
|
-
<p>Gem version</p>
|
46
|
-
|
47
|
-
</td>
|
48
|
-
<td class=code>
|
49
|
-
<div class='highlight'><pre> <span class="no">VERSION</span> <span class="o">=</span> <span class="s2">"0.1.0"</span>
|
50
|
-
<span class="k">end</span>
|
51
|
-
<span class="k">end</span></pre></div>
|
52
|
-
</td>
|
53
|
-
</tr>
|
54
|
-
</table>
|
55
|
-
</div>
|
56
|
-
</body>
|