mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Stackdriver: Migrate GCE default project (#22593)
* Ensure default project * Remove debug logging * Fix broken test * Update snapshot
This commit is contained in:
parent
e688f13535
commit
f95c8b785c
@ -102,10 +102,8 @@ func (e *StackdriverExecutor) getGCEDefaultProject(ctx context.Context, tsdbQuer
|
||||
|
||||
gceDefaultProject, err := e.getDefaultProject(ctx)
|
||||
if err != nil {
|
||||
slog.Debug("Stackdriver", "Auth", "Failed to use GCE auth: ", err)
|
||||
return nil, fmt.Errorf("Failed to retrieve default project from GCE metadata server. error: %v", err)
|
||||
}
|
||||
slog.Debug("Stackdriver", "Auth", "Successfully use GCE auth: ", gceDefaultProject)
|
||||
|
||||
queryResult.Meta.Set("defaultProject", gceDefaultProject)
|
||||
result.Results[refId] = queryResult
|
||||
|
@ -111,7 +111,6 @@ export function Metrics(props: Props) {
|
||||
return services.length > 0 ? _.uniqBy(services, s => s.value) : [];
|
||||
};
|
||||
|
||||
console.log('rerender', { service, metricType });
|
||||
return (
|
||||
<>
|
||||
<div className="gf-form-inline">
|
||||
|
@ -11,6 +11,7 @@ const props: Props = {
|
||||
datasource: {
|
||||
getProjects: () => Promise.resolve([]),
|
||||
getDefaultProject: () => Promise.resolve('projectName'),
|
||||
ensureGCEDefaultProject: () => {},
|
||||
getMetricTypes: () => Promise.resolve([]),
|
||||
getLabels: () => Promise.resolve([]),
|
||||
variables: [],
|
||||
|
@ -56,6 +56,7 @@ export class QueryEditor extends React.Component<Props, State> {
|
||||
|
||||
async componentDidMount() {
|
||||
const { events, target, templateSrv, datasource } = this.props;
|
||||
await datasource.ensureGCEDefaultProject();
|
||||
if (!target.projectName) {
|
||||
target.projectName = datasource.getDefaultProject();
|
||||
}
|
||||
|
@ -15,7 +15,7 @@ Array [
|
||||
onClick={[Function]}
|
||||
>
|
||||
<a
|
||||
className="gf-form-label query-part"
|
||||
className="gf-form-label query-part query-placeholder"
|
||||
>
|
||||
Select Project
|
||||
</a>
|
||||
|
@ -41,6 +41,7 @@ export default class StackdriverDatasource extends DataSourceApi<StackdriverQuer
|
||||
}
|
||||
|
||||
async getTimeSeries(options: DataQueryRequest<StackdriverQuery>) {
|
||||
await this.ensureGCEDefaultProject();
|
||||
const queries = options.targets
|
||||
.filter((target: StackdriverQuery) => {
|
||||
return !target.hide && target.metricType;
|
||||
@ -173,6 +174,7 @@ export default class StackdriverDatasource extends DataSourceApi<StackdriverQuer
|
||||
}
|
||||
|
||||
async annotationQuery(options: any) {
|
||||
await this.ensureGCEDefaultProject();
|
||||
const annotation = options.annotation;
|
||||
const queries = [
|
||||
{
|
||||
@ -218,6 +220,7 @@ export default class StackdriverDatasource extends DataSourceApi<StackdriverQuer
|
||||
}
|
||||
|
||||
async metricFindQuery(query: VariableQueryData) {
|
||||
await this.ensureGCEDefaultProject();
|
||||
const stackdriverMetricFindQuery = new StackdriverMetricFindQuery(this);
|
||||
return stackdriverMetricFindQuery.execute(query);
|
||||
}
|
||||
@ -320,12 +323,19 @@ export default class StackdriverDatasource extends DataSourceApi<StackdriverQuer
|
||||
getDefaultProject(): string {
|
||||
const { defaultProject, authenticationType, gceDefaultProject } = this.instanceSettings.jsonData;
|
||||
if (authenticationType === 'gce') {
|
||||
return gceDefaultProject || defaultProject || '';
|
||||
return gceDefaultProject || '';
|
||||
}
|
||||
|
||||
return defaultProject || '';
|
||||
}
|
||||
|
||||
async ensureGCEDefaultProject() {
|
||||
const { authenticationType, gceDefaultProject } = this.instanceSettings.jsonData;
|
||||
if (authenticationType === 'gce' && !gceDefaultProject) {
|
||||
this.instanceSettings.jsonData.gceDefaultProject = await this.getGCEDefaultProject();
|
||||
}
|
||||
}
|
||||
|
||||
async getMetricTypes(projectName: string): Promise<MetricDescriptor[]> {
|
||||
try {
|
||||
if (!projectName) {
|
||||
|
Loading…
Reference in New Issue
Block a user