ChrisPortman 7 лет назад
Родитель
Сommit
afb4c636fe
1 измененных файлов с 52 добавлено и 47 удалено
  1. 52 47
      netbox/templates/dcim/device_status.html

+ 52 - 47
netbox/templates/dcim/device_status.html

@@ -73,53 +73,58 @@ $(document).ready(function() {
         url: "{% url 'dcim-api:device-napalm' pk=device.pk %}?method=get_facts&method=get_environment",
         dataType: 'json',
         success: function(json) {
-            $('#hostname').html(json['get_facts']['hostname']);
-            $('#fqdn').html(json['get_facts']['fqdn']);
-            $('#vendor').html(json['get_facts']['vendor']);
-            $('#model').html(json['get_facts']['model']);
-            $('#serial_number').html(json['get_facts']['serial_number']);
-            $('#os_version').html(json['get_facts']['os_version']);
-            // Calculate uptime
-            var uptime = json['get_facts']['uptime'];
-            console.log(uptime);
-            var uptime_days = Math.floor(uptime / 86400);
-            var uptime_hours = Math.floor(uptime % 86400 / 3600);
-            var uptime_minutes = Math.floor(uptime % 3600 / 60);
-            $('#uptime').html(uptime_days + "d " + uptime_hours + "h " + uptime_minutes + "m");
-            $.each(json['get_environment']['cpu'], function(name, obj) {
-                var row="<tr><td>" + name + "</td><td>" + obj['%usage'] + "%</td></tr>";
-                $("#cpu").after(row)
-            });
-            $('#memory').after("<tr><td>Used</td><td>" + json['get_environment']['memory']['used_ram'] + "</td></tr>");
-            $('#memory').after("<tr><td>Available</td><td>" + json['get_environment']['memory']['available_ram'] + "</td></tr>");
-            $.each(json['get_environment']['temperature'], function(name, obj) {
-                var style = "success";
-                if (obj['is_alert']) {
-                    style = "warning";
-                } else if (obj['is_critical']) {
-                    style = "danger";
-                }
-                var row="<tr class=\"" + style +"\"><td>" + name + "</td><td>" + obj['temperature'] + "°C</td></tr>";
-                $("#temperature").after(row)
-            });
-            $.each(json['get_environment']['fans'], function(name, obj) {
-                var row;
-                if (obj['status']) {
-                    row="<tr class=\"success\"><td>" + name + "</td><td><i class=\"fa fa-check text-success\"></i></td></tr>";
-                } else {
-                    row="<tr class=\"error\"><td>" + name + "</td><td><i class=\"fa fa-close text-error\"></i></td></tr>";
-                }
-                $("#fans").after(row)
-            });
-            $.each(json['get_environment']['power'], function(name, obj) {
-                var row;
-                if (obj['status']) {
-                    row="<tr class=\"success\"><td>" + name + "</td><td><i class=\"fa fa-check text-success\"></i></td></tr>";
-                } else {
-                    row="<tr class=\"danger\"><td>" + name + "</td><td><i class=\"fa fa-close text-danger\"></i></td></tr>";
-                }
-                $("#power").after(row)
-            });
+            if (!json['get_facts']['error']) {
+                $('#hostname').html(json['get_facts']['hostname']);
+                $('#fqdn').html(json['get_facts']['fqdn']);
+                $('#vendor').html(json['get_facts']['vendor']);
+                $('#model').html(json['get_facts']['model']);
+                $('#serial_number').html(json['get_facts']['serial_number']);
+                $('#os_version').html(json['get_facts']['os_version']);
+                // Calculate uptime
+                var uptime = json['get_facts']['uptime'];
+                console.log(uptime);
+                var uptime_days = Math.floor(uptime / 86400);
+                var uptime_hours = Math.floor(uptime % 86400 / 3600);
+                var uptime_minutes = Math.floor(uptime % 3600 / 60);
+                $('#uptime').html(uptime_days + "d " + uptime_hours + "h " + uptime_minutes + "m");
+            }
+            
+            if (!json['get_environment']['error']) {
+                $.each(json['get_environment']['cpu'], function(name, obj) {
+                    var row="<tr><td>" + name + "</td><td>" + obj['%usage'] + "%</td></tr>";
+                    $("#cpu").after(row)
+                });
+                $('#memory').after("<tr><td>Used</td><td>" + json['get_environment']['memory']['used_ram'] + "</td></tr>");
+                $('#memory').after("<tr><td>Available</td><td>" + json['get_environment']['memory']['available_ram'] + "</td></tr>");
+                $.each(json['get_environment']['temperature'], function(name, obj) {
+                    var style = "success";
+                    if (obj['is_alert']) {
+                        style = "warning";
+                    } else if (obj['is_critical']) {
+                        style = "danger";
+                    }
+                    var row="<tr class=\"" + style +"\"><td>" + name + "</td><td>" + obj['temperature'] + "°C</td></tr>";
+                    $("#temperature").after(row)
+                });
+                $.each(json['get_environment']['fans'], function(name, obj) {
+                    var row;
+                    if (obj['status']) {
+                        row="<tr class=\"success\"><td>" + name + "</td><td><i class=\"fa fa-check text-success\"></i></td></tr>";
+                    } else {
+                        row="<tr class=\"error\"><td>" + name + "</td><td><i class=\"fa fa-close text-error\"></i></td></tr>";
+                    }
+                    $("#fans").after(row)
+                });
+                $.each(json['get_environment']['power'], function(name, obj) {
+                    var row;
+                    if (obj['status']) {
+                        row="<tr class=\"success\"><td>" + name + "</td><td><i class=\"fa fa-check text-success\"></i></td></tr>";
+                    } else {
+                        row="<tr class=\"danger\"><td>" + name + "</td><td><i class=\"fa fa-close text-danger\"></i></td></tr>";
+                    }
+                    $("#power").after(row)
+                });
+            }
         },
         error: function(xhr) {
             alert(xhr.responseText);