# # # Copyright (C) 2013 Google Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. """QA tests for networks. """ import qa_config import qa_tags import qa_utils from qa_utils import AssertCommand def GetNonexistentNetworks(count): """Gets network names which shouldn't exist on the cluster. @param count: Number of networks to get @rtype: integer """ return qa_utils.GetNonexistentEntityNames(count, "networks", "network") def TestNetworkAddRemove(): """gnt-network add/remove""" (network1, network2) = GetNonexistentNetworks(2) # Add some networks of different sizes. # Note: Using RFC5737 addresses. AssertCommand(["gnt-network", "add", "--network", "192.0.2.0/30", network1]) AssertCommand(["gnt-network", "add", "--network", "198.51.100.0/24", network2]) # Try to add a network with an existing name. AssertCommand(["gnt-network", "add", "--network", "203.0.133.0/24", network2], fail=True) AssertCommand(["gnt-network", "remove", network1]) AssertCommand(["gnt-network", "remove", network2]) def TestNetworkTags(): """gnt-network tags""" (network, ) = GetNonexistentNetworks(1) AssertCommand(["gnt-network", "add", "--network", "192.0.2.0/30", network]) qa_tags.TestNetworkTags(network) AssertCommand(["gnt-network", "remove", network]) def TestNetworkConnect(): """gnt-network connect/disconnect""" (group1, ) = qa_utils.GetNonexistentGroups(1) (network1, ) = GetNonexistentNetworks(1) default_mode = "bridged" default_link = "xen-br0" nicparams = qa_config.get("default-nicparams") if nicparams: mode = nicparams.get("mode", default_mode) link = nicparams.get("link", default_link) else: mode = default_mode link = default_link nicparams = "mode=%s,link=%s" % (mode, link) AssertCommand(["gnt-group", "add", group1]) AssertCommand(["gnt-network", "add", "--network", "192.0.2.0/24", network1]) AssertCommand(["gnt-network", "connect", "--nic-parameters", nicparams, network1, group1]) AssertCommand(["gnt-network", "disconnect", network1, group1]) AssertCommand(["gnt-group", "remove", group1]) AssertCommand(["gnt-network", "remove", network1])