rs-api-tools 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cfae714af03bbcdfa290bdb5dfc7d3af343d8736
4
- data.tar.gz: 7290d1502fc9607ea9ab032a07479103914abded
3
+ metadata.gz: 2c854b79a460b0c432cd8bbfb7e260fd630ecafa
4
+ data.tar.gz: db3e2c9037c24a6f96452324690b50c5c27c60a4
5
5
  SHA512:
6
- metadata.gz: 72184085d21684da450422f293b1b62fa82dd74ef3c953de2974dae16ab4506ea010994894f9d886dd293f14d26b97d22bf53335542798b73ad2774d0fb4ba45
7
- data.tar.gz: be3e1b0f8132d427b2eed565aad340129b3d3b8ce6f86876cc85d68f9dfc6a27eaa6b5509c1d62db82ffb6b85c97f04efc01c2ca51ea7b81a38bd1c97718dc49
6
+ metadata.gz: d6004ac7c3848bf1ca5b75f3889588d98a1a3b5a0f1edaf99285f29a38532297a31aa469f3174e6d9a105efffcfbd1f282d7b34187753765fb06c3dd98ef6d9f
7
+ data.tar.gz: 62fb5384c226a47b2041e40182dca7fb5c06e8db61072d18f8ebd61f08200e97fd1d4a0e174639b7e888f7b99ad1a7ebbb298237417ea8770e9a36e6f619318a
@@ -0,0 +1,105 @@
1
+ #!/usr/bin/ruby
2
+
3
+ $:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
4
+
5
+ def usage
6
+ puts "usage: rs-create-alerts [--resource <resource_type>] [--id <resource_id>] [--metadata <metadata_source>] [[--help]]"
7
+ puts ''
8
+ puts "Where --resource can be of value ServerTemplate, Server, ServerArray, or Instance; and --id is the ID of that resource type."
9
+ puts "See rs-create-alerts --help for more information on usage."
10
+ end
11
+
12
+ def usage_exit
13
+ usage; exit
14
+ end
15
+
16
+ def help_info
17
+ puts("#{$0}")
18
+ puts ''
19
+ puts "Creates multiple alerts (alert specifications) on a RightScale resource."
20
+ puts ''
21
+ puts "examples: rs-create-alerts --resource ServerTemplate --id 323981001 --metadata my_alerts.yaml"
22
+ puts " rs-create-alerts --resource ServerTemplate --id 324506003 --metadata https://raw.github.com/rightscale-meta/alerts/master/rightscale_default_alerts.yaml"
23
+ puts " rs-create-alerts --resource ServerArray --id 225572003 --metadata https://raw.github.com/rightscale-meta/alerts/master/rightscale_default_alerts.yaml"
24
+ puts ''
25
+ end
26
+
27
+ require 'rubygems'
28
+ require 'getoptlong'
29
+
30
+ resource_type = false
31
+ resource_id = false
32
+ metadata_source = false
33
+ verbose = false
34
+ dry = false
35
+ debug = false
36
+ help = false
37
+
38
+ opts = GetoptLong.new(
39
+ [ '--resource', '-r', GetoptLong::REQUIRED_ARGUMENT ],
40
+ [ '--id', '-i', GetoptLong::REQUIRED_ARGUMENT ],
41
+ [ '--metadata', '-m', GetoptLong::REQUIRED_ARGUMENT ],
42
+ [ '--verbose', '-v', GetoptLong::OPTIONAL_ARGUMENT ],
43
+ [ '--debug', '-D', GetoptLong::OPTIONAL_ARGUMENT ],
44
+ [ '--dry', GetoptLong::OPTIONAL_ARGUMENT ],
45
+ [ '--help', '-h', GetoptLong::NO_ARGUMENT ]
46
+ )
47
+
48
+ opts.each do |opt, arg|
49
+ case opt
50
+ when '--id'
51
+ resource_id = arg
52
+ when '--resource'
53
+ resource_type = arg
54
+ when '--metadata'
55
+ metadata_source = arg
56
+ when '--help'
57
+ help = true
58
+ when '--verbose'
59
+ verbose = true
60
+ when '--debug'
61
+ debug = true
62
+ when '--dry'
63
+ dry = true
64
+ end
65
+ end
66
+
67
+ if help
68
+ help_info
69
+ exit
70
+ end
71
+
72
+ usage_exit if !(metadata_source && resource_type && resource_id)
73
+
74
+ alert_spec = Hash.new
75
+ alert_spec['escalation_name'] = 'warning'
76
+ alert_spec['subject_href'] = 'ServerTemplate'
77
+
78
+ case resource_type
79
+ when 'ServerTemplate'
80
+ alert_spec['subject_href'] = "/api/server_templates/#{resource_id}"
81
+ when 'Server'
82
+ alert_spec['subject_href'] = "/api/servers/#{resource_id}"
83
+ when 'ServerArray'
84
+ alert_spec['subject_href'] = "/api/server_arrays/#{resource_id}"
85
+ when 'Instance'
86
+ alert_spec['subject_href'] = "/api/instances/#{resource_id}"
87
+ end
88
+
89
+ puts "metadata source: #{metadata_source}" if debug
90
+
91
+ require 'rightscale_metadata'
92
+ alerts = RightScaleMetadata.new(metadata_source).metadata['alerts']
93
+
94
+ require 'yaml'
95
+ require 'right_api_client'
96
+ rightscale = RightApi::Client.new(YAML.load_file(File.join(ENV['HOME'], '.rightscale', 'right_api_client.yml')))
97
+
98
+ alerts.each { |alert|
99
+ alert_spec.merge!(alert)
100
+ alert_spec['variable'] = alert['value']
101
+ alert_spec['description'] = alert_spec['name'] unless alert_spec['description'] # ui allows blank desc!
102
+ puts "alert_spec: #{alert_spec}" if (verbose||debug)
103
+ alert = rightscale.alert_specs.create({ :alert_spec => alert_spec })
104
+ puts "Created alert, #{alert.href}."
105
+ }
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rs-api-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Fordham
@@ -134,6 +134,7 @@ executables:
134
134
  - rs-describe-server
135
135
  - rs-create-alert-spec
136
136
  - rs-clone-rightscript
137
+ - rs-create-alerts
137
138
  - rs-relaunch-server
138
139
  - rs-update-input
139
140
  - rs-lock-server
@@ -213,6 +214,7 @@ files:
213
214
  - bin/rs-describe-server
214
215
  - bin/rs-create-alert-spec
215
216
  - bin/rs-clone-rightscript
217
+ - bin/rs-create-alerts
216
218
  - bin/rs-relaunch-server
217
219
  - bin/rs-update-input
218
220
  - bin/rs-lock-server