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)
|
gceDefaultProject, err := e.getDefaultProject(ctx)
|
||||||
if err != nil {
|
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)
|
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)
|
queryResult.Meta.Set("defaultProject", gceDefaultProject)
|
||||||
result.Results[refId] = queryResult
|
result.Results[refId] = queryResult
|
||||||
|
@ -111,7 +111,6 @@ export function Metrics(props: Props) {
|
|||||||
return services.length > 0 ? _.uniqBy(services, s => s.value) : [];
|
return services.length > 0 ? _.uniqBy(services, s => s.value) : [];
|
||||||
};
|
};
|
||||||
|
|
||||||
console.log('rerender', { service, metricType });
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className="gf-form-inline">
|
<div className="gf-form-inline">
|
||||||
|
@ -11,6 +11,7 @@ const props: Props = {
|
|||||||
datasource: {
|
datasource: {
|
||||||
getProjects: () => Promise.resolve([]),
|
getProjects: () => Promise.resolve([]),
|
||||||
getDefaultProject: () => Promise.resolve('projectName'),
|
getDefaultProject: () => Promise.resolve('projectName'),
|
||||||
|
ensureGCEDefaultProject: () => {},
|
||||||
getMetricTypes: () => Promise.resolve([]),
|
getMetricTypes: () => Promise.resolve([]),
|
||||||
getLabels: () => Promise.resolve([]),
|
getLabels: () => Promise.resolve([]),
|
||||||
variables: [],
|
variables: [],
|
||||||
|
@ -56,6 +56,7 @@ export class QueryEditor extends React.Component<Props, State> {
|
|||||||
|
|
||||||
async componentDidMount() {
|
async componentDidMount() {
|
||||||
const { events, target, templateSrv, datasource } = this.props;
|
const { events, target, templateSrv, datasource } = this.props;
|
||||||
|
await datasource.ensureGCEDefaultProject();
|
||||||
if (!target.projectName) {
|
if (!target.projectName) {
|
||||||
target.projectName = datasource.getDefaultProject();
|
target.projectName = datasource.getDefaultProject();
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,7 @@ Array [
|
|||||||
onClick={[Function]}
|
onClick={[Function]}
|
||||||
>
|
>
|
||||||
<a
|
<a
|
||||||
className="gf-form-label query-part"
|
className="gf-form-label query-part query-placeholder"
|
||||||
>
|
>
|
||||||
Select Project
|
Select Project
|
||||||
</a>
|
</a>
|
||||||
|
@ -41,6 +41,7 @@ export default class StackdriverDatasource extends DataSourceApi<StackdriverQuer
|
|||||||
}
|
}
|
||||||
|
|
||||||
async getTimeSeries(options: DataQueryRequest<StackdriverQuery>) {
|
async getTimeSeries(options: DataQueryRequest<StackdriverQuery>) {
|
||||||
|
await this.ensureGCEDefaultProject();
|
||||||
const queries = options.targets
|
const queries = options.targets
|
||||||
.filter((target: StackdriverQuery) => {
|
.filter((target: StackdriverQuery) => {
|
||||||
return !target.hide && target.metricType;
|
return !target.hide && target.metricType;
|
||||||
@ -173,6 +174,7 @@ export default class StackdriverDatasource extends DataSourceApi<StackdriverQuer
|
|||||||
}
|
}
|
||||||
|
|
||||||
async annotationQuery(options: any) {
|
async annotationQuery(options: any) {
|
||||||
|
await this.ensureGCEDefaultProject();
|
||||||
const annotation = options.annotation;
|
const annotation = options.annotation;
|
||||||
const queries = [
|
const queries = [
|
||||||
{
|
{
|
||||||
@ -218,6 +220,7 @@ export default class StackdriverDatasource extends DataSourceApi<StackdriverQuer
|
|||||||
}
|
}
|
||||||
|
|
||||||
async metricFindQuery(query: VariableQueryData) {
|
async metricFindQuery(query: VariableQueryData) {
|
||||||
|
await this.ensureGCEDefaultProject();
|
||||||
const stackdriverMetricFindQuery = new StackdriverMetricFindQuery(this);
|
const stackdriverMetricFindQuery = new StackdriverMetricFindQuery(this);
|
||||||
return stackdriverMetricFindQuery.execute(query);
|
return stackdriverMetricFindQuery.execute(query);
|
||||||
}
|
}
|
||||||
@ -320,12 +323,19 @@ export default class StackdriverDatasource extends DataSourceApi<StackdriverQuer
|
|||||||
getDefaultProject(): string {
|
getDefaultProject(): string {
|
||||||
const { defaultProject, authenticationType, gceDefaultProject } = this.instanceSettings.jsonData;
|
const { defaultProject, authenticationType, gceDefaultProject } = this.instanceSettings.jsonData;
|
||||||
if (authenticationType === 'gce') {
|
if (authenticationType === 'gce') {
|
||||||
return gceDefaultProject || defaultProject || '';
|
return gceDefaultProject || '';
|
||||||
}
|
}
|
||||||
|
|
||||||
return defaultProject || '';
|
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[]> {
|
async getMetricTypes(projectName: string): Promise<MetricDescriptor[]> {
|
||||||
try {
|
try {
|
||||||
if (!projectName) {
|
if (!projectName) {
|
||||||
|
Loading…
Reference in New Issue
Block a user