From abc0428d253f882d7f3191882c8ac2bdfd80f800 Mon Sep 17 00:00:00 2001 From: Arthur Roberts Date: Sun, 26 May 2024 16:36:21 +0100 Subject: [PATCH] Added Networks and some style changes --- src/main.rs | 30 ++++++++++++-- templates/index.html.tera | 83 ++++++++++++++++++++++----------------- 2 files changed, 73 insertions(+), 40 deletions(-) diff --git a/src/main.rs b/src/main.rs index 062d0a2..159e902 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,9 +1,9 @@ extern crate rocket; +use readable::byte::Byte; +use readable::up::UptimeFull; use rocket::serde::Serialize; use rocket::{get, launch, routes}; use rocket_dyn_templates::{context, Template}; -use readable::byte::Byte; -use readable::up::UptimeFull; use std::path::Path; use reqwest; use std::collections::HashMap; @@ -37,11 +37,19 @@ struct RamInfo { used_swap: String, } +#[derive(Serialize, Debug)] +struct NetworkInfo { + name: String, + total_sent: String, + total_received: String, +} + #[derive(Serialize, Debug)] struct SysInfo { ram: RamInfo, disks: Vec, components: Vec, + network_ifs: Vec, hostname: Option, operating_system: Option, uptime: String, @@ -53,7 +61,11 @@ fn get_system_info() -> SysInfo { let mut sys = System::new_all(); sys.refresh_all(); let cpu_load = System::load_average(); - let cpu_load = (format!("{:.2}", cpu_load.one), format!("{:.2}", cpu_load.five), format!("{:.2}", cpu_load.fifteen)); + let cpu_load = ( + format!("{:.2}", cpu_load.one), + format!("{:.2}", cpu_load.five), + format!("{:.2}", cpu_load.fifteen), + ); let disks = Disks::new_with_refreshed_list(); let mut disks_context = Vec::new(); @@ -79,6 +91,15 @@ fn get_system_info() -> SysInfo { }) } + let networks = Networks::new_with_refreshed_list(); + let mut network_ifs = Vec::new(); + for (interface_name, network) in &networks { + network_ifs.push(NetworkInfo { + name: interface_name.to_string(), + total_sent: Byte::from(network.total_transmitted()).to_string(), + total_received: Byte::from(network.total_received()).to_string() + }); + } SysInfo { disks: disks_context, @@ -87,8 +108,9 @@ fn get_system_info() -> SysInfo { total_memory: Byte::from(sys.total_memory()).to_string(), used_memory: Byte::from(sys.used_memory()).to_string(), total_swap: Byte::from(sys.total_swap()).to_string(), - used_swap: Byte::from(sys.used_swap()).to_string() + used_swap: Byte::from(sys.used_swap()).to_string(), }, + network_ifs: network_ifs, hostname: System::host_name(), operating_system: System::long_os_version(), uptime: UptimeFull::from(System::uptime()).to_string(), diff --git a/templates/index.html.tera b/templates/index.html.tera index bbffae1..5aeab9f 100644 --- a/templates/index.html.tera +++ b/templates/index.html.tera @@ -24,48 +24,59 @@ } .warning { color: yellow; + .node_data { + font-family: monospace, monospace; }

Node Device Info

-
-
-

Sys Info

-

Hostname: {{ system.hostname }}

-

Uptime: {{ system.uptime }}

-

OS: {{ system.operating_system }}

-

Average Load: {{ system.average_load.0 }} {{ system.average_load.1 }} {{ system.average_load.2 }}

- {% if system.restart_needed %} -

RESTART NEEDED

- {% endif %} +
+
+

Sys Info

+

Hostname: {{ system.hostname }}

+

Uptime: {{ system.uptime }}

+

OS: {{ system.operating_system }}

+

Average Load: {{ system.average_load.0 }} {{ system.average_load.1 }} {{ system.average_load.2 }}

+ {% if system.restart_needed %} +

RESTART NEEDED

+ {% endif %} +
+
+

HDD Info

+ {% for disk in system.disks %} +

{{disk.name}}

+

Mounted at: {{disk.mount_point}}

+

{{disk.available_space}} of {{disk.total_space}} available

+ + {% if not loop.last %} +
+ {% endif %} + {% endfor %} +
+
+

Temperatures

+ {% for comp in system.components %} +

{{ comp.name }} - {{ comp.temperature }}°C

+ {% if not loop.last %} +
+ {% endif %} + {% endfor %} +
+
+

RAM

+

{{ system.ram.used_memory }} of {{ system.ram.total_memory }} RAM current in use

+

{{ system.ram.used_swap }} of {{ system.ram.total_swap }} swap currently in use

+
+
+

Network Interfaces

+ {% for network_if in system.network_ifs %} +

{{ network_if.name }}

+

Total Sent: {{ network_if.total_sent }}

+

Total Received: {{ network_if.total_received }}

+ {% endfor %} +

-
-

HDD Info

- {% for disk in system.disks %} -

{{disk.name}}

-

Mounted at: {{disk.mount_point}}

-

{{disk.available_space}} of {{disk.total_space}} available

- {% if not loop.last %} -
- {% endif %} - {% endfor %} -
-
-

Temperatures

- {% for comp in system.components %} -

{{ comp.name }} - {{ comp.temperature }}°C

- {% if not loop.last %} -
- {% endif %} - {% endfor %} -
-
-

RAM

-

{{ system.ram.used_memory }} of {{ system.ram.total_memory }} RAM current in use

-

{{ system.ram.used_swap }} of {{ system.ram.total_swap }} swap currently in use

-
-

Monerod Status