Bug Fixes
Security Vulnerabilities Patched RUSTSEC-2025-0009 - Some AES functions may panic when overflow checking is enabled RUSTSEC-2024-0336 - rustls::Connection::Common::complete_io could fall into an infinite loop based on network input
This commit is contained in:
@@ -1,8 +1,10 @@
|
||||
use crate::modules::datatypes::*;
|
||||
use crate::prelude::*;
|
||||
use crossbeam::channel::unbounded;
|
||||
use opentelemetry_otlp::WithTonicConfig;
|
||||
use std::sync::{Arc, Mutex};
|
||||
use std::thread;
|
||||
use tonic::transport::{Channel, ClientTlsConfig};
|
||||
#[pyfunction]
|
||||
pub fn pull_policy_exec_histories(
|
||||
py: Python<'_>,
|
||||
@@ -11,9 +13,10 @@ pub fn pull_policy_exec_histories(
|
||||
exec_types: String,
|
||||
days: i64,
|
||||
) -> Py<PyString> {
|
||||
let data = PyData::extract_data(py, &py_self);
|
||||
let headers = data.headers;
|
||||
let base_url = data.base_url;
|
||||
println!();
|
||||
let data: PyData = PyData::extract_data(py, &py_self);
|
||||
let headers: HeaderMap = data.headers;
|
||||
let base_url: String = data.base_url;
|
||||
let handle: thread::JoinHandle<String> = std::thread::spawn(move || {
|
||||
let rt: tokio::runtime::Runtime = match tokio::runtime::Runtime::new() {
|
||||
Ok(rt) => rt,
|
||||
@@ -22,10 +25,9 @@ pub fn pull_policy_exec_histories(
|
||||
std::process::abort();
|
||||
}
|
||||
};
|
||||
rt.block_on(async {
|
||||
let _ = init_tracer();
|
||||
});
|
||||
let tracer: global::BoxedTracer = global::tracer("global_tracer");
|
||||
let tracer_provider = rt.block_on(async { init_tracer() });
|
||||
global::set_tracer_provider(tracer_provider.clone());
|
||||
let tracer: global::BoxedTracer = global::tracer("tracer");
|
||||
let _cx: Context = Context::new();
|
||||
let file_path: PathBuf = format!(
|
||||
"{}\\cache\\chunkinator.json",
|
||||
@@ -106,7 +108,8 @@ pub fn pull_policy_exec_histories(
|
||||
}
|
||||
}
|
||||
});
|
||||
let cutoff: chrono::NaiveDateTime = Local::now().naive_local() - Duration::days(days);
|
||||
let cutoff: chrono::NaiveDateTime =
|
||||
Local::now().naive_local() - chrono::Duration::days(days);
|
||||
let (tx, rx) = unbounded::<Vec<Group>>();
|
||||
let pb_clone = progress_bar.clone();
|
||||
thread::spawn(move || {
|
||||
@@ -181,7 +184,10 @@ pub fn pull_policy_exec_histories(
|
||||
.unwrap()
|
||||
.enable_steady_tick(std::time::Duration::from_millis(100));
|
||||
let span: opentelemetry::trace::SpanRef<'_> = cx.span();
|
||||
span.set_attribute(Key::new("Days").string(days.to_string()));
|
||||
//span.set_attribute(Key::new("Days").string(days.to_string()));
|
||||
//span.set_attribute(Key::new("Days"));
|
||||
//span.set_attribute(KeyValue::new("Policy Name", policy_names.clone()));
|
||||
span.set_attribute(KeyValue::new("Days", days));
|
||||
span.set_attribute(KeyValue::new("Policy Name", policy_names.clone()));
|
||||
loop {
|
||||
let execution_histories = tracer.in_span(checkpoint_number.to_string(), |cx| {
|
||||
@@ -237,8 +243,10 @@ pub fn pull_policy_exec_histories(
|
||||
std::process::abort();
|
||||
}
|
||||
};
|
||||
tracer_provider
|
||||
.shutdown()
|
||||
.expect("Failed to Shutdown Tracer Provdier");
|
||||
drop(tx);
|
||||
shutdown_tracer_provider();
|
||||
return_data.to_string()
|
||||
});
|
||||
let gil_value: String = handle.join().unwrap();
|
||||
@@ -313,25 +321,26 @@ pub fn get_base_directory() -> PathBuf {
|
||||
}
|
||||
}
|
||||
|
||||
fn init_tracer() -> Result<Option<sdktrace::Tracer>, TraceError> {
|
||||
fn init_tracer() -> opentelemetry_sdk::trace::TracerProvider {
|
||||
let cfg: TelemetryConfig = TelemetryConfig::load();
|
||||
if !cfg.TELEMETRY {
|
||||
global::set_tracer_provider(NoopTracerProvider::new());
|
||||
return Ok(None);
|
||||
}
|
||||
let endpoint: String = cfg.TELEM_URL.unwrap_or_default();
|
||||
let tracer: sdktrace::Tracer =
|
||||
opentelemetry_otlp::new_pipeline()
|
||||
.tracing()
|
||||
.with_exporter(
|
||||
opentelemetry_otlp::new_exporter()
|
||||
.tonic()
|
||||
.with_endpoint(endpoint),
|
||||
)
|
||||
.with_trace_config(sdktrace::config().with_resource(Resource::new(vec![
|
||||
KeyValue::new("service.name", "LoxideLibs"),
|
||||
])))
|
||||
.install_simple()
|
||||
.unwrap();
|
||||
Ok(Some(tracer))
|
||||
let endpoint = cfg.TELEM_URL.unwrap_or_default().clone();
|
||||
let channel_endpoint = endpoint.clone();
|
||||
let channel = Channel::from_shared(channel_endpoint.clone())
|
||||
.unwrap()
|
||||
.tls_config(ClientTlsConfig::new().with_native_roots())
|
||||
.unwrap()
|
||||
.connect_lazy();
|
||||
let exporter = opentelemetry_otlp::SpanExporter::builder()
|
||||
.with_tonic()
|
||||
.with_endpoint(endpoint.clone())
|
||||
.with_channel(channel)
|
||||
.build()
|
||||
.expect("Failed to build exporter");
|
||||
opentelemetry_sdk::trace::TracerProvider::builder()
|
||||
.with_simple_exporter(exporter)
|
||||
.with_resource(Resource::new(vec![KeyValue::new(
|
||||
"service.name",
|
||||
"LoxideLibs",
|
||||
)]))
|
||||
.build()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user