dyntool 0.0.21 → 0.1.0
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/dyntool.rb +24 -4
- metadata +3 -3
data/lib/dyntool.rb
CHANGED
|
@@ -6,6 +6,7 @@ require 'json'
|
|
|
6
6
|
require 'ipaddr'
|
|
7
7
|
require 'highline/import'
|
|
8
8
|
require 'yaml'
|
|
9
|
+
require 'time'
|
|
9
10
|
### class for loading and retrieving configuration from dyn.yml
|
|
10
11
|
class LoadConfig
|
|
11
12
|
def SetConfFile
|
|
@@ -43,11 +44,20 @@ class LoadConfig
|
|
|
43
44
|
@iplabel = @conf['ips'][ip]['label']
|
|
44
45
|
end
|
|
45
46
|
def GetIpWeight(ip,region)
|
|
46
|
-
@weight = @conf['ips'][ip]['weight']
|
|
47
|
+
@weight = @conf['ips'][ip][region]['weight']
|
|
48
|
+
end
|
|
49
|
+
def GetIpTTL(ip,region)
|
|
50
|
+
@weight = @conf['ips'][ip][region]['ttl']
|
|
47
51
|
end
|
|
48
52
|
def GetContacts
|
|
49
53
|
@contacts = @conf['contacts']
|
|
50
54
|
end
|
|
55
|
+
def GetGraphite
|
|
56
|
+
@graphite_server = @conf['graphite_server']
|
|
57
|
+
end
|
|
58
|
+
def GetNotifyApps
|
|
59
|
+
@apps = @conf['notify_apps']
|
|
60
|
+
end
|
|
51
61
|
end
|
|
52
62
|
## Getting authentication creds from users
|
|
53
63
|
class Utils
|
|
@@ -99,8 +109,9 @@ class Parameters
|
|
|
99
109
|
@sconf.SetConfFile
|
|
100
110
|
@sconf.GetHandler
|
|
101
111
|
end
|
|
102
|
-
def SendEvent(user,suffix)
|
|
112
|
+
def SendEvent(user,suffix,key)
|
|
103
113
|
@data = []
|
|
114
|
+
@notify_apps = []
|
|
104
115
|
@flag = "false"
|
|
105
116
|
@ARGV.each do |arg|
|
|
106
117
|
@data << "#{arg} "
|
|
@@ -116,7 +127,14 @@ class Parameters
|
|
|
116
127
|
end
|
|
117
128
|
if @flag == "false"
|
|
118
129
|
abort("You are not connected to outbrain network / cant send event to logstash, aborting...")
|
|
119
|
-
end
|
|
130
|
+
end
|
|
131
|
+
@graphite_server = @sconf.GetGraphite
|
|
132
|
+
@notify_apps = @sconf.GetNotifyApps
|
|
133
|
+
@notify_apps.each do |app|
|
|
134
|
+
`curl -H "x-api-key:#{key}" -d "deployment[app_name]=#{app}" -d "deployment[description]=External DNS Change" -d "deployment[changelog]=External DNS Change" -d "deployment[user]=#{user}" https://api.newrelic.com/deployments.xml > /dev/null 2>&1`
|
|
135
|
+
end
|
|
136
|
+
@time = Time.now.to_i
|
|
137
|
+
`echo "events.dns.change 1 #{@time}" | nc #{@graphite_server} 2003`
|
|
120
138
|
end
|
|
121
139
|
# Opening Session to dyn using creds from the command line
|
|
122
140
|
def OpenTheSession(customer,user,password)
|
|
@@ -621,11 +639,13 @@ class OperateDyn
|
|
|
621
639
|
@ips.each do |ip|
|
|
622
640
|
@label = @@conf.GetIpLabel(ip)
|
|
623
641
|
@weight = @@conf.GetIpWeight(ip,region)
|
|
642
|
+
@ttl = @@conf.GetIpTTL(ip,region)
|
|
624
643
|
@labels << "#{@label}"
|
|
625
644
|
@weights << "#{@weight}"
|
|
645
|
+
@ttls << "#{@ttl}"
|
|
626
646
|
end
|
|
627
647
|
@labels = @labels.uniq
|
|
628
|
-
@region_hash[@i] = { :name => "#{region}", :label => { :a_label => @labels}, :weight => { :a_weight => @weights }, :serve_count => { :a_serve_count => @ips_len }, :ttl => { :a_ttl =>
|
|
648
|
+
@region_hash[@i] = { :name => "#{region}", :label => { :a_label => @labels}, :weight => { :a_weight => @weights }, :serve_count => { :a_serve_count => @ips_len }, :ttl => { :a_ttl => @ttls }, :countries => @countries, :rdata => @ips_hash }
|
|
629
649
|
end
|
|
630
650
|
@record_data = { :name => "#{service}", :groups => [ @region_hash[1],@region_hash[2],@region_hash[3],@region_hash[4],@region_hash[5],@region_hash[6],@region_hash[7],@region_hash[8],@region_hash[9] ]}
|
|
631
651
|
return(@record_data)
|
metadata
CHANGED
|
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
|
4
4
|
prerelease: false
|
|
5
5
|
segments:
|
|
6
6
|
- 0
|
|
7
|
+
- 1
|
|
7
8
|
- 0
|
|
8
|
-
|
|
9
|
-
version: 0.0.21
|
|
9
|
+
version: 0.1.0
|
|
10
10
|
platform: ruby
|
|
11
11
|
authors:
|
|
12
12
|
- Ariel Moskovich
|
|
@@ -14,7 +14,7 @@ autorequire:
|
|
|
14
14
|
bindir: bin
|
|
15
15
|
cert_chain: []
|
|
16
16
|
|
|
17
|
-
date: 2013-09-
|
|
17
|
+
date: 2013-09-23 00:00:00 +02:00
|
|
18
18
|
default_executable:
|
|
19
19
|
dependencies: []
|
|
20
20
|
|