Actually iterate over all n's for parallel deploy test
[osm/vim-emu.git] / examples / performance_measurements / ping_pong_parallel_deploy.py
1 #!/usr/bin/env python2
2 # Copyright (c) 2019 Erik Schilling
3 # ALL RIGHTS RESERVED.
4 #
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
8 #
9 # http://www.apache.org/licenses/LICENSE-2.0
10 #
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16
17 import time
18
19 from emuvim.api.osm.pre_configured_osm import PreConfiguredOSM
20
21 import csv
22
23
24 with open('ping_pong_parallel_deploy_and_delete_%d.csv' % time.time(), 'w') as csvfile:
25 fieldnames = ['n', 'start', 'onboard', 'ns_start', 'num_failed', 'ns_delete', 'stop']
26 writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
27 writer.writeheader()
28
29 MAX = 30
30
31 for n in range(0, MAX + 1, 1):
32 start = time.time()
33 with PreConfiguredOSM() as osm:
34 start_done = time.time()
35 osm.onboard_vnfd('../vnfs/ping_vnf')
36 osm.onboard_vnfd('../vnfs/pong_vnf')
37 nsd_id = osm.onboard_nsd('../services/pingpong_ns')
38 onboard_done = time.time()
39 for i in range(n):
40 osm.ns_create('pingpong-test-%d' % i, nsd_id)
41
42 _, num_failed = osm.ns_wait_until_all_in_status('running', 'failed')
43
44 ns_start_done = time.time()
45
46 for ns in osm.ns_list():
47 osm.ns_delete(ns['id'])
48
49 osm.ns_wait_until_all_in_status('terminated')
50
51 ns_delete_done = time.time()
52 stop_done = time.time()
53
54 measurement = {
55 'n': n,
56 'start': start_done - start,
57 'onboard': onboard_done - start_done,
58 'ns_start': ns_start_done - onboard_done,
59 'num_failed': num_failed,
60 'ns_delete': ns_delete_done - ns_start_done,
61 'stop': stop_done - ns_delete_done,
62 }
63 writer.writerow(measurement)
64 csvfile.flush()