Statistics
| Branch: | Tag: | Revision:

root / qa / qa_network.py @ 82ce55fa

History | View | Annotate | Download (2.8 kB)

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

24 ea7693c1 Helga Velroyen
"""
25 ea7693c1 Helga Velroyen
26 ea7693c1 Helga Velroyen
import qa_config
27 ea7693c1 Helga Velroyen
import qa_utils
28 ea7693c1 Helga Velroyen
29 86a4a625 Helga Velroyen
from ganeti import query
30 86a4a625 Helga Velroyen
31 ea7693c1 Helga Velroyen
from qa_utils import AssertCommand
32 ea7693c1 Helga Velroyen
33 ea7693c1 Helga Velroyen
34 86a4a625 Helga Velroyen
def TestNetworkList():
35 86a4a625 Helga Velroyen
  """gnt-network list"""
36 86a4a625 Helga Velroyen
  qa_utils.GenericQueryTest("gnt-network", query.NETWORK_FIELDS.keys())
37 86a4a625 Helga Velroyen
38 86a4a625 Helga Velroyen
39 86a4a625 Helga Velroyen
def TestNetworkListFields():
40 86a4a625 Helga Velroyen
  """gnt-network list-fields"""
41 86a4a625 Helga Velroyen
  qa_utils.GenericQueryFieldsTest("gnt-network", query.NETWORK_FIELDS.keys())
42 86a4a625 Helga Velroyen
43 86a4a625 Helga Velroyen
44 ea7693c1 Helga Velroyen
def GetNonexistentNetworks(count):
45 ea7693c1 Helga Velroyen
  """Gets network names which shouldn't exist on the cluster.
46 ea7693c1 Helga Velroyen

47 ea7693c1 Helga Velroyen
  @param count: Number of networks to get
48 ea7693c1 Helga Velroyen
  @rtype: integer
49 ea7693c1 Helga Velroyen

50 ea7693c1 Helga Velroyen
  """
51 ea7693c1 Helga Velroyen
  return qa_utils.GetNonexistentEntityNames(count, "networks", "network")
52 ea7693c1 Helga Velroyen
53 ea7693c1 Helga Velroyen
54 ea7693c1 Helga Velroyen
def TestNetworkAddRemove():
55 ea7693c1 Helga Velroyen
  """gnt-network add/remove"""
56 ea7693c1 Helga Velroyen
  (network1, network2) = GetNonexistentNetworks(2)
57 ea7693c1 Helga Velroyen
58 ea7693c1 Helga Velroyen
  # Add some networks of different sizes.
59 ea7693c1 Helga Velroyen
  # Note: Using RFC5737 addresses.
60 ea7693c1 Helga Velroyen
  AssertCommand(["gnt-network", "add", "--network", "192.0.2.0/30", network1])
61 ea7693c1 Helga Velroyen
  AssertCommand(["gnt-network", "add", "--network", "198.51.100.0/24",
62 ea7693c1 Helga Velroyen
                 network2])
63 ea7693c1 Helga Velroyen
  # Try to add a network with an existing name.
64 ea7693c1 Helga Velroyen
  AssertCommand(["gnt-network", "add", "--network", "203.0.133.0/24", network2],
65 ea7693c1 Helga Velroyen
                fail=True)
66 ea7693c1 Helga Velroyen
67 86a4a625 Helga Velroyen
  TestNetworkList()
68 86a4a625 Helga Velroyen
  TestNetworkListFields()
69 689fb902 Helga Velroyen
70 ea7693c1 Helga Velroyen
  AssertCommand(["gnt-network", "remove", network1])
71 ea7693c1 Helga Velroyen
  AssertCommand(["gnt-network", "remove", network2])
72 ea7693c1 Helga Velroyen
73 86a4a625 Helga Velroyen
  TestNetworkList()
74 689fb902 Helga Velroyen
75 ea7693c1 Helga Velroyen
76 ea7693c1 Helga Velroyen
def TestNetworkConnect():
77 ea7693c1 Helga Velroyen
  """gnt-network connect/disconnect"""
78 ea7693c1 Helga Velroyen
  (group1, ) = qa_utils.GetNonexistentGroups(1)
79 ea7693c1 Helga Velroyen
  (network1, ) = GetNonexistentNetworks(1)
80 ea7693c1 Helga Velroyen
81 ea7693c1 Helga Velroyen
  default_mode = "bridged"
82 ea7693c1 Helga Velroyen
  default_link = "xen-br0"
83 ea7693c1 Helga Velroyen
  nicparams = qa_config.get("default-nicparams")
84 ea7693c1 Helga Velroyen
  if nicparams:
85 ea7693c1 Helga Velroyen
    mode = nicparams.get("mode", default_mode)
86 ea7693c1 Helga Velroyen
    link = nicparams.get("link", default_link)
87 ea7693c1 Helga Velroyen
  else:
88 ea7693c1 Helga Velroyen
    mode = default_mode
89 ea7693c1 Helga Velroyen
    link = default_link
90 ea7693c1 Helga Velroyen
91 ea7693c1 Helga Velroyen
  AssertCommand(["gnt-group", "add", group1])
92 ea7693c1 Helga Velroyen
  AssertCommand(["gnt-network", "add", "--network", "192.0.2.0/24", network1])
93 ea7693c1 Helga Velroyen
94 ea7693c1 Helga Velroyen
  AssertCommand(["gnt-network", "connect", network1, mode, link, group1])
95 86a4a625 Helga Velroyen
96 86a4a625 Helga Velroyen
  TestNetworkList()
97 86a4a625 Helga Velroyen
98 ea7693c1 Helga Velroyen
  AssertCommand(["gnt-network", "disconnect", network1, group1])
99 ea7693c1 Helga Velroyen
100 ea7693c1 Helga Velroyen
  AssertCommand(["gnt-group", "remove", group1])
101 ea7693c1 Helga Velroyen
  AssertCommand(["gnt-network", "remove", network1])