openstack_cli_compute/v2/
aggregate.rs1use clap::{Parser, Subcommand};
17
18use openstack_sdk::AsyncOpenStack;
19
20use openstack_cli_core::{cli::CliArgs, error::OpenStackCliError};
21
22pub mod add_host;
23pub mod create_21;
24pub mod delete;
25pub mod list;
26pub mod image {
28 pub mod cache_281;
29}
30pub mod remove_host;
31pub mod set_21;
32pub mod set_metadata;
33pub mod show;
34
35#[derive(Parser)]
42pub struct AggregateCommand {
43 #[command(subcommand)]
45 command: AggregateCommands,
46}
47
48#[allow(missing_docs)]
50#[derive(Subcommand)]
51pub enum AggregateCommands {
52 #[command(about = "Add Host")]
54 AddHost(add_host::AggregateCommand),
55 #[command(visible_alias = "create")]
56 Create21(create_21::AggregateCommand),
57 CacheImage(image::cache_281::ImageCommand),
58 Delete(delete::AggregateCommand),
59 List(list::AggregatesCommand),
60 #[command(about = "Remove Host")]
62 RemoveHost(remove_host::AggregateCommand),
63 Show(show::AggregateCommand),
64 #[command(visible_alias = "set")]
65 Set21(set_21::AggregateCommand),
66 #[command(about = "Create Or Update Aggregate Metadata")]
68 SetMetadata(set_metadata::AggregateCommand),
69}
70
71impl AggregateCommand {
72 pub async fn take_action<C: CliArgs>(
74 &self,
75 parsed_args: &C,
76 session: &mut AsyncOpenStack,
77 ) -> Result<(), OpenStackCliError> {
78 match &self.command {
79 AggregateCommands::AddHost(cmd) => cmd.take_action(parsed_args, session).await,
80 AggregateCommands::Create21(cmd) => cmd.take_action(parsed_args, session).await,
81 AggregateCommands::CacheImage(cmd) => cmd.take_action(parsed_args, session).await,
82 AggregateCommands::Delete(cmd) => cmd.take_action(parsed_args, session).await,
83 AggregateCommands::List(cmd) => cmd.take_action(parsed_args, session).await,
84 AggregateCommands::RemoveHost(cmd) => cmd.take_action(parsed_args, session).await,
85 AggregateCommands::Show(cmd) => cmd.take_action(parsed_args, session).await,
86 AggregateCommands::Set21(cmd) => cmd.take_action(parsed_args, session).await,
87 AggregateCommands::SetMetadata(cmd) => cmd.take_action(parsed_args, session).await,
88 }
89 }
90}