prepush refactoring

feature/1117
prplV 2025-03-04 15:16:58 +03:00
parent 5e62e98c6e
commit 51d16aaa73
8 changed files with 39 additions and 111 deletions

View File

@ -1,7 +1,7 @@
[workspace]
resolver = "2"
members = [
"crates/api-grub", "crates/integr-structs", "crates/preproc",
"crates/api-grub", "crates/integr-structs",
]
[profile.dev]

View File

@ -1,15 +1,47 @@
# Интеграционный модуль для проекта "Буревестник ВКС"
## Описание
`integr_mod` - Rust-пакет, предоставляющий функционал интеграционного модуля в проекте "Буревестник ВКС", состоящий из бинарных крейтов для:
- получение данных через API ВКС
- поддержку хранения, валидации и актуализации собственных конфигураций
- предобработку полученных данных и ~~отправку `Системе Мониторинга`~~ сохранение в БД
## Current Progress
## Руководство
| Crate (submodule) | Progress |
1. Заполнить .env файл или установить переменные окружения в соотвествии с примером в `.env.example` файле
``` toml
# Template .env for API grabber
# Prometheus-Exporter info
EXPORTER_URL = "http(s)://ip.ip.ip.ip:port"
# eNODE.Monitoring configuration
ENODE_MONITORING_IP = "ip.ip.ip.ip"
# admin user is required
ENODE_MONITORING_LOGIN = "admin_user_enode_monitoring"
# admin password is required
ENODE_MONITORING_PASSWORD = "admin_password_enode_monitoring"
```
2. Произвести сборку проекта командой :
``` bash
cargo build --release
```
3. Запустить
> Debug версия
``` bash
cargo run --bin api-grub
```
или
> Release версия
``` bash
cargo run --release --bin api-grub
```
## Текущий прогресс
| Крейт (подмодуль) | Прогресс |
|---|---|
|`api-grub` | ✅✅✅✅✅✅✅🛠️🛠️🛠️ |
|`config-delivery` | ✅✅✅✅✅✅✅🛠️🛠️🛠️ |
|`api-grub` | ✅✅✅✅✅✅✅✅✅🛠️ |
|`config-delivery [migrated]` | ❌❌❌❌❌❌❌❌❌❌ |
|`integrs-structs` | ✅✅✅✅✅✅✅✅✅✅ |
|`preproc` [temp-deprecated] | ✅✅✅❌❌❌❌❌❌❌ | (разработка временно остановлена)
|`preproc` [temp-deprecated] | ❌❌❌❌❌❌❌❌❌❌ | (разработка временно остановлена)

View File

@ -1,6 +1,6 @@
[package]
name = "api-grub"
version = "0.3.13"
version = "1.0.5"
edition = "2021"
[dependencies]

View File

@ -1,14 +0,0 @@
[package]
name = "preproc"
version = "0.1.0"
edition = "2021"
[dependencies]
anyhow = "1.0.95"
chrono = "0.4.39"
dotenv = "0.15.0"
env_logger = "0.11.6"
log = "0.4.25"
serde = { version = "1.0.217", features = ["derive"] }
serde_json = "1.0.137"
tokio = { version = "1.43.0", features = ["full"] }

View File

@ -1,21 +0,0 @@
// mod for prpeproc config pulling and updating
#[cfg(test)]
mod config_unittests {
use tokio::test;
#[test]
async fn create_unix_socket_server() { assert!(true) }
#[test]
async fn verify_on_valid_config() { assert!(true) }
#[test]
async fn verify_on_invalid_config() { assert!(true) }
}

View File

@ -1,50 +0,0 @@
use chrono::Local;
use env_logger::Builder;
use log::LevelFilter;
use std::io::Write;
use anyhow::Result;
use log::info;
pub async fn setup_logger() -> Result<()> {
Builder::new()
.format(move |buf, record| {
writeln!(
buf,
"|{}| {} [{}] - {}",
"config-delivery",
Local::now().format("%d-%m-%Y %H:%M:%S"),
record.level(),
record.args(),
)
})
.filter(None, LevelFilter::Info)
.target(env_logger::Target::Stdout)
.init();
info!("Logger configured");
Ok(())
}
#[cfg(test)]
mod logger_unittests {
use tokio::test;
use super::*;
#[test]
async fn check_logger_builder() {
Builder::new()
.format(move |buf, record| {
writeln!(
buf,
"|{}| {} [{}] - {}",
"config-delivery",
Local::now().format("%d-%m-%Y %H:%M:%S"),
record.level(),
record.args(),
)
})
.filter(None, LevelFilter::Info)
.target(env_logger::Target::Stdout)
.init();
}
}

View File

@ -1,18 +0,0 @@
mod config;
mod transform;
mod logger;
use logger::setup_logger;
use dotenv::dotenv;
use anyhow::Result;
use log::info;
#[tokio::main(flavor = "multi_thread")]
async fn main() -> Result<()>{
let _ = setup_logger().await?;
info!("Pulling env vars from .env file if exists ...");
dotenv().ok();
Ok(())
}

View File

@ -1 +0,0 @@
// mod for preproccessing and transfering to the CM metrics data