Skip to content

Commit b8134c9

Browse files
authored
feat: Make Findable trait using Result consistently (#1506)
In the `Findable` trait two methods (`get_ep`, `list_ep`) can technically error. At the moment they use `unwrap` and `expect` so the app can crash in runtime. Eliminate them.
1 parent 692eb15 commit b8134c9

File tree

59 files changed

+402
-242
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+402
-242
lines changed

openstack_sdk/src/api/block_storage/v3/backup/find.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,20 +73,21 @@ impl<'a> RequestBuilder<'a> {
7373
impl<'a> Findable for Request<'a> {
7474
type G = Get::Request<'a>;
7575
type L = List::Request<'a>;
76-
fn get_ep(&self) -> Get::Request<'a> {
76+
fn get_ep<C: RestClient>(&self) -> Result<Get::Request<'a>, ApiError<C::Error>> {
7777
let mut ep = Get::Request::builder();
7878
ep.id(self.id.clone());
7979
if let Some(headers) = &self._headers {
8080
ep.headers(headers.iter().map(|(k, v)| (Some(k.clone()), v.clone())));
8181
}
82-
ep.build().unwrap()
82+
ep.build().map_err(ApiError::endpoint_builder)
8383
}
84-
fn list_ep(&self) -> List::Request<'a> {
84+
85+
fn list_ep<C: RestClient>(&self) -> Result<List::Request<'a>, ApiError<C::Error>> {
8586
let mut ep = List::Request::builder();
8687
if let Some(headers) = &self._headers {
8788
ep.headers(headers.iter().map(|(k, v)| (Some(k.clone()), v.clone())));
8889
}
89-
ep.build().unwrap()
90+
ep.build().map_err(ApiError::endpoint_builder)
9091
}
9192
/// Locate backup in a list
9293
fn locate_resource_in_list<C: RestClient>(

openstack_sdk/src/api/block_storage/v3/group/find.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,20 +73,21 @@ impl<'a> RequestBuilder<'a> {
7373
impl<'a> Findable for Request<'a> {
7474
type G = Get::Request<'a>;
7575
type L = List::Request<'a>;
76-
fn get_ep(&self) -> Get::Request<'a> {
76+
fn get_ep<C: RestClient>(&self) -> Result<Get::Request<'a>, ApiError<C::Error>> {
7777
let mut ep = Get::Request::builder();
7878
ep.id(self.id.clone());
7979
if let Some(headers) = &self._headers {
8080
ep.headers(headers.iter().map(|(k, v)| (Some(k.clone()), v.clone())));
8181
}
82-
ep.build().unwrap()
82+
ep.build().map_err(ApiError::endpoint_builder)
8383
}
84-
fn list_ep(&self) -> List::Request<'a> {
84+
85+
fn list_ep<C: RestClient>(&self) -> Result<List::Request<'a>, ApiError<C::Error>> {
8586
let mut ep = List::Request::builder();
8687
if let Some(headers) = &self._headers {
8788
ep.headers(headers.iter().map(|(k, v)| (Some(k.clone()), v.clone())));
8889
}
89-
ep.build().unwrap()
90+
ep.build().map_err(ApiError::endpoint_builder)
9091
}
9192
/// Locate group in a list
9293
fn locate_resource_in_list<C: RestClient>(

openstack_sdk/src/api/block_storage/v3/group_snapshot/find.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,20 +73,21 @@ impl<'a> RequestBuilder<'a> {
7373
impl<'a> Findable for Request<'a> {
7474
type G = Get::Request<'a>;
7575
type L = List::Request<'a>;
76-
fn get_ep(&self) -> Get::Request<'a> {
76+
fn get_ep<C: RestClient>(&self) -> Result<Get::Request<'a>, ApiError<C::Error>> {
7777
let mut ep = Get::Request::builder();
7878
ep.id(self.id.clone());
7979
if let Some(headers) = &self._headers {
8080
ep.headers(headers.iter().map(|(k, v)| (Some(k.clone()), v.clone())));
8181
}
82-
ep.build().unwrap()
82+
ep.build().map_err(ApiError::endpoint_builder)
8383
}
84-
fn list_ep(&self) -> List::Request<'a> {
84+
85+
fn list_ep<C: RestClient>(&self) -> Result<List::Request<'a>, ApiError<C::Error>> {
8586
let mut ep = List::Request::builder();
8687
if let Some(headers) = &self._headers {
8788
ep.headers(headers.iter().map(|(k, v)| (Some(k.clone()), v.clone())));
8889
}
89-
ep.build().unwrap()
90+
ep.build().map_err(ApiError::endpoint_builder)
9091
}
9192
/// Locate group_snapshot in a list
9293
fn locate_resource_in_list<C: RestClient>(

openstack_sdk/src/api/block_storage/v3/group_type/find.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,20 +73,21 @@ impl<'a> RequestBuilder<'a> {
7373
impl<'a> Findable for Request<'a> {
7474
type G = Get::Request<'a>;
7575
type L = List::Request<'a>;
76-
fn get_ep(&self) -> Get::Request<'a> {
76+
fn get_ep<C: RestClient>(&self) -> Result<Get::Request<'a>, ApiError<C::Error>> {
7777
let mut ep = Get::Request::builder();
7878
ep.id(self.id.clone());
7979
if let Some(headers) = &self._headers {
8080
ep.headers(headers.iter().map(|(k, v)| (Some(k.clone()), v.clone())));
8181
}
82-
ep.build().unwrap()
82+
ep.build().map_err(ApiError::endpoint_builder)
8383
}
84-
fn list_ep(&self) -> List::Request<'a> {
84+
85+
fn list_ep<C: RestClient>(&self) -> Result<List::Request<'a>, ApiError<C::Error>> {
8586
let mut ep = List::Request::builder();
8687
if let Some(headers) = &self._headers {
8788
ep.headers(headers.iter().map(|(k, v)| (Some(k.clone()), v.clone())));
8889
}
89-
ep.build().unwrap()
90+
ep.build().map_err(ApiError::endpoint_builder)
9091
}
9192
/// Locate group_type in a list
9293
fn locate_resource_in_list<C: RestClient>(

openstack_sdk/src/api/block_storage/v3/os_volume_transfer/find.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,20 +73,21 @@ impl<'a> RequestBuilder<'a> {
7373
impl<'a> Findable for Request<'a> {
7474
type G = Get::Request<'a>;
7575
type L = List::Request;
76-
fn get_ep(&self) -> Get::Request<'a> {
76+
fn get_ep<C: RestClient>(&self) -> Result<Get::Request<'a>, ApiError<C::Error>> {
7777
let mut ep = Get::Request::builder();
7878
ep.id(self.id.clone());
7979
if let Some(headers) = &self._headers {
8080
ep.headers(headers.iter().map(|(k, v)| (Some(k.clone()), v.clone())));
8181
}
82-
ep.build().unwrap()
82+
ep.build().map_err(ApiError::endpoint_builder)
8383
}
84-
fn list_ep(&self) -> List::Request {
84+
85+
fn list_ep<C: RestClient>(&self) -> Result<List::Request, ApiError<C::Error>> {
8586
let mut ep = List::Request::builder();
8687
if let Some(headers) = &self._headers {
8788
ep.headers(headers.iter().map(|(k, v)| (Some(k.clone()), v.clone())));
8889
}
89-
ep.build().unwrap()
90+
ep.build().map_err(ApiError::endpoint_builder)
9091
}
9192
/// Locate os_volume_transfer in a list
9293
fn locate_resource_in_list<C: RestClient>(

openstack_sdk/src/api/block_storage/v3/qos_spec/find.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,20 +73,21 @@ impl<'a> RequestBuilder<'a> {
7373
impl<'a> Findable for Request<'a> {
7474
type G = Get::Request<'a>;
7575
type L = List::Request<'a>;
76-
fn get_ep(&self) -> Get::Request<'a> {
76+
fn get_ep<C: RestClient>(&self) -> Result<Get::Request<'a>, ApiError<C::Error>> {
7777
let mut ep = Get::Request::builder();
7878
ep.id(self.id.clone());
7979
if let Some(headers) = &self._headers {
8080
ep.headers(headers.iter().map(|(k, v)| (Some(k.clone()), v.clone())));
8181
}
82-
ep.build().unwrap()
82+
ep.build().map_err(ApiError::endpoint_builder)
8383
}
84-
fn list_ep(&self) -> List::Request<'a> {
84+
85+
fn list_ep<C: RestClient>(&self) -> Result<List::Request<'a>, ApiError<C::Error>> {
8586
let mut ep = List::Request::builder();
8687
if let Some(headers) = &self._headers {
8788
ep.headers(headers.iter().map(|(k, v)| (Some(k.clone()), v.clone())));
8889
}
89-
ep.build().unwrap()
90+
ep.build().map_err(ApiError::endpoint_builder)
9091
}
9192
/// Locate qos_spec in a list
9293
fn locate_resource_in_list<C: RestClient>(

openstack_sdk/src/api/block_storage/v3/snapshot/find.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,20 +73,21 @@ impl<'a> RequestBuilder<'a> {
7373
impl<'a> Findable for Request<'a> {
7474
type G = Get::Request<'a>;
7575
type L = List::Request<'a>;
76-
fn get_ep(&self) -> Get::Request<'a> {
76+
fn get_ep<C: RestClient>(&self) -> Result<Get::Request<'a>, ApiError<C::Error>> {
7777
let mut ep = Get::Request::builder();
7878
ep.id(self.id.clone());
7979
if let Some(headers) = &self._headers {
8080
ep.headers(headers.iter().map(|(k, v)| (Some(k.clone()), v.clone())));
8181
}
82-
ep.build().unwrap()
82+
ep.build().map_err(ApiError::endpoint_builder)
8383
}
84-
fn list_ep(&self) -> List::Request<'a> {
84+
85+
fn list_ep<C: RestClient>(&self) -> Result<List::Request<'a>, ApiError<C::Error>> {
8586
let mut ep = List::Request::builder();
8687
if let Some(headers) = &self._headers {
8788
ep.headers(headers.iter().map(|(k, v)| (Some(k.clone()), v.clone())));
8889
}
89-
ep.build().unwrap()
90+
ep.build().map_err(ApiError::endpoint_builder)
9091
}
9192
/// Locate snapshot in a list
9293
fn locate_resource_in_list<C: RestClient>(

openstack_sdk/src/api/block_storage/v3/type/find.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,20 +73,21 @@ impl<'a> RequestBuilder<'a> {
7373
impl<'a> Findable for Request<'a> {
7474
type G = Get::Request<'a>;
7575
type L = List::Request;
76-
fn get_ep(&self) -> Get::Request<'a> {
76+
fn get_ep<C: RestClient>(&self) -> Result<Get::Request<'a>, ApiError<C::Error>> {
7777
let mut ep = Get::Request::builder();
7878
ep.id(self.id.clone());
7979
if let Some(headers) = &self._headers {
8080
ep.headers(headers.iter().map(|(k, v)| (Some(k.clone()), v.clone())));
8181
}
82-
ep.build().unwrap()
82+
ep.build().map_err(ApiError::endpoint_builder)
8383
}
84-
fn list_ep(&self) -> List::Request {
84+
85+
fn list_ep<C: RestClient>(&self) -> Result<List::Request, ApiError<C::Error>> {
8586
let mut ep = List::Request::builder();
8687
if let Some(headers) = &self._headers {
8788
ep.headers(headers.iter().map(|(k, v)| (Some(k.clone()), v.clone())));
8889
}
89-
ep.build().unwrap()
90+
ep.build().map_err(ApiError::endpoint_builder)
9091
}
9192
/// Locate type in a list
9293
fn locate_resource_in_list<C: RestClient>(

openstack_sdk/src/api/block_storage/v3/volume/find.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,20 +73,21 @@ impl<'a> RequestBuilder<'a> {
7373
impl<'a> Findable for Request<'a> {
7474
type G = Get::Request<'a>;
7575
type L = List::Request<'a>;
76-
fn get_ep(&self) -> Get::Request<'a> {
76+
fn get_ep<C: RestClient>(&self) -> Result<Get::Request<'a>, ApiError<C::Error>> {
7777
let mut ep = Get::Request::builder();
7878
ep.id(self.id.clone());
7979
if let Some(headers) = &self._headers {
8080
ep.headers(headers.iter().map(|(k, v)| (Some(k.clone()), v.clone())));
8181
}
82-
ep.build().unwrap()
82+
ep.build().map_err(ApiError::endpoint_builder)
8383
}
84-
fn list_ep(&self) -> List::Request<'a> {
84+
85+
fn list_ep<C: RestClient>(&self) -> Result<List::Request<'a>, ApiError<C::Error>> {
8586
let mut ep = List::Request::builder();
8687
if let Some(headers) = &self._headers {
8788
ep.headers(headers.iter().map(|(k, v)| (Some(k.clone()), v.clone())));
8889
}
89-
ep.build().unwrap()
90+
ep.build().map_err(ApiError::endpoint_builder)
9091
}
9192
/// Locate volume in a list
9293
fn locate_resource_in_list<C: RestClient>(

openstack_sdk/src/api/block_storage/v3/volume_transfer/find.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,20 +73,21 @@ impl<'a> RequestBuilder<'a> {
7373
impl<'a> Findable for Request<'a> {
7474
type G = Get::Request<'a>;
7575
type L = List::Request<'a>;
76-
fn get_ep(&self) -> Get::Request<'a> {
76+
fn get_ep<C: RestClient>(&self) -> Result<Get::Request<'a>, ApiError<C::Error>> {
7777
let mut ep = Get::Request::builder();
7878
ep.id(self.id.clone());
7979
if let Some(headers) = &self._headers {
8080
ep.headers(headers.iter().map(|(k, v)| (Some(k.clone()), v.clone())));
8181
}
82-
ep.build().unwrap()
82+
ep.build().map_err(ApiError::endpoint_builder)
8383
}
84-
fn list_ep(&self) -> List::Request<'a> {
84+
85+
fn list_ep<C: RestClient>(&self) -> Result<List::Request<'a>, ApiError<C::Error>> {
8586
let mut ep = List::Request::builder();
8687
if let Some(headers) = &self._headers {
8788
ep.headers(headers.iter().map(|(k, v)| (Some(k.clone()), v.clone())));
8889
}
89-
ep.build().unwrap()
90+
ep.build().map_err(ApiError::endpoint_builder)
9091
}
9192
/// Locate volume_transfer in a list
9293
fn locate_resource_in_list<C: RestClient>(

0 commit comments

Comments
 (0)