PyTest, test to cover VM creation a ovs nets
[osm/openvim.git] / test / fixtures / pre / pre_fixtures_create.py
diff --git a/test/fixtures/pre/pre_fixtures_create.py b/test/fixtures/pre/pre_fixtures_create.py
new file mode 100644 (file)
index 0000000..2ad733e
--- /dev/null
@@ -0,0 +1,168 @@
+import pytest
+import os
+from ...lib.ssh import *
+from ...lib.test_utils import *
+
+
+@pytest.fixture(autouse=True)
+def pre_launch_openvim_service():
+    """
+    Fixture to be executed before test
+    :param request: argument for a fixture... can be a list, dict, etc
+    :param request:
+    :return:
+    """
+    service_path = os.path.join(os.environ['OPENVIM_ROOT_FOLDER'], 'scripts', 'service-openvim')
+
+    execute_local('{} stop'.format(service_path))
+    print "launching service openvim"
+    execute_local('{} start'.format(service_path))
+    out = execute_local('{} -h '.format(service_path))
+    assert out
+
+@pytest.fixture()
+def pre_create_flavor(request):
+    """
+    Fixture to be executed before test
+    :param request: argument for a fixture... can be a list, dict, etc
+    :param request:
+    :return:
+    """
+    if hasattr(request, 'config'):
+        config_path = request.config.getoption('config')
+        config = get_config(config_path)
+        flavor = config['flavor']
+
+        openvim_path = os.path.join(os.environ['OPENVIM_ROOT_FOLDER'], 'openvim')
+
+        flavor_id = execute_local("{} flavor-create {}".format(openvim_path, flavor))
+        flavor_id = parse_uuid(flavor_id)
+        assert flavor_id
+        os.environ['OPENVIM_TEST_FLAVOR'] = flavor_id
+
+
+@pytest.fixture()
+def pre_create_host(request):
+    """
+    Fixture to be executed before test
+    :param request: argument for a fixture... can be a list, dict, etc
+    :param request:
+    :return:
+    """
+    if hasattr(request, 'config'):
+        config_path = request.config.getoption('config')
+        config = get_config(config_path)
+
+        if config['create_inf']:
+            hosts = config['host']
+            counter = 0
+            for key, value in hosts.iteritems():
+                openvim_path = os.path.join(os.environ['OPENVIM_ROOT_FOLDER'], 'openvim')
+
+                host_id = execute_local("{} host-add {}".format(openvim_path, value))
+                host_id = parse_uuid(host_id)
+                assert host_id
+                os.environ['OPENVIM_TEST_HOST_' + str(counter)] = host_id
+                counter += 1
+
+
+@pytest.fixture()
+def pre_create_image(request):
+    """
+    Fixture to be executed before test
+    :param request: argument for a fixture... can be a list, dict, etc
+    :param request:
+    :return:
+    """
+    if hasattr(request, 'config'):
+        config_path = request.config.getoption('config')
+        config = get_config(config_path)
+        img = config['image']
+
+        openvim_path = os.path.join(os.environ['OPENVIM_ROOT_FOLDER'], 'openvim')
+        image_id = execute_local("{} image-create {}".format(openvim_path, img))
+        image_id = parse_uuid(image_id)
+        assert image_id
+        os.environ['OPENVIM_TEST_IMAGE'] = image_id
+
+
+@pytest.fixture()
+def pre_create_image(request):
+    """
+    Fixture to be executed before test
+    :param request: argument for a fixture... can be a list, dict, etc
+    :param request:
+    :return:
+    """
+    if hasattr(request, 'config'):
+        config_path = request.config.getoption('config')
+        config = get_config(config_path)
+        img = config['image']
+        openvim_path = os.path.join(os.environ['OPENVIM_ROOT_FOLDER'], 'openvim')
+        image_id = execute_local("{} image-create {}".format(openvim_path, img))
+        image_id = parse_uuid(image_id)
+        assert image_id
+        os.environ['OPENVIM_TEST_IMAGE'] = image_id
+
+
+@pytest.fixture()
+def pre_create_net(request):
+    """
+    Fixture to be executed before test
+    :param request: argument for a fixture... can be a list, dict, etc
+    :return:
+    """
+    if hasattr(request, 'config'):
+        config_path = request.config.getoption('config')
+        config = get_config(config_path)
+        if config['create_inf']:
+            net_yaml = config['net']
+            openvim_path = os.path.join(os.environ['OPENVIM_ROOT_FOLDER'], 'openvim')
+            net_id = execute_local("{} net-create {}".format(openvim_path, net_yaml))
+            net_id = parse_uuid(net_id)
+            assert net_id
+
+            vlan = execute_local("{} net-list {} -vvv | grep provider:vlan:".format(openvim_path, net_id))
+            vlan = vlan.replace('provider:vlan:','')
+            vlan = vlan.replace(' ', '')
+            vlan = vlan.replace('\n', '')
+
+            os.environ['OPENVIM_TEST_MGMT_NET'] = net_id
+            os.environ['OPENVIM_TEST_MGMT_NET_VLAN'] = vlan
+
+
+@pytest.fixture()
+def pre_create_tenant(request):
+    """
+    Fixture to be executed before test
+    :param request: argument for a fixture... can be a list, dict, etc
+    :param monkeypatch:
+    :return:
+    """
+
+    if hasattr(request, 'config'):
+        config_path = request.config.getoption('config')
+        config = get_config(config_path)
+        tenant_yaml = config['tenant']
+        openvim_path = os.path.join(os.environ['OPENVIM_ROOT_FOLDER'], 'openvim')
+
+        tenant_id = execute_local("{} tenant-create {}".format(openvim_path, tenant_yaml))
+        tenant_id = parse_uuid(tenant_id)
+        assert tenant_id
+        os.environ['OPENVIM_TENANT'] = tenant_id
+
+
+@pytest.fixture()
+def pre_init_db(request):
+    """
+    Fixture to be executed before test
+    :param request: argument for a fixture... can be a list, dict, etc
+    :param request:
+    :return:
+    """
+    if hasattr(request, 'config'):
+        config_path = request.config.getoption('config')
+        config = get_config(config_path)
+        if config['create_inf']:
+            init_db_path = os.path.join(os.environ['OPENVIM_ROOT_FOLDER'], 'database_utils', 'init_vim_db.sh')
+            execute_local('{}'.format(init_db_path))