3 from fixtures
.pre
.pre_fixtures_create
import *
4 from fixtures
.post
.post_fixtures_delete
import *
6 from lib
.test_utils
import *
9 @pytest.mark
.usefixtures('pre_init_db', 'pre_create_host', 'pre_create_tenant', 'pre_create_net', 'pre_create_image',
10 'pre_create_flavor', 'post_delete_net', 'post_delete_host')
11 def test_osm_01_create_vm(request
, pre_init_db
,
23 Create a vm and check network connection btw qrouter namespace and vm, evaluate using ping againt the ip given by
24 ovs dhcp server. Openvim is launched as a service by pre_launch_openvim_service before regresion start, is stopped
25 by post_stop_openvim_service after test regresion ends.
27 :param request: Users argument --config=<test yaml>
28 :param pre_init_db: initialize the openvim db
29 :param pre_create_host: Create hosts
30 :param pre_create_tenant: Create tenant
31 :param pre_create_net: Create a mgmt net
32 :param pre_create_image: Create an image
33 :param pre_create_flavor: Create a flavor
34 :param post_delete_image: Delete the image declare by the test
35 :param post_delete_flavor: Delete the flavor declare by the test
36 :param post_delete_vm: Delete the vm declare by the test
37 :param post_delete_net: Delete the mgmt net declare by the test
38 :param post_delete_host: remove the host attached by the test
41 config_path
= request
.config
.getoption('config')
42 config
= get_config(config_path
)
43 if not config
['fake_mode']:
44 vm_id
= create_vm_per_host(config
, 1)
47 vlan_id
= os
.environ
['OPENVIM_TEST_MGMT_NET_VLAN']
52 # check ping against the vm
53 result
= ping_ok(vlan_id
, ip
)
57 @pytest.mark
.usefixtures('pre_init_db', 'pre_create_host', 'pre_create_tenant', 'pre_create_net', 'pre_create_image',
58 'pre_create_flavor', 'post_delete_net','post_delete_host')
59 def test_osm_02_create_2_vm_ping_btw(request
, pre_init_db
,
71 Create 2 vms and check network connection btw qrouter namespace and vms, after ssh ready check ping btw both vms
72 to validate the vlxan mesh btw computes is ok. The vms ips are handle by ovs dhcp server. Openvim is launched as a
73 service by pre_launch_openvim_service before regresion start, is stopped by post_stop_openvim_service after
76 :param request: Users argument --config=<test yaml>
77 :param pre_init_db: initialize the openvim db
78 :param pre_create_host: Create hosts
79 :param pre_create_tenant: Create tenant
80 :param pre_create_net: Create a mgmt net
81 :param pre_create_image: Create an image
82 :param pre_create_flavor: Create a flavor
83 :param post_delete_image: Delete the image declare by the test
84 :param post_delete_flavor: Delete the flavor declare by the test
85 :param post_delete_vm: Delete the vm declare by the test
86 :param post_delete_net: Delete the mgmt net declare by the test
87 :param post_delete_host: remove the host attached by the test
90 config_path
= request
.config
.getoption('config')
91 config
= get_config(config_path
)
93 if not config
['fake_mode']:
94 vm_id_1
= create_vm_per_host(config
, 0)
97 vm_id_2
= create_vm_per_host(config
, 1)
101 vlan_id
= os
.environ
['OPENVIM_TEST_MGMT_NET_VLAN']
105 ip_1
= get_vm_ip(vm_id_1
)
106 ip_2
= get_vm_ip(vm_id_2
)
109 # check ping against the vms
110 result
= ping_ok(vlan_id
, ip_1
)
112 result
= ping_ok(vlan_id
, ip_2
)
115 # Wait for ssh to be ready
116 print "Wait for ssh to be ready"
118 result
= ping_ok_btw_2_vms(vlan_id
, ip_1
, ip_2
)
122 @pytest.mark
.usefixtures('pre_init_db', 'pre_create_host', 'pre_create_tenant', 'pre_create_net', 'pre_create_image',
123 'pre_create_flavor', 'post_delete_net','post_delete_host')
124 def test_osm_03_test_service_openvim(request
, pre_init_db
,
135 Create a net, restart openvim service and check net status to avoid issues with preexisting nets during openvim
136 startup. Openvim is launched as a service by pre_launch_openvim_service before regresion start, is stopped by
137 post_stop_openvim_service after test regresion ends.
139 :param request: Users argument --config=<test yaml>
140 :param pre_init_db: initialize the openvim db
141 :param pre_create_host: Create hosts
142 :param pre_create_tenant: Create tenant
143 :param pre_create_net: Create a mgmt net
144 :param pre_create_image: Create an image
145 :param pre_create_flavor: Create a flavor
146 :param post_delete_image: Delete the image declare by the test
147 :param post_delete_flavor: Delete the flavor declare by the test
148 :param post_delete_net: Delete the mgmt net declare by the test
149 :param post_delete_host: remove the host attached by the test
153 net_id
= os
.environ
['OPENVIM_TEST_MGMT_NET']
154 status
= get_net_status(net_id
)
155 if 'ACTIVE' in status
:
156 service_path
= os
.path
.join(os
.environ
['OPENVIM_ROOT_FOLDER'], 'scripts', 'service-openvim')
157 execute_local('{} restart'.format(service_path
))
159 # force test fail if net status is not ACTIVE
162 status
= get_net_status(net_id
)
163 if 'ACTIVE' not in status
:
167 def create_vm_per_host(config
, host_number
=0):
169 Create a vm in an specific compute.
170 :param config: test config
171 :param host_number: compute number to be depolyed.
174 # get env var for server descriptor
175 tenant_id
= os
.environ
['OPENVIM_TENANT']
176 image_id
= os
.environ
['OPENVIM_TEST_IMAGE']
177 flavor_id
= os
.environ
['OPENVIM_TEST_FLAVOR']
178 net_id
= os
.environ
['OPENVIM_TEST_MGMT_NET']
180 values
= {'OPENVIM_TENANT': tenant_id
,
181 'OPENVIM_TEST_IMAGE': image_id
,
182 'OPENVIM_TEST_FLAVOR': flavor_id
,
183 'OPENVIM_TEST_MGMT_NET': net_id
,
184 'HOST_ID': os
.environ
['OPENVIM_TEST_HOST_' + str(host_number
)]
187 descriptor
= template_substitute(config
['server'], values
)
188 save_tmp_yaml('tmp.yaml', descriptor
)
190 openvim_path
= os
.path
.join(os
.environ
['OPENVIM_ROOT_FOLDER'], 'openvim')
191 vm_id
= execute_local("{} vm-create {}".format(openvim_path
, 'tmp.yaml'))
192 vm_id
= parse_uuid(vm_id
)
193 delete_tmp_yaml('tmp.yaml')