partial integration with master branch
Change-Id: I07e6266b021f038712d74a0af67a45e012753e34
Signed-off-by: lombardofr <lombardo@everyup.it>
diff --git a/instancehandler/template/instance_list.html b/instancehandler/template/instance_list.html
index ff76215..9baae4c 100644
--- a/instancehandler/template/instance_list.html
+++ b/instancehandler/template/instance_list.html
@@ -47,6 +47,8 @@
{% include 'modal/instance_create.html' %}
{% include 'modal/instance_show.html' %}
{% include 'modal/instance_new_action.html' %}
+ {% include 'modal/instance_new_alarm.html' %}
+ {% include 'modal/instance_export_metric.html' %}
{% endblock %}
{% block resource_block %}
diff --git a/instancehandler/template/instance_list_ns.html b/instancehandler/template/instance_list_ns.html
index 7743043..dd84d47 100644
--- a/instancehandler/template/instance_list_ns.html
+++ b/instancehandler/template/instance_list_ns.html
@@ -75,14 +75,21 @@
<ul class="dropdown-menu">
<li><a href="#"
onclick="javascript:performAction('{% url 'projects:instances:action' instance_id=i|get:'_id' project_id=project_id type=type %}')">
- <i class="fa fa-magic"></i>Exec NS Primitive</a></li>
+ <i class="fa fa-magic"></i> Exec NS Primitive</a></li>
<li>
<a href="{% url 'projects:instances:ns_operations' project_id=project_id type=type instance_id=i|get:'_id' %}">
- <i class="fa fa-list"></i>Active operations</a></li>
+ <i class="fa fa-list"></i> Active operations</a></li>
+ <li class="divider"></li>
+ <li><a href="#"
+ onclick="javascript:newAlarmNs('{% url 'projects:instances:ns_create_alarm' instance_id=i|get:'_id' project_id=project_id type=type %}')">
+ <i class="far fa-bell"></i> New Alarm</a></li>
+ <li><a href="#"
+ onclick="javascript:exportMetricNs('{% url 'projects:instances:ns_export_metric' instance_id=i|get:'_id' project_id=project_id type=type %}')">
+ <i class="far fa-chart-bar"></i> Export metric</a></li>
<li class="divider"></li>
<li>
<a href="javascript:deleteNs('{% url 'projects:instances:delete' instance_id=i|get:'_id' project_id=project_id type=type %}', true)">
- <i class="far fa-trash-alt" style="color:red" ></i>Force delete</a></li>
+ <i class="far fa-trash-alt" style="color:red" ></i> Force delete</a></li>
</ul>
diff --git a/instancehandler/urls.py b/instancehandler/urls.py
index 9474f1e..054c3ba 100644
--- a/instancehandler/urls.py
+++ b/instancehandler/urls.py
@@ -24,6 +24,8 @@
url(r'^(?P<type>[ns|vnf]+)/(?P<instance_id>[0-9a-z-]+)/action$', views.action, name='action'),
url(r'^(?P<type>[ns|vnf]+)/(?P<instance_id>[0-9a-z-]+)/operation$', views.ns_operations, name='ns_operations'),
url(r'^(?P<type>[ns|vnf]+)/(?P<instance_id>[0-9a-z-]+)/operation/(?P<op_id>[0-9a-z-]+)', views.ns_operation, name='ns_operation'),
+ url(r'^(?P<type>[ns|vnf]+)/(?P<instance_id>[0-9a-z-]+)/monitoring/alarm$', views.create_alarm, name='ns_create_alarm'),
+ url(r'^(?P<type>[ns|vnf]+)/(?P<instance_id>[0-9a-z-]+)/monitoring/metric$', views.export_metric, name='ns_export_metric'),
url(r'^(?P<type>[ns|vnf]+)/(?P<instance_id>[0-9a-z-]+)', views.show, name='show'),
]
diff --git a/instancehandler/views.py b/instancehandler/views.py
index c9808d6..d835de6 100644
--- a/instancehandler/views.py
+++ b/instancehandler/views.py
@@ -123,6 +123,47 @@
print result
return __response_handler(request, result)
+@login_required
+def export_metric(request, project_id=None, instance_id=None, type=None):
+
+ metric_data = request.POST.dict()
+
+ client = Client()
+ keys = ["collection_period",
+ "vnf_member_index",
+ "metric_name",
+ "correlation_id",
+ "vdu_name",
+ "collection_unit"]
+ metric_data = dict(filter(lambda i: i[0] in keys and len(i[1]) > 0, metric_data.items()))
+
+ response = client.ns_metric_export(instance_id, metric_data)
+
+ return __response_handler(request, {}, None, to_redirect=False,
+ status=response.status_code)
+
+@login_required
+def create_alarm(request, project_id=None, instance_id=None, type=None):
+ metric_data = request.POST.dict()
+ print metric_data
+ client = Client()
+
+
+ keys = ["threshold_value",
+ "vnf_member_index",
+ "metric_name",
+ "vdu_name",
+ "alarm_name",
+ "correlation_id",
+ "statistic",
+ "operation",
+ "severity"]
+ metric_data = dict(filter(lambda i: i[0] in keys and len(i[1]) > 0, metric_data.items()))
+
+ result = client.ns_alarm_create(instance_id, metric_data)
+ return __response_handler(request, {}, None, to_redirect=False,
+ status=result['status'] if 'status' in result else None)
+
def __response_handler(request, data_res, url=None, to_redirect=None, *args, **kwargs):
raw_content_types = request.META.get('HTTP_ACCEPT', '*/*').split(',')
@@ -132,3 +173,5 @@
return redirect(url, *args, **kwargs)
else:
return render(request, url, data_res)
+
+