Statistics
| Branch: | Tag: | Revision:

root / qa / qa_env.py @ 9b3939ea

History | View | Annotate | Download (2.1 kB)

1 cec9845c Michael Hanselmann
# Copyright (C) 2007 Google Inc.
2 cec9845c Michael Hanselmann
#
3 cec9845c Michael Hanselmann
# This program is free software; you can redistribute it and/or modify
4 cec9845c Michael Hanselmann
# it under the terms of the GNU General Public License as published by
5 cec9845c Michael Hanselmann
# the Free Software Foundation; either version 2 of the License, or
6 cec9845c Michael Hanselmann
# (at your option) any later version.
7 cec9845c Michael Hanselmann
#
8 cec9845c Michael Hanselmann
# This program is distributed in the hope that it will be useful, but
9 cec9845c Michael Hanselmann
# WITHOUT ANY WARRANTY; without even the implied warranty of
10 cec9845c Michael Hanselmann
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 cec9845c Michael Hanselmann
# General Public License for more details.
12 cec9845c Michael Hanselmann
#
13 cec9845c Michael Hanselmann
# You should have received a copy of the GNU General Public License
14 cec9845c Michael Hanselmann
# along with this program; if not, write to the Free Software
15 cec9845c Michael Hanselmann
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
16 cec9845c Michael Hanselmann
# 02110-1301, USA.
17 cec9845c Michael Hanselmann
18 cec9845c Michael Hanselmann
19 cec9845c Michael Hanselmann
"""Cluster environment related QA tests.
20 cec9845c Michael Hanselmann

21 cec9845c Michael Hanselmann
"""
22 cec9845c Michael Hanselmann
23 cec9845c Michael Hanselmann
from ganeti import utils
24 cec9845c Michael Hanselmann
25 cec9845c Michael Hanselmann
import qa_config
26 9b3939ea Michael Hanselmann
import qa_utils
27 cec9845c Michael Hanselmann
28 cec9845c Michael Hanselmann
from qa_utils import AssertEqual, StartSSH
29 cec9845c Michael Hanselmann
30 cec9845c Michael Hanselmann
31 9b3939ea Michael Hanselmann
@qa_utils.DefineHook('env-ssh-connection')
32 cec9845c Michael Hanselmann
def TestSshConnection():
33 cec9845c Michael Hanselmann
  """Test SSH connection.
34 cec9845c Michael Hanselmann

35 cec9845c Michael Hanselmann
  """
36 cec9845c Michael Hanselmann
  for node in qa_config.get('nodes'):
37 cec9845c Michael Hanselmann
    AssertEqual(StartSSH(node['primary'], 'exit').wait(), 0)
38 cec9845c Michael Hanselmann
39 cec9845c Michael Hanselmann
40 9b3939ea Michael Hanselmann
@qa_utils.DefineHook('env-ganeti-commands')
41 cec9845c Michael Hanselmann
def TestGanetiCommands():
42 cec9845c Michael Hanselmann
  """Test availibility of Ganeti commands.
43 cec9845c Michael Hanselmann

44 cec9845c Michael Hanselmann
  """
45 cec9845c Michael Hanselmann
  cmds = ( ['gnt-cluster', '--version'],
46 cec9845c Michael Hanselmann
           ['gnt-os', '--version'],
47 cec9845c Michael Hanselmann
           ['gnt-node', '--version'],
48 cec9845c Michael Hanselmann
           ['gnt-instance', '--version'],
49 cec9845c Michael Hanselmann
           ['gnt-backup', '--version'],
50 cec9845c Michael Hanselmann
           ['ganeti-noded', '--version'],
51 cec9845c Michael Hanselmann
           ['ganeti-watcher', '--version'] )
52 cec9845c Michael Hanselmann
53 cec9845c Michael Hanselmann
  cmd = ' && '.join([utils.ShellQuoteArgs(i) for i in cmds])
54 cec9845c Michael Hanselmann
55 cec9845c Michael Hanselmann
  for node in qa_config.get('nodes'):
56 cec9845c Michael Hanselmann
    AssertEqual(StartSSH(node['primary'], cmd).wait(), 0)
57 cec9845c Michael Hanselmann
58 cec9845c Michael Hanselmann
59 9b3939ea Michael Hanselmann
@qa_utils.DefineHook('env-icmp-ping')
60 cec9845c Michael Hanselmann
def TestIcmpPing():
61 cec9845c Michael Hanselmann
  """ICMP ping each node.
62 cec9845c Michael Hanselmann

63 cec9845c Michael Hanselmann
  """
64 cec9845c Michael Hanselmann
  nodes = qa_config.get('nodes')
65 cec9845c Michael Hanselmann
66 cec9845c Michael Hanselmann
  for node in nodes:
67 cec9845c Michael Hanselmann
    check = []
68 cec9845c Michael Hanselmann
    for i in nodes:
69 cec9845c Michael Hanselmann
      check.append(i['primary'])
70 cec9845c Michael Hanselmann
      if i.has_key('secondary'):
71 cec9845c Michael Hanselmann
        check.append(i['secondary'])
72 cec9845c Michael Hanselmann
73 cec9845c Michael Hanselmann
    ping = lambda ip: utils.ShellQuoteArgs(['ping', '-w', '3', '-c', '1', ip])
74 cec9845c Michael Hanselmann
    cmd = ' && '.join([ping(i) for i in check])
75 cec9845c Michael Hanselmann
76 cec9845c Michael Hanselmann
    AssertEqual(StartSSH(node['primary'], cmd).wait(), 0)