corl 0.4.10 → 0.4.11

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.10
1
+ 0.4.11
@@ -7,8 +7,11 @@ echo "$HOSTNAME" > "/etc/hostname" || exit 1
7
7
  sed -ri 's/127\.0\.1\.1.*//' /etc/hosts
8
8
  echo "127.0.1.1 $HOSTNAME" >> /etc/hosts || exit 2
9
9
 
10
+ # Set OpenDNS as our DNS lookup source
11
+ echo "nameserver 208.67.222.222" | tee /etc/resolvconf/resolv.conf.d/base > /dev/null || exit 3
12
+
10
13
  # Update system packages
11
- apt-get update || exit 3
14
+ apt-get update || exit 4
12
15
 
13
16
  # Install basic build packages.
14
- apt-get -y install build-essential || exit 4
17
+ apt-get -y install build-essential curl || exit 5
data/corl.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "corl"
8
- s.version = "0.4.10"
8
+ s.version = "0.4.11"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Adrian Webb"]
12
- s.date = "2014-03-22"
12
+ s.date = "2014-03-23"
13
13
  s.description = "Framework that provides a simple foundation for growing organically in the cloud"
14
14
  s.email = "adrian.webb@coralnexus.com"
15
15
  s.executables = ["corl"]
@@ -77,6 +77,7 @@ Gem::Specification.new do |s|
77
77
  "lib/core/mixin/lookup.rb",
78
78
  "lib/core/mixin/macro/network_settings.rb",
79
79
  "lib/core/mod/fog_aws_server.rb",
80
+ "lib/core/mod/fog_rackspace_server.rb",
80
81
  "lib/core/mod/hiera_backend.rb",
81
82
  "lib/core/plugin/action.rb",
82
83
  "lib/core/plugin/configuration.rb",
@@ -145,7 +145,15 @@ class File < CORL.plugin_class(:configuration)
145
145
  if config.get(:nodes, false)
146
146
  config[:nodes].each do |provider, data|
147
147
  data.each do |name, info|
148
- file_data.set([ ::File.join('nodes', provider.to_s, "#{name}.#{default_provider}"), :nodes, provider, name ], info)
148
+ config_name = ::File.join('nodes', provider.to_s, "#{name}.#{default_provider}")
149
+ file_data.set([ config_name, :nodes, provider, name ], info)
150
+
151
+ unless search[config_name]
152
+ search[config_name] = {
153
+ :provider => default_provider,
154
+ :file => ::File.join(project.directory, config_name)
155
+ }
156
+ end
149
157
  end
150
158
  end
151
159
  end
@@ -8,6 +8,11 @@ class Rackspace < Fog
8
8
 
9
9
  #-----------------------------------------------------------------------------
10
10
  # Property accessors / modifiers
11
+
12
+ def set_connection
13
+ super
14
+ Kernel.load File.join(File.dirname(__FILE__), '..', '..', 'core', 'mod', 'fog_rackspace_server.rb')
15
+ end
11
16
 
12
17
  #-----------------------------------------------------------------------------
13
18
  # Management
@@ -44,7 +44,13 @@ module NetworkSettings
44
44
 
45
45
  define_method :[]= do |name, value|
46
46
  set_setting(name, value)
47
- end
47
+ end
48
+
49
+ #---
50
+
51
+ define_method :groups do
52
+ array(myself[:settings])
53
+ end
48
54
  end
49
55
  end
50
56
  end
@@ -0,0 +1,28 @@
1
+ module Fog
2
+ module Compute
3
+ class RackspaceV2
4
+ class Server
5
+
6
+ def setup(credentials = {})
7
+ requires :ssh_ip_address, :identity, :public_key, :username
8
+
9
+ commands = [
10
+ %{mkdir .ssh},
11
+ %{echo "#{public_key}" >> ~/.ssh/authorized_keys},
12
+ password_lock,
13
+ %{echo "#{Fog::JSON.encode(attributes)}" >> ~/attributes.json},
14
+ %{echo "#{Fog::JSON.encode(metadata)}" >> ~/metadata.json}
15
+ ]
16
+ commands.compact
17
+
18
+ @password = nil if password_lock
19
+
20
+ Fog::SSH.new(ssh_ip_address, username, credentials).run(commands)
21
+ rescue Errno::ECONNREFUSED, Net::SSH::Disconnect
22
+ sleep(1)
23
+ retry
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -76,51 +76,9 @@ class Node < CORL.plugin_class(:base)
76
76
  #-----------------------------------------------------------------------------
77
77
  # Property accessors / modifiers
78
78
 
79
- def network
80
- return plugin_parent
81
- end
82
-
83
- def network=network
84
- myself.plugin_parent = network
85
- end
86
-
87
- #---
88
-
89
- def setting(property, default = nil, format = false)
90
- return network.node_setting(plugin_provider, plugin_name, property, default, format)
91
- end
92
-
93
- def search(property, default = nil, format = false)
94
- return network.search_node(plugin_provider, plugin_name, property, default, format)
95
- end
96
-
97
- def set_setting(property, value = nil)
98
- network.set_node_setting(plugin_provider, plugin_name, property, value)
99
- end
100
-
101
- def delete_setting(property)
102
- network.delete_node_setting(plugin_provider, plugin_name, property)
103
- end
79
+ network_settings :node
104
80
 
105
81
  #---
106
-
107
- def [](name, default = nil, format = false)
108
- search(name, default, format)
109
- end
110
-
111
- #---
112
-
113
- def []=(name, value)
114
- set_setting(name, value)
115
- end
116
-
117
- #-----------------------------------------------------------------------------
118
-
119
- def groups
120
- array(myself[:settings])
121
- end
122
-
123
- #-----------------------------------------------------------------------------
124
82
 
125
83
  def machine
126
84
  @machine
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: corl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.10
4
+ version: 0.4.11
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-03-22 00:00:00.000000000 Z
12
+ date: 2014-03-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nucleon
16
- requirement: &13666440 !ruby/object:Gem::Requirement
16
+ requirement: &16320620 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0.1'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *13666440
24
+ version_requirements: *16320620
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: fog
27
- requirement: &13707100 !ruby/object:Gem::Requirement
27
+ requirement: &16319740 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '1.20'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *13707100
35
+ version_requirements: *16319740
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: unf
38
- requirement: &13704400 !ruby/object:Gem::Requirement
38
+ requirement: &16319040 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0.1'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *13704400
46
+ version_requirements: *16319040
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: facter
49
- requirement: &13703160 !ruby/object:Gem::Requirement
49
+ requirement: &16877680 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '1.7'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *13703160
57
+ version_requirements: *16877680
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: hiera
60
- requirement: &13702140 !ruby/object:Gem::Requirement
60
+ requirement: &16877000 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '1.3'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *13702140
68
+ version_requirements: *16877000
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: puppet
71
- requirement: &13710280 !ruby/object:Gem::Requirement
71
+ requirement: &16876060 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '3.2'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *13710280
79
+ version_requirements: *16876060
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: bundler
82
- requirement: &13737660 !ruby/object:Gem::Requirement
82
+ requirement: &16874680 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ~>
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '1.2'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *13737660
90
+ version_requirements: *16874680
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: jeweler
93
- requirement: &13793700 !ruby/object:Gem::Requirement
93
+ requirement: &16873360 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ~>
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '2.0'
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *13793700
101
+ version_requirements: *16873360
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: rspec
104
- requirement: &13820340 !ruby/object:Gem::Requirement
104
+ requirement: &16871920 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ~>
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '2.10'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *13820340
112
+ version_requirements: *16871920
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: rdoc
115
- requirement: &13818660 !ruby/object:Gem::Requirement
115
+ requirement: &16514780 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ~>
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: '3.12'
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *13818660
123
+ version_requirements: *16514780
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: yard
126
- requirement: &13815660 !ruby/object:Gem::Requirement
126
+ requirement: &16514040 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ~>
@@ -131,7 +131,7 @@ dependencies:
131
131
  version: '0.8'
132
132
  type: :development
133
133
  prerelease: false
134
- version_requirements: *13815660
134
+ version_requirements: *16514040
135
135
  description: Framework that provides a simple foundation for growing organically in
136
136
  the cloud
137
137
  email: adrian.webb@coralnexus.com
@@ -201,6 +201,7 @@ files:
201
201
  - lib/core/mixin/lookup.rb
202
202
  - lib/core/mixin/macro/network_settings.rb
203
203
  - lib/core/mod/fog_aws_server.rb
204
+ - lib/core/mod/fog_rackspace_server.rb
204
205
  - lib/core/mod/hiera_backend.rb
205
206
  - lib/core/plugin/action.rb
206
207
  - lib/core/plugin/configuration.rb