summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/toaster/toastermain/management/commands
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/toaster/toastermain/management/commands')
-rw-r--r--bitbake/lib/toaster/toastermain/management/commands/perf.py68
1 files changed, 34 insertions, 34 deletions
diff --git a/bitbake/lib/toaster/toastermain/management/commands/perf.py b/bitbake/lib/toaster/toastermain/management/commands/perf.py
index 7d629fb37f..5c41c5b2f2 100644
--- a/bitbake/lib/toaster/toastermain/management/commands/perf.py
+++ b/bitbake/lib/toaster/toastermain/management/commands/perf.py
@@ -17,46 +17,46 @@ class Command(BaseCommand):
17 help = "Test the response time for all toaster urls" 17 help = "Test the response time for all toaster urls"
18 18
19 def handle(self, *args, **options): 19 def handle(self, *args, **options):
20 root_urlconf = __import__(settings.ROOT_URLCONF) 20 root_urlconf = __import__(settings.ROOT_URLCONF)
21 patterns = root_urlconf.urls.urlpatterns 21 patterns = root_urlconf.urls.urlpatterns
22 global full_url 22 global full_url
23 for pat in patterns: 23 for pat in patterns:
24 if pat.__class__.__name__ == 'RegexURLResolver': 24 if pat.__class__.__name__ == 'RegexURLResolver':
25 url_root_res = str(pat).split('^')[1].replace('>', '') 25 url_root_res = str(pat).split('^')[1].replace('>', '')
26 if 'gui' in url_root_res: 26 if 'gui' in url_root_res:
27 for url_patt in pat.url_patterns: 27 for url_patt in pat.url_patterns:
28 full_url = self.get_full_url(url_patt, url_root_res) 28 full_url = self.get_full_url(url_patt, url_root_res)
29 info = self.url_info(full_url) 29 info = self.url_info(full_url)
30 status_code = info[0] 30 status_code = info[0]
31 load_time = info[1] 31 load_time = info[1]
32 print('Trying \'' + full_url + '\', ' + str(status_code) + ', ' + str(load_time)) 32 print('Trying \'' + full_url + '\', ' + str(status_code) + ', ' + str(load_time))
33 33
34 def get_full_url(self, url_patt, url_root_res): 34 def get_full_url(self, url_patt, url_root_res):
35 full_url = str(url_patt).split('^')[1].replace('$>', '').replace('(?P<file_path>(?:/[', '/bin/busybox').replace('.*', '') 35 full_url = str(url_patt).split('^')[1].replace('$>', '').replace('(?P<file_path>(?:/[', '/bin/busybox').replace('.*', '')
36 full_url = str(url_root_res + full_url) 36 full_url = str(url_root_res + full_url)
37 full_url = re.sub('\(\?P<.*?>\\\d\+\)', '1', full_url) 37 full_url = re.sub('\(\?P<.*?>\\\d\+\)', '1', full_url)
38 full_url = 'http://localhost:8000/' + full_url 38 full_url = 'http://localhost:8000/' + full_url
39 return full_url 39 return full_url
40 40
41 def url_info(self, full_url): 41 def url_info(self, full_url):
42 client = Client() 42 client = Client()
43 info = [] 43 info = []
44 try: 44 try:
45 resp = client.get(full_url, follow = True) 45 resp = client.get(full_url, follow = True)
46 except Exception as e_status_code: 46 except Exception as e_status_code:
47 self.error('Url: %s, error: %s' % (full_url, e_status_code)) 47 self.error('Url: %s, error: %s' % (full_url, e_status_code))
48 resp = type('object', (), {'status_code':0, 'content': str(e_status_code)}) 48 resp = type('object', (), {'status_code':0, 'content': str(e_status_code)})
49 status_code = resp.status_code 49 status_code = resp.status_code
50 info.append(status_code) 50 info.append(status_code)
51 try: 51 try:
52 req = requests.get(full_url) 52 req = requests.get(full_url)
53 except Exception as e_load_time: 53 except Exception as e_load_time:
54 self.error('Url: %s, error: %s' % (full_url, e_load_time)) 54 self.error('Url: %s, error: %s' % (full_url, e_load_time))
55 load_time = req.elapsed 55 load_time = req.elapsed
56 info.append(load_time) 56 info.append(load_time)
57 return info 57 return info
58 58
59 def error(self, *args): 59 def error(self, *args):
60 for arg in args: 60 for arg in args:
61 print(arg, end=' ', file=sys.stderr) 61 print(arg, end=' ', file=sys.stderr)
62 print(file=sys.stderr) 62 print(file=sys.stderr)