Statistics
| Branch: | Tag: | Revision:

root / qa / qa_network.py @ 31d3b918

History | View | Annotate | Download (3.1 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 a4c589d2 Hrvoje Ribicic
import qa_tags
28 ea7693c1 Helga Velroyen
import qa_utils
29 ea7693c1 Helga Velroyen
30 86a4a625 Helga Velroyen
from ganeti import query
31 86a4a625 Helga Velroyen
32 ea7693c1 Helga Velroyen
from qa_utils import AssertCommand
33 ea7693c1 Helga Velroyen
34 ea7693c1 Helga Velroyen
35 86a4a625 Helga Velroyen
def TestNetworkList():
36 86a4a625 Helga Velroyen
  """gnt-network list"""
37 86a4a625 Helga Velroyen
  qa_utils.GenericQueryTest("gnt-network", query.NETWORK_FIELDS.keys())
38 86a4a625 Helga Velroyen
39 86a4a625 Helga Velroyen
40 86a4a625 Helga Velroyen
def TestNetworkListFields():
41 86a4a625 Helga Velroyen
  """gnt-network list-fields"""
42 86a4a625 Helga Velroyen
  qa_utils.GenericQueryFieldsTest("gnt-network", query.NETWORK_FIELDS.keys())
43 86a4a625 Helga Velroyen
44 86a4a625 Helga Velroyen
45 ea7693c1 Helga Velroyen
def GetNonexistentNetworks(count):
46 ea7693c1 Helga Velroyen
  """Gets network names which shouldn't exist on the cluster.
47 ea7693c1 Helga Velroyen

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

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