@@ -66,7 +66,7 @@ fn main() {
6666
6767 match configure_http_api_client ( & cli, & common_settings, & endpoint. clone ( ) ) {
6868 Ok ( client) => {
69- let exit_code = dispatch_command ( & cli, client, & common_settings, endpoint ) ;
69+ let exit_code = dispatch_command ( & cli, client, & common_settings) ;
7070 process:: exit ( exit_code. into ( ) )
7171 }
7272 Err ( err) => {
@@ -116,13 +116,13 @@ fn resolve_run_configuration(cli: &ArgMatches) -> (SharedSettings, String) {
116116
117117fn configure_http_api_client < ' a > (
118118 cli : & ' a ArgMatches ,
119- common_settings : & ' a SharedSettings ,
119+ merged_settings : & ' a SharedSettings ,
120120 endpoint : & ' a str ,
121121) -> Result < APIClient , CommandRunError > {
122- let httpc = build_http_client ( cli, common_settings ) ?;
122+ let httpc = build_http_client ( cli, merged_settings ) ?;
123123 // Due to how SharedSettings are computed, these should safe to unwrap()
124- let username = common_settings . username . clone ( ) . unwrap ( ) ;
125- let password = common_settings . password . clone ( ) . unwrap ( ) ;
124+ let username = merged_settings . username . clone ( ) . unwrap ( ) ;
125+ let password = merged_settings . password . clone ( ) . unwrap ( ) ;
126126 let client = build_rabbitmq_http_api_client (
127127 httpc,
128128 endpoint. to_owned ( ) ,
@@ -135,16 +135,15 @@ fn configure_http_api_client<'a>(
135135fn dispatch_command (
136136 cli : & ArgMatches ,
137137 client : APIClient ,
138- common_settings : & SharedSettings ,
139- endpoint : String ,
138+ merged_settings : & SharedSettings ,
140139) -> ExitCode {
141140 if let Some ( ( first_level, first_level_args) ) = cli. subcommand ( ) {
142141 if let Some ( ( second_level, second_level_args) ) = first_level_args. subcommand ( ) {
143142 // this is a Tanzu RabbitMQ-specific command, these are grouped under "tanzu"
144143 if first_level == TANZU_COMMAND_PREFIX {
145144 if let Some ( ( third_level, third_level_args) ) = second_level_args. subcommand ( ) {
146145 let pair = ( second_level, third_level) ;
147- let mut res_handler = ResultHandler :: new ( common_settings , second_level_args) ;
146+ let mut res_handler = ResultHandler :: new ( merged_settings , second_level_args) ;
148147 return dispatch_tanzu_subcommand (
149148 pair,
150149 third_level_args,
@@ -155,13 +154,13 @@ fn dispatch_command(
155154 } else {
156155 // this is a common (OSS and Tanzu) command
157156 let pair = ( first_level, second_level) ;
158- let vhost = virtual_host ( common_settings , second_level_args) ;
159- let mut res_handler = ResultHandler :: new ( common_settings , second_level_args) ;
157+ let vhost = virtual_host ( merged_settings , second_level_args) ;
158+ let mut res_handler = ResultHandler :: new ( merged_settings , second_level_args) ;
160159 return dispatch_common_subcommand (
161160 pair,
162161 second_level_args,
163162 client,
164- endpoint,
163+ merged_settings . endpoint ( ) ,
165164 vhost,
166165 & mut res_handler,
167166 ) ;
@@ -192,12 +191,12 @@ fn build_http_client(
192191 if should_use_tls ( common_settings) {
193192 let _ = CryptoProvider :: install_default ( rustls:: crypto:: aws_lc_rs:: default_provider ( ) ) ;
194193
195- let ca_cert_pem_file = cli. get_one :: < PathBuf > ( "tls-ca-cert-file" ) ;
196-
197- let maybe_client_cert_pem_file = cli. get_one :: < PathBuf > ( "tls-cert-file" ) ;
198- let maybe_client_key_pem_file = cli. get_one :: < PathBuf > ( "tls-key-file" ) ;
194+ let ca_cert_pem_file = common_settings. ca_certificate_bundle_path . clone ( ) ;
195+ let maybe_client_cert_pem_file = common_settings. client_certificate_file_path . clone ( ) ;
196+ let maybe_client_key_pem_file = common_settings. client_private_key_file_path . clone ( ) ;
199197
200198 let ca_certs = ca_cert_pem_file
199+ . clone ( )
201200 . map ( |path| load_certs ( & path. to_string_lossy ( ) ) )
202201 . unwrap ( ) ?;
203202
@@ -209,15 +208,18 @@ fn build_http_client(
209208 . tls_info ( true )
210209 . tls_sni ( true )
211210 . min_tls_version ( reqwest:: tls:: Version :: TLS_1_2 )
211+ . tls_built_in_native_certs ( true )
212212 . tls_built_in_root_certs ( true )
213213 . danger_accept_invalid_certs ( disable_peer_verification)
214214 . danger_accept_invalid_hostnames ( disable_peer_verification) ;
215215
216- // --tls-ca-cert-file
216+ // local certificate store
217217 let mut store = rustls:: RootCertStore :: empty ( ) ;
218+
218219 for c in ca_certs {
219220 store. add ( c) . map_err ( |err| {
220- let readable_path = maybe_client_cert_pem_file
221+ let readable_path = ca_cert_pem_file
222+ . clone ( )
221223 . unwrap ( )
222224 . to_string_lossy ( )
223225 . to_string ( ) ;
@@ -230,15 +232,16 @@ fn build_http_client(
230232
231233 // --tls-cert-file, --tls-key-file
232234 if maybe_client_cert_pem_file. is_some ( ) && maybe_client_key_pem_file. is_some ( ) {
233- let client_cert_pem_file = maybe_client_cert_pem_file. unwrap ( ) ;
234- let client_key_pem_file = maybe_client_key_pem_file. unwrap ( ) ;
235+ let client_cert_pem_file = maybe_client_cert_pem_file. clone ( ) . unwrap ( ) ;
236+ let client_key_pem_file = maybe_client_key_pem_file. clone ( ) . unwrap ( ) ;
235237
236238 let client_cert = fs:: read ( client_cert_pem_file) ?;
237239 let client_key = fs:: read ( client_key_pem_file) ?;
238240
239241 let concatenated = [ & client_cert[ ..] , & client_key[ ..] ] . concat ( ) ;
240242 let client_id = Identity :: from_pem ( & concatenated) . map_err ( |err| {
241243 let readable_path = maybe_client_key_pem_file
244+ . clone ( )
242245 . unwrap ( )
243246 . to_string_lossy ( )
244247 . to_string ( ) ;
0 commit comments