1 {% extends
"base.html" %}
9 <!-- Codemirror core CSS -->
10 <link rel=
"stylesheet" href=
"/static/bower_components/codemirror/lib/codemirror.css">
11 <link rel=
"stylesheet" href=
"/static/bower_components/codemirror/addon/fold/foldgutter.css" />
12 <link rel=
"stylesheet" href=
"/static/bower_components/codemirror/theme/neat.css">
13 <link rel=
"stylesheet" href=
"/static/bower_components/codemirror/addon/dialog/dialog.css">
14 <link rel=
"stylesheet" href=
"/static/bower_components/codemirror/addon/display/fullscreen.css">
15 <link rel=
"stylesheet" href=
"/static/bower_components/select2/dist/css/select2.min.css">
16 <link rel=
"stylesheet" href=
"/static/css/lwuitable.css">
17 <link rel=
"stylesheet" href=
"/static/bower_components/datatables.net-bs/css/dataTables.bootstrap.min.css">
19 {% block title_header_big %}
22 {% block left_sidebar %}
23 {% include 'osm/osm_project_left_sidebar.html' %}
27 {% block breadcrumb_body %}
29 <li><a href=
"{% url 'instances:list' type=type %}">{{ type|upper }} Instances
</a></li>
32 {% block content_body %}
34 {% include 'modal/instance_create.html' %}
37 <div class=
"col-md-12">
40 {% include 'instance_list_ns.html' %}
41 {% elif type == 'vnf' %}
42 {% include 'instance_list_vnf.html' %}
48 {% include 'modal/instance_create.html' %}
49 {% include 'modal/instance_show.html' %}
50 {% include 'modal/instance_new_action.html' %}
51 {% include 'modal/instance_new_alarm.html' %}
52 {% include 'modal/instance_export_metric.html' %}
55 {% block resource_block %}
58 <script src=
"/static/bower_components/select2/dist/js/select2.js"></script>
59 <script src=
"/static/bower_components/codemirror/lib/codemirror.js"></script>
60 <script src=
"/static/bower_components/codemirror/addon/fold/foldcode.js"></script>
61 <script src=
"/static/bower_components/codemirror/addon/fold/foldgutter.js"></script>
62 <script src=
"/static/bower_components/codemirror/addon/fold/brace-fold.js"></script>
63 <script src=
"/static/bower_components/codemirror/mode/javascript/javascript.js"></script>
64 <script src=
"/static/bower_components/codemirror/addon/search/searchcursor.js"></script>
65 <script src=
"/static/bower_components/codemirror/addon/search/search.js"></script>
66 <script src=
"/static/bower_components/codemirror/addon/dialog/dialog.js"></script>
67 <script src=
"/static/bower_components/codemirror/addon/display/autorefresh.js"></script>
68 <script src=
"/static/bower_components/codemirror/addon/edit/matchbrackets.js"></script>
69 <script src=
"/static/bower_components/codemirror/addon/edit/closebrackets.js"></script>
70 <script src=
"/static/bower_components/codemirror/addon/display/fullscreen.js"></script>
71 <script src=
"/static/bower_components/codemirror/keymap/sublime.js"></script>
72 <script src=
"/static/src/instancehandler/instance_list.js"></script>
73 <script src=
"/static/src/instancehandler/instance_create.js"></script>
74 <script src=
"/static/bower_components/datatables.net/js/jquery.dataTables.min.js"></script>
75 <script src=
"/static/bower_components/datatables.net-bs/js/dataTables.bootstrap.min.js"></script>
78 var instance_type = '{{ type }}';
82 "render": function (data, type, row) {
83 return row[
"short-name"];
88 "render": function (data, type, row) {
94 "render": function (data, type, row) {
95 return row[
"nsd-name-ref"];
101 "render": function (data, type, row) {
102 if(row[
"operational-status"] === 'failed')
103 return '
<span class=
"label label-danger">'+ row[
"operational-status"] +'
</span>';
104 if(row[
"operational-status"] === 'init')
105 return '
<span class=
"label label-warning">'+ row[
"operational-status"] +'
</span>';
106 if(row[
"operational-status"] === 'running')
107 return '
<span class=
"label label-success">'+ row[
"operational-status"] +'
</span>';
108 return ''+row[
"operational-status"]+'';
114 "render": function (data, type, row) {
115 if(row[
"config-status"] === 'failed')
116 return '
<span class=
"label label-danger">'+ row[
"config-status"] +'
</span>';
117 if(row[
"config-status"] === 'init')
118 return '
<span class=
"label label-warning">'+ row[
"config-status"] +'
</span>';
119 if(row[
"config-status"] === 'running')
120 return '
<span class=
"label label-success">'+ row[
"config-status"] +'
</span>';
121 if(row[
"config-status"] === 'configured')
122 return '
<span class=
"label label-success">'+ row[
"config-status"] +'
</span>';
123 return ''+row[
"operational-status"]+'';
128 //
"className":
"ellipsis",
129 "render": function (data, type, row) {
130 return row[
"detailed-status"];
135 "render": function (data, type, row) {
136 return '
<div class=
"btn-group">\n' +
137 '
<button type=
"button" class=
"btn btn-default"\n' +
138 '
onclick=
"javascript:showInstanceDetails(\''+instance_type+'\', \''+row["_id
"]+'\')"\n' +
139 '
data-toggle=
"tooltip" data-placement=
"top" data-container=
"body" title=
"Show Info">\n' +
140 '
<i class=
"fa fa-info"></i>\n' +
142 '
<button type=
"button" class=
"btn btn-default"\n' +
143 '
onclick=
"javascript:deleteNs(\''+ row["short-name
"] +'\', \''+row["_id
"]+'\')"\n' +
144 '
data-toggle=
"tooltip" data-placement=
"top" data-container=
"body" title=
"Delete"><i\n' +
145 '
class=
"far fa-trash-alt"></i></button>\n' +
146 '
<button type=
"button" class=
"btn btn-default dropdown-toggle"\n' +
147 '
data-toggle=
"dropdown" aria-expanded=
"false">Actions\n' +
148 '
<span class=
"fa fa-caret-down"></span></button>\n' +
149 '
<ul class=
"dropdown-menu">\n' +
150 '
<li><a href=
"#"\n' +
151 '
onclick=
"javascript:performAction(\''+ row["short-name
"] +'\', \''+row["_id
"]+'\')">\n' +
152 '
<i class=
"fa fa-magic"></i> Exec NS Primitive
</a></li>\n' +
154 '
<a href=
"/instances/ns/' +row["_id
"] +'/operation">\n' +
155 '
<i class=
"fa fa-list"></i> Active operations
</a></li>\n' +
156 '
<li class=
"divider"></li>\n' +
157 '
<li><a href=
"#"\n' +
158 '
onclick=
"javascript:newAlarmNs(\''+ row["short-name
"] +'\', \''+row["_id
"]+'\')">\n' +
159 '
<i class=
"far fa-bell"></i> New Alarm
</a></li>\n' +
160 '
<li><a href=
"#"\n' +
161 '
onclick=
"javascript:exportMetricNs(\''+ row["short-name
"] +'\', \''+row["_id
"]+ '\')">\n' +
162 '
<i class=
"far fa-chart-bar"></i> Export metric
</a></li>\n' +
163 '
<li class=
"divider"></li>\n' +
165 '
<a href=
"javascript:deleteNs(\''+ row["short-name
"] +'\', \''+row["_id
"]+'\', true)">\n' +
166 '
<i class=
"far fa-trash-alt" style=
"color:red" ></i> Force delete
</a></li>\n' +
175 "render": function (data, type, row) {
181 "render": function (data, type, row) {
182 return '
<a href=
"javascript:openDescriptorView(\'vnfd\', \'' + row["_id
"]+'\')"> ' + row[
"vnfd-ref"] +'
</a>';
187 "render": function (data, type, row) {
188 return row[
"member-vnf-index-ref"];
193 "render": function (data, type, row) {
194 return row[
"nsr-id-ref"];
199 "render": function (data, type, row) {
200 return moment.unix(row['created-time']).format('YYYY-MM-DD hh:mm:ss a');
205 "render": function (data, type, row) {
206 return '
<div class=
"btn-group">\n' +
207 '
<button type=
"button" class=
"btn btn-default"\n' +
208 '
onclick=
"javascript:showInstanceDetails(\''+instance_type+'\', \''+row["_id
"]+'\')"\n' +
209 '
data-toggle=
"tooltip" data-placement=
"top" data-container=
"body" title=
"Show Info">\n' +
210 '
<i class=
"fa fa-info"></i>\n' +
218 $(document).ready(function () {
219 var table = $('#instances_table').DataTable({
222 "url":
"/instances/" + instance_type +
"/list/",
223 "dataSrc": function (json) {
224 return json.instances;
228 console.log(
"no auth");
229 moveToLogin(window.location.pathname);
232 "error": function(hxr, error, thrown){
237 "columns": row_builder[instance_type]
241 setInterval(function () {
251 {% include
"footer.html" %}