abiquo-etk 0.5.3 → 0.5.8
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/bin/abiquo-check-install +2 -3
- data/bin/ciab-setup +36 -0
- data/lib/abicli/commands/remote-services-settings.rb +4 -0
- data/lib/abicli/commands/remote-services-settings18.ext +25 -0
- data/lib/abicli/commands/server-settings.rb +4 -0
- data/lib/abicli/commands/server-settings18.ext +25 -0
- data/lib/abicli/commands/set.rb +4 -10
- data/lib/abicli/commands/set18.ext +216 -0
- data/lib/abiquo-etk.rb +2 -2
- data/lib/checks/1.7.6/01detect_abiquo.rb +4 -0
- data/lib/checks/1.7.6/abiquo_service.rb +34 -0
- data/lib/checks/1.7.6/abiquo_version.rb +3 -0
- data/lib/checks/1.7.6/components_installed.rb +6 -0
- data/lib/checks/1.7.6/firewall.rb +10 -0
- data/lib/checks/1.7.6/install_type.rb +4 -0
- data/lib/checks/1.7.6/java.rb +20 -0
- data/lib/checks/1.7.6/mysql.rb +33 -0
- data/lib/checks/1.7.6/nfs.rb +18 -0
- data/lib/checks/1.7.6/os_version.rb +5 -0
- data/lib/checks/1.7.6/virtualbox.rb +11 -0
- data/lib/checks/1.8.0/01detect_abiquo.rb +4 -0
- data/lib/checks/1.8.0/abiquo_service.rb +34 -0
- data/lib/checks/1.8.0/abiquo_version.rb +3 -0
- data/lib/checks/1.8.0/components_installed.rb +6 -0
- data/lib/checks/1.8.0/firewall.rb +10 -0
- data/lib/checks/1.8.0/install_type.rb +4 -0
- data/lib/checks/1.8.0/java.rb +20 -0
- data/lib/checks/1.8.0/mysql.rb +33 -0
- data/lib/checks/1.8.0/nfs.rb +18 -0
- data/lib/checks/1.8.0/os_version.rb +5 -0
- data/lib/checks/1.8.0/virtualbox.rb +11 -0
- metadata +89 -102
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.8
|
data/bin/abiquo-check-install
CHANGED
@@ -5,12 +5,11 @@ require 'abiquo-etk'
|
|
5
5
|
|
6
6
|
begin
|
7
7
|
v = AETK::System.abiquo_version
|
8
|
-
if v !~ /1\.
|
8
|
+
if v !~ /1\.8(\.\d)?/
|
9
9
|
raise Exception.new
|
10
10
|
end
|
11
11
|
rescue Exception => e
|
12
|
-
$stderr.puts 'This version of abicli only supports Abiquo 1.
|
13
|
-
$stderr.puts "DEBUG: #{e.message}"
|
12
|
+
$stderr.puts 'This version of abicli only supports Abiquo 1.8.X'
|
14
13
|
exit 1
|
15
14
|
end
|
16
15
|
|
data/bin/ciab-setup
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'socket'
|
3
|
+
require 'socket'
|
4
|
+
|
5
|
+
#
|
6
|
+
# http://coderrr.wordpress.com/2008/05/28/get-your-local-ip-address/
|
7
|
+
#
|
8
|
+
def local_ip
|
9
|
+
orig, Socket.do_not_reverse_lookup = Socket.do_not_reverse_lookup, true # turn off reverse DNS resolution temporarily
|
10
|
+
UDPSocket.open do |s|
|
11
|
+
s.connect '64.233.187.99', 1
|
12
|
+
s.addr.last
|
13
|
+
end
|
14
|
+
ensure
|
15
|
+
Socket.do_not_reverse_lookup = orig
|
16
|
+
end
|
17
|
+
|
18
|
+
ip = ''
|
19
|
+
begin
|
20
|
+
ip = local_ip
|
21
|
+
rescue Exception => e
|
22
|
+
puts "Could not automatically detect the IP of this host."
|
23
|
+
print "Type the IP address of this host: "
|
24
|
+
ip = $stdin.gets.strip.chomp
|
25
|
+
puts "Using #{ip} as the Cloud in a Box host address"
|
26
|
+
end
|
27
|
+
|
28
|
+
puts "Configuring the Cloud in a Box install..."
|
29
|
+
puts "Setting nfs-repository to: #{ip}:/opt/vm_repository"
|
30
|
+
`abicli set nfs-repository #{ip}:/opt/vm_repository`
|
31
|
+
puts "Setting AIM redis host to: #{ip}"
|
32
|
+
`abicli set aim-redis-host #{ip}`
|
33
|
+
puts "Restarting services..."
|
34
|
+
`service abiquo-tomcat restart > /dev/null 2>&1`
|
35
|
+
`service abiquo-aim restart > /dev/null 2>&1`
|
36
|
+
puts "Done!"
|
@@ -9,6 +9,10 @@ if ARGV[0] == 'remote-services-settings'
|
|
9
9
|
load File.dirname(__FILE__) + "/remote-services-settings17.ext"
|
10
10
|
elsif rel_info =~ /Version: 1\.6/
|
11
11
|
load File.dirname(__FILE__) + "/remote-services-settings16.ext"
|
12
|
+
elsif rel_info =~ /Version: 1\.8/
|
13
|
+
load File.dirname(__FILE__) + "/remote-services-settings18.ext"
|
14
|
+
elsif rel_info =~ /Version: 2\.0/
|
15
|
+
load File.dirname(__FILE__) + "/remote-services-settings18.ext"
|
12
16
|
else
|
13
17
|
$stderr.puts "Abiquo release version not found. Unsupported installation."
|
14
18
|
exit
|
@@ -0,0 +1,25 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'iniparse'
|
3
|
+
|
4
|
+
settings_file = "#{ABIQUO_BASE_DIR}/config/abiquo.properties"
|
5
|
+
|
6
|
+
if File.exist? settings_file
|
7
|
+
|
8
|
+
begin
|
9
|
+
ini = IniParse.parse File.read(settings_file)
|
10
|
+
raise Exception.new('Missing [remote-services] section') if ini['remote-services'].nil?
|
11
|
+
|
12
|
+
puts "\nAbiquo Remote Services Configuration"
|
13
|
+
puts "-------------------------------------\n\n"
|
14
|
+
|
15
|
+
File.read(settings_file).each_line do |l|
|
16
|
+
next if l =~ /\[.*?\]/
|
17
|
+
puts l
|
18
|
+
end
|
19
|
+
rescue Exception => e
|
20
|
+
puts "Invalid properties file. Missing [remote-services] section?"
|
21
|
+
puts "DEBUG: #{e.message}"
|
22
|
+
end
|
23
|
+
else
|
24
|
+
$stderr.puts "abiquo.properties file not found. Cannot retrieve properties."
|
25
|
+
end
|
@@ -9,6 +9,10 @@ if ARGV[0] == 'server-settings'
|
|
9
9
|
load File.dirname(__FILE__) + "/server-settings17.ext"
|
10
10
|
elsif rel_info =~ /Version: 1\.6/
|
11
11
|
load File.dirname(__FILE__) + "/server-settings168.ext"
|
12
|
+
elsif rel_info =~ /Version: 1\.8/
|
13
|
+
load File.dirname(__FILE__) + "/server-settings18.ext"
|
14
|
+
elsif rel_info =~ /Version: 2\.0/
|
15
|
+
load File.dirname(__FILE__) + "/server-settings18.ext"
|
12
16
|
else
|
13
17
|
$stderr.puts "Abiquo release version not found. Unsupported installation."
|
14
18
|
exit
|
@@ -0,0 +1,25 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'iniparse'
|
3
|
+
|
4
|
+
settings_file = "#{ABIQUO_BASE_DIR}/config/abiquo.properties"
|
5
|
+
|
6
|
+
if File.exist? settings_file
|
7
|
+
|
8
|
+
begin
|
9
|
+
ini = IniParse.parse File.read(settings_file)
|
10
|
+
raise Exception.new('Missing [server] section') if ini['server'].nil?
|
11
|
+
|
12
|
+
puts "\nAbiquo Server Configuration"
|
13
|
+
puts "----------------------------\n\n"
|
14
|
+
|
15
|
+
File.read(settings_file).each_line do |l|
|
16
|
+
next if l =~ /\[.*?\]/
|
17
|
+
puts l
|
18
|
+
end
|
19
|
+
rescue Exception => e
|
20
|
+
puts "Invalid properties file. Missing [server] section?"
|
21
|
+
puts "DEBUG: #{e.message}"
|
22
|
+
end
|
23
|
+
else
|
24
|
+
$stderr.puts "abiquo.properties file not found. Cannot retrieve properties."
|
25
|
+
end
|
data/lib/abicli/commands/set.rb
CHANGED
@@ -5,21 +5,15 @@ if ARGV[0] == 'set'
|
|
5
5
|
exit
|
6
6
|
end
|
7
7
|
|
8
|
-
begin
|
9
|
-
v = AETK::System.abiquo_version
|
10
|
-
if v !~ /1\.7\.5/
|
11
|
-
raise Exception.new
|
12
|
-
end
|
13
|
-
rescue Exception
|
14
|
-
$stderr.puts 'This version of abicli only supports Abiquo 1.7.5. Use abiquo-etk <= 0.4.42'
|
15
|
-
exit 1
|
16
|
-
end
|
17
|
-
|
18
8
|
rel_info = File.read('/etc/abiquo-release')
|
19
9
|
if rel_info =~ /Version: 1\.7/
|
20
10
|
load File.dirname(__FILE__) + "/set17.ext"
|
21
11
|
elsif rel_info =~ /Version: 1\.6/
|
22
12
|
load File.dirname(__FILE__) + "/set168.ext"
|
13
|
+
elsif rel_info =~ /Version: 1\.8/
|
14
|
+
load File.dirname(__FILE__) + "/set18.ext"
|
15
|
+
elsif rel_info =~ /Version: 2\.0/
|
16
|
+
load File.dirname(__FILE__) + "/set18.ext"
|
23
17
|
else
|
24
18
|
$stderr.puts "Abiquo release version not found. Unsupported installation."
|
25
19
|
exit
|
@@ -0,0 +1,216 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'iniparse'
|
3
|
+
require 'uri'
|
4
|
+
|
5
|
+
if not File.directory? ABIQUO_BASE_DIR
|
6
|
+
$stderr.puts "\n'abicli set' command is used to configure the Abiquo Platform.\nUnfortunately, I can't find the Abiquo Platform installed in this server.\n\nTry other commands.\n\n"
|
7
|
+
help
|
8
|
+
exit 1
|
9
|
+
end
|
10
|
+
|
11
|
+
def set_database_host(val)
|
12
|
+
url = "jdbc:mysql://#{val}:3306/kinton?autoReconnect=true&useUnicode=true&characterEncoding=UTF8"
|
13
|
+
[TOMCAT_API_BUILTIN_CONFIG, TOMCAT_API_CONFIG].each do |f|
|
14
|
+
if File.exist?(f)
|
15
|
+
config_set_attribute(f, 'Resource[@name="jdbc/abiquoDB"]', 'url', url, true)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
[TOMCAT_SERVER_CONFIG, TOMCAT_SERVER_BUILTIN_CONFIG].each do |f|
|
20
|
+
if File.exist?(f)
|
21
|
+
config_set_attribute(f, 'Resource[@name="jdbc/abiquoDB"]', 'url', url,true)
|
22
|
+
config_set_attribute(f, 'Resource[@name="jdbc/heartbeatDB"]', 'url', url, true)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
set_property('server', 'abiquo.database.host', val)
|
26
|
+
end
|
27
|
+
|
28
|
+
def set_database_user(val)
|
29
|
+
[TOMCAT_API_BUILTIN_CONFIG, TOMCAT_API_CONFIG].each do |f|
|
30
|
+
if File.exist?(f)
|
31
|
+
config_set_attribute(f, 'Resource[@name="jdbc/abiquoDB"]', 'username', val, true)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
[TOMCAT_SERVER_CONFIG, TOMCAT_SERVER_BUILTIN_CONFIG].each do |f|
|
35
|
+
if File.exist?(f)
|
36
|
+
config_set_attribute(f, 'Resource[@name="jdbc/abiquoDB"]', 'username', val, true)
|
37
|
+
config_set_attribute(f, 'Resource[@name="jdbc/heartbeatDB"]', 'username', val, true)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
set_property('server', 'abiquo.database.user', val)
|
41
|
+
end
|
42
|
+
|
43
|
+
def set_database_password(val)
|
44
|
+
[TOMCAT_API_BUILTIN_CONFIG, TOMCAT_API_CONFIG].each do |f|
|
45
|
+
if File.exist?(f)
|
46
|
+
config_set_attribute(f, 'Resource[@name="jdbc/abiquoDB"]', 'password', val, true)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
[TOMCAT_SERVER_CONFIG, TOMCAT_SERVER_BUILTIN_CONFIG].each do |f|
|
50
|
+
if File.exist?(f)
|
51
|
+
config_set_attribute(f, 'Resource[@name="jdbc/abiquoDB"]', 'password', val, true)
|
52
|
+
config_set_attribute(f, 'Resource[@name="jdbc/heartbeatDB"]', 'password', val, true)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
set_property('server', 'abiquo.database.password', val)
|
56
|
+
end
|
57
|
+
|
58
|
+
def set_nfs_repository(val)
|
59
|
+
begin
|
60
|
+
nfs_url = val
|
61
|
+
if nfs_url !~ /^nfs:\/\//
|
62
|
+
nfs_url = "nfs://#{val}"
|
63
|
+
end
|
64
|
+
uri = URI.parse(nfs_url)
|
65
|
+
host = uri.host
|
66
|
+
path = uri.path
|
67
|
+
raise Exception.new if (path.nil? or host.nil?)
|
68
|
+
rescue
|
69
|
+
$stderr.puts 'ERROR: Invalid NFS/CIFS URI'
|
70
|
+
return
|
71
|
+
end
|
72
|
+
config = IniParse.parse(File.read('/opt/abiquo/config/abiquo.properties'))
|
73
|
+
config.save('/opt/abiquo/config/abiquo.properties.bak')
|
74
|
+
config['remote-services']['abiquo.appliancemanager.repositoryLocation'] = val
|
75
|
+
config['remote-services']['abiquo.virtualfactory.xenserver.repositoryLocation'] = val
|
76
|
+
config['remote-services']['abiquo.virtualfactory.vmware.repositoryLocation'] = val
|
77
|
+
config.save('/opt/abiquo/config/abiquo.properties')
|
78
|
+
end
|
79
|
+
|
80
|
+
def set_cifs_repository(val)
|
81
|
+
begin
|
82
|
+
cifs_url = val
|
83
|
+
if cifs_url !~ /^cifs:/
|
84
|
+
cifs_url = "cifs:#{val}"
|
85
|
+
end
|
86
|
+
uri = URI.parse(cifs_url)
|
87
|
+
host = uri.host
|
88
|
+
path = uri.path
|
89
|
+
raise Exception.new if (path.nil? or host.nil?)
|
90
|
+
rescue
|
91
|
+
$stderr.puts 'ERROR: Invalid NFS/CIFS URI'
|
92
|
+
return
|
93
|
+
end
|
94
|
+
config = IniParse.parse(File.read('/opt/abiquo/config/abiquo.properties'))
|
95
|
+
config.save('/opt/abiquo/config/abiquo.properties.bak')
|
96
|
+
cifs_uri = "//#{host}#{path}"
|
97
|
+
config['remote-services']['abiquo.virtualfactory.hyperv.repositoryLocation'] = cifs_uri
|
98
|
+
config.save('/opt/abiquo/config/abiquo.properties')
|
99
|
+
end
|
100
|
+
|
101
|
+
def set_aim_redis_host(val)
|
102
|
+
if not File.exist? '/etc/abiquo-aim.ini'
|
103
|
+
raise Exception.new('Abiquo AIM config file not available')
|
104
|
+
end
|
105
|
+
config = IniParse.parse(File.read('/etc/abiquo-aim.ini'))
|
106
|
+
config.save('/etc/abiquo-aim.ini.bak')
|
107
|
+
if config['monitor'].nil?
|
108
|
+
raise Exception.new('Invalid Abiquo AIM config file')
|
109
|
+
end
|
110
|
+
config['monitor']['redisHost'] = val
|
111
|
+
config.save('/etc/abiquo-aim.ini')
|
112
|
+
end
|
113
|
+
|
114
|
+
def set_ontap_user(val)
|
115
|
+
config = IniParse.parse(File.read('/opt/abiquo/config/abiquo.properties'))
|
116
|
+
config['remote-services']['abiquo.storagemanager.netapp.user'] = val
|
117
|
+
config.save('/opt/abiquo/config/abiquo.properties')
|
118
|
+
end
|
119
|
+
|
120
|
+
def set_ontap_password(val)
|
121
|
+
config = IniParse.parse(File.read('/opt/abiquo/config/abiquo.properties'))
|
122
|
+
config['remote-services']['abiquo.storagemanager.netapp.password'] = val
|
123
|
+
config.save('/opt/abiquo/config/abiquo.properties')
|
124
|
+
end
|
125
|
+
|
126
|
+
def set_property(section, key, val)
|
127
|
+
config = IniParse.parse(File.read('/opt/abiquo/config/abiquo.properties'))
|
128
|
+
config.save('/opt/abiquo/config/abiquo.properties.bak')
|
129
|
+
config[section][key] = val
|
130
|
+
config.save('/opt/abiquo/config/abiquo.properties')
|
131
|
+
end
|
132
|
+
|
133
|
+
def get_property(section, key)
|
134
|
+
config = IniParse.parse(File.read('/opt/abiquo/config/abiquo.properties'))
|
135
|
+
config[section][key] rescue nil
|
136
|
+
end
|
137
|
+
|
138
|
+
$command_mappings = {
|
139
|
+
'rabbitmq-host' => Proc.new do |val|
|
140
|
+
if get_property('remote-services', 'abiquo.rabbitmq.host')
|
141
|
+
set_property('remote-services', 'abiquo.rabbitmq.host', val)
|
142
|
+
end
|
143
|
+
if get_property('server', 'abiquo.rabbitmq.host')
|
144
|
+
set_property('server', 'abiquo.rabbitmq.host', val)
|
145
|
+
end
|
146
|
+
end,
|
147
|
+
'session-timeout' => ['server', 'sessionTimeout'],
|
148
|
+
'mail-server' => ['server', 'mail/server'],
|
149
|
+
'mail-server-user' => ['server', 'mail/user'],
|
150
|
+
'mail-server-password' => ['server', 'mail/password'],
|
151
|
+
'nfs-repository' => Proc.new { |val| set_nfs_repository(val) },
|
152
|
+
'cifs-repository' => Proc.new do |val|
|
153
|
+
set_cifs_repository val
|
154
|
+
end,
|
155
|
+
'storagelink-address' => Proc.new do |val|
|
156
|
+
if get_property 'remote-services', 'abiquo.virtualfactory.storagelink.address'
|
157
|
+
set_property('remote-services', 'abiquo.virtualfactory.storagelink.address', val)
|
158
|
+
end
|
159
|
+
end,
|
160
|
+
'storagelink-user' => Proc.new do |val|
|
161
|
+
if get_property 'remote-services', 'abiquo.virtualfactory.storagelink.user'
|
162
|
+
set_property('remote-services', 'abiquo.virtualfactory.storagelink.user', val)
|
163
|
+
end
|
164
|
+
end,
|
165
|
+
'storagelink-password' => Proc.new do |val|
|
166
|
+
if get_property 'remote-services', 'abiquo.virtualfactory.storagelink.password'
|
167
|
+
set_property('remote-services', 'abiquo.virtualfactory.storagelink.password', val)
|
168
|
+
end
|
169
|
+
end,
|
170
|
+
'database-host' => Proc.new { |val| set_database_host(val) },
|
171
|
+
'database-user' => Proc.new { |val| set_database_user(val) },
|
172
|
+
'database-password' => Proc.new { |val| set_database_password(val) },
|
173
|
+
'ontap-user' => Proc.new { |val| set_ontap_user(val) },
|
174
|
+
'ontap-password' => Proc.new { |val| set_ontap_password(val) },
|
175
|
+
'aim-redis-host' => Proc.new { |val| set_aim_redis_host(val) }
|
176
|
+
}
|
177
|
+
|
178
|
+
def mapping_exist?(key)
|
179
|
+
$command_mappings.has_key? key
|
180
|
+
end
|
181
|
+
|
182
|
+
def mapping_has_proc?(comp)
|
183
|
+
$command_mappings[comp].is_a? Proc
|
184
|
+
end
|
185
|
+
|
186
|
+
def help
|
187
|
+
puts "\nSet Abiquo Platform properties\n\n"
|
188
|
+
puts "Available subcommands:"
|
189
|
+
$command_mappings.keys.sort.each do |cmd,proc|
|
190
|
+
puts " #{cmd}"
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
194
|
+
|
195
|
+
comp = ARGV[1]
|
196
|
+
path = ARGV[2]
|
197
|
+
val = ARGV[3]
|
198
|
+
file = nil
|
199
|
+
begin
|
200
|
+
if mapping_exist? comp
|
201
|
+
val = path
|
202
|
+
if mapping_has_proc? comp
|
203
|
+
$command_mappings[comp].call(val)
|
204
|
+
else
|
205
|
+
comp, path = $command_mappings[comp]
|
206
|
+
end
|
207
|
+
else
|
208
|
+
help
|
209
|
+
end
|
210
|
+
rescue NoMethodError => e
|
211
|
+
$stderr.puts e.message
|
212
|
+
$stderr.puts e.backtrace
|
213
|
+
$stderr.puts "\nproperty not found in component #{comp.bold}\n\n"
|
214
|
+
rescue Exception => e
|
215
|
+
$stderr.puts e.message
|
216
|
+
end
|
data/lib/abiquo-etk.rb
CHANGED
@@ -170,7 +170,7 @@ module AETK
|
|
170
170
|
class System
|
171
171
|
|
172
172
|
def self.abiquo_version
|
173
|
-
File.read('/etc/abiquo-release').match(/Version:(.*)/)[1].to_s.strip.chomp
|
173
|
+
File.read('/etc/abiquo-release').match(/Version:(.*)/)[1].strip.split(/(-|\s)/)[0].to_s.strip.chomp rescue nil
|
174
174
|
end
|
175
175
|
|
176
176
|
def self.detect_install_type
|
@@ -247,7 +247,7 @@ module AETK
|
|
247
247
|
|
248
248
|
def self.load_plugins(extra_plugins_dir = nil)
|
249
249
|
puts "Loading plugins...".yellow.bold
|
250
|
-
version = System.abiquo_version
|
250
|
+
version = System.abiquo_version
|
251
251
|
plugins = Dir[File.dirname(__FILE__) + "/checks/#{version}/*.rb"].sort
|
252
252
|
if extra_plugins_dir and File.directory? extra_plugins_dir
|
253
253
|
puts "Loading extra plugins...".yellow.bold
|
@@ -0,0 +1,34 @@
|
|
1
|
+
if abiquo_installed?
|
2
|
+
|
3
|
+
def abiquo_tomcat_running?
|
4
|
+
return false if not File.exist?(TOMCAT_PID_FILE)
|
5
|
+
|
6
|
+
pid = File.read(TOMCAT_PID_FILE)
|
7
|
+
if `ps #{pid}`.lines.count > 1
|
8
|
+
return true
|
9
|
+
end
|
10
|
+
false
|
11
|
+
end
|
12
|
+
|
13
|
+
def tomcat_mem_limits
|
14
|
+
return ['unknown','unknown', 'unknown'] if not File.exist?(TOMCAT_PID_FILE)
|
15
|
+
pid = File.read(TOMCAT_PID_FILE)
|
16
|
+
`ps #{pid}` =~ /-XX:MaxPermSize=(.*?)\s/
|
17
|
+
perm_size = $1 || 'unknown'
|
18
|
+
`ps #{pid}` =~ /-Xms(.*?)\s/
|
19
|
+
xms = $1 || 'unknown'
|
20
|
+
`ps #{pid}` =~ /-Xmx(.*?)\s/
|
21
|
+
xmx = $1 || 'unknown'
|
22
|
+
[perm_size, xms, xmx]
|
23
|
+
end
|
24
|
+
|
25
|
+
puts "Abiquo Service:".bold.ljust(40) + (system_service_on?('abiquo-tomcat') ? 'Active'.green.bold : 'Disabled'.red.bold)
|
26
|
+
|
27
|
+
puts "Abiquo Tomcat Status:".bold.ljust(40) + (abiquo_tomcat_running? ? 'Running'.green.bold : "Stopped".red.bold)
|
28
|
+
|
29
|
+
if abiquo_tomcat_running?
|
30
|
+
p = tomcat_mem_limits
|
31
|
+
puts "Tomcat Mem Params:".bold.ljust(40) + "PERM: #{p[0].blue.bold} MIN: #{p[1].blue.bold} MAX: #{p[2].blue.bold}"
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
def fw_rules_defined?
|
4
|
+
not `iptables -nL | grep -iv ^chain | grep -iv ^target | grep -v ^$`.empty?
|
5
|
+
end
|
6
|
+
|
7
|
+
puts "Firewall Service:".bold.ljust(40) + (system_service_on?('iptables') ? 'Active'.yellow.bold : 'Disabled'.green.bold)
|
8
|
+
|
9
|
+
puts "Firewall Rules:".bold.ljust(40) + (fw_rules_defined? ? 'Found'.yellow.bold : "Not Found".green.bold)
|
10
|
+
|
@@ -0,0 +1,20 @@
|
|
1
|
+
if abiquo_installed?
|
2
|
+
|
3
|
+
def java_ok?
|
4
|
+
log = AETK::Log.instance
|
5
|
+
if not File.exist? JAVA_BIN
|
6
|
+
log.error "Java binary not found in #{JAVA_BIN}"
|
7
|
+
return false
|
8
|
+
end
|
9
|
+
|
10
|
+
if `java -version 2>&1 | grep '64-Bit Server'`.empty?
|
11
|
+
log.error "Java 64-Bit runtime not found"
|
12
|
+
return false
|
13
|
+
end
|
14
|
+
|
15
|
+
return true
|
16
|
+
end
|
17
|
+
|
18
|
+
puts "Java:".bold.ljust(40) + (java_ok? ? "64 Bit Runtime".green.bold : "Not Found".red.bold)
|
19
|
+
|
20
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
|
2
|
+
if abiquo_installed?
|
3
|
+
|
4
|
+
def mysqld_running?
|
5
|
+
return true if `service mysqld status`.strip.chomp != 'mysqld is stopped'
|
6
|
+
end
|
7
|
+
|
8
|
+
def mysqld_installed?
|
9
|
+
RPMUtils.rpm_installed?('mysql-server')
|
10
|
+
end
|
11
|
+
|
12
|
+
def abiquo_schema_present?
|
13
|
+
File.directory? '/var/lib/mysql/kinton'
|
14
|
+
end
|
15
|
+
|
16
|
+
def abiquo_schema_premium?
|
17
|
+
File.exist? '/var/lib/mysql/kinton/virtualimage_conversions.frm'
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
puts "MySQL Installed:".bold.ljust(40) + (mysqld_installed? ? 'Yes'.green.bold : 'No')
|
22
|
+
if mysqld_installed?
|
23
|
+
puts "MySQL Running:".bold.ljust(40) + (mysqld_running? ? 'Yes'.green.bold : 'No')
|
24
|
+
end
|
25
|
+
|
26
|
+
if mysqld_installed?
|
27
|
+
puts "Abiquo Schema:".bold.ljust(40) + (abiquo_schema_present? ? 'Present'.green.bold : 'Not Found')
|
28
|
+
if abiquo_schema_present?
|
29
|
+
puts "Abiquo Schema Type:".bold.ljust(40) + (abiquo_schema_premium? ? 'Premium':'Community')
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
|
2
|
+
if abiquo_installed?
|
3
|
+
|
4
|
+
def nfs_server_running?
|
5
|
+
return ((`exportfs`.lines.first.strip.chomp == '/opt/vm_repository') rescue false)
|
6
|
+
end
|
7
|
+
|
8
|
+
if service_installed?('nfs')
|
9
|
+
puts "NFS Server Service:".bold.ljust(40) + (system_service_on?('nfs') ? 'Active'.green.bold : 'Disabled'.yellow.bold)
|
10
|
+
|
11
|
+
if system_service_on? 'nfs'
|
12
|
+
puts "NFS Server Running:".bold.ljust(40) + (nfs_server_running? ? 'Yes'.bold.green : 'Missing exports'.bold.red)
|
13
|
+
end
|
14
|
+
else
|
15
|
+
two_cols('NFS Service:'.bold, 'Not installed')
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
if abiquo_installed?
|
2
|
+
|
3
|
+
def abiquo_tomcat_running?
|
4
|
+
return false if not File.exist?(TOMCAT_PID_FILE)
|
5
|
+
|
6
|
+
pid = File.read(TOMCAT_PID_FILE)
|
7
|
+
if `ps #{pid}`.lines.count > 1
|
8
|
+
return true
|
9
|
+
end
|
10
|
+
false
|
11
|
+
end
|
12
|
+
|
13
|
+
def tomcat_mem_limits
|
14
|
+
return ['unknown','unknown', 'unknown'] if not File.exist?(TOMCAT_PID_FILE)
|
15
|
+
pid = File.read(TOMCAT_PID_FILE)
|
16
|
+
`ps #{pid}` =~ /-XX:MaxPermSize=(.*?)\s/
|
17
|
+
perm_size = $1 || 'unknown'
|
18
|
+
`ps #{pid}` =~ /-Xms(.*?)\s/
|
19
|
+
xms = $1 || 'unknown'
|
20
|
+
`ps #{pid}` =~ /-Xmx(.*?)\s/
|
21
|
+
xmx = $1 || 'unknown'
|
22
|
+
[perm_size, xms, xmx]
|
23
|
+
end
|
24
|
+
|
25
|
+
puts "Abiquo Service:".bold.ljust(40) + (system_service_on?('abiquo-tomcat') ? 'Active'.green.bold : 'Disabled'.red.bold)
|
26
|
+
|
27
|
+
puts "Abiquo Tomcat Status:".bold.ljust(40) + (abiquo_tomcat_running? ? 'Running'.green.bold : "Stopped".red.bold)
|
28
|
+
|
29
|
+
if abiquo_tomcat_running?
|
30
|
+
p = tomcat_mem_limits
|
31
|
+
puts "Tomcat Mem Params:".bold.ljust(40) + "PERM: #{p[0].blue.bold} MIN: #{p[1].blue.bold} MAX: #{p[2].blue.bold}"
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
def fw_rules_defined?
|
4
|
+
not `iptables -nL | grep -iv ^chain | grep -iv ^target | grep -v ^$`.empty?
|
5
|
+
end
|
6
|
+
|
7
|
+
puts "Firewall Service:".bold.ljust(40) + (system_service_on?('iptables') ? 'Active'.yellow.bold : 'Disabled'.green.bold)
|
8
|
+
|
9
|
+
puts "Firewall Rules:".bold.ljust(40) + (fw_rules_defined? ? 'Found'.yellow.bold : "Not Found".green.bold)
|
10
|
+
|
@@ -0,0 +1,20 @@
|
|
1
|
+
if abiquo_installed?
|
2
|
+
|
3
|
+
def java_ok?
|
4
|
+
log = AETK::Log.instance
|
5
|
+
if not File.exist? JAVA_BIN
|
6
|
+
log.error "Java binary not found in #{JAVA_BIN}"
|
7
|
+
return false
|
8
|
+
end
|
9
|
+
|
10
|
+
if `java -version 2>&1 | grep '64-Bit Server'`.empty?
|
11
|
+
log.error "Java 64-Bit runtime not found"
|
12
|
+
return false
|
13
|
+
end
|
14
|
+
|
15
|
+
return true
|
16
|
+
end
|
17
|
+
|
18
|
+
puts "Java:".bold.ljust(40) + (java_ok? ? "64 Bit Runtime".green.bold : "Not Found".red.bold)
|
19
|
+
|
20
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
|
2
|
+
if abiquo_installed?
|
3
|
+
|
4
|
+
def mysqld_running?
|
5
|
+
return true if `service mysqld status`.strip.chomp != 'mysqld is stopped'
|
6
|
+
end
|
7
|
+
|
8
|
+
def mysqld_installed?
|
9
|
+
RPMUtils.rpm_installed?('mysql-server')
|
10
|
+
end
|
11
|
+
|
12
|
+
def abiquo_schema_present?
|
13
|
+
File.directory? '/var/lib/mysql/kinton'
|
14
|
+
end
|
15
|
+
|
16
|
+
def abiquo_schema_premium?
|
17
|
+
File.exist? '/var/lib/mysql/kinton/virtualimage_conversions.frm'
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
puts "MySQL Installed:".bold.ljust(40) + (mysqld_installed? ? 'Yes'.green.bold : 'No')
|
22
|
+
if mysqld_installed?
|
23
|
+
puts "MySQL Running:".bold.ljust(40) + (mysqld_running? ? 'Yes'.green.bold : 'No')
|
24
|
+
end
|
25
|
+
|
26
|
+
if mysqld_installed?
|
27
|
+
puts "Abiquo Schema:".bold.ljust(40) + (abiquo_schema_present? ? 'Present'.green.bold : 'Not Found')
|
28
|
+
if abiquo_schema_present?
|
29
|
+
puts "Abiquo Schema Type:".bold.ljust(40) + (abiquo_schema_premium? ? 'Premium':'Community')
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
|
2
|
+
if abiquo_installed?
|
3
|
+
|
4
|
+
def nfs_server_running?
|
5
|
+
return ((`exportfs`.lines.first.strip.chomp == '/opt/vm_repository') rescue false)
|
6
|
+
end
|
7
|
+
|
8
|
+
if service_installed?('nfs')
|
9
|
+
puts "NFS Server Service:".bold.ljust(40) + (system_service_on?('nfs') ? 'Active'.green.bold : 'Disabled'.yellow.bold)
|
10
|
+
|
11
|
+
if system_service_on? 'nfs'
|
12
|
+
puts "NFS Server Running:".bold.ljust(40) + (nfs_server_running? ? 'Yes'.bold.green : 'Missing exports'.bold.red)
|
13
|
+
end
|
14
|
+
else
|
15
|
+
two_cols('NFS Service:'.bold, 'Not installed')
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
metadata
CHANGED
@@ -1,112 +1,84 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: abiquo-etk
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 5
|
9
|
-
- 3
|
10
|
-
version: 0.5.3
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.5.8
|
5
|
+
prerelease:
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Sergio Rubio
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-02-09 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
22
15
|
name: nokogiri
|
23
|
-
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &17225360 !ruby/object:Gem::Requirement
|
25
17
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
segments:
|
31
|
-
- 1
|
32
|
-
- 3
|
33
|
-
version: "1.3"
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '1.3'
|
34
22
|
type: :runtime
|
35
|
-
version_requirements: *id001
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: rpm-utils
|
38
23
|
prerelease: false
|
39
|
-
|
24
|
+
version_requirements: *17225360
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rpm-utils
|
27
|
+
requirement: &17223840 !ruby/object:Gem::Requirement
|
40
28
|
none: false
|
41
|
-
requirements:
|
42
|
-
- -
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
|
45
|
-
segments:
|
46
|
-
- 0
|
47
|
-
- 1
|
48
|
-
version: "0.1"
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0.1'
|
49
33
|
type: :runtime
|
50
|
-
version_requirements: *id002
|
51
|
-
- !ruby/object:Gem::Dependency
|
52
|
-
name: term-ansicolor
|
53
34
|
prerelease: false
|
54
|
-
|
35
|
+
version_requirements: *17223840
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: term-ansicolor
|
38
|
+
requirement: &17236700 !ruby/object:Gem::Requirement
|
55
39
|
none: false
|
56
|
-
requirements:
|
57
|
-
- -
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
|
60
|
-
segments:
|
61
|
-
- 1
|
62
|
-
- 0
|
63
|
-
version: "1.0"
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '1.0'
|
64
44
|
type: :runtime
|
65
|
-
version_requirements: *id003
|
66
|
-
- !ruby/object:Gem::Dependency
|
67
|
-
name: mixlib-cli
|
68
45
|
prerelease: false
|
69
|
-
|
46
|
+
version_requirements: *17236700
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: mixlib-cli
|
49
|
+
requirement: &17234440 !ruby/object:Gem::Requirement
|
70
50
|
none: false
|
71
|
-
requirements:
|
72
|
-
- -
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
|
75
|
-
segments:
|
76
|
-
- 1
|
77
|
-
- 2
|
78
|
-
version: "1.2"
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.2'
|
79
55
|
type: :runtime
|
80
|
-
version_requirements: *id004
|
81
|
-
- !ruby/object:Gem::Dependency
|
82
|
-
name: iniparse
|
83
56
|
prerelease: false
|
84
|
-
|
57
|
+
version_requirements: *17234440
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: iniparse
|
60
|
+
requirement: &17247160 !ruby/object:Gem::Requirement
|
85
61
|
none: false
|
86
|
-
requirements:
|
87
|
-
- -
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
hash: 27
|
90
|
-
segments:
|
91
|
-
- 1
|
92
|
-
- 1
|
93
|
-
- 4
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
94
65
|
version: 1.1.4
|
95
66
|
type: :runtime
|
96
|
-
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *17247160
|
97
69
|
description: Tools to troubleshoot and manage your Abiquo installation
|
98
70
|
email: srubio@abiquo.com
|
99
|
-
executables:
|
100
|
-
- abiquo-check-install
|
71
|
+
executables:
|
101
72
|
- abicli
|
102
73
|
- abiquo-check-16-install
|
74
|
+
- abiquo-check-install
|
75
|
+
- ciab-setup
|
103
76
|
extensions: []
|
104
|
-
|
105
|
-
extra_rdoc_files:
|
77
|
+
extra_rdoc_files:
|
106
78
|
- LICENSE
|
107
79
|
- README.rdoc
|
108
80
|
- TODO
|
109
|
-
files:
|
81
|
+
files:
|
110
82
|
- .document
|
111
83
|
- LICENSE
|
112
84
|
- README.rdoc
|
@@ -117,16 +89,20 @@ files:
|
|
117
89
|
- bin/abicli
|
118
90
|
- bin/abiquo-check-16-install
|
119
91
|
- bin/abiquo-check-install
|
92
|
+
- bin/ciab-setup
|
120
93
|
- lib/abicli/commands/instant-deploy.rb
|
121
94
|
- lib/abicli/commands/remote-services-settings.rb
|
122
95
|
- lib/abicli/commands/remote-services-settings16.ext
|
123
96
|
- lib/abicli/commands/remote-services-settings17.ext
|
97
|
+
- lib/abicli/commands/remote-services-settings18.ext
|
124
98
|
- lib/abicli/commands/server-settings.rb
|
125
99
|
- lib/abicli/commands/server-settings168.ext
|
126
100
|
- lib/abicli/commands/server-settings17.ext
|
101
|
+
- lib/abicli/commands/server-settings18.ext
|
127
102
|
- lib/abicli/commands/set.rb
|
128
103
|
- lib/abicli/commands/set168.ext
|
129
104
|
- lib/abicli/commands/set17.ext
|
105
|
+
- lib/abicli/commands/set18.ext
|
130
106
|
- lib/abicli/commands/smoketest.rb
|
131
107
|
- lib/abicli/commands/upload-template.rb
|
132
108
|
- lib/abicli/commands/version.rb
|
@@ -142,6 +118,28 @@ files:
|
|
142
118
|
- lib/checks/1.7.5/nfs.rb
|
143
119
|
- lib/checks/1.7.5/os_version.rb
|
144
120
|
- lib/checks/1.7.5/virtualbox.rb
|
121
|
+
- lib/checks/1.7.6/01detect_abiquo.rb
|
122
|
+
- lib/checks/1.7.6/abiquo_service.rb
|
123
|
+
- lib/checks/1.7.6/abiquo_version.rb
|
124
|
+
- lib/checks/1.7.6/components_installed.rb
|
125
|
+
- lib/checks/1.7.6/firewall.rb
|
126
|
+
- lib/checks/1.7.6/install_type.rb
|
127
|
+
- lib/checks/1.7.6/java.rb
|
128
|
+
- lib/checks/1.7.6/mysql.rb
|
129
|
+
- lib/checks/1.7.6/nfs.rb
|
130
|
+
- lib/checks/1.7.6/os_version.rb
|
131
|
+
- lib/checks/1.7.6/virtualbox.rb
|
132
|
+
- lib/checks/1.8.0/01detect_abiquo.rb
|
133
|
+
- lib/checks/1.8.0/abiquo_service.rb
|
134
|
+
- lib/checks/1.8.0/abiquo_version.rb
|
135
|
+
- lib/checks/1.8.0/components_installed.rb
|
136
|
+
- lib/checks/1.8.0/firewall.rb
|
137
|
+
- lib/checks/1.8.0/install_type.rb
|
138
|
+
- lib/checks/1.8.0/java.rb
|
139
|
+
- lib/checks/1.8.0/mysql.rb
|
140
|
+
- lib/checks/1.8.0/nfs.rb
|
141
|
+
- lib/checks/1.8.0/os_version.rb
|
142
|
+
- lib/checks/1.8.0/virtualbox.rb
|
145
143
|
- lib/upgrades/17-nuclear-launch
|
146
144
|
- scripts/setup_rs
|
147
145
|
- scripts/setup_v2v
|
@@ -639,39 +637,28 @@ files:
|
|
639
637
|
- vendor/resourceful-1.0.1/spec/simple_sinatra_server_spec.rb
|
640
638
|
- vendor/resourceful-1.0.1/spec/spec.opts
|
641
639
|
- vendor/resourceful-1.0.1/spec/spec_helper.rb
|
642
|
-
has_rdoc: true
|
643
640
|
homepage: http://github.com/abiquo/abiquo-etk
|
644
641
|
licenses: []
|
645
|
-
|
646
642
|
post_install_message:
|
647
643
|
rdoc_options: []
|
648
|
-
|
649
|
-
require_paths:
|
644
|
+
require_paths:
|
650
645
|
- lib
|
651
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
646
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
652
647
|
none: false
|
653
|
-
requirements:
|
654
|
-
- -
|
655
|
-
- !ruby/object:Gem::Version
|
656
|
-
|
657
|
-
|
658
|
-
- 0
|
659
|
-
version: "0"
|
660
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
648
|
+
requirements:
|
649
|
+
- - ! '>='
|
650
|
+
- !ruby/object:Gem::Version
|
651
|
+
version: '0'
|
652
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
661
653
|
none: false
|
662
|
-
requirements:
|
663
|
-
- -
|
664
|
-
- !ruby/object:Gem::Version
|
665
|
-
|
666
|
-
segments:
|
667
|
-
- 0
|
668
|
-
version: "0"
|
654
|
+
requirements:
|
655
|
+
- - ! '>='
|
656
|
+
- !ruby/object:Gem::Version
|
657
|
+
version: '0'
|
669
658
|
requirements: []
|
670
|
-
|
671
659
|
rubyforge_project:
|
672
|
-
rubygems_version: 1.
|
660
|
+
rubygems_version: 1.8.10
|
673
661
|
signing_key:
|
674
662
|
specification_version: 3
|
675
663
|
summary: Abiquo Elite Toolkit
|
676
664
|
test_files: []
|
677
|
-
|