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
|