diff --git a/grafana/rmf-app/src/components/Root/Root.tsx b/grafana/rmf-app/src/components/Root/Root.tsx
index 4af3c16..702037b 100644
--- a/grafana/rmf-app/src/components/Root/Root.tsx
+++ b/grafana/rmf-app/src/components/Root/Root.tsx
@@ -211,7 +211,7 @@ export class Root extends PureComponent {
- Link it with OMEGAMON dashboards (experimental):
+ Link with IBM Z OMEGAMON Web UI dashboards:
{
diff --git a/grafana/rmf-app/src/datasources/rmf-datasource/config-editor/config-editor.component.tsx b/grafana/rmf-app/src/datasources/rmf-datasource/config-editor/config-editor.component.tsx
index 4c8809e..33850eb 100644
--- a/grafana/rmf-app/src/datasources/rmf-datasource/config-editor/config-editor.component.tsx
+++ b/grafana/rmf-app/src/datasources/rmf-datasource/config-editor/config-editor.component.tsx
@@ -14,9 +14,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-import React, { PureComponent, ReactNode } from 'react';
-import { DataSourcePluginOptionsEditorProps } from '@grafana/data';
-import { FieldValidationMessage, InlineField, InlineSwitch, LegacyForms, SecretInput, Combobox, ComboboxOption } from '@grafana/ui';
+import React, { PureComponent } from 'react';
+import { DataSourcePluginOptionsEditorProps, SelectableValue } from '@grafana/data';
+import { FieldValidationMessage, InlineField, InlineSwitch, LegacyForms, SecretInput, Select, ComboboxOption } from '@grafana/ui';
import { RMFDataSourceSettings, RMFDataSourceJsonData, RMFDataSourceSecureJsonData } from '../common/types';
import { OMEGAMON_DS_TYPE_NAME } from '../common/configSettings';
import { getBackendSrv } from '@grafana/runtime';
@@ -41,7 +41,7 @@ interface State {
httpTimeoutError?: string;
basicAuthUserError?: string;
cacheSizeError?: string;
- omegOptionsArray?: Array;
+ omegOptionsArray?: SelectableValue[];
}
// TODO: somehow prometheus can validate fields from "run and test" in v11
export default class ConfigEditor extends PureComponent {
@@ -158,6 +158,32 @@ export default class ConfigEditor extends PureComponent {
return optionsArray;
};
+ async componentDidMount() {
+ await this.updateDatasourceList(OMEGAMON_DS_TYPE_NAME);
+ }
+
+ updateDatasourceList = async (type: string) => {
+ var items: Set = new Set();
+ var optionsArray: Array> = new Array;
+ items.add("");
+ optionsArray.push({label: "", value: "" } as SelectableValue);
+ if (this.props.options.jsonData?.omegamonDs && !items.has(this.props.options.jsonData?.omegamonDs)) {
+ items.add(this.props.options.jsonData?.omegamonDs);
+ optionsArray.push({label: this.props.options.jsonData?.omegamonDs, value: this.props.options.jsonData?.omegamonDs } as SelectableValue);
+ }
+ var datasources: any = await getBackendSrv().get("/api/datasources");
+ datasources.forEach((ds: any) => {
+ if (ds.type === type && !items.has(ds.name)) {
+ items.add(ds.name);
+ optionsArray.push({label: ds.name, value: ds.name } as SelectableValue);
+ }
+ });
+ this.setState((prevState) => ({
+ ...prevState,
+ omegOptionsArray: optionsArray
+ }));
+ }
+
render() {
const { options } = this.props;
const { urlError, httpTimeoutError, basicAuthUserError, cacheSizeError } = this.state;
@@ -312,16 +338,15 @@ export default class ConfigEditor extends PureComponent {
- OMEGAMON (Experimental)
+ OMEGAMON (optional)
- {
this.updateSettings({ jsonData: { omegamonDs: String(event.value) } });
}}