veronic 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
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: