Skip to content

Commit

Permalink
feat: Send response action also for delete events
Browse files Browse the repository at this point in the history
When TUI user invoked delete event we want to know it was completed
successfully. For that send a response with request data and explicit Null as
response.

Change-Id: I844d2d89883481b4a874aadf4aee8156c84cf536

Changes are triggered by https://review.opendev.org/940676
  • Loading branch information
gtema committed Feb 4, 2025
1 parent 70d8d80 commit f2c4773
Show file tree
Hide file tree
Showing 24 changed files with 168 additions and 48 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,18 @@ impl ExecuteApiRequest for BlockStorageBackupDelete {
async fn execute_request(
&self,
session: &mut AsyncOpenStack,
_request: &ApiRequest,
_app_tx: &UnboundedSender<Action>,
request: &ApiRequest,
app_tx: &UnboundedSender<Action>,
) -> Result<(), CloudWorkerError> {
let ep = TryInto::<RequestBuilder>::try_into(self)?
.build()
.wrap_err("Cannot prepare request")?;
ignore(ep).query_async(session).await?;
// Let caller know deletion was completed
app_tx.send(Action::ApiResponseData {
request: request.clone(),
data: serde_json::Value::Null,
})?;
Ok(())
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,18 @@ impl ExecuteApiRequest for BlockStorageSnapshotDelete {
async fn execute_request(
&self,
session: &mut AsyncOpenStack,
_request: &ApiRequest,
_app_tx: &UnboundedSender<Action>,
request: &ApiRequest,
app_tx: &UnboundedSender<Action>,
) -> Result<(), CloudWorkerError> {
let ep = TryInto::<RequestBuilder>::try_into(self)?
.build()
.wrap_err("Cannot prepare request")?;
ignore(ep).query_async(session).await?;
// Let caller know deletion was completed
app_tx.send(Action::ApiResponseData {
request: request.clone(),
data: serde_json::Value::Null,
})?;
Ok(())
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,18 @@ impl ExecuteApiRequest for BlockStorageVolumeDelete {
async fn execute_request(
&self,
session: &mut AsyncOpenStack,
_request: &ApiRequest,
_app_tx: &UnboundedSender<Action>,
request: &ApiRequest,
app_tx: &UnboundedSender<Action>,
) -> Result<(), CloudWorkerError> {
let ep = TryInto::<RequestBuilder>::try_into(self)?
.build()
.wrap_err("Cannot prepare request")?;
ignore(ep).query_async(session).await?;
// Let caller know deletion was completed
app_tx.send(Action::ApiResponseData {
request: request.clone(),
data: serde_json::Value::Null,
})?;
Ok(())
}
}
Expand Down
9 changes: 7 additions & 2 deletions openstack_tui/src/cloud_worker/compute/v2/aggregate/delete.rs
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,18 @@ impl ExecuteApiRequest for ComputeAggregateDelete {
async fn execute_request(
&self,
session: &mut AsyncOpenStack,
_request: &ApiRequest,
_app_tx: &UnboundedSender<Action>,
request: &ApiRequest,
app_tx: &UnboundedSender<Action>,
) -> Result<(), CloudWorkerError> {
let ep = TryInto::<RequestBuilder>::try_into(self)?
.build()
.wrap_err("Cannot prepare request")?;
ignore(ep).query_async(session).await?;
// Let caller know deletion was completed
app_tx.send(Action::ApiResponseData {
request: request.clone(),
data: serde_json::Value::Null,
})?;
Ok(())
}
}
Expand Down
9 changes: 7 additions & 2 deletions openstack_tui/src/cloud_worker/compute/v2/server/delete.rs
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,18 @@ impl ExecuteApiRequest for ComputeServerDelete {
async fn execute_request(
&self,
session: &mut AsyncOpenStack,
_request: &ApiRequest,
_app_tx: &UnboundedSender<Action>,
request: &ApiRequest,
app_tx: &UnboundedSender<Action>,
) -> Result<(), CloudWorkerError> {
let ep = TryInto::<RequestBuilder>::try_into(self)?
.build()
.wrap_err("Cannot prepare request")?;
ignore(ep).query_async(session).await?;
// Let caller know deletion was completed
app_tx.send(Action::ApiResponseData {
request: request.clone(),
data: serde_json::Value::Null,
})?;
Ok(())
}
}
Expand Down
9 changes: 7 additions & 2 deletions openstack_tui/src/cloud_worker/dns/v2/zone/delete.rs
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,18 @@ impl ExecuteApiRequest for DnsZoneDelete {
async fn execute_request(
&self,
session: &mut AsyncOpenStack,
_request: &ApiRequest,
_app_tx: &UnboundedSender<Action>,
request: &ApiRequest,
app_tx: &UnboundedSender<Action>,
) -> Result<(), CloudWorkerError> {
let ep = TryInto::<RequestBuilder>::try_into(self)?
.build()
.wrap_err("Cannot prepare request")?;
ignore(ep).query_async(session).await?;
// Let caller know deletion was completed
app_tx.send(Action::ApiResponseData {
request: request.clone(),
data: serde_json::Value::Null,
})?;
Ok(())
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,13 +70,18 @@ impl ExecuteApiRequest for DnsZoneRecordsetDelete {
async fn execute_request(
&self,
session: &mut AsyncOpenStack,
_request: &ApiRequest,
_app_tx: &UnboundedSender<Action>,
request: &ApiRequest,
app_tx: &UnboundedSender<Action>,
) -> Result<(), CloudWorkerError> {
let ep = TryInto::<RequestBuilder>::try_into(self)?
.build()
.wrap_err("Cannot prepare request")?;
ignore(ep).query_async(session).await?;
// Let caller know deletion was completed
app_tx.send(Action::ApiResponseData {
request: request.clone(),
data: serde_json::Value::Null,
})?;
Ok(())
}
}
Expand Down
9 changes: 7 additions & 2 deletions openstack_tui/src/cloud_worker/identity/v3/group/delete.rs
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,18 @@ impl ExecuteApiRequest for IdentityGroupDelete {
async fn execute_request(
&self,
session: &mut AsyncOpenStack,
_request: &ApiRequest,
_app_tx: &UnboundedSender<Action>,
request: &ApiRequest,
app_tx: &UnboundedSender<Action>,
) -> Result<(), CloudWorkerError> {
let ep = TryInto::<RequestBuilder>::try_into(self)?
.build()
.wrap_err("Cannot prepare request")?;
ignore(ep).query_async(session).await?;
// Let caller know deletion was completed
app_tx.send(Action::ApiResponseData {
request: request.clone(),
data: serde_json::Value::Null,
})?;
Ok(())
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,13 +70,18 @@ impl ExecuteApiRequest for IdentityGroupUserDelete {
async fn execute_request(
&self,
session: &mut AsyncOpenStack,
_request: &ApiRequest,
_app_tx: &UnboundedSender<Action>,
request: &ApiRequest,
app_tx: &UnboundedSender<Action>,
) -> Result<(), CloudWorkerError> {
let ep = TryInto::<RequestBuilder>::try_into(self)?
.build()
.wrap_err("Cannot prepare request")?;
ignore(ep).query_async(session).await?;
// Let caller know deletion was completed
app_tx.send(Action::ApiResponseData {
request: request.clone(),
data: serde_json::Value::Null,
})?;
Ok(())
}
}
Expand Down
9 changes: 7 additions & 2 deletions openstack_tui/src/cloud_worker/identity/v3/project/delete.rs
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,18 @@ impl ExecuteApiRequest for IdentityProjectDelete {
async fn execute_request(
&self,
session: &mut AsyncOpenStack,
_request: &ApiRequest,
_app_tx: &UnboundedSender<Action>,
request: &ApiRequest,
app_tx: &UnboundedSender<Action>,
) -> Result<(), CloudWorkerError> {
let ep = TryInto::<RequestBuilder>::try_into(self)?
.build()
.wrap_err("Cannot prepare request")?;
ignore(ep).query_async(session).await?;
// Let caller know deletion was completed
app_tx.send(Action::ApiResponseData {
request: request.clone(),
data: serde_json::Value::Null,
})?;
Ok(())
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,13 +70,18 @@ impl ExecuteApiRequest for IdentityUserApplicationCredentialDelete {
async fn execute_request(
&self,
session: &mut AsyncOpenStack,
_request: &ApiRequest,
_app_tx: &UnboundedSender<Action>,
request: &ApiRequest,
app_tx: &UnboundedSender<Action>,
) -> Result<(), CloudWorkerError> {
let ep = TryInto::<RequestBuilder>::try_into(self)?
.build()
.wrap_err("Cannot prepare request")?;
ignore(ep).query_async(session).await?;
// Let caller know deletion was completed
app_tx.send(Action::ApiResponseData {
request: request.clone(),
data: serde_json::Value::Null,
})?;
Ok(())
}
}
Expand Down
9 changes: 7 additions & 2 deletions openstack_tui/src/cloud_worker/identity/v3/user/delete.rs
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,18 @@ impl ExecuteApiRequest for IdentityUserDelete {
async fn execute_request(
&self,
session: &mut AsyncOpenStack,
_request: &ApiRequest,
_app_tx: &UnboundedSender<Action>,
request: &ApiRequest,
app_tx: &UnboundedSender<Action>,
) -> Result<(), CloudWorkerError> {
let ep = TryInto::<RequestBuilder>::try_into(self)?
.build()
.wrap_err("Cannot prepare request")?;
ignore(ep).query_async(session).await?;
// Let caller know deletion was completed
app_tx.send(Action::ApiResponseData {
request: request.clone(),
data: serde_json::Value::Null,
})?;
Ok(())
}
}
Expand Down
9 changes: 7 additions & 2 deletions openstack_tui/src/cloud_worker/image/v2/image/delete.rs
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,18 @@ impl ExecuteApiRequest for ImageImageDelete {
async fn execute_request(
&self,
session: &mut AsyncOpenStack,
_request: &ApiRequest,
_app_tx: &UnboundedSender<Action>,
request: &ApiRequest,
app_tx: &UnboundedSender<Action>,
) -> Result<(), CloudWorkerError> {
let ep = TryInto::<RequestBuilder>::try_into(self)?
.build()
.wrap_err("Cannot prepare request")?;
ignore(ep).query_async(session).await?;
// Let caller know deletion was completed
app_tx.send(Action::ApiResponseData {
request: request.clone(),
data: serde_json::Value::Null,
})?;
Ok(())
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,18 @@ impl ExecuteApiRequest for LoadBalancerHealthmonitorDelete {
async fn execute_request(
&self,
session: &mut AsyncOpenStack,
_request: &ApiRequest,
_app_tx: &UnboundedSender<Action>,
request: &ApiRequest,
app_tx: &UnboundedSender<Action>,
) -> Result<(), CloudWorkerError> {
let ep = TryInto::<RequestBuilder>::try_into(self)?
.build()
.wrap_err("Cannot prepare request")?;
ignore(ep).query_async(session).await?;
// Let caller know deletion was completed
app_tx.send(Action::ApiResponseData {
request: request.clone(),
data: serde_json::Value::Null,
})?;
Ok(())
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,18 @@ impl ExecuteApiRequest for LoadBalancerListenerDelete {
async fn execute_request(
&self,
session: &mut AsyncOpenStack,
_request: &ApiRequest,
_app_tx: &UnboundedSender<Action>,
request: &ApiRequest,
app_tx: &UnboundedSender<Action>,
) -> Result<(), CloudWorkerError> {
let ep = TryInto::<RequestBuilder>::try_into(self)?
.build()
.wrap_err("Cannot prepare request")?;
ignore(ep).query_async(session).await?;
// Let caller know deletion was completed
app_tx.send(Action::ApiResponseData {
request: request.clone(),
data: serde_json::Value::Null,
})?;
Ok(())
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,18 @@ impl ExecuteApiRequest for LoadBalancerLoadbalancerDelete {
async fn execute_request(
&self,
session: &mut AsyncOpenStack,
_request: &ApiRequest,
_app_tx: &UnboundedSender<Action>,
request: &ApiRequest,
app_tx: &UnboundedSender<Action>,
) -> Result<(), CloudWorkerError> {
let ep = TryInto::<RequestBuilder>::try_into(self)?
.build()
.wrap_err("Cannot prepare request")?;
ignore(ep).query_async(session).await?;
// Let caller know deletion was completed
app_tx.send(Action::ApiResponseData {
request: request.clone(),
data: serde_json::Value::Null,
})?;
Ok(())
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,18 @@ impl ExecuteApiRequest for LoadBalancerPoolDelete {
async fn execute_request(
&self,
session: &mut AsyncOpenStack,
_request: &ApiRequest,
_app_tx: &UnboundedSender<Action>,
request: &ApiRequest,
app_tx: &UnboundedSender<Action>,
) -> Result<(), CloudWorkerError> {
let ep = TryInto::<RequestBuilder>::try_into(self)?
.build()
.wrap_err("Cannot prepare request")?;
ignore(ep).query_async(session).await?;
// Let caller know deletion was completed
app_tx.send(Action::ApiResponseData {
request: request.clone(),
data: serde_json::Value::Null,
})?;
Ok(())
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,13 +70,18 @@ impl ExecuteApiRequest for LoadBalancerPoolMemberDelete {
async fn execute_request(
&self,
session: &mut AsyncOpenStack,
_request: &ApiRequest,
_app_tx: &UnboundedSender<Action>,
request: &ApiRequest,
app_tx: &UnboundedSender<Action>,
) -> Result<(), CloudWorkerError> {
let ep = TryInto::<RequestBuilder>::try_into(self)?
.build()
.wrap_err("Cannot prepare request")?;
ignore(ep).query_async(session).await?;
// Let caller know deletion was completed
app_tx.send(Action::ApiResponseData {
request: request.clone(),
data: serde_json::Value::Null,
})?;
Ok(())
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,18 @@ impl ExecuteApiRequest for LoadBalancerQuotaDelete {
async fn execute_request(
&self,
session: &mut AsyncOpenStack,
_request: &ApiRequest,
_app_tx: &UnboundedSender<Action>,
request: &ApiRequest,
app_tx: &UnboundedSender<Action>,
) -> Result<(), CloudWorkerError> {
let ep = TryInto::<RequestBuilder>::try_into(self)?
.build()
.wrap_err("Cannot prepare request")?;
ignore(ep).query_async(session).await?;
// Let caller know deletion was completed
app_tx.send(Action::ApiResponseData {
request: request.clone(),
data: serde_json::Value::Null,
})?;
Ok(())
}
}
Expand Down
Loading

0 comments on commit f2c4773

Please sign in to comment.