mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Cloudwatch: Fix loading custom credentials profile (#27684)
* Store credentials profile in JSON * Update docs example * Apply suggestions from code review Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
This commit is contained in:
parent
f0a586a914
commit
42476811a4
@ -161,6 +161,7 @@ Since not all datasources have the same configuration settings we only have the
|
||||
| assumeRoleArn | string | Cloudwatch | ARN of Assume Role |
|
||||
| defaultRegion | string | Cloudwatch | AWS region |
|
||||
| customMetricsNamespaces | string | Cloudwatch | Namespaces of Custom Metrics |
|
||||
| profile | string | Cloudwatch | Custom credentials profile
|
||||
| tsdbVersion | string | OpenTSDB | Version |
|
||||
| tsdbResolution | string | OpenTSDB | Resolution |
|
||||
| sslmode | string | PostgreSQL | SSLmode. 'disable', 'require', 'verify-ca' or 'verify-full' |
|
||||
|
@ -372,7 +372,7 @@ It's now possible to configure data sources using config files with Grafana's pr
|
||||
|
||||
Here are some provisioning examples for this data source.
|
||||
|
||||
### Using a credentials file
|
||||
### Using credentials profile name (non-default)
|
||||
|
||||
```yaml
|
||||
apiVersion: 1
|
||||
@ -384,6 +384,7 @@ datasources:
|
||||
authType: credentials
|
||||
defaultRegion: eu-west-2
|
||||
customMetricsNamespaces: 'CWAgent,CustomNameSpace'
|
||||
profile: secondary
|
||||
```
|
||||
|
||||
### Using `accessKey` and `secretKey`
|
||||
|
@ -499,6 +499,7 @@ export interface MetricFindValue {
|
||||
export interface DataSourceJsonData {
|
||||
authType?: string;
|
||||
defaultRegion?: string;
|
||||
profile?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -294,9 +294,14 @@ func (e *cloudWatchExecutor) getDSInfo(region string) *datasourceInfo {
|
||||
accessKey := decrypted["accessKey"]
|
||||
secretKey := decrypted["secretKey"]
|
||||
|
||||
profile := e.DataSource.JsonData.Get("profile").MustString()
|
||||
if profile == "" {
|
||||
profile = e.DataSource.Database // legacy support
|
||||
}
|
||||
|
||||
return &datasourceInfo{
|
||||
Region: region,
|
||||
Profile: e.DataSource.Database,
|
||||
Profile: profile,
|
||||
AuthType: authType,
|
||||
AssumeRoleArn: assumeRoleArn,
|
||||
ExternalID: externalID,
|
||||
|
@ -4,7 +4,6 @@ const { Select, Input } = LegacyForms;
|
||||
import {
|
||||
DataSourcePluginOptionsEditorProps,
|
||||
onUpdateDatasourceJsonDataOptionSelect,
|
||||
onUpdateDatasourceOption,
|
||||
onUpdateDatasourceResetOption,
|
||||
onUpdateDatasourceJsonDataOption,
|
||||
onUpdateDatasourceSecureJsonDataOption,
|
||||
@ -115,6 +114,10 @@ export class ConfigEditor extends PureComponent<Props, State> {
|
||||
const { regions } = this.state;
|
||||
const { options } = this.props;
|
||||
const secureJsonData = (options.secureJsonData || {}) as CloudWatchSecureJsonData;
|
||||
let profile = options.jsonData.profile;
|
||||
if (!profile) {
|
||||
profile = options.database;
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
@ -151,8 +154,8 @@ export class ConfigEditor extends PureComponent<Props, State> {
|
||||
<Input
|
||||
className="width-30"
|
||||
placeholder="default"
|
||||
value={options.jsonData.database}
|
||||
onChange={onUpdateDatasourceOption(this.props, 'database')}
|
||||
value={profile}
|
||||
onChange={onUpdateDatasourceJsonDataOption(this.props, 'profile')}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
Loading…
Reference in New Issue
Block a user