veronic 0.0.7 → 0.0.8

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/lib/config/config.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module Veronic
2
2
  class Config
3
- attr_accessor :dnsprovider, :cloudprovider, :configprovider, :dnsprovider_access_key_id, :dnsprovider_secret_access_key, :cloudprovider_access_key_id, :cloudprovider_secret_access_key, :cloudprovider_images_owner_id, :dnsprovider_zones, :region, :availability_zone, :aws_ssh_key_id, :node_name, :client_key, :validation_client_name, :validation_key, :chef_server_url, :ssl_version, :identity_file, :branch, :environment, :ssh_user, :ssh_port, :role, :flavor, :security_groups, :deploy_cmd, :name, :image
3
+ attr_accessor :dnsprovider, :cloudprovider, :configprovider, :dnsprovider_access_key_id, :dnsprovider_secret_access_key, :cloudprovider_access_key_id, :cloudprovider_secret_access_key, :cloudprovider_images_owner_id, :dnsprovider_zones, :region, :availability_zone, :aws_ssh_key_id, :node_name, :client_key, :validation_client_name, :validation_key, :chef_server_url, :ssl_version, :identity_file, :branch, :environment, :ssh_user, :ssh_port, :role, :flavor, :security_groups, :deploy_cmd, :name, :image, :zone_name, :zone_url
4
4
 
5
5
  def initialize(options={})
6
6
  config_file = File.exists?('/etc/veronic/veronic.yml') ? '/etc/veronic/veronic.yml' : '../../' + File.dirname($0) + '/veronic.yml'
@@ -13,7 +13,7 @@ class Chef
13
13
  end
14
14
  if url.scheme == HTTPS
15
15
  @http_client.use_ssl = true
16
- if config[:ssl_version].to_sym == :SSLv3
16
+ if config[:ssl_version] == :SSLv3
17
17
  @http_client.ssl_version = :SSLv3
18
18
  end
19
19
  if config[:ssl_verify_mode] == :verify_none
@@ -13,7 +13,8 @@ class DnsProvider
13
13
  DNSPROVIDERS[@config[:dnsprovider]].new(@config)
14
14
  end
15
15
 
16
- def zone(zone_name, zone_url)
17
- @dnsprovider.zone(zone_name, zone_url)
16
+ def zone
17
+ @dnsprovider.zone
18
18
  end
19
+
19
20
  end
@@ -10,6 +10,7 @@ module Provider
10
10
 
11
11
  def stop
12
12
  print "Stopping instance #{@name}..."
13
+ @i = 0
13
14
  @instance.stop if @instance.status == :running
14
15
  while @instance.status != :stopped && @i < 40
15
16
  print "." ; sleep 3 ; @i += 1 || 1
@@ -19,6 +20,7 @@ module Provider
19
20
 
20
21
  def start
21
22
  print "Starting instance #{@name}..."
23
+ @i = 0
22
24
  @instance.start if @instance.status == :stopped && @i < 40
23
25
  while @instance.status != :running
24
26
  print "." ; sleep 3 ; @i += 1 || 1
@@ -8,22 +8,19 @@ module Provider
8
8
  def initialize(config)
9
9
  @access_key_id = config[:dnsprovider_access_key_id]
10
10
  @secret_access_key = config[:dnsprovider_secret_access_key]
11
- @zone_name = config[:dnsprovider_zone_name]
12
- @zone_url = config[:dnsprovider_zone_url]
11
+ @zone_name = config[:zone_name]
12
+ @zone_url = config[:zone_url]
13
13
  @r53 = r53
14
+ @zone = zone
14
15
  end
15
16
 
16
17
  def r53
17
18
  Route53::Connection.new(@access_key_id, @secret_access_key)
18
19
  end
19
20
 
20
- def zone(zone_name, zone_url)
21
- begin
22
- Provider::R53::Zone.new(@r53, zone_name, zone_url)
23
- rescue
24
- puts 'Bad DNS settings'
25
- end
21
+ def zone
22
+ Route53::Zone.new(@zone_name, @zone_url, @r53)
26
23
  end
27
-
24
+
28
25
  end
29
26
  end
@@ -1,5 +1,5 @@
1
- module Provider
2
- class R53::Zone
1
+ module Route53
2
+ class Zone
3
3
  class Record
4
4
 
5
5
  def initialize(zone, name, values=[], type, ttl)
@@ -36,14 +36,19 @@ module Provider
36
36
  if self.exist?
37
37
  record = self.get
38
38
  new_record = Route53::DNSRecord.new(record.name, record.type, record.ttl, record.values, @zone)
39
- action = "update"
40
39
  record.update(@name, @type, @ttl, @values, @zone)
41
40
  else
42
41
  record = Route53::DNSRecord.new(@name, @type, @ttl, @values, @zone)
43
- action = "create"
44
42
  record.create
45
43
  end
46
44
  end
45
+
46
+ def delete
47
+ if self.exist?
48
+ record = Route53::DNSRecord.new(@name, @type, @ttl, @values, @zone)
49
+ record.delete
50
+ end
51
+ end
47
52
 
48
53
  end
49
54
  end
@@ -1,26 +1,13 @@
1
- module Provider
2
- class R53
3
- class Zone
1
+ module Route53
2
+ class Zone
4
3
 
5
- def initialize(r53, zone_name, zone_url)
6
- @zone_name = zone_name
7
- @zone_url = zone_url
8
- @r53 = r53
9
- @zone = zone
10
- end
11
-
12
- def record
13
- Provider::R53::Zone::Record
14
- end
15
-
16
- def records
17
- @zone.get_records
18
- end
19
-
20
- def zone
21
- Route53::Zone.new(@zone_name, @zone_url, @r53)
22
- end
4
+ def record(name, values=[], type, ttl)
5
+ Route53::Zone::Record.new(self, name, values, type, ttl)
6
+ end
23
7
 
8
+ def records
9
+ self.get_records
24
10
  end
11
+
25
12
  end
26
13
  end
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 'pp'
5
6
 
6
7
  module Veronic
7
8
  class Deployer
@@ -70,11 +71,20 @@ module Veronic
70
71
  end
71
72
 
72
73
  def destroy
74
+ config_hash[:dnsprovider_zones].each do |z|
75
+ @config.zone_name = z['zone_name']
76
+ @config.zone_url = z['zone_url']
77
+ dns = "#{config_hash[:name]}.#{z['zone_name']}"
78
+ puts "Setting DNS #{dns} ..."
79
+ record = dnsprovider.zone.record(dns, [cloudprovider.instance.public_ip_address], "A", "10").delete
80
+ puts "DNS #{dns} deleted"
81
+ end
73
82
  if cloudprovider.instance.exist?
74
83
  configprovider.instance.destroy([cloudprovider.instance.id])
75
84
  else
76
85
  configprovider.instance.destroy([])
77
86
  end
87
+
78
88
  end
79
89
 
80
90
  def deploy
@@ -92,13 +102,12 @@ module Veronic
92
102
 
93
103
  def update_instance_dns
94
104
  config_hash[:dnsprovider_zones].each do |z|
95
- zone_name = z['zone_name']
96
- zone_url = z['zone_url']
97
- dns = "*.#{config_hash[:name]}.#{zone_name}"
98
- puts "Setting DNS #{dns} ..."
99
- zone = dnsprovider.zone(zone_name, zone_url)
100
- record = zone.record.new(zone, dns, [cloudprovider.instance.public_ip_address], "A", "10")
101
- puts "DNS #{dns} updated"
105
+ @config.zone_name = z['zone_name']
106
+ @config.zone_url = z['zone_url']
107
+ dns = "#{config_hash[:name]}.#{z['zone_name']}"
108
+ puts "Setting DNS #{dns} ..."
109
+ record = dnsprovider.zone.record(dns, [cloudprovider.instance.public_ip_address], "A", "10").wait_set
110
+ puts "DNS #{dns} updated"
102
111
  end
103
112
  end
104
113
 
@@ -118,10 +127,10 @@ module Veronic
118
127
  def bootstrap
119
128
  @config.image = cloudprovider.image.id
120
129
  if cloudprovider.instance.status == :running
121
- return false
130
+ configprovider.instance.bootstrap
122
131
  elsif cloudprovider.instance.status == :stopped
123
132
  start
124
- return false
133
+ configprovider.instance.bootstrap
125
134
  elsif cloudprovider.instance.exist? == false
126
135
  configprovider.instance.bootstrap
127
136
  configprovider.instance.set_role
data/veronic.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'veronic'
3
- s.version = '0.0.7'
3
+ s.version = '0.0.8'
4
4
  s.date = '2013-04-05'
5
5
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
6
6
  s.summary = "Veronic, deux qui la tiennent trois qui la niquent"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: veronic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: