diff --git a/ui/package-lock.json b/ui/package-lock.json index ad58866f4f..45d706f7f4 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -829,9 +829,9 @@ "dev": true }, "@influxdata/influx": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@influxdata/influx/-/influx-0.1.5.tgz", - "integrity": "sha512-fU9kcNCjPv1fY7CzLcNgPmh2iV1I56pN5H5v9aqDA5jEgw2mf4vQM9rPi1TAhk1xZw/CdsYKatI9hAbh7BbWKw==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@influxdata/influx/-/influx-0.1.6.tgz", + "integrity": "sha512-741E/MphkxvZF5DJqnQLBMkbmtqb5ghJadHoCUIEUZwfgjuy5+N8nOcJk0Nfb5E+FlblkDqsz4T/511yiIrE5Q==", "requires": { "axios": "^0.18.0" } diff --git a/ui/package.json b/ui/package.json index 9ab2b28e84..5eae3802cf 100644 --- a/ui/package.json +++ b/ui/package.json @@ -116,7 +116,7 @@ "typescript": "^3.1.3" }, "dependencies": { - "@influxdata/influx": "^0.1.5", + "@influxdata/influx": "^0.1.6", "axios": "^0.18.0", "babel-polyfill": "^6.26.0", "bignumber.js": "^4.0.2", diff --git a/ui/src/dataLoaders/actions/dataLoaders.ts b/ui/src/dataLoaders/actions/dataLoaders.ts index ab8d6e15c7..a8689b53f1 100644 --- a/ui/src/dataLoaders/actions/dataLoaders.ts +++ b/ui/src/dataLoaders/actions/dataLoaders.ts @@ -2,11 +2,6 @@ import _ from 'lodash' // Apis -import { - createTelegrafConfig, - updateTelegrafConfig, - getTelegrafConfig, -} from 'src/onboarding/apis/index' import {client} from 'src/utils/api' import {ScraperTargetRequest} from 'src/api' @@ -310,23 +305,23 @@ export const createOrUpdateTelegrafConfigAsync = (authToken: string) => async ( }, } - let plugins: Plugin[] = [influxDB2Out] - telegrafPlugins.forEach(tp => { - if (tp.configured === ConfigurationState.Configured) { - plugins = [...plugins, tp.plugin || createNewPlugin(tp.name)] - } - }) + const plugins = telegrafPlugins.reduce( + (acc, tp) => { + if (tp.configured === ConfigurationState.Configured) { + return [...acc, tp.plugin || createNewPlugin(tp.name)] + } + + return acc + }, + [influxDB2Out] + ) if (telegrafConfigID) { - const telegrafConfig = await getTelegrafConfig(telegrafConfigID) - const id = _.get(telegrafConfig, 'id', '') - - await updateTelegrafConfig(id, { - ...telegrafConfig, + await client.telegrafConfigs.update(telegrafConfigID, { name: telegrafConfigName, plugins, }) - dispatch(setTelegrafConfigID(id)) + dispatch(setTelegrafConfigID(telegrafConfigID)) return } @@ -337,7 +332,7 @@ export const createOrUpdateTelegrafConfigAsync = (authToken: string) => async ( plugins, } - const created = await createTelegrafConfig(telegrafRequest) + const created = await client.telegrafConfigs.create(telegrafRequest) dispatch(setTelegrafConfigID(created.id)) } diff --git a/ui/src/onboarding/apis/index.ts b/ui/src/onboarding/apis/index.ts index 2aab3617c3..e6b7b3f111 100644 --- a/ui/src/onboarding/apis/index.ts +++ b/ui/src/onboarding/apis/index.ts @@ -2,11 +2,9 @@ import _ from 'lodash' // Utils -import {telegrafsAPI, setupAPI, sourcesAPI} from 'src/utils/api' +import {setupAPI, sourcesAPI} from 'src/utils/api' -import {Telegraf, TelegrafRequest, OnboardingResponse} from 'src/api' - -import {getDeep} from 'src/utils/wrappers' +import {OnboardingResponse} from 'src/api' export const getSetupStatus = async (): Promise => { try { @@ -19,23 +17,6 @@ export const getSetupStatus = async (): Promise => { } } -export const getTelegrafConfigTOML = async ( - telegrafID: string -): Promise => { - const options = { - headers: { - Accept: 'application/toml', - }, - } - - const response = await telegrafsAPI.telegrafsTelegrafIDGet( - telegrafID, - options - ) - - return response.data as string // response.data is string with 'application/toml' header -} - export interface SetupParams { username: string password: string @@ -64,53 +45,3 @@ export const trySources = async (): Promise => { return false } } - -export const getTelegrafConfig = async ( - telegrafConfigID -): Promise => { - try { - const response = await telegrafsAPI.telegrafsTelegrafIDGet(telegrafConfigID) - return response.data - } catch (error) { - console.error(error) - return null - } -} - -export const getTelegrafConfigs = async (org: string): Promise => { - try { - const data = await telegrafsAPI.telegrafsGet(org) - - return getDeep(data, 'data.configurations', []) - } catch (error) { - console.error(error) - } -} - -export const createTelegrafConfig = async ( - telegrafConfig: TelegrafRequest -): Promise => { - try { - const {data} = await telegrafsAPI.telegrafsPost(telegrafConfig) - - return data - } catch (error) { - console.error(error) - } -} - -export const updateTelegrafConfig = async ( - telegrafID: string, - telegrafConfig: TelegrafRequest -): Promise => { - try { - const {data} = await telegrafsAPI.telegrafsTelegrafIDPut( - telegrafID, - telegrafConfig - ) - - return data - } catch (error) { - console.error(error) - } -} diff --git a/ui/src/onboarding/apis/mocks.ts b/ui/src/onboarding/apis/mocks.ts index 793e510611..756f8ec8f6 100644 --- a/ui/src/onboarding/apis/mocks.ts +++ b/ui/src/onboarding/apis/mocks.ts @@ -4,12 +4,14 @@ import { setSetupParamsResponse, } from 'mocks/dummyData' -const telegrafsGet = jest.fn(() => Promise.resolve(getTelegrafConfigsResponse)) +const telegrafsGet = jest.fn(() => + Promise.resolve(getTelegrafConfigsResponse.data) +) const telegrafsPost = jest.fn(() => - Promise.resolve(createTelegrafConfigResponse) + Promise.resolve(createTelegrafConfigResponse.data) ) const telegrafsTelegrafIDPut = jest.fn(() => - Promise.resolve(createTelegrafConfigResponse) + Promise.resolve(createTelegrafConfigResponse.data) ) const setupPost = jest.fn(() => Promise.resolve(setSetupParamsResponse)) const setupGet = jest.fn(() => Promise.resolve({data: {allowed: true}})) @@ -20,6 +22,14 @@ export const telegrafsAPI = { telegrafsTelegrafIDPut, } +export const client = { + telegrafConfigs: { + getAll: telegrafsGet, + getAllByOrg: telegrafsGet, + create: telegrafsPost, + }, +} + export const setupAPI = { setupPost, setupGet, diff --git a/ui/src/onboarding/apis/onboarding.test.ts b/ui/src/onboarding/apis/onboarding.test.ts index 1c8d8afa5c..5709fb8e50 100644 --- a/ui/src/onboarding/apis/onboarding.test.ts +++ b/ui/src/onboarding/apis/onboarding.test.ts @@ -1,13 +1,6 @@ -import { - getSetupStatus, - setSetupParams, - SetupParams, - getTelegrafConfigs, - createTelegrafConfig, -} from 'src/onboarding/apis' +import {getSetupStatus, setSetupParams, SetupParams} from 'src/onboarding/apis' -import {telegrafConfig} from 'mocks/dummyData' -import {telegrafsAPI, setupAPI} from 'src/onboarding/apis/mocks' +import {setupAPI} from 'src/onboarding/apis/mocks' jest.mock('src/utils/api', () => require('src/onboarding/apis/mocks')) @@ -35,22 +28,4 @@ describe('Onboarding.Apis', () => { expect(setupAPI.setupPost).toHaveBeenCalledWith(setupParams) }) }) - - describe('getTelegrafConfigs', () => { - it('should return an array of configs', async () => { - const org = 'default' - const result = await getTelegrafConfigs(org) - - expect(result).toEqual([telegrafConfig]) - expect(telegrafsAPI.telegrafsGet).toBeCalledWith(org) - }) - }) - - describe('createTelegrafConfig', () => { - it('should return the newly created config', async () => { - const result = await createTelegrafConfig(telegrafConfig) - - expect(result).toEqual(telegrafConfig) - }) - }) }) diff --git a/ui/src/organizations/apis/index.ts b/ui/src/organizations/apis/index.ts index 3fbb311379..cd9a01b213 100644 --- a/ui/src/organizations/apis/index.ts +++ b/ui/src/organizations/apis/index.ts @@ -1,13 +1,10 @@ // Libraries import _ from 'lodash' -// Utils -import {getDeep} from 'src/utils/wrappers' - -import {dashboardsAPI, telegrafsAPI} from 'src/utils/api' +import {dashboardsAPI} from 'src/utils/api' // Types -import {Organization, Telegraf} from 'src/api' +import {Organization} from 'src/api' import {Dashboard} from 'src/types/v2' // CRUD APIs for Organizations and Organization resources @@ -32,42 +29,3 @@ export const getDashboards = async ( throw error } } - -export const getCollectors = async (org: Organization): Promise => { - try { - const data = await telegrafsAPI.telegrafsGet(org.id) - - return getDeep(data, 'data.configurations', []) - } catch (error) { - console.error(error) - } -} - -export const getTelegrafConfigTOML = async ( - telegrafID: string -): Promise => { - const options = { - headers: { - Accept: 'application/toml', - }, - } - - const response = await telegrafsAPI.telegrafsTelegrafIDGet( - telegrafID, - options - ) - - return response.data as string // response.data is string with 'application/toml' header -} - -export const deleteTelegrafConfig = async ( - telegrafID: string -): Promise => { - try { - const response = await telegrafsAPI.telegrafsTelegrafIDDelete(telegrafID) - - return response.data - } catch (error) { - console.error(error) - } -} diff --git a/ui/src/organizations/components/Collectors.tsx b/ui/src/organizations/components/Collectors.tsx index 82ea06ef58..106adb02f9 100644 --- a/ui/src/organizations/components/Collectors.tsx +++ b/ui/src/organizations/components/Collectors.tsx @@ -24,10 +24,7 @@ import DataLoadersWizard from 'src/dataLoaders/components/DataLoadersWizard' import FilterList from 'src/shared/components/Filter' // APIS -import { - getTelegrafConfigTOML, - deleteTelegrafConfig, -} from 'src/organizations/apis/index' +import {client} from 'src/utils/api' // Actions import * as NotificationsActions from 'src/types/actions/notifications' @@ -178,14 +175,14 @@ export default class Collectors extends PureComponent { telegrafName: string ) => { try { - const config = await getTelegrafConfigTOML(telegrafID) + const config = await client.telegrafConfigs.getTOML(telegrafID) downloadTextFile(config, `${telegrafName || 'config'}.toml`) } catch (error) { notify(getTelegrafConfigFailed()) } } private handleDeleteTelegraf = async (telegrafID: string) => { - await deleteTelegrafConfig(telegrafID) + await client.telegrafConfigs.delete(telegrafID) this.props.onChange() } diff --git a/ui/src/organizations/components/Scrapers.tsx b/ui/src/organizations/components/Scrapers.tsx index ddfb0f75cd..80127b39c6 100644 --- a/ui/src/organizations/components/Scrapers.tsx +++ b/ui/src/organizations/components/Scrapers.tsx @@ -162,7 +162,7 @@ export default class Scrapers extends PureComponent { } private handleDeleteScraper = async (scraper: ScraperTargetResponse) => { - await client.scrapers.deleteScraper(scraper.id) + await client.scrapers.delete(scraper.id) this.props.onChange() } diff --git a/ui/src/organizations/containers/OrganizationView.tsx b/ui/src/organizations/containers/OrganizationView.tsx index 785e6d942e..af8123af75 100644 --- a/ui/src/organizations/containers/OrganizationView.tsx +++ b/ui/src/organizations/containers/OrganizationView.tsx @@ -5,9 +5,13 @@ import {connect} from 'react-redux' import _ from 'lodash' // APIs -import {getDashboards, getCollectors} from 'src/organizations/apis' +import {getDashboards} from 'src/organizations/apis' import {client} from 'src/utils/api' +const getCollectors = async (org: Organization) => { + return client.telegrafConfigs.getAllByOrg(org) +} + const getScrapers = async () => { return await client.scrapers.getAll() } diff --git a/ui/src/utils/api.ts b/ui/src/utils/api.ts index d509dc5101..95259eeba3 100644 --- a/ui/src/utils/api.ts +++ b/ui/src/utils/api.ts @@ -1,7 +1,6 @@ import { DashboardsApi, CellsApi, - TelegrafsApi, ViewsApi, SourcesApi, QueryApi, @@ -18,7 +17,6 @@ export const client = new Client(basePath) export const viewsAPI = new ViewsApi({basePath}) export const dashboardsAPI = new DashboardsApi({basePath}) export const cellsAPI = new CellsApi({basePath}) -export const telegrafsAPI = new TelegrafsApi({basePath}) export const sourcesAPI = new SourcesApi({basePath}) export const queryAPI = new QueryApi({basePath}) export const setupAPI = new SetupApi({basePath})