(&self)
| 898 | } |
| 899 | |
| 900 | async fn request_app_keys_from_kms(&self) -> Result<AppKeys> { |
| 901 | if self.shared.sys_config.kms_urls.is_empty() { |
| 902 | bail!("No KMS URLs are set"); |
| 903 | } |
| 904 | let keys = 'out: { |
| 905 | let mut error = anyhow!("unknown error"); |
| 906 | for (i, kms_url) in self.shared.sys_config.kms_urls.iter().enumerate() { |
| 907 | let kms_url = format!("{kms_url}/prpc"); |
| 908 | let response = self.request_app_keys_from_kms_url(kms_url.clone()).await; |
| 909 | match response { |
| 910 | Ok(response) => { |
| 911 | break 'out response; |
| 912 | } |
| 913 | Err(err) => { |
| 914 | warn!("Failed to get app keys from KMS {kms_url}: {err:?}"); |
| 915 | // Record the first error |
| 916 | if i == 0 { |
| 917 | error = err; |
| 918 | } |
| 919 | } |
| 920 | } |
| 921 | } |
| 922 | return Err(error).context("Failed to get app keys from KMS"); |
| 923 | }; |
| 924 | Ok(keys) |
| 925 | } |
| 926 | |
| 927 | fn verify_key_provider_id(&self, provider_id: &[u8]) -> Result<()> { |
| 928 | let expected_key_provider_id = &self.shared.app_compose.key_provider_id; |
no test coverage detected