--- /dev/null
+"""
+CSIT test tools.
+Authors: Baohua Yang@IBM, Denghui Huang@IBM
+Updated: 2013-11-01
+"""
+
+import sys
+
+sys.path.append('..')
+from restlib import * # noqa
+from testmodule import TestModule
+
+sys.path.remove('..')
+
+
+class ContainerManager(TestModule):
+ """
+ Test for the container manager.
+ Start 2-layer tree topology network. e.g., in Mininet, run
+ 'sudo mn --controller=remote,ip=127.0.0.1 --mac --topo tree,2'
+ """
+
+ def __init__(self, restSubContext='/controller/nb/v2/containermanager', user=DEFAULT_USER, password=DEFAULT_PWD,
+ container=None, contentType='json', prefix=DEFAULT_PREFIX):
+ super(self.__class__, self).__init__(restSubContext, user, password, container, contentType, prefix)
+
+ def get_containers(self):
+ """
+ The name is suggested to match the NB API.
+ Show the containers
+ """
+ return super(self.__class__, self).get_entries('containers')
+
+ def add_container(self, name, body):
+ """
+ Add a container
+ """
+ super(self.__class__, self).add_entry('container', name, body)
+
+ def remove_container(self, name):
+ """
+ Remove a container
+ """
+ super(self.__class__, self).remove_entry('container', name)
+
+ def test_container_operations(self, name, body):
+ """
+ Test subnet operations, like adding and removeing a subnet.
+ >>> ContainerManager().test_container_operations('cont1',{'container':'cont1','flowSpecs': [],'staticVlan':'10',
+ 'nodeConnectors':["OF|1@OF|00:00:00:00:00:00:00:01","OF|23@OF|00:00:00:00:00:00:20:21"]})
+ True
+ """
+ return super(self.__class__, self).test_add_remove_operations('containers', 'container', name, body,
+ 'containerConfig')