feat: Application module architecture and placeholder features #70
| @ -1,3 +1,8 @@ | |||||||
|  | use async_trait::async_trait; | ||||||
|  | use log::info; | ||||||
|  | 
 | ||||||
|  | use crate::{modules::application::ApplicationFeature, topology::Topology}; | ||||||
|  | 
 | ||||||
| /// ContinuousDelivery in Harmony provides this functionality :
 | /// ContinuousDelivery in Harmony provides this functionality :
 | ||||||
| ///
 | ///
 | ||||||
| /// - **Package** the application
 | /// - **Package** the application
 | ||||||
| @ -29,7 +34,7 @@ | |||||||
| pub struct ContinuousDelivery {} | pub struct ContinuousDelivery {} | ||||||
| 
 | 
 | ||||||
| #[async_trait] | #[async_trait] | ||||||
| impl <T: Topology + 'static> ApplicationFeature<T> for ContinuousDelivery { | impl<T: Topology + 'static> ApplicationFeature<T> for ContinuousDelivery { | ||||||
|     async fn ensure_installed(&self, _topology: &T) -> Result<(), String> { |     async fn ensure_installed(&self, _topology: &T) -> Result<(), String> { | ||||||
|         info!("Installing ContinuousDelivery feature"); |         info!("Installing ContinuousDelivery feature"); | ||||||
|         todo!() |         todo!() | ||||||
|  | |||||||
| @ -1,6 +1,8 @@ | |||||||
| mod endpoint; | mod endpoint; | ||||||
| pub use endpoint::*; | pub use endpoint::*; | ||||||
|  | 
 | ||||||
| mod monitoring; | mod monitoring; | ||||||
| pub use monitoring::*; | pub use monitoring::*; | ||||||
|  | 
 | ||||||
| mod continuous_delivery; | mod continuous_delivery; | ||||||
| pub use endpoint::*; | pub use continuous_delivery::*; | ||||||
|  | |||||||
| @ -1,8 +1,16 @@ | |||||||
|  | use async_trait::async_trait; | ||||||
|  | use log::info; | ||||||
|  | 
 | ||||||
|  | use crate::{ | ||||||
|  |     modules::application::ApplicationFeature, | ||||||
|  |     topology::{HelmCommand, Topology}, | ||||||
|  | }; | ||||||
|  | 
 | ||||||
| #[derive(Debug, Default)] | #[derive(Debug, Default)] | ||||||
| pub struct Monitoring {} | pub struct Monitoring {} | ||||||
| 
 | 
 | ||||||
| #[async_trait] | #[async_trait] | ||||||
| impl <T: Topology + HelmCommand + 'static> ApplicationFeature<T> for Monitoring { | impl<T: Topology + HelmCommand + 'static> ApplicationFeature<T> for Monitoring { | ||||||
|     async fn ensure_installed(&self, _topology: &T) -> Result<(), String> { |     async fn ensure_installed(&self, _topology: &T) -> Result<(), String> { | ||||||
|         info!("Ensuring monitoring is available for application"); |         info!("Ensuring monitoring is available for application"); | ||||||
|         todo!("create and execute k8s prometheus score, depends on Will's work") |         todo!("create and execute k8s prometheus score, depends on Will's work") | ||||||
|  | |||||||
| @ -12,15 +12,15 @@ use harmony_tui; | |||||||
| pub struct Args { | pub struct Args { | ||||||
|     /// Run score(s) without prompt
 |     /// Run score(s) without prompt
 | ||||||
|     #[arg(short, long, default_value_t = false, conflicts_with = "interactive")] |     #[arg(short, long, default_value_t = false, conflicts_with = "interactive")] | ||||||
|     yes: bool, |     pub yes: bool, | ||||||
| 
 | 
 | ||||||
|     /// Filter query
 |     /// Filter query
 | ||||||
|     #[arg(short, long, conflicts_with = "interactive")] |     #[arg(short, long, conflicts_with = "interactive")] | ||||||
|     filter: Option<String>, |     pub filter: Option<String>, | ||||||
| 
 | 
 | ||||||
|     /// Run interactive TUI or not
 |     /// Run interactive TUI or not
 | ||||||
|     #[arg(short, long, default_value_t = false)] |     #[arg(short, long, default_value_t = false)] | ||||||
|     interactive: bool, |     pub interactive: bool, | ||||||
| 
 | 
 | ||||||
|     /// Run all or nth, defaults to all
 |     /// Run all or nth, defaults to all
 | ||||||
|     #[arg(
 |     #[arg(
 | ||||||
| @ -31,15 +31,15 @@ pub struct Args { | |||||||
|         conflicts_with = "number", |         conflicts_with = "number", | ||||||
|         conflicts_with = "interactive" |         conflicts_with = "interactive" | ||||||
|     )] |     )] | ||||||
|     all: bool, |     pub all: bool, | ||||||
| 
 | 
 | ||||||
|     /// Run nth matching, zero indexed
 |     /// Run nth matching, zero indexed
 | ||||||
|     #[arg(short, long, default_value_t = 0, conflicts_with = "interactive")] |     #[arg(short, long, default_value_t = 0, conflicts_with = "interactive")] | ||||||
|     number: usize, |     pub number: usize, | ||||||
| 
 | 
 | ||||||
|     /// list scores, will also be affected by run filter
 |     /// list scores, will also be affected by run filter
 | ||||||
|     #[arg(short, long, default_value_t = false, conflicts_with = "interactive")] |     #[arg(short, long, default_value_t = false, conflicts_with = "interactive")] | ||||||
|     list: bool, |     pub list: bool, | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| fn maestro_scores_filter<T: Topology>( | fn maestro_scores_filter<T: Topology>( | ||||||
|  | |||||||
| @ -119,6 +119,7 @@ async fn main() { | |||||||
|                 if args.prod { |                 if args.prod { | ||||||
|                     todo!("implement prod deployment"); |                     todo!("implement prod deployment"); | ||||||
|                 } |                 } | ||||||
|  |                 println!("harmony_bin_path: {}", harmony_bin_path.display()); | ||||||
|                 let deploy_output = Command::new(harmony_bin_path) |                 let deploy_output = Command::new(harmony_bin_path) | ||||||
|                     .arg("-y") |                     .arg("-y") | ||||||
|                     .arg("-a") |                     .arg("-a") | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user