openstack_cli_block_storage/v3/
volume_manage.rs1use clap::{Parser, Subcommand};
19
20use openstack_cli_core::{cli::CliArgs, error::OpenStackCliError};
21use openstack_sdk::AsyncOpenStack;
22
23pub mod create_30;
24pub mod create_316;
25pub mod list;
26
27#[derive(Parser)]
31pub struct VolumeManageCommand {
32 #[command(subcommand)]
34 command: VolumeManageCommands,
35}
36
37#[allow(missing_docs)]
39#[derive(Subcommand)]
40pub enum VolumeManageCommands {
41 #[command(visible_alias = "create")]
42 Create316(Box<create_316::VolumeManageCommand>),
43 Create30(Box<create_30::VolumeManageCommand>),
44 List(Box<list::VolumeManagesCommand>),
45}
46
47impl VolumeManageCommand {
48 pub async fn take_action<C: CliArgs>(
50 &self,
51 parsed_args: &C,
52 session: &mut AsyncOpenStack,
53 ) -> Result<(), OpenStackCliError> {
54 match &self.command {
55 VolumeManageCommands::Create316(cmd) => cmd.take_action(parsed_args, session).await,
56 VolumeManageCommands::Create30(cmd) => cmd.take_action(parsed_args, session).await,
57 VolumeManageCommands::List(cmd) => cmd.take_action(parsed_args, session).await,
58 }
59 }
60}