Skip to content

Commit 74aa76f

Browse files
committed
feat: Add cascade QP for delete octavia loadbalancer
Change-Id: I8f394639f3272d4385618dda6731880e02e85a4e Changes are triggered by https://review.opendev.org/948906
1 parent 700c83c commit 74aa76f

File tree

5 files changed

+369
-332
lines changed
  • openstack_cli/src/load_balancer/v2/loadbalancer
  • openstack_sdk/src/api/load_balancer/v2/loadbalancer
  • openstack_tui/src/cloud_worker/load_balancer/v2/loadbalancer
  • openstack_types/data/load-balancer

5 files changed

+369
-332
lines changed

openstack_cli/src/load_balancer/v2/loadbalancer/delete.rs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,11 @@ pub struct LoadbalancerCommand {
5252

5353
/// Query parameters
5454
#[derive(Args)]
55-
struct QueryParameters {}
55+
struct QueryParameters {
56+
/// If true will delete all child objects of the load balancer.
57+
#[arg(action=clap::ArgAction::Set, help_heading = "Query parameters", long)]
58+
cascade: Option<bool>,
59+
}
5660

5761
/// Path parameters
5862
#[derive(Args)]
@@ -85,6 +89,9 @@ impl LoadbalancerCommand {
8589
// Set path parameters
8690
ep_builder.id(&self.path.id);
8791
// Set query parameters
92+
if let Some(val) = &self.query.cascade {
93+
ep_builder.cascade(*val);
94+
}
8895
// Set body parameters
8996

9097
let ep = ep_builder

openstack_sdk/src/api/load_balancer/v2/loadbalancer/delete.rs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ use std::borrow::Cow;
3333
#[derive(Builder, Debug, Clone)]
3434
#[builder(setter(strip_option))]
3535
pub struct Request<'a> {
36+
/// If true will delete all child objects of the load balancer.
37+
#[builder(default)]
38+
cascade: Option<bool>,
39+
3640
/// loadbalancer_id parameter for /v2/lbaas/loadbalancers/{loadbalancer_id}
3741
/// API
3842
#[builder(default, setter(into))]
@@ -83,7 +87,10 @@ impl RestEndpoint for Request<'_> {
8387
}
8488

8589
fn parameters(&self) -> QueryParams {
86-
QueryParams::default()
90+
let mut params = QueryParams::default();
91+
params.push_opt("cascade", self.cascade);
92+
93+
params
8794
}
8895

8996
fn service_type(&self) -> ServiceType {

openstack_tui/src/cloud_worker/load_balancer/v2/loadbalancer/delete.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ use openstack_sdk::{AsyncOpenStack, api::QueryAsync};
3232
#[derive(Builder, Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
3333
#[builder(setter(strip_option))]
3434
pub struct LoadBalancerLoadbalancerDelete {
35+
#[builder(default)]
36+
pub cascade: Option<bool>,
3537
pub id: String,
3638
#[builder(default)]
3739
pub name: Option<String>,
@@ -53,6 +55,9 @@ impl TryFrom<&LoadBalancerLoadbalancerDelete> for RequestBuilder<'_> {
5355
fn try_from(value: &LoadBalancerLoadbalancerDelete) -> Result<Self, Self::Error> {
5456
let mut ep_builder = Self::default();
5557
ep_builder.id(value.id.clone());
58+
if let Some(val) = &value.cascade {
59+
ep_builder.cascade(*val);
60+
}
5661

5762
Ok(ep_builder)
5863
}

0 commit comments

Comments
 (0)