From 2d2e21142bec68c6c3964aa34ad4e1ab4fdad531 Mon Sep 17 00:00:00 2001 From: Tess Gauthier Date: Fri, 8 Mar 2024 10:12:37 -0500 Subject: [PATCH 1/5] start progress bar changes for resource list call --- dsc/Cargo.toml | 1 + dsc/src/subcommand.rs | 7 ++- dsc_lib/Cargo.toml | 1 + dsc_lib/src/discovery/command_discovery.rs | 61 ++++++++++++---------- 4 files changed, 40 insertions(+), 30 deletions(-) diff --git a/dsc/Cargo.toml b/dsc/Cargo.toml index ee0abb9b..89bf2568 100644 --- a/dsc/Cargo.toml +++ b/dsc/Cargo.toml @@ -29,3 +29,4 @@ thiserror = "1.0.52" tracing = { version = "0.1.37" } tracing-subscriber = { version = "0.3.17", features = ["ansi", "env-filter", "json"] } tracing-indicatif = { version = "0.3.6" } +indicatif = { version = "0.17" } diff --git a/dsc/src/subcommand.rs b/dsc/src/subcommand.rs index 9ec327a3..5c79db43 100644 --- a/dsc/src/subcommand.rs +++ b/dsc/src/subcommand.rs @@ -19,7 +19,11 @@ use dsc_lib::{ }; use serde_yaml::Value; use std::process::exit; -use tracing::{debug, error, trace}; +use tracing::{debug, error, info_span, trace}; +use indicatif::ProgressStyle; +use std::time::Duration; +use tracing::Span; +use tracing_indicatif::span_ext::IndicatifSpanExt; pub fn config_get(configurator: &mut Configurator, format: &Option, as_group: &bool) { @@ -398,7 +402,6 @@ pub fn resource(subcommand: &ResourceSubCommand, stdin: &Option) { match subcommand { ResourceSubCommand::List { resource_name, description, tags, format } => { - let mut write_table = false; let mut table = Table::new(&["Type", "Kind", "Version", "Methods", "Requires", "Description"]); if format.is_none() && atty::is(Stream::Stdout) { diff --git a/dsc_lib/Cargo.toml b/dsc_lib/Cargo.toml index 13f8fcef..233fd8fa 100644 --- a/dsc_lib/Cargo.toml +++ b/dsc_lib/Cargo.toml @@ -18,6 +18,7 @@ thiserror = "1.0" chrono = "0.4.26" security_context_lib = { path = "../security_context_lib" } tracing = "0.1.37" +tracing-indicatif = { version = "0.3.6" } tree-sitter = "0.20" tree-sitter-dscexpression = { path = "../tree-sitter-dscexpression" } diff --git a/dsc_lib/src/discovery/command_discovery.rs b/dsc_lib/src/discovery/command_discovery.rs index ddd6194d..283206a3 100644 --- a/dsc_lib/src/discovery/command_discovery.rs +++ b/dsc_lib/src/discovery/command_discovery.rs @@ -14,7 +14,8 @@ use std::fs::File; use std::io::BufReader; use std::path::Path; use std::time::Duration; -use tracing::{debug, error, trace, warn}; +use tracing::{debug, error, info, info_span, trace, warn, Span}; +use tracing_indicatif::span_ext::IndicatifSpanExt; pub struct CommandDiscovery { } @@ -31,25 +32,25 @@ impl CommandDiscovery { debug!("Searching for resources: {:?}", required_resource_types); let return_all_resources = required_resource_types.len() == 1 && required_resource_types[0] == "*"; - let multi_progress_bar = MultiProgress::new(); - let pb = multi_progress_bar.add( + //let multi_progress_bar = MultiProgress::new(); + //let pb = multi_progress_bar.add( + let header_span = info_span!("header"); if return_all_resources { - let pb = ProgressBar::new(1); - pb.enable_steady_tick(Duration::from_millis(120)); - pb.set_style(ProgressStyle::with_template( - "{spinner:.green} [{elapsed_precise:.cyan}] {msg:.yellow}" - )?); - pb - } else { - let pb = ProgressBar::new(required_resource_types.len() as u64); - pb.enable_steady_tick(Duration::from_millis(120)); - pb.set_style(ProgressStyle::with_template( - "{spinner:.green} [{elapsed_precise:.cyan}] [{bar:40.cyan/blue}] {pos:>7}/{len:7} {msg:.yellow}" - )?); - pb - } - ); - pb.set_message("Searching for resources"); + // let pb = ProgressBar::new(1); + // pb.enable_steady_tick(Duration::from_millis(120)); + debug!("returning all resources"); + header_span.pb_set_style(&ProgressStyle::with_template( + "{spinner:.green} [{elapsed_precise:.cyan}] {msg:.yellow}" + )?); + } else { + // let pb = ProgressBar::new(required_resource_types.len() as u64); + // pb.enable_steady_tick(Duration::from_millis(120)); + header_span.pb_set_style(&ProgressStyle::with_template( + "{spinner:.green} [{elapsed_precise:.cyan}] [{bar:40.cyan/blue}] {pos:>7}/{len:7} {msg:.yellow}" + )?); + } + header_span.pb_set_message("Searching for resources"); + let header_span_enter = header_span.enter(); let mut resources: BTreeMap = BTreeMap::new(); let mut adapter_resources: Vec = Vec::new(); @@ -128,7 +129,7 @@ impl CommandDiscovery { { remaining_required_resource_types.retain(|x| *x != resource.type_name.to_lowercase()); debug!("Found {} in {}", &resource.type_name, path.display()); - pb.inc(1); + Span::current().pb_inc(1); resources.insert(resource.type_name.to_lowercase(), resource); if remaining_required_resource_types.is_empty() { @@ -140,18 +141,19 @@ impl CommandDiscovery { } } } - debug!("Found {} matching non-adapter resources", resources.len() - adapter_resources.len()); // now go through the adapter resources and add them to the list of resources for adapter in adapter_resources { debug!("Enumerating resources for adapter {}", adapter); - let pb_adapter = multi_progress_bar.add(ProgressBar::new(1)); - pb_adapter.enable_steady_tick(Duration::from_millis(120)); - pb_adapter.set_style(ProgressStyle::with_template( + let pb_adapter_span = info_span!("adapter"); + pb_adapter_span.pb_set_style(&ProgressStyle::with_template( "{spinner:.green} [{elapsed_precise:.cyan}] {msg:.white}" )?); - pb_adapter.set_message(format!("Enumerating resources for adapter {adapter}")); + pb_adapter_span.pb_set_message(format!("Enumerating resources for adapter {adapter}").as_str()); + // let pb_adapter = multi_progress_bar.add(ProgressBar::new(1)); + // pb_adapter.enable_steady_tick(Duration::from_millis(120)); + let pb_adapter_enter = pb_adapter_span.enter(); let adapter_resource = resources.get(&adapter).unwrap(); let adapter_type_name = adapter_resource.type_name.clone(); let manifest = import_manifest(adapter_resource.manifest.clone().unwrap())?; @@ -222,12 +224,15 @@ impl CommandDiscovery { } }; } - pb_adapter.finish_with_message(format!("Done with {adapter}")); + std::mem::drop(pb_adapter_enter); + std::mem::drop(pb_adapter_span); + info!("Done with {adapter}"); debug!("Adapter '{}' listed {} matching resources", adapter_type_name, adapter_resources_count); } - - pb.finish_with_message("Discovery complete"); + std::mem::drop(header_span_enter); + std::mem::drop(header_span); + info!("Discovery complete"); Ok(resources) } } From f50e88d95775402be0dd55fb8fc2cce4182c9214 Mon Sep 17 00:00:00 2001 From: Tess Gauthier Date: Fri, 8 Mar 2024 11:03:50 -0500 Subject: [PATCH 2/5] add progress bar changes for config commands --- dsc/src/subcommand.rs | 6 +-- dsc_lib/src/configure/mod.rs | 58 ++++++++++++---------- dsc_lib/src/discovery/command_discovery.rs | 28 ++++------- 3 files changed, 43 insertions(+), 49 deletions(-) diff --git a/dsc/src/subcommand.rs b/dsc/src/subcommand.rs index 5c79db43..d2bbb1fb 100644 --- a/dsc/src/subcommand.rs +++ b/dsc/src/subcommand.rs @@ -19,11 +19,7 @@ use dsc_lib::{ }; use serde_yaml::Value; use std::process::exit; -use tracing::{debug, error, info_span, trace}; -use indicatif::ProgressStyle; -use std::time::Duration; -use tracing::Span; -use tracing_indicatif::span_ext::IndicatifSpanExt; +use tracing::{debug, error, trace}; pub fn config_get(configurator: &mut Configurator, format: &Option, as_group: &bool) { diff --git a/dsc_lib/src/configure/mod.rs b/dsc_lib/src/configure/mod.rs index fea522b1..019bc39f 100644 --- a/dsc_lib/src/configure/mod.rs +++ b/dsc_lib/src/configure/mod.rs @@ -13,12 +13,12 @@ use self::config_doc::{Configuration, DataType, Metadata, SecurityContextKind}; use self::depends_on::get_resource_invocation_order; use self::config_result::{ConfigurationGetResult, ConfigurationSetResult, ConfigurationTestResult, ConfigurationExportResult}; use self::contraints::{check_length, check_number_limits, check_allowed_values}; -use indicatif::{ProgressBar, ProgressStyle}; +use indicatif::ProgressStyle; use security_context_lib::{SecurityContext, get_security_context}; use serde_json::{Map, Value}; -use std::collections::HashMap; -use std::time::Duration; -use tracing::{debug, trace}; +use tracing_indicatif::span_ext::IndicatifSpanExt; +use std::{collections::HashMap, mem}; +use tracing::{debug, trace, warn_span, Span}; pub mod context; pub mod config_doc; @@ -135,13 +135,13 @@ fn escape_property_values(properties: &Map) -> Result Result { - let pb = ProgressBar::new(len); - pb.enable_steady_tick(Duration::from_millis(120)); - pb.set_style(ProgressStyle::with_template( +fn get_progress_bar_span(len: u64) -> Result { + let pb_span = warn_span!("progress bar"); + pb_span.pb_set_style(&ProgressStyle::with_template( "{spinner:.green} [{elapsed_precise:.cyan}] [{bar:40.cyan/blue}] {pos:>7}/{len:7} {msg:.yellow}" )?); - Ok(pb) + pb_span.pb_set_length(len); + Ok(pb_span) } fn add_metadata(kind: &Kind, mut properties: Option> ) -> Result { @@ -226,10 +226,11 @@ impl Configurator { let config = self.validate_config()?; let mut result = ConfigurationGetResult::new(); let resources = get_resource_invocation_order(&config, &mut self.statement_parser, &self.context)?; - let pb = get_progress_bar(resources.len() as u64)?; + let pb_span = get_progress_bar_span(resources.len() as u64)?; + let pb_span_enter = pb_span.enter(); for resource in resources { - pb.inc(1); - pb.set_message(format!("Get '{}'", resource.name)); + Span::current().pb_inc(1); + pb_span.pb_set_message(format!("Get '{}'", resource.name).as_str()); let properties = self.invoke_property_expressions(&resource.properties)?; let Some(dsc_resource) = self.discovery.find_resource(&resource.resource_type.to_lowercase()) else { return Err(DscError::ResourceNotFound(resource.resource_type)); @@ -246,7 +247,8 @@ impl Configurator { result.results.push(resource_result); } - pb.finish_with_message("Get configuration completed"); + mem::drop(pb_span_enter); + mem::drop(pb_span); Ok(result) } @@ -264,10 +266,11 @@ impl Configurator { let config = self.validate_config()?; let mut result = ConfigurationSetResult::new(); let resources = get_resource_invocation_order(&config, &mut self.statement_parser, &self.context)?; - let pb = get_progress_bar(resources.len() as u64)?; + let pb_span = get_progress_bar_span(resources.len() as u64)?; + let pb_span_enter = pb_span.enter(); for resource in resources { - pb.inc(1); - pb.set_message(format!("Set '{}'", resource.name)); + Span::current().pb_inc(1); + pb_span.pb_set_message(format!("Get '{}'", resource.name).as_str()); let properties = self.invoke_property_expressions(&resource.properties)?; let Some(dsc_resource) = self.discovery.find_resource(&resource.resource_type.to_lowercase()) else { return Err(DscError::ResourceNotFound(resource.resource_type)); @@ -284,7 +287,8 @@ impl Configurator { result.results.push(resource_result); } - pb.finish_with_message("Set configuration completed"); + mem::drop(pb_span_enter); + mem::drop(pb_span); Ok(result) } @@ -302,10 +306,11 @@ impl Configurator { let config = self.validate_config()?; let mut result = ConfigurationTestResult::new(); let resources = get_resource_invocation_order(&config, &mut self.statement_parser, &self.context)?; - let pb = get_progress_bar(resources.len() as u64)?; + let pb_span = get_progress_bar_span(resources.len() as u64)?; + let pb_span_enter = pb_span.enter(); for resource in resources { - pb.inc(1); - pb.set_message(format!("Test '{}'", resource.name)); + Span::current().pb_inc(1); + pb_span.pb_set_message(format!("Get '{}'", resource.name).as_str()); let properties = self.invoke_property_expressions(&resource.properties)?; let Some(dsc_resource) = self.discovery.find_resource(&resource.resource_type.to_lowercase()) else { return Err(DscError::ResourceNotFound(resource.resource_type)); @@ -322,7 +327,8 @@ impl Configurator { result.results.push(resource_result); } - pb.finish_with_message("Test configuration completed"); + mem::drop(pb_span_enter); + mem::drop(pb_span); Ok(result) } @@ -346,10 +352,11 @@ impl Configurator { let mut result = ConfigurationExportResult::new(); let mut conf = config_doc::Configuration::new(); - let pb = get_progress_bar(config.resources.len() as u64)?; + let pb_span = get_progress_bar_span(config.resources.len() as u64)?; + let pb_span_enter = pb_span.enter(); for resource in config.resources { - pb.inc(1); - pb.set_message(format!("Export '{}'", resource.name)); + Span::current().pb_inc(1); + pb_span.pb_set_message(format!("Get '{}'", resource.name).as_str()); let properties = self.invoke_property_expressions(&resource.properties)?; let Some(dsc_resource) = self.discovery.find_resource(&resource.resource_type.to_lowercase()) else { return Err(DscError::ResourceNotFound(resource.resource_type.clone())); @@ -360,7 +367,8 @@ impl Configurator { } result.result = Some(conf); - pb.finish_with_message("Export configuration completed"); + mem::drop(pb_span_enter); + mem::drop(pb_span); Ok(result) } diff --git a/dsc_lib/src/discovery/command_discovery.rs b/dsc_lib/src/discovery/command_discovery.rs index 283206a3..f8de5971 100644 --- a/dsc_lib/src/discovery/command_discovery.rs +++ b/dsc_lib/src/discovery/command_discovery.rs @@ -6,15 +6,15 @@ use crate::dscresources::dscresource::{DscResource, ImplementedAs}; use crate::dscresources::resource_manifest::{import_manifest, Kind, ResourceManifest}; use crate::dscresources::command_resource::invoke_command; use crate::dscerror::DscError; -use indicatif::{MultiProgress, ProgressBar, ProgressStyle}; +use indicatif::ProgressStyle; use std::collections::BTreeMap; use std::env; use std::ffi::OsStr; use std::fs::File; use std::io::BufReader; +use std::mem; use std::path::Path; -use std::time::Duration; -use tracing::{debug, error, info, info_span, trace, warn, Span}; +use tracing::{debug, error, trace, warn, warn_span, Span}; use tracing_indicatif::span_ext::IndicatifSpanExt; pub struct CommandDiscovery { @@ -32,19 +32,13 @@ impl CommandDiscovery { debug!("Searching for resources: {:?}", required_resource_types); let return_all_resources = required_resource_types.len() == 1 && required_resource_types[0] == "*"; - //let multi_progress_bar = MultiProgress::new(); - //let pb = multi_progress_bar.add( - let header_span = info_span!("header"); + let header_span = warn_span!("header"); if return_all_resources { - // let pb = ProgressBar::new(1); - // pb.enable_steady_tick(Duration::from_millis(120)); debug!("returning all resources"); header_span.pb_set_style(&ProgressStyle::with_template( "{spinner:.green} [{elapsed_precise:.cyan}] {msg:.yellow}" )?); } else { - // let pb = ProgressBar::new(required_resource_types.len() as u64); - // pb.enable_steady_tick(Duration::from_millis(120)); header_span.pb_set_style(&ProgressStyle::with_template( "{spinner:.green} [{elapsed_precise:.cyan}] [{bar:40.cyan/blue}] {pos:>7}/{len:7} {msg:.yellow}" )?); @@ -146,13 +140,11 @@ impl CommandDiscovery { // now go through the adapter resources and add them to the list of resources for adapter in adapter_resources { debug!("Enumerating resources for adapter {}", adapter); - let pb_adapter_span = info_span!("adapter"); + let pb_adapter_span = warn_span!("adapter"); pb_adapter_span.pb_set_style(&ProgressStyle::with_template( "{spinner:.green} [{elapsed_precise:.cyan}] {msg:.white}" )?); pb_adapter_span.pb_set_message(format!("Enumerating resources for adapter {adapter}").as_str()); - // let pb_adapter = multi_progress_bar.add(ProgressBar::new(1)); - // pb_adapter.enable_steady_tick(Duration::from_millis(120)); let pb_adapter_enter = pb_adapter_span.enter(); let adapter_resource = resources.get(&adapter).unwrap(); let adapter_type_name = adapter_resource.type_name.clone(); @@ -224,15 +216,13 @@ impl CommandDiscovery { } }; } - std::mem::drop(pb_adapter_enter); - std::mem::drop(pb_adapter_span); - info!("Done with {adapter}"); + mem::drop(pb_adapter_enter); + mem::drop(pb_adapter_span); debug!("Adapter '{}' listed {} matching resources", adapter_type_name, adapter_resources_count); } - std::mem::drop(header_span_enter); - std::mem::drop(header_span); - info!("Discovery complete"); + mem::drop(header_span_enter); + mem::drop(header_span); Ok(resources) } } From 295e5907666fdb80828a75da550d9179e0585ae6 Mon Sep 17 00:00:00 2001 From: Tess Gauthier Date: Fri, 8 Mar 2024 11:28:59 -0500 Subject: [PATCH 3/5] fix typos --- dsc/Cargo.toml | 2 +- dsc/src/subcommand.rs | 1 + dsc_lib/src/configure/mod.rs | 8 ++++---- dsc_lib/src/discovery/command_discovery.rs | 15 +++++++-------- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/dsc/Cargo.toml b/dsc/Cargo.toml index 89bf2568..e1275d38 100644 --- a/dsc/Cargo.toml +++ b/dsc/Cargo.toml @@ -17,6 +17,7 @@ clap_complete = { version = "4.4" } crossterm = { version = "0.27" } ctrlc = { version = "3.4.0" } dsc_lib = { path = "../dsc_lib" } +indicatif = { version = "0.17" } jsonschema = "0.17" path-absolutize = { version = "3.1.1" } schemars = { version = "0.8.12" } @@ -29,4 +30,3 @@ thiserror = "1.0.52" tracing = { version = "0.1.37" } tracing-subscriber = { version = "0.3.17", features = ["ansi", "env-filter", "json"] } tracing-indicatif = { version = "0.3.6" } -indicatif = { version = "0.17" } diff --git a/dsc/src/subcommand.rs b/dsc/src/subcommand.rs index d2bbb1fb..9ec327a3 100644 --- a/dsc/src/subcommand.rs +++ b/dsc/src/subcommand.rs @@ -398,6 +398,7 @@ pub fn resource(subcommand: &ResourceSubCommand, stdin: &Option) { match subcommand { ResourceSubCommand::List { resource_name, description, tags, format } => { + let mut write_table = false; let mut table = Table::new(&["Type", "Kind", "Version", "Methods", "Requires", "Description"]); if format.is_none() && atty::is(Stream::Stdout) { diff --git a/dsc_lib/src/configure/mod.rs b/dsc_lib/src/configure/mod.rs index 019bc39f..eb0ed1fe 100644 --- a/dsc_lib/src/configure/mod.rs +++ b/dsc_lib/src/configure/mod.rs @@ -16,9 +16,9 @@ use self::contraints::{check_length, check_number_limits, check_allowed_values}; use indicatif::ProgressStyle; use security_context_lib::{SecurityContext, get_security_context}; use serde_json::{Map, Value}; -use tracing_indicatif::span_ext::IndicatifSpanExt; use std::{collections::HashMap, mem}; use tracing::{debug, trace, warn_span, Span}; +use tracing_indicatif::span_ext::IndicatifSpanExt; pub mod context; pub mod config_doc; @@ -270,7 +270,7 @@ impl Configurator { let pb_span_enter = pb_span.enter(); for resource in resources { Span::current().pb_inc(1); - pb_span.pb_set_message(format!("Get '{}'", resource.name).as_str()); + pb_span.pb_set_message(format!("Set '{}'", resource.name).as_str()); let properties = self.invoke_property_expressions(&resource.properties)?; let Some(dsc_resource) = self.discovery.find_resource(&resource.resource_type.to_lowercase()) else { return Err(DscError::ResourceNotFound(resource.resource_type)); @@ -310,7 +310,7 @@ impl Configurator { let pb_span_enter = pb_span.enter(); for resource in resources { Span::current().pb_inc(1); - pb_span.pb_set_message(format!("Get '{}'", resource.name).as_str()); + pb_span.pb_set_message(format!("Test '{}'", resource.name).as_str()); let properties = self.invoke_property_expressions(&resource.properties)?; let Some(dsc_resource) = self.discovery.find_resource(&resource.resource_type.to_lowercase()) else { return Err(DscError::ResourceNotFound(resource.resource_type)); @@ -356,7 +356,7 @@ impl Configurator { let pb_span_enter = pb_span.enter(); for resource in config.resources { Span::current().pb_inc(1); - pb_span.pb_set_message(format!("Get '{}'", resource.name).as_str()); + pb_span.pb_set_message(format!("Export '{}'", resource.name).as_str()); let properties = self.invoke_property_expressions(&resource.properties)?; let Some(dsc_resource) = self.discovery.find_resource(&resource.resource_type.to_lowercase()) else { return Err(DscError::ResourceNotFound(resource.resource_type.clone())); diff --git a/dsc_lib/src/discovery/command_discovery.rs b/dsc_lib/src/discovery/command_discovery.rs index f8de5971..77e13e7f 100644 --- a/dsc_lib/src/discovery/command_discovery.rs +++ b/dsc_lib/src/discovery/command_discovery.rs @@ -32,19 +32,18 @@ impl CommandDiscovery { debug!("Searching for resources: {:?}", required_resource_types); let return_all_resources = required_resource_types.len() == 1 && required_resource_types[0] == "*"; - let header_span = warn_span!("header"); + let pb_span = warn_span!("progress bar"); if return_all_resources { - debug!("returning all resources"); - header_span.pb_set_style(&ProgressStyle::with_template( + pb_span.pb_set_style(&ProgressStyle::with_template( "{spinner:.green} [{elapsed_precise:.cyan}] {msg:.yellow}" )?); } else { - header_span.pb_set_style(&ProgressStyle::with_template( + pb_span.pb_set_style(&ProgressStyle::with_template( "{spinner:.green} [{elapsed_precise:.cyan}] [{bar:40.cyan/blue}] {pos:>7}/{len:7} {msg:.yellow}" )?); } - header_span.pb_set_message("Searching for resources"); - let header_span_enter = header_span.enter(); + pb_span.pb_set_message("Searching for resources"); + let pb_span_enter = pb_span.enter(); let mut resources: BTreeMap = BTreeMap::new(); let mut adapter_resources: Vec = Vec::new(); @@ -221,8 +220,8 @@ impl CommandDiscovery { debug!("Adapter '{}' listed {} matching resources", adapter_type_name, adapter_resources_count); } - mem::drop(header_span_enter); - mem::drop(header_span); + mem::drop(pb_span_enter); + mem::drop(pb_span); Ok(resources) } } From 0903edaf947ed6d59833c9cfe4ff003d91aca89f Mon Sep 17 00:00:00 2001 From: Tess Gauthier Date: Fri, 8 Mar 2024 14:27:29 -0500 Subject: [PATCH 4/5] remove span names --- dsc_lib/src/configure/mod.rs | 2 +- dsc_lib/src/discovery/command_discovery.rs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dsc_lib/src/configure/mod.rs b/dsc_lib/src/configure/mod.rs index eb0ed1fe..f1311963 100644 --- a/dsc_lib/src/configure/mod.rs +++ b/dsc_lib/src/configure/mod.rs @@ -136,7 +136,7 @@ fn escape_property_values(properties: &Map) -> Result Result { - let pb_span = warn_span!("progress bar"); + let pb_span = warn_span!(""); pb_span.pb_set_style(&ProgressStyle::with_template( "{spinner:.green} [{elapsed_precise:.cyan}] [{bar:40.cyan/blue}] {pos:>7}/{len:7} {msg:.yellow}" )?); diff --git a/dsc_lib/src/discovery/command_discovery.rs b/dsc_lib/src/discovery/command_discovery.rs index a4315b92..0181b78e 100644 --- a/dsc_lib/src/discovery/command_discovery.rs +++ b/dsc_lib/src/discovery/command_discovery.rs @@ -32,7 +32,7 @@ impl CommandDiscovery { debug!("Searching for resources: {:?}", required_resource_types); let return_all_resources = required_resource_types.len() == 1 && required_resource_types[0] == "*"; - let pb_span = warn_span!("progress bar"); + let pb_span = warn_span!(""); if return_all_resources { pb_span.pb_set_style(&ProgressStyle::with_template( "{spinner:.green} [{elapsed_precise:.cyan}] {msg:.yellow}" @@ -139,7 +139,7 @@ impl CommandDiscovery { // now go through the adapter resources and add them to the list of resources for adapter in adapter_resources { debug!("Enumerating resources for adapter {}", adapter); - let pb_adapter_span = warn_span!("adapter"); + let pb_adapter_span = warn_span!(""); pb_adapter_span.pb_set_style(&ProgressStyle::with_template( "{spinner:.green} [{elapsed_precise:.cyan}] {msg:.white}" )?); From 5e28f94d64b49a7e2e6f65efbf087c9d6bc50bb0 Mon Sep 17 00:00:00 2001 From: Tess Gauthier Date: Fri, 8 Mar 2024 16:04:34 -0500 Subject: [PATCH 5/5] remove unnecessary drops --- dsc_lib/src/configure/mod.rs | 13 +++++++------ dsc_lib/src/discovery/command_discovery.rs | 9 ++------- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/dsc_lib/src/configure/mod.rs b/dsc_lib/src/configure/mod.rs index f1311963..8c116eda 100644 --- a/dsc_lib/src/configure/mod.rs +++ b/dsc_lib/src/configure/mod.rs @@ -136,6 +136,7 @@ fn escape_property_values(properties: &Map) -> Result Result { + // use warn_span since that is the default logging level but progress bars will be suppressed if error trace level is used let pb_span = warn_span!(""); pb_span.pb_set_style(&ProgressStyle::with_template( "{spinner:.green} [{elapsed_precise:.cyan}] [{bar:40.cyan/blue}] {pos:>7}/{len:7} {msg:.yellow}" @@ -247,8 +248,8 @@ impl Configurator { result.results.push(resource_result); } - mem::drop(pb_span_enter); - mem::drop(pb_span); + std::mem::drop(pb_span_enter); + std::mem::drop(pb_span); Ok(result) } @@ -327,8 +328,8 @@ impl Configurator { result.results.push(resource_result); } - mem::drop(pb_span_enter); - mem::drop(pb_span); + std::mem::drop(pb_span_enter); + std::mem::drop(pb_span); Ok(result) } @@ -366,9 +367,9 @@ impl Configurator { add_resource_export_results_to_configuration(dsc_resource, Some(dsc_resource), &mut conf, input.as_str())?; } + std::mem::drop(pb_span_enter); + std::mem::drop(pb_span); result.result = Some(conf); - mem::drop(pb_span_enter); - mem::drop(pb_span); Ok(result) } diff --git a/dsc_lib/src/discovery/command_discovery.rs b/dsc_lib/src/discovery/command_discovery.rs index 0181b78e..12d9c20d 100644 --- a/dsc_lib/src/discovery/command_discovery.rs +++ b/dsc_lib/src/discovery/command_discovery.rs @@ -12,7 +12,6 @@ use std::env; use std::ffi::OsStr; use std::fs::File; use std::io::BufReader; -use std::mem; use std::path::Path; use tracing::{debug, error, trace, warn, warn_span, Span}; use tracing_indicatif::span_ext::IndicatifSpanExt; @@ -43,7 +42,7 @@ impl CommandDiscovery { )?); } pb_span.pb_set_message("Searching for resources"); - let pb_span_enter = pb_span.enter(); + let _ = pb_span.enter(); let mut resources: BTreeMap = BTreeMap::new(); let mut adapter_resources: Vec = Vec::new(); @@ -144,7 +143,7 @@ impl CommandDiscovery { "{spinner:.green} [{elapsed_precise:.cyan}] {msg:.white}" )?); pb_adapter_span.pb_set_message(format!("Enumerating resources for adapter {adapter}").as_str()); - let pb_adapter_enter = pb_adapter_span.enter(); + let _ = pb_adapter_span.enter(); let adapter_resource = resources.get(&adapter).unwrap(); let adapter_type_name = adapter_resource.type_name.clone(); let manifest = import_manifest(adapter_resource.manifest.clone().unwrap())?; @@ -215,13 +214,9 @@ impl CommandDiscovery { } }; } - mem::drop(pb_adapter_enter); - mem::drop(pb_adapter_span); debug!("Adapter '{}' listed {} matching resources", adapter_type_name, adapter_resources_count); } - mem::drop(pb_span_enter); - mem::drop(pb_span); Ok(resources) } }