rs-api-tools 0.0.1
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/bin/.DS_Store +0 -0
- data/bin/rs-clone-deployment +58 -0
- data/bin/rs-clone-rightscript +79 -0
- data/bin/rs-clone-server +2 -0
- data/bin/rs-describe-alerts +42 -0
- data/bin/rs-describe-attached-vols +83 -0
- data/bin/rs-describe-deployment +85 -0
- data/bin/rs-describe-deployments +42 -0
- data/bin/rs-describe-ec2-ebs-snapshots +41 -0
- data/bin/rs-describe-ec2-ebs-volumes +42 -0
- data/bin/rs-describe-ec2-security-groups +42 -0
- data/bin/rs-describe-keys +42 -0
- data/bin/rs-describe-multi-cloud-images +42 -0
- data/bin/rs-describe-rightscript +81 -0
- data/bin/rs-describe-rightscripts +42 -0
- data/bin/rs-describe-server +97 -0
- data/bin/rs-describe-server-array +80 -0
- data/bin/rs-describe-server-arrays +42 -0
- data/bin/rs-describe-server-self +67 -0
- data/bin/rs-describe-server-templates +42 -0
- data/bin/rs-describe-servers +42 -0
- data/bin/rs-fetch-rightscripts +126 -0
- data/bin/rs-get-array-instances +64 -0
- data/bin/rs-get-server-input +2 -0
- data/bin/rs-get-server-monitoring +64 -0
- data/bin/rs-get-server-sketchy-data +42 -0
- data/bin/rs-launch-deployment +2 -0
- data/bin/rs-launch-server +2 -0
- data/bin/rs-ping-active-servers +44 -0
- data/bin/rs-reboot-deployment +2 -0
- data/bin/rs-reboot-server +75 -0
- data/bin/rs-relaunch-deployment +2 -0
- data/bin/rs-relaunch-server +74 -0
- data/bin/rs-run-all-boot-executables +94 -0
- data/bin/rs-run-rightscript +98 -0
- data/bin/rs-search-tags +69 -0
- data/bin/rs-start-deployment +2 -0
- data/bin/rs-start-server +75 -0
- data/bin/rs-stop-deployment +2 -0
- data/bin/rs-stop-server +2 -0
- data/bin/rs-terminate-all +2 -0
- data/bin/rs-terminate-deployment +2 -0
- data/bin/rs-terminate-self +70 -0
- data/bin/rs-terminate-server +90 -0
- data/bin/rs-update-input +71 -0
- data/bin/rs-update-inputs +71 -0
- data/bin/rs-update-server-array +63 -0
- metadata +194 -0
data/bin/rs-start-server
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
# rs-start-server
|
4
|
+
|
5
|
+
require 'rubygems'
|
6
|
+
require 'getoptlong'
|
7
|
+
|
8
|
+
def usage
|
9
|
+
puts("usage: rs-start-server [--name <server_nickname> | --id <server_id>]")
|
10
|
+
puts(" [[--verbose]]")
|
11
|
+
end
|
12
|
+
|
13
|
+
def usage_exit
|
14
|
+
usage; exit
|
15
|
+
end
|
16
|
+
|
17
|
+
def help
|
18
|
+
usage
|
19
|
+
puts ''
|
20
|
+
puts 'Reboots a RightScale server.'
|
21
|
+
puts ''
|
22
|
+
puts "examples: rs-reboot-server --name 'Sandbox'"
|
23
|
+
puts ''
|
24
|
+
exit
|
25
|
+
end
|
26
|
+
|
27
|
+
opts = GetoptLong.new(
|
28
|
+
[ '--name', '-n', GetoptLong::OPTIONAL_ARGUMENT ],
|
29
|
+
[ '--id', '-i', GetoptLong::OPTIONAL_ARGUMENT ],
|
30
|
+
[ '--help', '-h', GetoptLong::OPTIONAL_ARGUMENT ],
|
31
|
+
[ '--verbose', '-v', GetoptLong::OPTIONAL_ARGUMENT ]
|
32
|
+
)
|
33
|
+
|
34
|
+
server_name = false
|
35
|
+
server_id = false
|
36
|
+
show_help = false
|
37
|
+
verbose = false
|
38
|
+
|
39
|
+
opts.each do |opt, arg|
|
40
|
+
case opt
|
41
|
+
when '--name'
|
42
|
+
server_name = arg
|
43
|
+
when '--id'
|
44
|
+
server_id = arg
|
45
|
+
when '--help'
|
46
|
+
show_help = true
|
47
|
+
when '--verbose'
|
48
|
+
verbose = true
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
help if show_help
|
53
|
+
|
54
|
+
require 'json'
|
55
|
+
require 'rest_connection'
|
56
|
+
|
57
|
+
usage_exit if !(server_name || server_id)
|
58
|
+
|
59
|
+
# get server
|
60
|
+
if server_name
|
61
|
+
puts "Finding server: '%#{server_name}%'"
|
62
|
+
server = Server.find(:first) { |s| s.nickname =~ /#{server_name}/ }
|
63
|
+
puts "Found server, '#{server.nickname}'."
|
64
|
+
puts server.to_yaml if verbose
|
65
|
+
elsif server_id
|
66
|
+
server = Server.find(server_id.to_i)
|
67
|
+
else
|
68
|
+
usage_exit
|
69
|
+
end
|
70
|
+
|
71
|
+
# reboot server
|
72
|
+
server.reboot()
|
73
|
+
#puts "Running RightScript, '#{right_script.name}' on server, '#{server.nickname}'."
|
74
|
+
#state = server.run_executable(right_script)
|
75
|
+
#state.wait_for_completed
|
data/bin/rs-stop-server
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
# rs-terminate-self
|
4
|
+
|
5
|
+
require 'rubygems'
|
6
|
+
require 'getoptlong'
|
7
|
+
require 'json'
|
8
|
+
require 'rest_connection'
|
9
|
+
|
10
|
+
def usage
|
11
|
+
puts("usage: rs-terminate-self [[--array]] [[--verbose]]")
|
12
|
+
end
|
13
|
+
|
14
|
+
def usage_exit
|
15
|
+
usage; exit
|
16
|
+
end
|
17
|
+
|
18
|
+
def help
|
19
|
+
usage
|
20
|
+
puts ''
|
21
|
+
puts 'Terminates self via RightScale API.'
|
22
|
+
puts ''
|
23
|
+
puts "examples: rs-terminate-self"
|
24
|
+
puts ''
|
25
|
+
exit
|
26
|
+
end
|
27
|
+
|
28
|
+
opts = GetoptLong.new(
|
29
|
+
[ '--settings', '-s', GetoptLong::OPTIONAL_ARGUMENT ],
|
30
|
+
[ '--xml', '-x', GetoptLong::OPTIONAL_ARGUMENT ],
|
31
|
+
[ '--json', '-j', GetoptLong::OPTIONAL_ARGUMENT ]
|
32
|
+
)
|
33
|
+
|
34
|
+
settings = false
|
35
|
+
json = false
|
36
|
+
xml = false
|
37
|
+
verbose = false
|
38
|
+
|
39
|
+
opts.each do |opt, arg|
|
40
|
+
case opt
|
41
|
+
when '--settings'
|
42
|
+
settings = ".settings"
|
43
|
+
when '--verbose'
|
44
|
+
verbose = true
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
instance_id = File.read('/var/spool/cloud/meta-data/instance-id')
|
49
|
+
|
50
|
+
# server-side filtering
|
51
|
+
if settings
|
52
|
+
server = Server.find_with_filter('aws_id' => "#{instance_id}")[0].settings
|
53
|
+
else
|
54
|
+
server = Server.find_with_filter('aws_id' => "#{instance_id}")[0]
|
55
|
+
end
|
56
|
+
|
57
|
+
# client-side filtering=expensive and lengthy on accounts with many servers
|
58
|
+
#server = Server.find(:all) {|server| server.settings['aws-id'] == "#{instance_id}"}
|
59
|
+
|
60
|
+
if server
|
61
|
+
puts "Found server, '#{server['nickname']}'."
|
62
|
+
server.terminate
|
63
|
+
else
|
64
|
+
array_instance = Server.find_with_filter('aws_id' => "#{instance_id}")[0]
|
65
|
+
end
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
Tag.search('Ec2Instance', "server:private_ip_0=10.128.74.253")
|
70
|
+
|
@@ -0,0 +1,90 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
# rs-terminate-server
|
4
|
+
|
5
|
+
require 'getoptlong'
|
6
|
+
|
7
|
+
def usage
|
8
|
+
puts("usage: rs-terminate-server [--name <server_nickname> | --id <server_id>]")
|
9
|
+
puts(" [[--verbose]]")
|
10
|
+
end
|
11
|
+
|
12
|
+
def usage_exit
|
13
|
+
usage; exit
|
14
|
+
end
|
15
|
+
|
16
|
+
def help
|
17
|
+
usage
|
18
|
+
puts ''
|
19
|
+
puts 'Terminates a RightScale server.'
|
20
|
+
puts ''
|
21
|
+
puts "examples: rs-terminate-server --name 'Sandbox'"
|
22
|
+
puts ''
|
23
|
+
exit
|
24
|
+
end
|
25
|
+
|
26
|
+
opts = GetoptLong.new(
|
27
|
+
[ '--name', '-n', GetoptLong::OPTIONAL_ARGUMENT ],
|
28
|
+
[ '--id', '-i', GetoptLong::OPTIONAL_ARGUMENT ],
|
29
|
+
[ '--help', '-h', GetoptLong::OPTIONAL_ARGUMENT ],
|
30
|
+
[ '--verbose', '-v', GetoptLong::OPTIONAL_ARGUMENT ],
|
31
|
+
[ '--decomm', '-d', GetoptLong::OPTIONAL_ARGUMENT ]
|
32
|
+
)
|
33
|
+
|
34
|
+
server_name = false
|
35
|
+
decommission = false
|
36
|
+
term_self = false
|
37
|
+
server_id = false
|
38
|
+
show_help = false
|
39
|
+
verbose = false
|
40
|
+
|
41
|
+
opts.each do |opt, arg|
|
42
|
+
case opt
|
43
|
+
when '--name'
|
44
|
+
server_name = arg
|
45
|
+
when '--decomm'
|
46
|
+
decommission = arg
|
47
|
+
when '--id'
|
48
|
+
server_id = arg
|
49
|
+
when '--help'
|
50
|
+
show_help = true
|
51
|
+
when '--verbose'
|
52
|
+
verbose = true
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
help if show_help
|
57
|
+
|
58
|
+
usage_exit if !(server_name || server_id || decommission)
|
59
|
+
|
60
|
+
require 'rubygems'
|
61
|
+
|
62
|
+
# get server
|
63
|
+
if server_name || server_id
|
64
|
+
require 'json'
|
65
|
+
require 'rest_connection'
|
66
|
+
if server_name
|
67
|
+
puts "Finding server: '%#{server_name}%'"
|
68
|
+
server = Server.find(:first) { |s| s.nickname =~ /#{server_name}/ }
|
69
|
+
puts "Found server, '#{server.nickname}'."
|
70
|
+
puts server.to_yaml if verbose
|
71
|
+
elsif server_id
|
72
|
+
server = Server.find(server_id.to_i)
|
73
|
+
end
|
74
|
+
# terminate server
|
75
|
+
puts "Terminating server, '#{server.nickname}'."
|
76
|
+
server.stop()
|
77
|
+
exit
|
78
|
+
end
|
79
|
+
|
80
|
+
if decommission
|
81
|
+
if File.exist?("/etc/init.d/rightlink")
|
82
|
+
puts 'Decommissioning self.'
|
83
|
+
system('sleep 3; service rightlink decommission && shutdown -h now &')
|
84
|
+
#puts `shutdown -h now`
|
85
|
+
else
|
86
|
+
puts 'RightLink init.d script does not exist, exiting.'
|
87
|
+
exit
|
88
|
+
end
|
89
|
+
exit
|
90
|
+
end
|
data/bin/rs-update-input
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
# rs-set-input
|
4
|
+
|
5
|
+
require 'rubygems'
|
6
|
+
require 'getoptlong'
|
7
|
+
require 'json'
|
8
|
+
require 'rest_connection'
|
9
|
+
|
10
|
+
def usage
|
11
|
+
puts("rs-set-input [[--current]] [--server --id <server_id> | --deployment --id <deployment_id>] <input_name> <input_value>")
|
12
|
+
puts 'e.g. rs-set-input --server'
|
13
|
+
exit
|
14
|
+
end
|
15
|
+
|
16
|
+
opts = GetoptLong.new(
|
17
|
+
[ '--current', '-c', GetoptLong::OPTIONAL_ARGUMENT ],
|
18
|
+
[ '--server', '-s', GetoptLong::OPTIONAL_ARGUMENT ],
|
19
|
+
[ '--deployment', '-d', GetoptLong::OPTIONAL_ARGUMENT ],
|
20
|
+
[ '--id', '-i', GetoptLong::OPTIONAL_ARGUMENT ],
|
21
|
+
[ '--name', '-n', GetoptLong::REQUIRED_ARGUMENT ],
|
22
|
+
[ '--value', '-V', GetoptLong::REQUIRED_ARGUMENT ],
|
23
|
+
[ '--verbose', '-v', GetoptLong::OPTIONAL_ARGUMENT ]
|
24
|
+
)
|
25
|
+
|
26
|
+
server = false
|
27
|
+
name = false
|
28
|
+
current = false
|
29
|
+
deployment = false
|
30
|
+
id = false
|
31
|
+
show_help = false
|
32
|
+
input_name = false
|
33
|
+
input_value = false
|
34
|
+
verbose = false
|
35
|
+
|
36
|
+
opts.each do |opt, arg|
|
37
|
+
case opt
|
38
|
+
when '--current'
|
39
|
+
current = true
|
40
|
+
when '--server'
|
41
|
+
server = true
|
42
|
+
when '--deployment'
|
43
|
+
deployment = true
|
44
|
+
when '--id'
|
45
|
+
id = arg
|
46
|
+
when '--name'
|
47
|
+
name = arg
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
usage if !(server || deployment)
|
52
|
+
usage if !(id || name || ARGV[0] || ARGV[1])
|
53
|
+
|
54
|
+
input_name = ARGV[0] if ARGV[0]
|
55
|
+
input_value = ARGV[1] if ARGV[1]
|
56
|
+
|
57
|
+
# get server
|
58
|
+
if server
|
59
|
+
if name
|
60
|
+
puts "Finding server: '%#{name}%'"
|
61
|
+
server = Server.find(:first) { |s| s.nickname =~ /#{name}/ }
|
62
|
+
puts "Found server, '#{server.nickname}'."
|
63
|
+
puts server.to_yaml if verbose
|
64
|
+
elsif id
|
65
|
+
server = Server.find(server_id.to_i)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
# update input
|
70
|
+
server.reload_current() if current
|
71
|
+
server.set_input(input_name, input_value)
|
@@ -0,0 +1,71 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
# rs-set-input
|
4
|
+
|
5
|
+
require 'rubygems'
|
6
|
+
require 'getoptlong'
|
7
|
+
require 'json'
|
8
|
+
require 'rest_connection'
|
9
|
+
|
10
|
+
def usage
|
11
|
+
puts("rs-set-input [[--current]] [--server --id <server_id> | --deployment --id <deployment_id>] <input_name> <input_value>")
|
12
|
+
puts 'e.g. rs-set-input --server'
|
13
|
+
exit
|
14
|
+
end
|
15
|
+
|
16
|
+
opts = GetoptLong.new(
|
17
|
+
[ '--current', '-c', GetoptLong::OPTIONAL_ARGUMENT ],
|
18
|
+
[ '--server', '-s', GetoptLong::OPTIONAL_ARGUMENT ],
|
19
|
+
[ '--deployment', '-d', GetoptLong::OPTIONAL_ARGUMENT ],
|
20
|
+
[ '--id', '-i', GetoptLong::OPTIONAL_ARGUMENT ],
|
21
|
+
[ '--name', '-n', GetoptLong::REQUIRED_ARGUMENT ],
|
22
|
+
[ '--value', '-V', GetoptLong::REQUIRED_ARGUMENT ],
|
23
|
+
[ '--verbose', '-v', GetoptLong::OPTIONAL_ARGUMENT ]
|
24
|
+
)
|
25
|
+
|
26
|
+
server = false
|
27
|
+
name = false
|
28
|
+
current = false
|
29
|
+
deployment = false
|
30
|
+
id = false
|
31
|
+
show_help = false
|
32
|
+
input_name = false
|
33
|
+
input_value = false
|
34
|
+
verbose = false
|
35
|
+
|
36
|
+
opts.each do |opt, arg|
|
37
|
+
case opt
|
38
|
+
when '--current'
|
39
|
+
current = true
|
40
|
+
when '--server'
|
41
|
+
server = true
|
42
|
+
when '--deployment'
|
43
|
+
deployment = true
|
44
|
+
when '--id'
|
45
|
+
id = arg
|
46
|
+
when '--name'
|
47
|
+
name = arg
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
usage if !(server || deployment)
|
52
|
+
usage if !(id || name || ARGV[0] || ARGV[1])
|
53
|
+
|
54
|
+
input_name = ARGV[0] if ARGV[0]
|
55
|
+
input_value = ARGV[1] if ARGV[1]
|
56
|
+
|
57
|
+
# get server
|
58
|
+
if server
|
59
|
+
if name
|
60
|
+
puts "Finding server: '%#{name}%'"
|
61
|
+
server = Server.find(:first) { |s| s.nickname =~ /#{name}/ }
|
62
|
+
puts "Found server, '#{server.nickname}'."
|
63
|
+
puts server.to_yaml if verbose
|
64
|
+
elsif id
|
65
|
+
server = Server.find(server_id.to_i)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
# update input
|
70
|
+
server.reload_current() if current
|
71
|
+
server.set_input(input_name, input_value)
|
@@ -0,0 +1,63 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
# rs-update-server-array
|
4
|
+
|
5
|
+
require 'rubygems'
|
6
|
+
require 'getoptlong'
|
7
|
+
require 'json'
|
8
|
+
require 'rest_connection'
|
9
|
+
|
10
|
+
def usage
|
11
|
+
puts("rs-update-server-array [--id <server_array_id> | --nickname <server_array_nickname>] [ OPTIONS ]")
|
12
|
+
puts("e.g. rs-update-server-array --nickname 'PHP App Server Array' --elasticity max_count=1,min_count=1,resize_up_by=1,resize_down_by=1,resize_calm_time=10,decision_threshold=51")
|
13
|
+
exit
|
14
|
+
end
|
15
|
+
|
16
|
+
opts = GetoptLong.new(
|
17
|
+
[ '--id', '-i', GetoptLong::OPTIONAL_ARGUMENT ],
|
18
|
+
[ '--nickname', '-n', GetoptLong::REQUIRED_ARGUMENT ],
|
19
|
+
[ '--verbose', '-v', GetoptLong::OPTIONAL_ARGUMENT ],
|
20
|
+
[ '--elasticity', '-e', GetoptLong::OPTIONAL_ARGUMENT ]
|
21
|
+
)
|
22
|
+
|
23
|
+
nickname = false
|
24
|
+
id = false
|
25
|
+
elasticity = false
|
26
|
+
show_help = false
|
27
|
+
verbose = false
|
28
|
+
|
29
|
+
opts.each do |opt, arg|
|
30
|
+
case opt
|
31
|
+
when '--nickname'
|
32
|
+
nickname = arg
|
33
|
+
when '--id'
|
34
|
+
id = arg
|
35
|
+
when '--elasticity'
|
36
|
+
elasticity = arg
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
usage if !(nickname || id)
|
41
|
+
|
42
|
+
# get server array
|
43
|
+
if nickname
|
44
|
+
puts "Finding server array: '%#{nickname}%'"
|
45
|
+
server_array = Ec2ServerArray.find(:first) { |s| s.nickname =~ /#{nickname}/ }
|
46
|
+
puts server.to_yaml if verbose
|
47
|
+
elsif id
|
48
|
+
server = Server.find(server_id.to_i)
|
49
|
+
end
|
50
|
+
puts "Found server array, '#{server_array.nickname}'."
|
51
|
+
|
52
|
+
if elasticity
|
53
|
+
elasticity_params = Array.new
|
54
|
+
elasticity.split(",").each do |pair|
|
55
|
+
elasticity_params.push(pair.split('='))
|
56
|
+
end
|
57
|
+
elasticity_params.each do |k,v|
|
58
|
+
server_array.elasticity[k] = v
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
puts 'Saving to API.'
|
63
|
+
server_array.save
|