mirror of
https://github.com/OpenBankProject/API-Manager.git
synced 2026-02-06 18:56:48 +00:00
https://manager.ahlisandbox.com/metrics/summary still throws a 500
This commit is contained in:
parent
b11b85a9f1
commit
331fcf74d5
@ -51,6 +51,7 @@ INSTALLED_APPS = [
|
||||
'obp',
|
||||
'consumers',
|
||||
'users',
|
||||
'branches',
|
||||
'entitlementrequests',
|
||||
'customers',
|
||||
'metrics',
|
||||
|
||||
@ -31,6 +31,7 @@ urlpatterns = [
|
||||
url(r'^consumers/', include('consumers.urls')),
|
||||
url(r'^entitlementrequests/', include('entitlementrequests.urls')),
|
||||
url(r'^users/', include('users.urls')),
|
||||
url(r'^branches/', include('branches.urls')),
|
||||
url(r'^customers/', include('customers.urls')),
|
||||
url(r'^metrics/', include('metrics.urls')),
|
||||
url(r'^config/', include('config.urls')),
|
||||
|
||||
@ -24,6 +24,8 @@ def api_username(request):
|
||||
username = data['username']
|
||||
except APIError as err:
|
||||
messages.error(request, err)
|
||||
except Exception as err:
|
||||
messages.error(request, err)
|
||||
return {'API_USERNAME': username}
|
||||
|
||||
|
||||
@ -37,6 +39,8 @@ def api_user_id(request):
|
||||
user_id = data['user_id']
|
||||
except APIError as err:
|
||||
messages.error(request, err)
|
||||
except Exception as err:
|
||||
messages.error(request, err)
|
||||
return {'API_USER_ID': user_id}
|
||||
|
||||
|
||||
|
||||
@ -69,28 +69,31 @@ class IndexView(LoginRequiredMixin, TemplateView):
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(IndexView, self).get_context_data(**kwargs)
|
||||
consumers = []
|
||||
sorted_consumers=[]
|
||||
api = API(self.request.session.get('obp'))
|
||||
try:
|
||||
urlpath = '/management/consumers'
|
||||
consumers = api.get(urlpath)
|
||||
consumers = FilterEnabled(context, self.request.GET)\
|
||||
.apply(consumers['list'])
|
||||
consumers = FilterAppType(context, self.request.GET)\
|
||||
.apply(consumers)
|
||||
consumers = FilterTime(context, self.request.GET, 'created')\
|
||||
.apply(consumers)
|
||||
consumers = self.scrub(consumers)
|
||||
if 'code' in consumers and consumers['code']==403:
|
||||
messages.error(self.request, consumers['message'])
|
||||
else:
|
||||
consumers = FilterEnabled(context, self.request.GET)\
|
||||
.apply(consumers['list'])
|
||||
consumers = FilterAppType(context, self.request.GET)\
|
||||
.apply(consumers)
|
||||
consumers = FilterTime(context, self.request.GET, 'created')\
|
||||
.apply(consumers)
|
||||
consumers = self.scrub(consumers)
|
||||
sorted_consumers = sorted(
|
||||
consumers, key=lambda consumer: consumer['created'], reverse=True)
|
||||
|
||||
context.update({
|
||||
'consumers': sorted_consumers,
|
||||
'statistics': self.compile_statistics(consumers),
|
||||
})
|
||||
except APIError as err:
|
||||
messages.error(self.request, err)
|
||||
except:
|
||||
messages.error(self.request, "Unknown")
|
||||
|
||||
sorted_consumers = sorted(
|
||||
consumers, key=lambda consumer: consumer['created'], reverse=True)
|
||||
context.update({
|
||||
'consumers': sorted_consumers,
|
||||
'statistics': self.compile_statistics(consumers),
|
||||
})
|
||||
return context
|
||||
|
||||
|
||||
|
||||
@ -33,10 +33,14 @@ class IndexView(LoginRequiredMixin, TemplateView):
|
||||
try:
|
||||
urlpath = '/entitlement-requests'
|
||||
entitlement_requests = api.get(urlpath)
|
||||
entitlement_requests = entitlement_requests['entitlement_requests']
|
||||
entitlement_requests = FilterTime(context, self.request.GET, 'created') \
|
||||
.apply(entitlement_requests)
|
||||
entitlement_requests = self.scrub(entitlement_requests)
|
||||
if 'code' in entitlement_requests and entitlement_requests['code']==403:
|
||||
messages.error(self.request, entitlement_requests['message'])
|
||||
entitlement_requests=[]
|
||||
else:
|
||||
entitlement_requests = entitlement_requests['entitlement_requests']
|
||||
entitlement_requests = FilterTime(context, self.request.GET, 'created') \
|
||||
.apply(entitlement_requests)
|
||||
entitlement_requests = self.scrub(entitlement_requests)
|
||||
except APIError as err:
|
||||
messages.error(self.request, err)
|
||||
except:
|
||||
|
||||
@ -259,9 +259,12 @@ class MetricsSummaryView(LoginRequiredMixin, TemplateView):
|
||||
api = API(self.request.session.get('obp'))
|
||||
try:
|
||||
metrics = api.get(urlpath)
|
||||
if metrics is not None and 'code' in metrics and metrics['code']==403:
|
||||
error_once_only(self.request, metrics['message'])
|
||||
# metrics = self.to_django(metrics)
|
||||
api_calls_total = metrics[0]["count"]
|
||||
average_response_time = metrics[0]["average_response_time"]
|
||||
else:
|
||||
api_calls_total = metrics[0]["count"]
|
||||
average_response_time = metrics[0]["average_response_time"]
|
||||
except APIError as err:
|
||||
error_once_only(self.request, err)
|
||||
except Exception as err:
|
||||
@ -274,9 +277,12 @@ class MetricsSummaryView(LoginRequiredMixin, TemplateView):
|
||||
api = API(self.request.session.get('obp'))
|
||||
try:
|
||||
metrics = api.get(urlpath)
|
||||
if metrics is not None and 'code' in metrics and metrics['code']==403:
|
||||
error_once_only(self.request, metrics['message'])
|
||||
# metrics = self.to_django(metrics)
|
||||
api_calls_total = metrics[0]["count"]
|
||||
average_response_time = metrics[0]["average_response_time"]
|
||||
else:
|
||||
api_calls_total = metrics[0]["count"]
|
||||
average_response_time = metrics[0]["average_response_time"]
|
||||
except APIError as err:
|
||||
error_once_only(self.request, err)
|
||||
except Exception as err:
|
||||
@ -303,8 +309,11 @@ class MetricsSummaryView(LoginRequiredMixin, TemplateView):
|
||||
api = API(self.request.session.get('obp'))
|
||||
try:
|
||||
metrics = api.get(urlpath)
|
||||
api_calls_total = metrics[0]["count"]
|
||||
average_response_time = metrics[0]["average_response_time"]
|
||||
if metrics is not None and 'code' in metrics and metrics['code']==403:
|
||||
error_once_only(self.request, metrics['message'])
|
||||
else:
|
||||
api_calls_total = metrics[0]["count"]
|
||||
average_response_time = metrics[0]["average_response_time"]
|
||||
except APIError as err:
|
||||
error_once_only(self.request, err)
|
||||
except Exception as err:
|
||||
@ -326,7 +335,10 @@ class MetricsSummaryView(LoginRequiredMixin, TemplateView):
|
||||
api = API(self.request.session.get('obp'))
|
||||
try:
|
||||
apps = api.get(urlpath)
|
||||
active_apps_list = list(apps)
|
||||
if apps is not None and 'code' in apps and apps['code']==403:
|
||||
error_once_only(self.request, apps['message'])
|
||||
else:
|
||||
active_apps_list = list(apps)
|
||||
except APIError as err:
|
||||
error_once_only(self.request, err)
|
||||
except Exception as err:
|
||||
@ -337,7 +349,10 @@ class MetricsSummaryView(LoginRequiredMixin, TemplateView):
|
||||
api = API(self.request.session.get('obp'))
|
||||
try:
|
||||
apps = api.get(urlpath)
|
||||
active_apps_list = list(apps)
|
||||
if apps is not None and 'code' in apps and apps['code']==403:
|
||||
error_once_only(self.request, apps['message'])
|
||||
else:
|
||||
active_apps_list = list(apps)
|
||||
except APIError as err:
|
||||
error_once_only(self.request, err)
|
||||
except Exception as err:
|
||||
@ -355,7 +370,10 @@ class MetricsSummaryView(LoginRequiredMixin, TemplateView):
|
||||
api = API(self.request.session.get('obp'))
|
||||
try:
|
||||
apps = api.get(urlpath)
|
||||
apps_list = apps["list"]
|
||||
if apps is not None and 'code' in apps and apps['code'] == 403:
|
||||
error_once_only(self.request, apps['message'])
|
||||
else:
|
||||
apps_list = apps["list"]
|
||||
except APIError as err:
|
||||
error_once_only(self.request, err)
|
||||
except Exception as err:
|
||||
@ -423,10 +441,13 @@ class MetricsSummaryView(LoginRequiredMixin, TemplateView):
|
||||
api = API(self.request.session.get('obp'))
|
||||
try:
|
||||
metrics = api.get(urlpath)
|
||||
result = metrics[0]["count"]
|
||||
result_list_pure.append(result)
|
||||
result_list.append('{} - {} # {}'.format(date_from, date_to, result))
|
||||
sum += result
|
||||
if metrics is not None and 'code' in metrics and metrics['code'] == 403:
|
||||
error_once_only(self.request, metrics['message'])
|
||||
else:
|
||||
result = metrics[0]["count"]
|
||||
result_list_pure.append(result)
|
||||
result_list.append('{} - {} # {}'.format(date_from, date_to, result))
|
||||
sum += result
|
||||
except APIError as err:
|
||||
error_once_only(self.request, err)
|
||||
except Exception as err:
|
||||
@ -442,10 +463,13 @@ class MetricsSummaryView(LoginRequiredMixin, TemplateView):
|
||||
api = API(self.request.session.get('obp'))
|
||||
try:
|
||||
metrics = api.get(urlpath)
|
||||
result = metrics[0]["count"]
|
||||
result_list_pure.append(result)
|
||||
result_list.append('{} - {} # {}'.format(date_from, date_to, result))
|
||||
sum += result
|
||||
if metrics is not None and 'code' in metrics and metrics['code'] == 403:
|
||||
error_once_only(self.request, metrics['message'])
|
||||
else:
|
||||
result = metrics[0]["count"]
|
||||
result_list_pure.append(result)
|
||||
result_list.append('{} - {} # {}'.format(date_from, date_to, result))
|
||||
sum += result
|
||||
except APIError as err:
|
||||
error_once_only(self.request, err)
|
||||
except Exception as err:
|
||||
@ -588,6 +612,10 @@ class MetricsSummaryView(LoginRequiredMixin, TemplateView):
|
||||
try:
|
||||
urlpath = '/users'
|
||||
users = api.get(urlpath)
|
||||
if users is not None and 'code' in users and users['code'] == 403:
|
||||
error_once_only(self.request, users['message'])
|
||||
if 'users' not in users:
|
||||
users['users']=[]
|
||||
except APIError as err:
|
||||
error_once_only(self.request, err)
|
||||
except Exception as err:
|
||||
@ -617,7 +645,12 @@ class MetricsSummaryView(LoginRequiredMixin, TemplateView):
|
||||
urlpath = '/management/metrics/top-apis?from_date={}&to_date={}'.format(from_date, to_date)
|
||||
api = API(self.request.session.get('obp'))
|
||||
try:
|
||||
top_apis = api.get(urlpath)['top_apis']
|
||||
top_apis = api.get(urlpath)
|
||||
if top_apis is not None and 'code' in top_apis and top_apis['code']==403:
|
||||
error_once_only(self.request, top_apis['message'])
|
||||
top_apis=[]
|
||||
else:
|
||||
top_apis = top_apis['top_apis']
|
||||
except APIError as err:
|
||||
error_once_only(self.request, err)
|
||||
except Exception as err:
|
||||
@ -627,7 +660,12 @@ class MetricsSummaryView(LoginRequiredMixin, TemplateView):
|
||||
from_date, to_date, ",".join(EXCLUDE_APPS), ",".join(EXCLUDE_FUNCTIONS), ",".join(EXCLUDE_URL_PATTERN))
|
||||
api = API(self.request.session.get('obp'))
|
||||
try:
|
||||
top_apis = api.get(urlpath)['top_apis']
|
||||
top_apis = api.get(urlpath)
|
||||
if top_apis is not None and 'code' in top_apis and top_apis['code']==403:
|
||||
error_once_only(self.request, top_apis['message'])
|
||||
top_apis=[]
|
||||
else:
|
||||
top_apis = top_apis['top_apis']
|
||||
except APIError as err:
|
||||
error_once_only(self.request, err)
|
||||
except Exception as err:
|
||||
@ -666,7 +704,11 @@ class MetricsSummaryView(LoginRequiredMixin, TemplateView):
|
||||
api = API(self.request.session.get('obp'))
|
||||
try:
|
||||
top_apps_using_warehouse = api.get(urlpath)
|
||||
top_apps_using_warehouse = top_apps_using_warehouse["top_consumers"][:2]
|
||||
if top_apps_using_warehouse is not None and 'code' in top_apps_using_warehouse and top_apps_using_warehouse['code']==403:
|
||||
error_once_only(self.request, top_apps_using_warehouse['message'])
|
||||
top_apps_using_warehouse = []
|
||||
else:
|
||||
top_apps_using_warehouse = top_apps_using_warehouse["top_consumers"][:2]
|
||||
except APIError as err:
|
||||
error_once_only(self.request, err)
|
||||
except Exception as err:
|
||||
@ -684,7 +726,10 @@ class MetricsSummaryView(LoginRequiredMixin, TemplateView):
|
||||
api = API(self.request.session.get('obp'))
|
||||
try:
|
||||
apps = api.get(urlpath_consumers)
|
||||
apps_list = apps["list"]
|
||||
if apps is not None and 'code' in apps and apps['code']==403:
|
||||
error_once_only(self.request, apps['message'])
|
||||
else:
|
||||
apps_list = apps["list"]
|
||||
except APIError as err:
|
||||
error_once_only(self.request, err)
|
||||
except Exception as err:
|
||||
@ -705,7 +750,11 @@ class MetricsSummaryView(LoginRequiredMixin, TemplateView):
|
||||
api = API(self.request.session.get('obp'))
|
||||
try:
|
||||
metrics = api.get(urlpath_metrics)
|
||||
metrics = list(metrics['metrics'])
|
||||
if metrics is not None and 'code' in metrics and metrics['code'] == 403:
|
||||
error_once_only(self.request, metrics['message'])
|
||||
metrics = []
|
||||
else:
|
||||
metrics = list(metrics['metrics'])
|
||||
if metrics:
|
||||
time_difference = datetime.datetime.strptime(metrics[0]['date'], '%Y-%m-%dT%H:%M:%S.%fZ') - datetime.datetime.strptime(app['created'], '%Y-%m-%dT%H:%M:%SZ')
|
||||
times_to_first_call.append(time_difference.total_seconds())
|
||||
|
||||
@ -51,27 +51,23 @@ class IndexView(LoginRequiredMixin, TemplateView):
|
||||
def get_users_rolenames(self, context):
|
||||
|
||||
api = API(self.request.session.get('obp'))
|
||||
try:
|
||||
urlpath = '/entitlements'
|
||||
entitlements = api.get(urlpath)
|
||||
except APIError as err:
|
||||
messages.error(self.request, err)
|
||||
return [], []
|
||||
except Exception as inst:
|
||||
messages.error(self.request, "Unknown Error {}".format(type(inst).__name__))
|
||||
return [], []
|
||||
|
||||
role_names = []
|
||||
try:
|
||||
for entitlement in entitlements['list']:
|
||||
role_names.append(entitlement['role_name'])
|
||||
urlpath = '/entitlements'
|
||||
entitlements = api.get(urlpath)
|
||||
if 'code' in entitlements and entitlements['code']==400:
|
||||
messages.error(self.request, entitlements['message'])
|
||||
else:
|
||||
for entitlement in entitlements['list']:
|
||||
role_names.append(entitlement['role_name'])
|
||||
except APIError as err:
|
||||
messages.error(self.request, err)
|
||||
return [], []
|
||||
# fail gracefully in case API provides new structure
|
||||
except KeyError as err:
|
||||
messages.error(self.request, 'KeyError: {}'.format(err))
|
||||
return [], []
|
||||
except Exception as inst:
|
||||
messages.error(self.request, "Unknown Error {}".format(type(inst).__name__))
|
||||
return [], []
|
||||
|
||||
role_names = list(set(role_names))
|
||||
role_names.sort()
|
||||
@ -170,7 +166,10 @@ class DetailView(LoginRequiredMixin, FormView):
|
||||
try:
|
||||
urlpath = '/users/user_id/{}'.format(self.kwargs['user_id'])
|
||||
user = self.api.get(urlpath)
|
||||
context['form'].fields['user_id'].initial = user['user_id']
|
||||
if 'code' in user and user['code']==403:
|
||||
messages.error(self.request, user['message'])
|
||||
else:
|
||||
context['form'].fields['user_id'].initial = user['user_id']
|
||||
except APIError as err:
|
||||
messages.error(self.request, err)
|
||||
except:
|
||||
@ -211,18 +210,20 @@ class MyDetailView(LoginRequiredMixin, FormView):
|
||||
'role_name': data['role_name'],
|
||||
}
|
||||
entitlement = self.api.post(urlpath, payload=payload)
|
||||
if entitlement['code']==201:
|
||||
msg = 'Entitlement with role {} has been added.'.format(entitlement['role_name'])
|
||||
messages.success(self.request, msg)
|
||||
else:
|
||||
messages.error(self.request, entitlement['message'])
|
||||
self.success_url = self.request.path
|
||||
except APIError as err:
|
||||
messages.error(self.request, err)
|
||||
return super(MyDetailView, self).form_invalid(form)
|
||||
except:
|
||||
messages.error(self.request, 'Unknown Error')
|
||||
return super(MyDetailView, self).form_invalid(form)
|
||||
|
||||
msg = 'Entitlement with role {} has been added.'.format(
|
||||
entitlement['role_name'])
|
||||
messages.success(self.request, msg)
|
||||
self.success_url = self.request.path
|
||||
return super(MyDetailView, self).form_valid(form)
|
||||
else:
|
||||
return super(MyDetailView, self).form_valid(form)
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(MyDetailView, self).get_context_data(**kwargs)
|
||||
@ -253,10 +254,13 @@ class DeleteEntitlementView(LoginRequiredMixin, View):
|
||||
try:
|
||||
urlpath = '/users/{}/entitlement/{}'.format(
|
||||
kwargs['user_id'], kwargs['entitlement_id'])
|
||||
api.delete(urlpath)
|
||||
msg = 'Entitlement with role {} has been deleted.'.format(
|
||||
request.POST.get('role_name', '<undefined>'))
|
||||
messages.success(request, msg)
|
||||
result = api.delete(urlpath)
|
||||
if result is not None and 'code' in result and result['code']==400:
|
||||
messages.error(request, result['message'])
|
||||
else:
|
||||
msg = 'Entitlement with role {} has been deleted.'.format(
|
||||
request.POST.get('role_name', '<undefined>'))
|
||||
messages.success(request, msg)
|
||||
except APIError as err:
|
||||
messages.error(request, err)
|
||||
except:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user