Statistics
| Branch: | Tag: | Revision:

root / qa / qa_env.py @ cec9845c

History | View | Annotate | Download (1.9 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 cec9845c Michael Hanselmann
27 cec9845c Michael Hanselmann
from qa_utils import AssertEqual, StartSSH
28 cec9845c Michael Hanselmann
29 cec9845c Michael Hanselmann
30 cec9845c Michael Hanselmann
def TestSshConnection():
31 cec9845c Michael Hanselmann
  """Test SSH connection.
32 cec9845c Michael Hanselmann

33 cec9845c Michael Hanselmann
  """
34 cec9845c Michael Hanselmann
  for node in qa_config.get('nodes'):
35 cec9845c Michael Hanselmann
    AssertEqual(StartSSH(node['primary'], 'exit').wait(), 0)
36 cec9845c Michael Hanselmann
37 cec9845c Michael Hanselmann
38 cec9845c Michael Hanselmann
def TestGanetiCommands():
39 cec9845c Michael Hanselmann
  """Test availibility of Ganeti commands.
40 cec9845c Michael Hanselmann

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

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