abiquo-installer-tests 0.2.4 → 20120104
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/README.md +6 -4
- data/Rakefile +1 -1
- data/bin/abiquo-installer-tests +19 -5
- data/tests/2.0/abiquo_ciab.rb +21 -0
- data/tests/2.0/abiquo_kvm.rb +25 -0
- data/tests/2.0/abiquo_lvmiscsi.rb +17 -0
- data/tests/2.0/abiquo_monolithic.rb +12 -0
- data/tests/2.0/abiquo_nfs_repository.rb +23 -0
- data/tests/2.0/abiquo_platform.rb +35 -0
- data/tests/2.0/abiquo_remote_services.rb +121 -0
- data/tests/2.0/abiquo_server.rb +93 -0
- data/tests/2.0/abiquo_v2v.rb +42 -0
- data/tests/2.0/abiquo_vbox.rb +27 -0
- data/tests/2.0/abiquo_xen.rb +27 -0
- data/tests/abiquo_postinst_test.rb +14 -0
- metadata +81 -110
data/README.md
CHANGED
@@ -4,8 +4,6 @@ Comprehensive test suite to QA and troubleshoot an Abiquo Installation.
|
|
4
4
|
|
5
5
|
The test runner tool automatically detects the Abiquo installation (distributed,mono,cloud node, etc) and runs the required tests.
|
6
6
|
|
7
|
-
Only Abiquo 1.7.6 and 1.8.0 installations are supported ATM.
|
8
|
-
|
9
7
|
This tool has only been tested in Linux. Other platforms may work though.
|
10
8
|
|
11
9
|
# PRE-REQUISITES #
|
@@ -14,11 +12,15 @@ This tool has only been tested in Linux. Other platforms may work though.
|
|
14
12
|
|
15
13
|
# INSTALLATION #
|
16
14
|
|
17
|
-
|
15
|
+
Install required gems:
|
16
|
+
|
17
|
+
sudo gem install net-ssh net-scp net-sftp mixlib-cli term-ansicolor
|
18
18
|
|
19
19
|
# RUNNING THE TESTS #
|
20
20
|
|
21
|
-
abiquo-installer-tests
|
21
|
+
git clone https://github.com/abiquo/abiquo-installer-tests
|
22
|
+
cd abiquo-installer-tests
|
23
|
+
ruby ./bin/abiquo-installer-tests --host abiquo-server-ip --user root --password abiquo
|
22
24
|
|
23
25
|
The tests connects to the target host using SSH, uploads the tests and run them in the target host.
|
24
26
|
|
data/Rakefile
CHANGED
@@ -5,7 +5,7 @@ require 'rake'
|
|
5
5
|
require 'jeweler'
|
6
6
|
Jeweler::Tasks.new do |gem|
|
7
7
|
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
8
|
-
gem.version =
|
8
|
+
gem.version = Time.now.strftime "%Y%m%d"
|
9
9
|
gem.name = "abiquo-installer-tests"
|
10
10
|
gem.homepage = "http://github.com/abiquo/abiquo-installer-tests"
|
11
11
|
gem.license = "MIT"
|
data/bin/abiquo-installer-tests
CHANGED
@@ -48,6 +48,7 @@ def required_option(cli, opt)
|
|
48
48
|
end
|
49
49
|
|
50
50
|
Log = Logger.new($stdout)
|
51
|
+
$stdout.sync = true
|
51
52
|
|
52
53
|
cli = MyCLI.new
|
53
54
|
cli.parse_options
|
@@ -58,20 +59,29 @@ required_option cli, :host
|
|
58
59
|
TESTS_DIR = File.dirname(__FILE__) + '/../tests/'
|
59
60
|
|
60
61
|
begin
|
61
|
-
|
62
|
+
print "Checking pre-requisites... "
|
63
|
+
Net::SSH.start(cli.config[:host], cli.config[:user], :paranoid => false, :password => cli.config[:password]) do |ssh|
|
62
64
|
ssh.exec!("rm -rf /tmp/tests")
|
63
|
-
ssh.exec!("yum install -y rubygems --exclude ruby-ee")
|
65
|
+
ssh.exec!("which gem || yum install -y rubygems --exclude ruby-ee")
|
64
66
|
ssh.exec!("gem install --no-ri --no-rdoc term-ansicolor iniparse")
|
65
67
|
end
|
68
|
+
puts "Done".green.bold
|
69
|
+
rescue Net::SSH::AuthenticationFailed => e
|
70
|
+
$stderr.puts "Error connecting to the host. Authentication failed."
|
71
|
+
exit 1
|
66
72
|
rescue Exception => e
|
67
|
-
$stderr.puts "Error cleaning previous tests in host #{cli.config[:host]}: #{e.message}"
|
73
|
+
$stderr.puts "Error cleaning previous tests in host #{cli.config[:host]}: #{e.message} #{e.class}"
|
74
|
+
$stderr.puts $@
|
75
|
+
$stderr.puts $!
|
68
76
|
exit 1
|
69
77
|
end
|
70
78
|
|
71
79
|
begin
|
80
|
+
print "Uploading tests... "
|
72
81
|
Net::SFTP.start(cli.config[:host], 'root', :password => cli.config[:password], :paranoid => false) do |sftp|
|
73
82
|
sftp.upload! TESTS_DIR, '/tmp/tests/'
|
74
83
|
end
|
84
|
+
puts "Done".green.bold
|
75
85
|
rescue Exception => e
|
76
86
|
$stderr.puts "Error uploading tests to host #{cli.config[:host]}: #{e.message}"
|
77
87
|
exit 1
|
@@ -79,8 +89,12 @@ end
|
|
79
89
|
|
80
90
|
begin
|
81
91
|
Net::SSH.start(cli.config[:host], 'root', :password => cli.config[:password], :paranoid => false) do |ssh|
|
82
|
-
|
83
|
-
|
92
|
+
puts "Running tests..."
|
93
|
+
output = ""
|
94
|
+
ssh.exec!("cd /tmp/tests/ && ruby abiquo_postinst_test.rb") do |ch, stream, data|
|
95
|
+
print data
|
96
|
+
output += data
|
97
|
+
end
|
84
98
|
if output =~ /Failure/m
|
85
99
|
puts "\n>>>>>> TEST FAILED! <<<<<<\n\n".bold.red
|
86
100
|
else
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'abiquo_platform'
|
2
|
+
require 'abiquo_remote_services'
|
3
|
+
require 'abiquo_server'
|
4
|
+
require 'abiquo_v2v'
|
5
|
+
require 'abiquo_monolithic'
|
6
|
+
require 'abiquo_kvm'
|
7
|
+
require 'abiquo_lvmiscsi'
|
8
|
+
|
9
|
+
class AbiquoCIABTest < Test::Unit::TestCase
|
10
|
+
def test_lvm_tomcat_dir
|
11
|
+
assert File.directory? '/opt/abiquo/lvmiscsi/tomcat/'
|
12
|
+
end
|
13
|
+
|
14
|
+
#
|
15
|
+
# overriding abiquo_platform test
|
16
|
+
# FW can be safely enabled in CIAB installs
|
17
|
+
#
|
18
|
+
def test_firewall_service_enabled
|
19
|
+
assert true
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
class AbiquoKVMTest < Test::Unit::TestCase
|
2
|
+
|
3
|
+
def test_aim_running
|
4
|
+
assert !`ps aux|grep abiquo-aim`.strip.chomp.empty?
|
5
|
+
end
|
6
|
+
|
7
|
+
def test_aim_service_enabled
|
8
|
+
assert ::TestUtils.service_on?('abiquo-aim')
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_libvirtd_service_enabled
|
12
|
+
assert ::TestUtils.service_on?('libvirtd')
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_abiquo_aim_properties_file
|
16
|
+
assert File.exist? '/etc/abiquo-aim.ini'
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_nfs_mounted
|
20
|
+
if !::TestUtils.installer_profiles.include?('cloud-in-a-box')
|
21
|
+
assert !`mount|grep vm_repository`.strip.chomp.empty?
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class AbiquoLVMISCSITest < Test::Unit::TestCase
|
2
|
+
|
3
|
+
def test_tomcat_running
|
4
|
+
assert !`ps aux|grep java|grep '/opt/abiquo/lvmiscsi/tomcat'`.strip.chomp.empty?
|
5
|
+
end
|
6
|
+
|
7
|
+
def test_tomcat_enabled
|
8
|
+
assert ::TestUtils.service_on?('abiquo-lvmiscsi')
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_firewall_service_enabled
|
12
|
+
unless ::TestUtils.installer_profiles.include? 'cloud-in-a-box'
|
13
|
+
assert !::TestUtils.service_on?('iptables')
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'abiquo_platform'
|
2
|
+
require 'abiquo_remote_services'
|
3
|
+
require 'abiquo_server'
|
4
|
+
require 'abiquo_v2v'
|
5
|
+
|
6
|
+
class AbiquoMonolithicTest < Test::Unit::TestCase
|
7
|
+
def test_required_packages
|
8
|
+
%w{abiquo-pocsetup abiquo-core ntp nfs-utils}.each do |p|
|
9
|
+
assert !`rpm -q #{p}`.strip.chomp.empty?, "#{p} package not installed"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
class NFSRepositoryTest < Test::Unit::TestCase
|
2
|
+
|
3
|
+
def test_abiquo_repository_file
|
4
|
+
assert File.exist? '/opt/vm_repository/.abiquo_repository'
|
5
|
+
end
|
6
|
+
|
7
|
+
def test_exports_file
|
8
|
+
assert File.exist? '/etc/exports'
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_exports_file_contents
|
12
|
+
count = 0
|
13
|
+
File.read('/etc/exports').each_line do |l|
|
14
|
+
count += 1 if l =~ /\/opt\/vm_repository/
|
15
|
+
end
|
16
|
+
assert(count == 1)
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_nfs_service_on
|
20
|
+
assert(::TestUtils.service_on? 'nfs')
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
class AbiquoPlatformTest < Test::Unit::TestCase
|
2
|
+
|
3
|
+
def test_version_string
|
4
|
+
assert File.read('/etc/abiquo-release') =~ /\s2\.0/
|
5
|
+
end
|
6
|
+
|
7
|
+
def test_tomcat_core_version
|
8
|
+
assert `rpm -q abiquo-core` =~ /abiquo-core-2\.0.*el5/
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_abiquo_etk_version
|
12
|
+
assert `rpm -q rubygem-abiquo-etk` =~ /0\.5\.7/
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_tomcat_running
|
16
|
+
assert !`ps aux|grep java|grep '/opt/abiquo/tomcat'`.strip.chomp.empty?,
|
17
|
+
"Abiquo Tomcat is not Running"
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_tomcat_enabled
|
21
|
+
assert ::TestUtils.service_on?('abiquo-tomcat'),
|
22
|
+
"abiquo-tomcat service is not enabled"
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_abiquo_dir
|
26
|
+
assert File.directory?('/opt/abiquo/tomcat'),
|
27
|
+
"/opt/abiquo/tomcat directory does not exist"
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_firewall_service_enabled
|
31
|
+
assert !::TestUtils.service_on?('iptables'),
|
32
|
+
"iptables service is enabled. This might be ok but double check if you are having network issues"
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
@@ -0,0 +1,121 @@
|
|
1
|
+
require 'abiquo_platform'
|
2
|
+
|
3
|
+
class AbiquoRemoteServicesTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def test_abiquo_properties_present
|
6
|
+
assert File.exist?('/opt/abiquo/config/abiquo.properties'),
|
7
|
+
'abiquo.properties file not found'
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_redis_running
|
11
|
+
assert !`ps aux|grep java|grep redis`.strip.chomp.empty?,
|
12
|
+
'redis is not running'
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_nfs_mounted
|
17
|
+
if not ::TestUtils.installer_profiles.include?('abiquo-nfs-repository') and \
|
18
|
+
!::TestUtils.installer_profiles.include?('cloud-in-a-box')
|
19
|
+
assert !`mount|grep vm_repository`.strip.chomp.empty?
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_webapps_deployed?
|
24
|
+
%w{tarantino vsm ssm am nodecollector}.each do |w|
|
25
|
+
assert TestUtils.webapp_deployed?(w), "#{w} Tomcat webapp not found in #{TestUtils.abiquo_base_dir}/tomcat/webapps"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_dhcpd_enabled
|
30
|
+
assert ::TestUtils.service_on?('dhcpd')
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_am
|
34
|
+
assert ::TestUtils.web_service_ok?('/am/check'), "AM webapp status is not OK. Check for tomcat errors."
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_vsm
|
38
|
+
assert ::TestUtils.web_service_ok?('/vsm/check'), "VSM webapp status is not OK. Check for tomcat errors."
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_nodecollector
|
42
|
+
assert ::TestUtils.web_service_ok?('/nodecollector/check'), "NodeCollector webapp status is not OK. Check for tomcat errors."
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_ssm
|
46
|
+
assert ::TestUtils.web_service_ok?('/ssm/check'), "SSM webapp status is not OK. Check for tomcat errors."
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_tarantino
|
50
|
+
assert ::TestUtils.web_service_ok?('/tarantino/check'), "Tarantino webapp status is not OK. Check for tomcat errors."
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_abiquo_repository_file
|
54
|
+
assert File.exist?('/opt/vm_repository/.abiquo_repository'), "File /opt/vm_repository/.abiquo_repository not found"
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_properties
|
58
|
+
require 'iniparse'
|
59
|
+
config = IniParse.parse(File.read('/opt/abiquo/config/abiquo.properties'))
|
60
|
+
assert !config['remote-services'].nil?,
|
61
|
+
"[remote-services] section in /opt/abiquo/config/abiquo.properties is missing"
|
62
|
+
|
63
|
+
assert !config['remote-services']['abiquo.virtualfactory.hyperv.repositoryLocation'].nil?,
|
64
|
+
"abiquo.virtualfactory.hyperv.repositoryLocation property is missing in abiquo.properties"
|
65
|
+
|
66
|
+
assert !config['remote-services']['abiquo.rabbitmq.username'].nil?,
|
67
|
+
"abiquo.rabbitmq.username property is missing in abiquo.properties"
|
68
|
+
|
69
|
+
assert !config['remote-services']['abiquo.rabbitmq.password'].nil?,
|
70
|
+
"abiquo.rabbitmq.password property is missing in abiquo.properties"
|
71
|
+
|
72
|
+
assert !config['remote-services']['abiquo.rabbitmq.host'].nil?,
|
73
|
+
"abiquo.rabbitmq.host property is missing in abiquo.properties"
|
74
|
+
|
75
|
+
assert !config['remote-services']['abiquo.rabbitmq.port'].nil?,
|
76
|
+
"abiquo.rabbitmq.port property is missing in abiquo.properties"
|
77
|
+
|
78
|
+
assert !config['remote-services']['abiquo.appliancemanager.localRepositoryPath'].nil?,
|
79
|
+
"abiquo.appliancemanager.localRepositoryPath property is missing in abiquo.properties"
|
80
|
+
|
81
|
+
assert !config['remote-services']['abiquo.appliancemanager.repositoryLocation'].nil?,
|
82
|
+
"abiquo.appliancemanager.repositoryLocation property is missing in abiquo.properties"
|
83
|
+
|
84
|
+
assert !config['remote-services']['abiquo.virtualfactory.xenserver.repositoryLocation'].nil?,
|
85
|
+
"abiquo.virtualfactory.xenserver.repositoryLocation property is missing in abiquo.properties"
|
86
|
+
|
87
|
+
assert !config['remote-services']['abiquo.virtualfactory.vmware.repositoryLocation'].nil?,
|
88
|
+
"abiquo.virtualfactory.vmware.repositoryLocation property is missing in abiquo.properties"
|
89
|
+
|
90
|
+
assert !config['remote-services']['abiquo.virtualfactory.storagelink.user'].nil?,
|
91
|
+
"abiquo.virtualfactory.storagelink.user property is missing in abiquo.properties"
|
92
|
+
|
93
|
+
assert !config['remote-services']['abiquo.virtualfactory.storagelink.password'].nil?,
|
94
|
+
"abiquo.virtualfactory.storagelink.password property is missing in abiquo.properties"
|
95
|
+
|
96
|
+
assert !config['remote-services']['abiquo.virtualfactory.storagelink.address'].nil?,
|
97
|
+
"abiquo.virtualfactory.storagelink.address property is missing in abiquo.properties"
|
98
|
+
|
99
|
+
assert !config['remote-services']['abiquo.redis.port'].nil?,
|
100
|
+
"abiquo.redis.port is missing in abiquo.properties"
|
101
|
+
|
102
|
+
assert !config['remote-services']['abiquo.redis.host'].nil?,
|
103
|
+
"abiquo.redis.host is missing in abiquo.properties"
|
104
|
+
|
105
|
+
assert !config['remote-services']['abiquo.storagemanager.netapp.user'].nil?,
|
106
|
+
"abiquo.storagemanager.netapp.user is missing in abiquo.properties"
|
107
|
+
|
108
|
+
assert !config['remote-services']['abiquo.storagemanager.netapp.password'].nil?,
|
109
|
+
"abiquo.storagemanager.netapp.password is missing in abiquo.properties"
|
110
|
+
|
111
|
+
assert !config['remote-services']['abiquo.dvs.enabled'].nil?,
|
112
|
+
"abiquo.dvs.enabled is missing in abiquo.properties"
|
113
|
+
|
114
|
+
assert !config['remote-services']['abiquo.dvs.vcenter.user'].nil?,
|
115
|
+
"abiquo.dvs.vcenter.user is missing in abiquo.properties"
|
116
|
+
|
117
|
+
assert !config['remote-services']['abiquo.dvs.vcenter.password'].nil?,
|
118
|
+
"abiquo.dvs.vcenter.password is missing in abiquo.properties"
|
119
|
+
end
|
120
|
+
|
121
|
+
end
|
@@ -0,0 +1,93 @@
|
|
1
|
+
require 'abiquo_platform'
|
2
|
+
|
3
|
+
class AbiquoServerTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def test_abiquo_properties_present
|
6
|
+
assert File.exist? '/opt/abiquo/config/abiquo.properties'
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_mysql_schema_present
|
10
|
+
assert(`mysql -e 'show databases' 2>&1` =~ /kinton/m)
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_mysql_running
|
14
|
+
assert !`service mysqld status|grep running`.strip.chomp.empty?
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_redis_running
|
18
|
+
assert !`ps aux|grep redis-server`.strip.chomp.empty?
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_rabbit_running
|
22
|
+
assert !`ps aux|grep java|grep rabbitmq`.strip.chomp.empty?
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_motd_service
|
26
|
+
assert ::TestUtils.service_on?('motd'), "MOTD service not enabled"
|
27
|
+
assert File.exist?('/etc/init.d/motd'), "MOTD service (/etc/init.d/motd) not installed"
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_server_ws
|
31
|
+
assert ::TestUtils.web_service_ok?('/server/messagebroker/amf')
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_api_ws
|
35
|
+
assert TestUtils.web_service_auth_required?('/api/console'), "API webapp status is not OK. Check for tomcat errors."
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_webapps_deployed?
|
39
|
+
%w{api ROOT client-premium server}.each do |w|
|
40
|
+
assert TestUtils.webapp_deployed?(w), "#{w} Tomcat webapp not found in #{TestUtils.abiquo_base_dir}/tomcat/webapps"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_properties
|
45
|
+
require 'iniparse'
|
46
|
+
config = IniParse.parse(File.read('/opt/abiquo/config/abiquo.properties'))
|
47
|
+
assert !config['server'].nil?,
|
48
|
+
"[server] section is missing in missing in abiquo.properties"
|
49
|
+
|
50
|
+
assert !config['server']['abiquo.server.sessionTimeout'].nil?,
|
51
|
+
"abiquo.server.sessionTimeout is missing in abiquo.properties"
|
52
|
+
|
53
|
+
assert !config['server']['abiquo.server.mail.server'].nil?,
|
54
|
+
"abiquo.server.mail.server is missing in abiquo.properties"
|
55
|
+
|
56
|
+
assert !config['server']['abiquo.server.mail.user'].nil?,
|
57
|
+
"abiquo.server.mail.user is missing in abiquo.properties"
|
58
|
+
|
59
|
+
assert !config['server']['abiquo.server.mail.password'].nil?,
|
60
|
+
"abiquo.server.mail.password is missing in abiquo.properties"
|
61
|
+
|
62
|
+
assert !config['server']['abiquo.rabbitmq.username'].nil?,
|
63
|
+
"abiquo.rabbitmq.username is missing in abiquo.properties"
|
64
|
+
|
65
|
+
assert !config['server']['abiquo.rabbitmq.password'].nil?,
|
66
|
+
"abiquo.rabbitmq.host is missing in abiquo.properties"
|
67
|
+
|
68
|
+
assert !config['server']['abiquo.rabbitmq.host'].nil?,
|
69
|
+
"abiquo.rabbitmq.host is missing in abiquo.properties"
|
70
|
+
|
71
|
+
assert !config['server']['abiquo.rabbitmq.port'].nil?,
|
72
|
+
"abiquo.rabbitmq.port is missing in abiquo.properties"
|
73
|
+
|
74
|
+
assert !config['server']['abiquo.database.user'].nil?,
|
75
|
+
"abiquo.database.user is missing in abiquo.properties"
|
76
|
+
|
77
|
+
assert !config['server']['abiquo.auth.module'].nil?,
|
78
|
+
"abiquo.auth.module is missing in abiquo.properties"
|
79
|
+
|
80
|
+
assert !config['server']['abiquo.server.api.location'].nil?,
|
81
|
+
"abiquo.server.api.location is missing in abiquo.properties"
|
82
|
+
|
83
|
+
if not TestUtils.webapp_deployed?('tarantino')
|
84
|
+
assert !config['server']['abiquo.redis.host'].nil?,
|
85
|
+
"abiquo.redis.host is missing in abiquo.properties"
|
86
|
+
assert !config['server']['abiquo.redis.port'].nil?,
|
87
|
+
"abiquo.redis.port is missing in abiquo.properties"
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
91
|
+
|
92
|
+
end
|
93
|
+
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'abiquo_platform'
|
2
|
+
|
3
|
+
class AbiquoV2VTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def test_tomcat_running
|
6
|
+
assert !`ps aux|grep java|grep '/opt/abiquo/tomcat'`.strip.chomp.empty?
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_nfs_mounted
|
10
|
+
if (not ::TestUtils.installer_profiles.include?('abiquo-nfs-repository')) and \
|
11
|
+
(! ::TestUtils.installer_profiles.include?('cloud-in-a-box'))
|
12
|
+
assert !`mount|grep vm_repository`.strip.chomp.empty?
|
13
|
+
end
|
14
|
+
end
|
15
|
+
def test_webapps_deployed?
|
16
|
+
%w{bpm-async}.each do |w|
|
17
|
+
assert TestUtils.webapp_deployed?(w), "#{w} Tomcat webapp not found in #{TestUtils.abiquo_base_dir}/tomcat/webapps"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_abiquo_repository_file
|
22
|
+
assert File.exist? '/opt/vm_repository/.abiquo_repository'
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_tomcat_enabled
|
26
|
+
assert ::TestUtils.service_on?('abiquo-tomcat')
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_v2v_context_present
|
30
|
+
assert File.directory? '/opt/abiquo/tomcat/webapps/bpm-async'
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_v2v_scripts
|
34
|
+
assert File.exist?('/usr/bin/mechadora')
|
35
|
+
assert File.exist?('/usr/bin/v2v-diskmanager')
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_abiquo_dir
|
39
|
+
assert File.directory? '/opt/abiquo'
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
class AbiquoVBoxTest < Test::Unit::TestCase
|
2
|
+
|
3
|
+
def test_aim_running
|
4
|
+
assert !`ps aux|grep abiquo-aim`.strip.chomp.empty?
|
5
|
+
end
|
6
|
+
|
7
|
+
def test_aim_service_enabled
|
8
|
+
assert ::TestUtils.service_on?('abiquo-aim')
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_libvirtd_service_enabled
|
12
|
+
assert ::TestUtils.service_on?('libvirtd')
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_firewall_service_enabled
|
16
|
+
assert !::TestUtils.service_on?('iptables')
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_abiquo_aim_properties_file
|
20
|
+
assert File.exist? '/etc/abiquo-aim.ini'
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_nfs_mounted
|
24
|
+
assert !`mount|grep vm_repository`.strip.chomp.empty?
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
class AbiquoXenTest < Test::Unit::TestCase
|
2
|
+
|
3
|
+
def test_aim_running
|
4
|
+
assert !`ps aux|grep abiquo-aim`.strip.chomp.empty?
|
5
|
+
end
|
6
|
+
|
7
|
+
def test_aim_service_enabled
|
8
|
+
assert ::TestUtils.service_on?('abiquo-aim')
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_libvirtd_service_enabled
|
12
|
+
assert ::TestUtils.service_on?('libvirtd')
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_firewall_service_enabled
|
16
|
+
assert !::TestUtils.service_on?('iptables')
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_abiquo_aim_properties_file
|
20
|
+
assert File.exist? '/etc/abiquo-aim.ini'
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_nfs_mounted
|
24
|
+
assert !`mount|grep vm_repository`.strip.chomp.empty?
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
@@ -27,6 +27,11 @@ class TestUtils
|
|
27
27
|
`/sbin/chkconfig --list #{service}` =~ /3:on/
|
28
28
|
end
|
29
29
|
|
30
|
+
def self.web_service_auth_required?(path, host = 'localhost')
|
31
|
+
res = Net::HTTP.get_response URI.parse("http://#{host}/#{path}")
|
32
|
+
return res.is_a? Net::HTTPUnauthorized
|
33
|
+
end
|
34
|
+
|
30
35
|
def self.web_service_ok?(path, host = 'localhost')
|
31
36
|
res = Net::HTTP.get_response URI.parse("http://#{host}/#{path}")
|
32
37
|
return res.is_a? Net::HTTPOK
|
@@ -39,6 +44,14 @@ class TestUtils
|
|
39
44
|
$1
|
40
45
|
end
|
41
46
|
|
47
|
+
def self.abiquo_base_dir
|
48
|
+
"/opt/abiquo"
|
49
|
+
end
|
50
|
+
|
51
|
+
def self.webapp_deployed?(webapp)
|
52
|
+
File.directory? "#{abiquo_base_dir}/tomcat/webapps/#{webapp}"
|
53
|
+
end
|
54
|
+
|
42
55
|
end
|
43
56
|
|
44
57
|
class BaseTest < Test::Unit::TestCase
|
@@ -70,6 +83,7 @@ if not File.exist? '/etc/abiquo-installer'
|
|
70
83
|
exit 1
|
71
84
|
else
|
72
85
|
|
86
|
+
$stdout.sync = true
|
73
87
|
version = TestUtils.abiquo_version
|
74
88
|
$: << version
|
75
89
|
if version.nil?
|
metadata
CHANGED
@@ -1,121 +1,90 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: abiquo-installer-tests
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: '20120104'
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 2
|
9
|
-
- 4
|
10
|
-
version: 0.2.4
|
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
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-01-04 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: term-ansicolor
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &13995600 !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
segments:
|
30
|
-
- 1
|
31
|
-
- 0
|
32
|
-
version: "1.0"
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '1.0'
|
33
22
|
type: :runtime
|
34
|
-
version_requirements: *id001
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: net-ssh
|
37
23
|
prerelease: false
|
38
|
-
|
24
|
+
version_requirements: *13995600
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: net-ssh
|
27
|
+
requirement: &13995080 !ruby/object:Gem::Requirement
|
39
28
|
none: false
|
40
|
-
requirements:
|
41
|
-
- -
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
44
|
-
segments:
|
45
|
-
- 2
|
46
|
-
- 0
|
47
|
-
version: "2.0"
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '2.0'
|
48
33
|
type: :runtime
|
49
|
-
version_requirements: *id002
|
50
|
-
- !ruby/object:Gem::Dependency
|
51
|
-
name: net-scp
|
52
34
|
prerelease: false
|
53
|
-
|
35
|
+
version_requirements: *13995080
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: net-scp
|
38
|
+
requirement: &13994580 !ruby/object:Gem::Requirement
|
54
39
|
none: false
|
55
|
-
requirements:
|
56
|
-
- -
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
|
59
|
-
segments:
|
60
|
-
- 1
|
61
|
-
- 0
|
62
|
-
version: "1.0"
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '1.0'
|
63
44
|
type: :runtime
|
64
|
-
version_requirements: *id003
|
65
|
-
- !ruby/object:Gem::Dependency
|
66
|
-
name: net-sftp
|
67
45
|
prerelease: false
|
68
|
-
|
46
|
+
version_requirements: *13994580
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: net-sftp
|
49
|
+
requirement: &13994040 !ruby/object:Gem::Requirement
|
69
50
|
none: false
|
70
|
-
requirements:
|
71
|
-
- -
|
72
|
-
- !ruby/object:Gem::Version
|
73
|
-
|
74
|
-
segments:
|
75
|
-
- 2
|
76
|
-
- 0
|
77
|
-
version: "2.0"
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.0'
|
78
55
|
type: :runtime
|
79
|
-
version_requirements: *id004
|
80
|
-
- !ruby/object:Gem::Dependency
|
81
|
-
name: iniparse
|
82
56
|
prerelease: false
|
83
|
-
|
57
|
+
version_requirements: *13994040
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: iniparse
|
60
|
+
requirement: &13993480 !ruby/object:Gem::Requirement
|
84
61
|
none: false
|
85
|
-
requirements:
|
86
|
-
- -
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
|
89
|
-
segments:
|
90
|
-
- 1
|
91
|
-
- 0
|
92
|
-
version: "1.0"
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '1.0'
|
93
66
|
type: :runtime
|
94
|
-
version_requirements: *id005
|
95
|
-
- !ruby/object:Gem::Dependency
|
96
|
-
name: mixlib-cli
|
97
67
|
prerelease: false
|
98
|
-
|
68
|
+
version_requirements: *13993480
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: mixlib-cli
|
71
|
+
requirement: &13992960 !ruby/object:Gem::Requirement
|
99
72
|
none: false
|
100
|
-
requirements:
|
101
|
-
- -
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
|
104
|
-
segments:
|
105
|
-
- 1
|
106
|
-
- 2
|
107
|
-
version: "1.2"
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '1.2'
|
108
77
|
type: :runtime
|
109
|
-
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *13992960
|
110
80
|
description: Tests and troubleshoot Abiquo installations
|
111
81
|
email: srubio@abiquo.com
|
112
|
-
executables:
|
82
|
+
executables:
|
113
83
|
- abiquo-installer-tests
|
114
84
|
extensions: []
|
115
|
-
|
116
|
-
extra_rdoc_files:
|
85
|
+
extra_rdoc_files:
|
117
86
|
- README.md
|
118
|
-
files:
|
87
|
+
files:
|
119
88
|
- README.md
|
120
89
|
- Rakefile
|
121
90
|
- bin/abiquo-installer-tests
|
@@ -141,39 +110,41 @@ files:
|
|
141
110
|
- tests/1.8.0/abiquo_v2v.rb
|
142
111
|
- tests/1.8.0/abiquo_vbox.rb
|
143
112
|
- tests/1.8.0/abiquo_xen.rb
|
113
|
+
- tests/2.0/abiquo_ciab.rb
|
114
|
+
- tests/2.0/abiquo_kvm.rb
|
115
|
+
- tests/2.0/abiquo_lvmiscsi.rb
|
116
|
+
- tests/2.0/abiquo_monolithic.rb
|
117
|
+
- tests/2.0/abiquo_nfs_repository.rb
|
118
|
+
- tests/2.0/abiquo_platform.rb
|
119
|
+
- tests/2.0/abiquo_remote_services.rb
|
120
|
+
- tests/2.0/abiquo_server.rb
|
121
|
+
- tests/2.0/abiquo_v2v.rb
|
122
|
+
- tests/2.0/abiquo_vbox.rb
|
123
|
+
- tests/2.0/abiquo_xen.rb
|
144
124
|
- tests/abiquo_postinst_test.rb
|
145
125
|
homepage: http://github.com/abiquo/abiquo-installer-tests
|
146
|
-
licenses:
|
126
|
+
licenses:
|
147
127
|
- MIT
|
148
128
|
post_install_message:
|
149
129
|
rdoc_options: []
|
150
|
-
|
151
|
-
require_paths:
|
130
|
+
require_paths:
|
152
131
|
- lib
|
153
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
132
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
154
133
|
none: false
|
155
|
-
requirements:
|
156
|
-
- -
|
157
|
-
- !ruby/object:Gem::Version
|
158
|
-
|
159
|
-
|
160
|
-
- 0
|
161
|
-
version: "0"
|
162
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - ! '>='
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '0'
|
138
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
163
139
|
none: false
|
164
|
-
requirements:
|
165
|
-
- -
|
166
|
-
- !ruby/object:Gem::Version
|
167
|
-
|
168
|
-
segments:
|
169
|
-
- 0
|
170
|
-
version: "0"
|
140
|
+
requirements:
|
141
|
+
- - ! '>='
|
142
|
+
- !ruby/object:Gem::Version
|
143
|
+
version: '0'
|
171
144
|
requirements: []
|
172
|
-
|
173
145
|
rubyforge_project:
|
174
|
-
rubygems_version: 1.
|
146
|
+
rubygems_version: 1.8.10
|
175
147
|
signing_key:
|
176
148
|
specification_version: 3
|
177
149
|
summary: Abiquo Installer Unit Tests
|
178
150
|
test_files: []
|
179
|
-
|