veronic 0.0.23 → 0.0.24
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 +15 -0
- data/lib/config/config.rb +3 -1
- data/lib/providers/chefserver/client.rb +7 -3
- data/lib/veronic.rb +17 -10
- data/veronic.gemspec +1 -1
- metadata +4 -17
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
OTQxNzQ2MmVkYTYzMjQyZGRmMzJiZjM4Y2QyMjRmNjU4ZTJjYWViYQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZTNkMWQ5ZWY0NmZhMmNiMTMyMmI5NTc4MGI2NzU4MjQzMjRhZWUxMw==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NmQ4MTY1ZDlkYjY5NjdjN2QxMDhlY2RjYzk2OWMyNjA1MzBkN2E0MTBmNDQ4
|
10
|
+
ZWVjZjA0NTI5ZTAxMTk2MTlmNGJlYmI1NjdmOGE1NmVhM2VhNTJiZTk2MzI5
|
11
|
+
MGUyMjFiMGNkZGUxMmRhYTUyOGE3NjU3MTlkMzVkZjEyYmMxYjE=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
NzUwZDcyZDAwOTIxNGRlNjc1YjcyNmMwNDU1MmMzZjdlYmE1YTVjMWI1NWJi
|
14
|
+
NjA5YjJmYjM0M2RlNWY4NjUzNjk1OTdkNGRlYTQwMGM2NmY4MmE2MDc4ZjY5
|
15
|
+
ODkzMmNjNWM2ZGE1NmZmNDkwMTg1NDk3NmUwMzQyZjNiNmRmM2Q=
|
data/lib/config/config.rb
CHANGED
@@ -4,7 +4,9 @@ module Veronic
|
|
4
4
|
|
5
5
|
def initialize(options={})
|
6
6
|
config_file = File.exists?('/etc/veronic/veronic.yml') ? '/etc/veronic/veronic.yml' : File.exists?('./veronic.yml') ? './veronic.yml' : nil
|
7
|
-
|
7
|
+
if config_file || File.exists?(options[:config_file])
|
8
|
+
config_from_file = YAML.load_file(options[:config_file] || config_file)
|
9
|
+
end
|
8
10
|
|
9
11
|
@dnsprovider = options[:dnsprovider] || config_from_file['dnsprovider'] || :route53
|
10
12
|
@cloudprovider = options[:cloudprovider] || config_from_file['cloudprovider'] || :ec2
|
@@ -7,11 +7,15 @@ module Provider
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def destroy(name=nil)
|
10
|
-
puts "Destroying client #{@name} ..."
|
11
|
-
|
10
|
+
puts "Destroying client #{@name} from chef-server ..."
|
12
11
|
knife = Chef::Knife.new()
|
13
12
|
knife.config[:yes] = true
|
14
|
-
|
13
|
+
if self.exists?
|
14
|
+
knife.delete_object(Chef::ApiClient, @name)
|
15
|
+
puts "Client #{@name} destroy from chef-server"
|
16
|
+
else
|
17
|
+
puts "Unabled to find client #{@name}"
|
18
|
+
end
|
15
19
|
end
|
16
20
|
|
17
21
|
def exists?
|
data/lib/veronic.rb
CHANGED
@@ -2,6 +2,7 @@ require_relative 'config/config'
|
|
2
2
|
require_relative 'providers/cloudprovider'
|
3
3
|
require_relative 'providers/dnsprovider'
|
4
4
|
require_relative 'providers/configprovider'
|
5
|
+
require 'logger'
|
5
6
|
require 'pp'
|
6
7
|
|
7
8
|
module Veronic
|
@@ -9,6 +10,12 @@ module Veronic
|
|
9
10
|
|
10
11
|
def initialize(options={})
|
11
12
|
@config = config(options)
|
13
|
+
@logger = logger
|
14
|
+
end
|
15
|
+
|
16
|
+
def logger
|
17
|
+
$stderr.sync = true
|
18
|
+
Logger.new($stderr)
|
12
19
|
end
|
13
20
|
|
14
21
|
def config
|
@@ -75,9 +82,9 @@ module Veronic
|
|
75
82
|
@config.zone_name = z['zone_name']
|
76
83
|
@config.zone_url = z['zone_url']
|
77
84
|
dns = "#{@config.name}.#{z['zone_name']}"
|
78
|
-
|
85
|
+
@logger.info "Setting DNS #{dns} ..."
|
79
86
|
record = dnsprovider.zone.record(dns, [], "A", "1").delete
|
80
|
-
|
87
|
+
@logger.info "DNS #{dns} deleted"
|
81
88
|
end
|
82
89
|
if cloudprovider.instance.exists?
|
83
90
|
configprovider.instance.destroy([cloudprovider.instance.id])
|
@@ -112,12 +119,12 @@ module Veronic
|
|
112
119
|
@config.zone_name = z['zone_name']
|
113
120
|
@config.zone_url = z['zone_url']
|
114
121
|
dns = "#{@config.name}.#{z['zone_name']}"
|
115
|
-
|
122
|
+
@logger.info "Setting DNS #{dns} ..."
|
116
123
|
record = dnsprovider.zone.record(dns, [cloudprovider.instance.dns_name], "CNAME", "1").wait_set
|
117
|
-
|
124
|
+
@logger.info "DNS #{dns} updated"
|
118
125
|
end
|
119
126
|
else
|
120
|
-
|
127
|
+
@logger.info "Unabled to update DNS"
|
121
128
|
end
|
122
129
|
end
|
123
130
|
|
@@ -146,7 +153,7 @@ module Veronic
|
|
146
153
|
def bootstrap
|
147
154
|
status = false
|
148
155
|
if cloudprovider.instance.status == :running
|
149
|
-
|
156
|
+
@logger.info "#{@config.name} is running"
|
150
157
|
elsif cloudprovider.instance.status == :stopped
|
151
158
|
start
|
152
159
|
elsif cloudprovider.instance.exists? == false
|
@@ -179,7 +186,7 @@ module Veronic
|
|
179
186
|
configprovider.instance.client.destroy
|
180
187
|
end
|
181
188
|
else
|
182
|
-
|
189
|
+
@logger.info 'Unable to set_node arguments --role or --environment is missing'
|
183
190
|
end
|
184
191
|
end
|
185
192
|
|
@@ -192,7 +199,7 @@ module Veronic
|
|
192
199
|
end
|
193
200
|
|
194
201
|
def get_availability_zone
|
195
|
-
|
202
|
+
@logger.info "Getting availability zone ..."
|
196
203
|
environments = {}
|
197
204
|
if @config.availability_zone.nil? || @config.availability_zone == 'auto'
|
198
205
|
cloudprovider.regions.each do |region|
|
@@ -211,9 +218,9 @@ module Veronic
|
|
211
218
|
end
|
212
219
|
if environments[@config.environment] && environments[@config.environment][@config.role] && environments[@config.environment][@config.role][@config.region]
|
213
220
|
availability_zones = environments[@config.environment][@config.role][@config.region].sort_by { |availability_zone| availability_zone[1].count }
|
214
|
-
|
221
|
+
@logger.info "Zones: " + availability_zones.to_s
|
215
222
|
availability_zone = availability_zones.first
|
216
|
-
|
223
|
+
@logger.info "Zone selected: " + availability_zone[0]
|
217
224
|
availability_zone[0]
|
218
225
|
end
|
219
226
|
end
|
data/veronic.gemspec
CHANGED
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: veronic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.24
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Gabriel Klein
|
@@ -14,7 +13,6 @@ dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: chef
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ! '>='
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ! '>='
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: knife-ec2
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ! '>='
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ! '>='
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,7 +41,6 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: aws-sdk
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ! '>='
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ! '>='
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,7 +55,6 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: route53
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ! '>='
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - ! '>='
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -78,7 +69,6 @@ dependencies:
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: excon
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - ~>
|
84
74
|
- !ruby/object:Gem::Version
|
@@ -86,7 +76,6 @@ dependencies:
|
|
86
76
|
type: :runtime
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - ~>
|
92
81
|
- !ruby/object:Gem::Version
|
@@ -122,27 +111,25 @@ files:
|
|
122
111
|
- veronic.yml
|
123
112
|
homepage: http://github.com/GabKlein/veronic
|
124
113
|
licenses: []
|
114
|
+
metadata: {}
|
125
115
|
post_install_message:
|
126
116
|
rdoc_options: []
|
127
117
|
require_paths:
|
128
118
|
- lib
|
129
119
|
required_ruby_version: !ruby/object:Gem::Requirement
|
130
|
-
none: false
|
131
120
|
requirements:
|
132
121
|
- - ! '>='
|
133
122
|
- !ruby/object:Gem::Version
|
134
123
|
version: '0'
|
135
124
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
136
|
-
none: false
|
137
125
|
requirements:
|
138
126
|
- - ! '>='
|
139
127
|
- !ruby/object:Gem::Version
|
140
128
|
version: '0'
|
141
129
|
requirements: []
|
142
130
|
rubyforge_project:
|
143
|
-
rubygems_version:
|
131
|
+
rubygems_version: 2.0.5
|
144
132
|
signing_key:
|
145
|
-
specification_version:
|
133
|
+
specification_version: 4
|
146
134
|
summary: Veronic, a simple cloud deployer
|
147
135
|
test_files: []
|
148
|
-
has_rdoc:
|