On Fri, Dec 20, 2013 at 10:09 AM, Hrvoje Ribicic <[email protected]> wrote:
> This patch exercises the network RAPI commands. Due to the fact that > these seem to have a few errors, this patch will have to be altered > later. > Are the errors filed as bugs? > > Signed-off-by: Hrvoje Ribicic <[email protected]> > --- > qa/rapi-workload.py | 76 > ++++++++++++++++++++++++++++++++++++++++++++++++++++- > 1 file changed, 75 insertions(+), 1 deletion(-) > > diff --git a/qa/rapi-workload.py b/qa/rapi-workload.py > index dbbc8a8..b71d268 100755 > --- a/qa/rapi-workload.py > +++ b/qa/rapi-workload.py > @@ -513,6 +513,78 @@ def TestGroupOperations(client, node, another_node): > Finish(client, client.DeleteGroup, TEST_GROUP_NAME) > > > +def TestNetworkConnectDisconnect(client, network_name, mode, link): > + """ Test connecting and disconnecting the network to a new node group. > + > + @type network_name string > + @param network_name The name of an existing and unconnected network. > + @type mode string > + @param mode The network mode. > + @type link string > + @param link The network link. > colons! :) > + > + """ > + # For testing the connect/disconnect calls, a group is needed > + TEST_GROUP_NAME = "TestGroup" > + Finish(client, client.CreateGroup, > + TEST_GROUP_NAME, alloc_policy=constants.ALLOC_POLICY_PREFERRED) > + > + Finish(client, client.ConnectNetwork, > + network_name, TEST_GROUP_NAME, mode, link, dry_run=True) > + > + Finish(client, client.ConnectNetwork, > + network_name, TEST_GROUP_NAME, mode, link) > + > + Finish(client, client.DisconnectNetwork, > + network_name, TEST_GROUP_NAME, dry_run=True) > + > + Finish(client, client.DisconnectNetwork, > + network_name, TEST_GROUP_NAME) > + > + # Clean up the group > + Finish(client, client.DeleteGroup, TEST_GROUP_NAME) > + > + > +def TestNetworks(client): > + """ Add some networks of different sizes, using RFC5737 addresses like > in the > + QA. > + > + """ > + > + NETWORK_NAME = "SurelyCertainlyNonexistentNetwork" > + > + Finish(client, client.CreateNetwork, > + NETWORK_NAME, "192.0.2.0/30", tags=[], dry_run=True) > + > + Finish(client, client.CreateNetwork, > + NETWORK_NAME, "192.0.2.0/30", tags=[]) > + > + client.GetNetwork(NETWORK_NAME) > + > + TestTags(client, client.GetNetworkTags, client.AddNetworkTags, > + client.DeleteNetworkTags, NETWORK_NAME) > + > + Finish(client, client.ModifyNetwork, > + NETWORK_NAME, mac_prefix=None) > + > + TestQueries(client, "network") > + > + default_nicparams = qa_config.get("default-nicparams", None) > + > + # The entry might not be present in the QA config > + if default_nicparams is not None: > + mode = default_nicparams.get("mode", None) > + link = default_nicparams.get("link", None) > + if mode is not None and link is not None: > + TestNetworkConnectDisconnect(client, NETWORK_NAME, mode, link) > + > + # Clean up the network > + Finish(client, client.DeleteNetwork, > + NETWORK_NAME, dry_run=True) > + > + Finish(client, client.DeleteNetwork, NETWORK_NAME) > + > + > def Workload(client): > """ The actual RAPI workload used for tests. > > @@ -560,11 +632,13 @@ def Workload(client): > TestNodeOperations(client, node.primary) > TestQueryFiltering(client, node.primary) > node.Release() > - > + > nodes = qa_config.AcquireManyNodes(2) > TestGroupOperations(client, nodes[0].primary, nodes[1].primary) > qa_config.ReleaseManyNodes(nodes) > > + TestNetworks(client) > + > > def Usage(): > sys.stderr.write("Usage:\n\trapi-workload.py qa-config-file") > -- > 1.8.5.1 > > LGTM, thanks -- -- Helga Velroyen | Software Engineer | [email protected] | Google Germany GmbH Dienerstr. 12 80331 München Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg Geschäftsführer: Graham Law, Christine Elizabeth Flores
