Skip to content

Commit eb43870

Browse files
authored
Update azure_core, azure_identity to 0.30 (microsoft#719)
1 parent 449fa71 commit eb43870

81 files changed

Lines changed: 7588 additions & 11508 deletions

Some content is hidden

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

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
### Changes
1111

12+
- Update `azure_core` and `azure_identity` to 0.30.
13+
- Changes to handle API changes in `azure_core`:
14+
- Replace `azure_core::http::BufResponse` with `azure_core::http::RawResponse` / `AsyncRawResponse`
15+
- Change `Response::into_body().await` to `Response::into_model()` (now synchronous)
16+
- Update `ClientOptions::retry` field to be `RetryOptions` (no longer `Option<RetryOptions>`)
17+
- Add required `PipelineSendOptions` parameter to `Pipeline::send()`
18+
- Update `transport()` method to use `Transport` type (replaces `TransportOptions`)
19+
- Fix `API_VERSION` reference to use string literal `"api-version"` instead of non-existent `query_param` module
20+
- Changes to handle API changes in manually written code:
21+
- Update `auth.rs` to remove deprecated `ResultExt::context()` method
22+
- Update `date_time.rs` to use direct error construction instead of `with_context()` closure
23+
- Update `telemetry.rs` to use `AsyncRawResponse` and new construction API
24+
1225
## [0.32.0]
1326

1427
### Changes

autorust/codegen/src/autorust_toml.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,8 @@ impl<'a> PackageConfig {
116116
let deny: HashSet<&str> = self.tags.deny.iter().map(String::as_str).collect();
117117
tags.retain(|tag| !deny.contains(tag.name()));
118118
}
119-
let mut deny_contains: Vec<&str> = self.tags.deny_contains.iter().map(String::as_str).collect();
119+
let mut deny_contains: Vec<&str> =
120+
self.tags.deny_contains.iter().map(String::as_str).collect();
120121
if self.tags.deny_contains_preview.unwrap_or_default() {
121122
deny_contains.push("preview");
122123
}
@@ -325,7 +326,10 @@ mod tests {
325326
default = "package-resources-2021-04"
326327
"#,
327328
)?;
328-
assert_eq!(Some("package-resources-2021-04".to_string()), config.tags.default);
329+
assert_eq!(
330+
Some("package-resources-2021-04".to_string()),
331+
config.tags.default
332+
);
329333
Ok(())
330334
}
331335

autorust/codegen/src/cargo_toml.rs

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,13 @@ use crate::Result;
22
use crate::{config_parser::Tag, jinja::CargoToml};
33
use camino::Utf8Path;
44

5-
pub fn create(package_name: &str, tags: &[&Tag], default_tag: &Tag, has_xml: bool, path: &Utf8Path) -> Result<()> {
5+
pub fn create(
6+
package_name: &str,
7+
tags: &[&Tag],
8+
default_tag: &Tag,
9+
has_xml: bool,
10+
path: &Utf8Path,
11+
) -> Result<()> {
612
let default_tag = &default_tag.rust_feature_name();
713

814
// https://docs.rs/about/metadata
@@ -22,7 +28,9 @@ pub fn create(package_name: &str, tags: &[&Tag], default_tag: &Tag, has_xml: boo
2228

2329
pub fn get_default_tag<'a>(tags: &[&'a Tag], default_tag: Option<&str>) -> &'a Tag {
2430
let default_tag = tags.iter().find(|tag| Some(tag.name()) == default_tag);
25-
let is_preview = default_tag.map(|tag| tag.name().contains("preview")).unwrap_or_default();
31+
let is_preview = default_tag
32+
.map(|tag| tag.name().contains("preview"))
33+
.unwrap_or_default();
2634
let stable_tag = tags.iter().find(|tag| !tag.name().contains("preview"));
2735
match (default_tag, is_preview, stable_tag) {
2836
(Some(default_tag), false, _) => default_tag,
@@ -94,13 +102,20 @@ mod tests {
94102
];
95103
let tags: Vec<_> = tags.into_iter().map(Tag::new).collect();
96104
let tags: Vec<_> = tags.iter().collect();
97-
assert_eq!("package-2020-04", get_default_tag(&tags, Some("package-2020-04")).name());
105+
assert_eq!(
106+
"package-2020-04",
107+
get_default_tag(&tags, Some("package-2020-04")).name()
108+
);
98109
Ok(())
99110
}
100111

101112
#[test]
102113
fn specified_preview() -> Result<()> {
103-
let tags = vec!["package-preview-2022-05", "package-2019-06-preview", "package-2019-04-preview"];
114+
let tags = vec![
115+
"package-preview-2022-05",
116+
"package-2019-06-preview",
117+
"package-2019-04-preview",
118+
];
104119
let tags: Vec<_> = tags.into_iter().map(Tag::new).collect();
105120
let tags: Vec<_> = tags.iter().collect();
106121
assert_eq!(

autorust/codegen/src/codegen_operations/create_client_and_builder.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,13 +79,13 @@ pub fn create_client(modules: &[String], endpoint: Option<&str>) -> Result<Token
7979
#[doc = "Set the retry options."]
8080
#[must_use]
8181
pub fn retry(mut self, retry: impl Into<azure_core::http::RetryOptions>) -> Self {
82-
self.options.retry = Some(retry.into());
82+
self.options.retry = retry.into();
8383
self
8484
}
8585

8686
#[doc = "Set the transport options."]
8787
#[must_use]
88-
pub fn transport(mut self, transport: impl Into<azure_core::http::TransportOptions>) -> Self {
88+
pub fn transport(mut self, transport: impl Into<azure_core::http::Transport>) -> Self {
8989
self.options.transport = Some(transport.into());
9090
self
9191
}
@@ -134,9 +134,9 @@ pub fn create_client(modules: &[String], endpoint: Option<&str>) -> Result<Token
134134
pub(crate) fn scopes(&self) -> Vec<&str> {
135135
self.scopes.iter().map(String::as_str).collect()
136136
}
137-
pub(crate) async fn send(&self, request: &mut azure_core::http::Request) -> azure_core::Result<azure_core::http::BufResponse> {
137+
pub(crate) async fn send(&self, request: &mut azure_core::http::Request) -> azure_core::Result<azure_core::http::RawResponse> {
138138
let context = azure_core::http::Context::default();
139-
self.pipeline.send(&context, request).await
139+
self.pipeline.send(&context, request, None).await
140140
}
141141

142142
#[doc = "Create a new `ClientBuilder`."]

autorust/codegen/src/codegen_operations/function_code.rs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,11 @@ pub(crate) struct ClientFunctionCode {
1717
}
1818

1919
impl ClientFunctionCode {
20-
pub fn new(operation: &WebOperationGen, parameters: &FunctionParams, in_operation_group: bool) -> Result<Self> {
20+
pub fn new(
21+
operation: &WebOperationGen,
22+
parameters: &FunctionParams,
23+
in_operation_group: bool,
24+
) -> Result<Self> {
2125
let fname = operation.function_name()?;
2226
let summary = operation.0.summary.clone();
2327
let description = operation.0.description.clone();
@@ -41,7 +45,9 @@ impl ToTokens for ClientFunctionCode {
4145
}
4246
for param in self.parameters.required_params() {
4347
let FunctionParam {
44-
variable_name, type_name, ..
48+
variable_name,
49+
type_name,
50+
..
4551
} = param;
4652
let mut type_name = type_name.clone();
4753
let is_vec = type_name.is_vec();
@@ -54,7 +60,9 @@ impl ToTokens for ClientFunctionCode {
5460
}
5561
for param in self.parameters.optional_params() {
5662
let FunctionParam {
57-
variable_name, type_name, ..
63+
variable_name,
64+
type_name,
65+
..
5866
} = param;
5967
if type_name.is_vec() {
6068
params.push(quote! { #variable_name: Vec::new() });

autorust/codegen/src/codegen_operations/operation_module.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@ use proc_macro2::{Ident, TokenStream};
22
use quote::{quote, ToTokens};
33

44
use super::{
5-
request_builder_into_future::RequestBuilderIntoFutureCode, request_builder_send::RequestBuilderSendCode,
6-
request_builder_setter::RequestBuilderSettersCode, request_builder_struct::RequestBuilderStructCode, response_code::ResponseCode,
5+
request_builder_into_future::RequestBuilderIntoFutureCode,
6+
request_builder_send::RequestBuilderSendCode,
7+
request_builder_setter::RequestBuilderSettersCode,
8+
request_builder_struct::RequestBuilderStructCode, response_code::ResponseCode,
79
};
810
pub struct OperationModuleCode {
911
pub module_name: Ident,

autorust/codegen/src/codegen_operations/operations.rs

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,24 +34,36 @@ impl OperationCode {
3434
// get the content-types from the operation, else the spec, else default to json
3535
let consumes = operation
3636
.pick_consumes()
37-
.unwrap_or_else(|| cg.spec.pick_consumes().unwrap_or(content_type::APPLICATION_JSON))
37+
.unwrap_or_else(|| {
38+
cg.spec
39+
.pick_consumes()
40+
.unwrap_or(content_type::APPLICATION_JSON)
41+
})
3842
.to_string();
3943
let produces = operation
4044
.pick_produces()
41-
.unwrap_or_else(|| cg.spec.pick_produces().unwrap_or(content_type::APPLICATION_JSON))
45+
.unwrap_or_else(|| {
46+
cg.spec
47+
.pick_produces()
48+
.unwrap_or(content_type::APPLICATION_JSON)
49+
})
4250
.to_string();
4351

4452
let lro = operation.0.long_running_operation;
4553
let lro_options = operation.0.long_running_operation_options.clone();
4654

4755
let request_builder = SetRequestCode::new(operation, parameters, consumes);
4856
let in_operation_group = operation.0.in_group();
49-
let client_function_code = ClientFunctionCode::new(operation, parameters, in_operation_group)?;
50-
let request_builder_struct_code = RequestBuilderStructCode::new(parameters, in_operation_group, lro, lro_options.clone());
57+
let client_function_code =
58+
ClientFunctionCode::new(operation, parameters, in_operation_group)?;
59+
let request_builder_struct_code =
60+
RequestBuilderStructCode::new(parameters, in_operation_group, lro, lro_options.clone());
5161
let request_builder_setters_code = RequestBuilderSettersCode::new(parameters);
5262
let response_code = ResponseCode::new(cg, operation, produces)?;
53-
let request_builder_send_code = RequestBuilderSendCode::new(new_request_code, request_builder, response_code.clone())?;
54-
let request_builder_intofuture_code = RequestBuilderIntoFutureCode::new(response_code.clone(), lro, lro_options)?;
63+
let request_builder_send_code =
64+
RequestBuilderSendCode::new(new_request_code, request_builder, response_code.clone())?;
65+
let request_builder_intofuture_code =
66+
RequestBuilderIntoFutureCode::new(response_code.clone(), lro, lro_options)?;
5567

5668
let module_code = OperationModuleCode {
5769
module_name: operation.function_name()?,

autorust/codegen/src/codegen_operations/request_builder_into_future.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ impl ToTokens for RequestBuilderIntoFutureCode {
8989
req.insert_header(azure_core::http::headers::AUTHORIZATION, auth_header);
9090
}
9191
let response = self.client.send(&mut req).await?;
92-
return Response(response.into()).into_body().await
92+
return Response(response.into()).into_body()
9393
}
9494
LroStatus::Failed => return Err(Error::message(ErrorKind::Other, "Long running operation failed".to_string())),
9595
LroStatus::Canceled => return Err(Error::message(ErrorKind::Other, "Long running operation canceled".to_string())),
@@ -99,7 +99,7 @@ impl ToTokens for RequestBuilderIntoFutureCode {
9999
}
100100
}
101101
} else {
102-
response.into_body().await
102+
response.into_body()
103103
}
104104
},
105105
quote! {
@@ -113,7 +113,7 @@ impl ToTokens for RequestBuilderIntoFutureCode {
113113

114114
(
115115
quote! {
116-
self.send().await?.into_body().await
116+
self.send().await?.into_body()
117117
},
118118
quote! {
119119
#[doc = "Returns a future that sends the request and returns the parsed response body."]
@@ -136,7 +136,7 @@ impl ToTokens for RequestBuilderIntoFutureCode {
136136
let response = this.send().await?;
137137
let retry_after = get_retry_after(response.as_raw_response().headers());
138138
let status = response.as_raw_response().status();
139-
let body = response.into_body().await?;
139+
let body = response.into_body()?;
140140
let provisioning_state = get_provisioning_state(status, &body)?;
141141
log::trace!("current provisioning_state: {provisioning_state:?}");
142142
match provisioning_state {
@@ -159,7 +159,7 @@ impl ToTokens for RequestBuilderIntoFutureCode {
159159
} else {
160160
(
161161
quote! {
162-
self.send().await?.into_body().await
162+
self.send().await?.into_body()
163163
},
164164
quote! {
165165
#[doc = "Returns a future that sends the request and returns the parsed response body."]

autorust/codegen/src/codegen_operations/request_builder_send.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,9 @@ impl ToTokens for RequestBuilderSendCode {
6666
fn url(&self) -> azure_core::Result<azure_core::http::Url> {
6767
let mut url = azure_core::http::Url::parse(&format!(#fpath, self.client.endpoint(), #url_str_args))?;
6868

69-
let has_api_version_already = url.query_pairs().any(|(k, _)| k == azure_core::http::headers::query_param::API_VERSION);
69+
let has_api_version_already = url.query_pairs().any(|(k, _)| k == "api-version");
7070
if !has_api_version_already {
71-
url.query_pairs_mut().append_pair(azure_core::http::headers::query_param::API_VERSION, #api_version);
71+
url.query_pairs_mut().append_pair("api-version", #api_version);
7272
}
7373
Ok(url)
7474
}
@@ -114,9 +114,9 @@ impl ToTokens for RequestBuilderSendCode {
114114
if request_builder.has_param_api_version {
115115
let api_version = &request_builder.api_version;
116116
stream_api_version.extend(quote! {
117-
let has_api_version_already = req.url_mut().query_pairs().any(|(k, _)| k == azure_core::http::headers::query_param::API_VERSION);
117+
let has_api_version_already = req.url_mut().query_pairs().any(|(k, _)| k == "api-version");
118118
if !has_api_version_already {
119-
req.url_mut().query_pairs_mut().append_pair(azure_core::http::headers::query_param::API_VERSION, #api_version);
119+
req.url_mut().query_pairs_mut().append_pair("api-version", #api_version);
120120
}
121121
});
122122
}
@@ -191,7 +191,7 @@ impl ToTokens for RequestBuilderSendCode {
191191
match rsp.status() {
192192
#match_status
193193
};
194-
rsp?.into_body().await
194+
rsp?.into_body()
195195
}
196196
};
197197

autorust/codegen/src/codegen_operations/request_builder_setter.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ impl ToTokens for RequestBuilderSettersCode {
2121
fn to_tokens(&self, tokens: &mut TokenStream) {
2222
for param in self.parameters.optional_params() {
2323
let FunctionParam {
24-
variable_name, type_name, ..
24+
variable_name,
25+
type_name,
26+
..
2527
} = param;
2628
let is_vec = type_name.is_vec();
2729
let mut type_name = type_name.clone();

0 commit comments

Comments
 (0)