openstack_cli_block_storage/v3/group/
reset_status_320.rs1use clap::Args;
23use eyre::WrapErr;
24use tracing::info;
25
26use openstack_cli_core::cli::CliArgs;
27use openstack_cli_core::error::OpenStackCliError;
28use openstack_cli_core::output::OutputProcessor;
29use openstack_sdk::AsyncOpenStack;
30
31use openstack_sdk::api::QueryAsync;
32use openstack_sdk::api::block_storage::v3::group::reset_status_320;
33
34#[derive(Args)]
36pub struct GroupCommand {
37 #[command(flatten)]
39 query: QueryParameters,
40
41 #[command(flatten)]
43 path: PathParameters,
44
45 #[command(flatten)]
46 reset_status: ResetStatus,
47}
48
49#[derive(Args)]
51struct QueryParameters {}
52
53#[derive(Args)]
55struct PathParameters {}
56#[derive(Args, Clone)]
58struct ResetStatus {
59 #[arg(help_heading = "Body parameters", long)]
60 status: String,
61}
62
63impl GroupCommand {
64 pub async fn take_action<C: CliArgs>(
66 &self,
67 parsed_args: &C,
68 client: &mut AsyncOpenStack,
69 ) -> Result<(), OpenStackCliError> {
70 info!("Action Group");
71
72 let op = OutputProcessor::from_args(
73 parsed_args,
74 Some("block-storage.group"),
75 Some("reset_status"),
76 );
77 op.validate_args(parsed_args)?;
78
79 let mut ep_builder = reset_status_320::Request::builder();
80 ep_builder.header(
81 http::header::HeaderName::from_static("openstack-api-version"),
82 http::header::HeaderValue::from_static("volume 3.20"),
83 );
84
85 let args = &self.reset_status;
88 let mut reset_status_builder = reset_status_320::ResetStatusBuilder::default();
89
90 reset_status_builder.status(&args.status);
91
92 ep_builder.reset_status(
93 reset_status_builder
94 .build()
95 .wrap_err("error preparing the request data")?,
96 );
97
98 let ep = ep_builder
99 .build()
100 .map_err(|x| OpenStackCliError::EndpointBuild(x.to_string()))?;
101 openstack_sdk::api::ignore(ep).query_async(client).await?;
102 op.show_command_hint()?;
104 Ok(())
105 }
106}