web-interface.assets.1255d548-5912.39fbec2fb46ad33fb816.js.map Maven / Gradle / Ivy
{"version":3,"file":"1255d548-5912.39fbec2fb46ad33fb816.js","mappings":"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","sources":["webpack://graylog-web-interface/./src/components/sidecars/common/CommonSidecarStyles.css","webpack://graylog-web-interface/./src/components/common/PageNavigation.tsx","webpack://graylog-web-interface/./src/components/sidecars/common/SidecarsPageNavigation.tsx","webpack://graylog-web-interface/./src/components/sidecars/sidecars/VerboseMessageModal.jsx","webpack://graylog-web-interface/./src/logic/sidecar/SidecarStatusEnum.js","webpack://graylog-web-interface/./src/components/sidecars/sidecars/SidecarStatusFileList.jsx","webpack://graylog-web-interface/./src/components/sidecars/sidecars/SidecarStatus.jsx","webpack://graylog-web-interface/./src/pages/SidecarStatusPage.jsx","webpack://graylog-web-interface/./src/routing/withHistory.tsx","webpack://graylog-web-interface/./src/routing/withParams.tsx","webpack://graylog-web-interface/./src/stores/sidecars/CollectorsStore.js","webpack://graylog-web-interface/./src/stores/sidecars/SidecarsStore.js","webpack://graylog-web-interface/./node_modules/lodash/lowerCase.js","webpack://graylog-web-interface/./src/components/sidecars/common/CommonSidecarStyles.css?ba64"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.zL2vwyqmPLuE_eSRQt1q {\n margin-top: 10px;\n}\n\n.zL2vwyqmPLuE_eSRQt1q dt {\n float: left;\n clear: left;\n}\n\n.zL2vwyqmPLuE_eSRQt1q dd {\n margin-left: 160px;\n}\n\n.m4So8k7QXl39uuSoP2WS {\n margin-top: 10px;\n}\n\n.Bfhoisypey7je2baSbGs {\n opacity: 0.5;\n z-index: 20;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/sidecars/common/CommonSidecarStyles.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,gBAAgB;AACpB;;AAEA;IACI,WAAW;IACX,WAAW;AACf;;AAEA;IACI,kBAAkB;AACtB;;AAEA;IACI,gBAAgB;AACpB;;AAEA;IACI,YAAY;IACZ,WAAW;AACf\",\"sourcesContent\":[\":local(.deflist) {\\n margin-top: 10px;\\n}\\n\\n:local(.deflist) dt {\\n float: left;\\n clear: left;\\n}\\n\\n:local(.deflist) dd {\\n margin-left: 160px;\\n}\\n\\n:local(.topMargin) {\\n margin-top: 10px;\\n}\\n\\n:local(.greyedOut) {\\n opacity: 0.5;\\n z-index: 20;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"deflist\": `zL2vwyqmPLuE_eSRQt1q`,\n\t\"topMargin\": `m4So8k7QXl39uuSoP2WS`,\n\t\"greyedOut\": `Bfhoisypey7je2baSbGs`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Button, ButtonToolbar } from 'components/bootstrap';\nimport { LinkContainer } from 'components/common/router';\nimport { IfPermitted } from 'components/common';\nimport NavItemStateIndicator, {\n hoverIndicatorStyles,\n activeIndicatorStyles,\n} from 'components/common/NavItemStateIndicator';\n\nconst Container = styled(ButtonToolbar)`\n margin-bottom: 10px;\n`;\n\nconst StyledButton = styled(Button)(({ theme }) => css`\n font-family: ${theme.fonts.family.navigation};\n font-size: ${theme.fonts.size.navigation};\n\n &&&& {\n color: ${theme.colors.variant.darker.default};\n \n &:hover,\n &:focus {\n text-decoration: none;\n }\n\n > div {\n &:hover,\n &:focus {\n color: ${theme.colors.variant.darker.default};\n }\n }\n\n &:hover {\n ${hoverIndicatorStyles(theme)}\n }\n\n &.active {\n color: ${theme.colors.global.textDefault};\n\n ${activeIndicatorStyles(theme)}\n\n &:hover,\n &:focus {\n ${activeIndicatorStyles(theme)}\n }\n }\n }\n`);\n\nStyledButton.displayName = 'Button';\n\ntype Props = {\n /**\n * List of nav items. Define permissions, if the item should only be displayed for users with specific permissions.\n * By default, an item is active if the current URL starts with the item URL.\n * If you only want to display an item as active only when its path matches exactly, set `exactPathMatch` to true.\n */\n items: Array<{\n title: string,\n path: string,\n permissions?: string | Array\n exactPathMatch?: boolean,\n }>\n}\n\n/**\n * Simple tab navigation to allow navigating to subareas of a page.\n */\nconst PageNavigation = ({ items }: Props) => (\n \n {items.map(({ path, title, permissions, exactPathMatch }) => {\n if (!path) {\n return null;\n }\n\n return (\n \n \n \n \n {title}\n \n \n \n \n );\n })}\n \n);\n\nexport default PageNavigation;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\n\nimport PageNavigation from 'components/common/PageNavigation';\nimport Routes from 'routing/Routes';\nimport { Row } from 'components/bootstrap';\n\nconst NAV_ITEMS = [\n { title: 'Overview', path: Routes.SYSTEM.SIDECARS.OVERVIEW, exactPathMatch: true },\n { title: 'Administration', path: Routes.SYSTEM.SIDECARS.ADMINISTRATION },\n { title: 'Configuration', path: Routes.SYSTEM.SIDECARS.CONFIGURATION },\n { title: 'Failure Tracking', path: Routes.SYSTEM.SIDECARS.FAILURE_TRACKING },\n];\n\nconst SidecarsPageNavigation = () => (\n \n \n
\n);\n\nexport default SidecarsPageNavigation;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport styled from 'styled-components';\n\nimport { Modal, Button } from 'components/bootstrap';\nimport BootstrapModalWrapper from 'components/bootstrap/BootstrapModalWrapper';\n\nconst VerboseMessage = styled.div`\n word-break: break-all;\n overflow-wrap: break-word;\n white-space: pre-wrap;\n max-height: 500px;\n`;\n\nconst VerboseMessageModal = ({ showModal, onHide, collectorName, collectorVerbose }) => (\n \n \n Error Details for {collectorName} \n \n \n \n \n {collectorVerbose || ''}\n \n
\n \n \n \n \n \n);\n\nVerboseMessageModal.propTypes = {\n showModal: PropTypes.bool.isRequired,\n onHide: PropTypes.func.isRequired,\n collectorName: PropTypes.string.isRequired,\n collectorVerbose: PropTypes.string.isRequired,\n};\n\nexport default VerboseMessageModal;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport lowerCase from 'lodash/lowerCase';\nimport toNumber from 'lodash/toNumber';\n\nconst SidecarStatusEnum = {\n RUNNING: 0,\n UNKNOWN: 1,\n FAILING: 2,\n STOPPED: 3,\n properties: {\n 0: { name: 'running' },\n 1: { name: 'unknown' },\n 2: { name: 'failing' },\n 3: { name: 'stopped' },\n },\n\n isValidStatusCode(statusCode) {\n return Object.keys(this.properties).includes(String(statusCode));\n },\n\n toStatusCode(stringStatus) {\n const status = lowerCase(stringStatus);\n\n if (status === this.properties[this.RUNNING].name) {\n return this.RUNNING;\n }\n\n if (status === this.properties[this.FAILING].name) {\n return this.FAILING;\n }\n\n if (status === this.properties[this.STOPPED].name) {\n return this.STOPPED;\n }\n\n return this.UNKNOWN;\n },\n\n toString(statusCode) {\n switch (toNumber(statusCode)) {\n case this.RUNNING:\n return 'running';\n case this.FAILING:\n return 'failing';\n case this.STOPPED:\n return 'stopped';\n default:\n return 'unknown';\n }\n },\n};\n\nexport default SidecarStatusEnum;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { DataTable, Timestamp, Icon } from 'components/common';\n\nclass SidecarStatusFileList extends React.Component {\n static propTypes = {\n files: PropTypes.array.isRequired,\n };\n\n _headerCellFormatter = (header) => {header} ;\n\n _activityFormatter = (time) => {\n const now = new Date().getTime();\n const modDate = new Date(time).getTime();\n\n if (modDate > (now - 60000)) {\n return ('info');\n }\n\n return ('');\n };\n\n _dirFormatter = (file) => {\n if (file.is_dir) {\n return ( {file.path});\n }\n\n return ( {file.path});\n };\n\n _fileListFormatter = (file) => (\n \n \n {file.size} \n {this._dirFormatter(file)} \n \n );\n\n render() {\n const filterKeys = [];\n const headers = ['Modified', 'Size', 'Path'];\n\n return (\n \n \n \n );\n }\n}\n\nexport default SidecarStatusFileList;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\n// eslint-disable-next-line no-restricted-imports\nimport createReactClass from 'create-react-class';\nimport PropTypes from 'prop-types';\nimport defaultTo from 'lodash/defaultTo';\nimport isNumber from 'lodash/isNumber';\n\nimport { Col, Row, Button } from 'components/bootstrap';\nimport { Icon } from 'components/common';\nimport SidecarStatusEnum from 'logic/sidecar/SidecarStatusEnum';\nimport commonStyles from 'components/sidecars/common/CommonSidecarStyles.css';\n\nimport SidecarStatusFileList from './SidecarStatusFileList';\nimport VerboseMessageModal from './VerboseMessageModal';\n\nconst SidecarStatus = createReactClass({\n // eslint-disable-next-line react/no-unused-class-component-methods\n propTypes: {\n sidecar: PropTypes.object.isRequired,\n collectors: PropTypes.array.isRequired,\n },\n\n getInitialState() {\n return { collectorName: '', collectorVerbose: '', showVerboseModal: false };\n },\n\n // eslint-disable-next-line react/no-unstable-nested-components\n formatNodeDetails(details) {\n if (!details) {\n return Node details are currently unavailable. Please wait a moment and ensure the sidecar is correctly connected to the server.
;\n }\n\n const metrics = details.metrics || {};\n\n return (\n \n - IP Address
\n - {defaultTo(details.ip, 'Not available')}
\n - Operating System
\n - {defaultTo(details.operating_system, 'Not available')}
\n - CPU Idle
\n - {isNumber(metrics.cpu_idle) ? `${metrics.cpu_idle}%` : 'Not available'}
\n - Load
\n - {defaultTo(metrics.load_1, 'Not available')}
\n - Volumes > 75% full
\n {metrics.disks_75 === undefined\n ? - Not available
\n : - {metrics.disks_75.length > 0 ? metrics.disks_75.join(', ') : 'None'}
}\n
\n );\n },\n\n // eslint-disable-next-line react/no-unstable-nested-components\n formatCollectorStatus(details, collectors) {\n if (!details || !collectors) {\n return Collectors status are currently unavailable. Please wait a moment and ensure the sidecar is correctly connected to the server.
;\n }\n\n if (!details.status) {\n return Did not receive collectors status, set the option send_status: true
in the sidecar configuration to see this information.
;\n }\n\n const collectorStatuses = details.status.collectors;\n\n if (collectorStatuses.length === 0) {\n return There are no collectors configured in this sidecar.
;\n }\n\n const statuses = [];\n\n collectorStatuses.forEach((status) => {\n const collector = collectors.find((c) => c.id === status.collector_id);\n\n let statusMessage;\n let statusBadge;\n let statusClass;\n let verboseButton;\n\n switch (status.status) {\n case SidecarStatusEnum.RUNNING:\n statusMessage = 'Collector is running.';\n statusClass = 'text-success';\n statusBadge = ;\n break;\n case SidecarStatusEnum.FAILING:\n statusMessage = status.message;\n statusClass = 'text-danger';\n statusBadge = ;\n\n if (status.verbose_message) {\n verboseButton = (\n \n );\n }\n\n break;\n case SidecarStatusEnum.STOPPED:\n statusMessage = status.message;\n statusClass = 'text-danger';\n statusBadge = ;\n break;\n default:\n statusMessage = 'Collector status is currently unknown.';\n statusClass = 'text-info';\n statusBadge = ;\n }\n\n if (collector) {\n statuses.push(\n {collector.name} ,\n {statusBadge} {statusMessage} {verboseButton} ,\n );\n }\n });\n\n return (\n \n {statuses}\n
\n );\n },\n\n _onShowVerbose(name, verbose) {\n this.setState({ collectorName: name, collectorVerbose: verbose, showVerboseModal: true });\n },\n\n _onHideVerbose() {\n this.setState({ showVerboseModal: false });\n },\n\n render() {\n const { sidecar } = this.props;\n\n const logFileList = sidecar.node_details.log_file_list || [];\n\n return (\n \n \n \n Node details
\n {this.formatNodeDetails(sidecar.node_details)}\n \n
\n \n \n Collectors status
\n \n {this.formatCollectorStatus(sidecar.node_details, this.props.collectors)}\n \n \n
\n \n \n Log Files
\n Recently modified files will be highlighted in blue.
\n \n \n \n \n
\n \n \n );\n },\n\n});\n\nexport default SidecarStatus;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { DocumentTitle, PageHeader, Spinner } from 'components/common';\nimport DocsHelper from 'util/DocsHelper';\nimport Routes from 'routing/Routes';\nimport SidecarStatus from 'components/sidecars/sidecars/SidecarStatus';\nimport withParams from 'routing/withParams';\nimport { CollectorsActions } from 'stores/sidecars/CollectorsStore';\nimport { SidecarsActions } from 'stores/sidecars/SidecarsStore';\nimport SidecarsPageNavigation from 'components/sidecars/common/SidecarsPageNavigation';\nimport withHistory from 'routing/withHistory';\n\nclass SidecarStatusPage extends React.Component {\n static propTypes = {\n params: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n sidecar: undefined,\n };\n }\n\n componentDidMount() {\n const reloadSidecar = () => this.reloadSidecar(this.props.history);\n reloadSidecar();\n this.reloadCollectors();\n this.interval = setInterval(reloadSidecar, 5000);\n }\n\n componentWillUnmount() {\n if (this.interval) {\n clearInterval(this.interval);\n }\n }\n\n reloadSidecar = (history) => {\n SidecarsActions.getSidecar(this.props.params.sidecarId).then(\n (sidecar) => this.setState({ sidecar }),\n (error) => {\n if (error.status === 404) {\n history.push(Routes.SYSTEM.SIDECARS.OVERVIEW);\n }\n },\n );\n };\n\n reloadCollectors = () => {\n CollectorsActions.all().then((response) => this.setState({ collectors: response.collectors }));\n };\n\n render() {\n const { sidecar } = this.state;\n const { collectors } = this.state;\n const isLoading = !sidecar || !collectors;\n\n if (isLoading) {\n return ;\n }\n\n return (\n \n \n Sidecar {sidecar.node_name} status}\n documentationLink={{\n title: 'Sidecars documentation',\n path: DocsHelper.PAGES.COLLECTOR_STATUS,\n }}>\n \n A status overview of the Graylog Sidecar.\n \n \n\n \n \n );\n }\n}\n\nexport default withHistory(withParams(SidecarStatusPage));\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport type { Subtract } from 'utility-types';\n\nimport type { HistoryFunction } from './useHistory';\nimport useHistory from './useHistory';\n\ntype HistoryContext = {\n history: HistoryFunction;\n};\n\nconst withParams = (Component: React.ComponentType): React.ComponentType> => (props) => {\n const history = useHistory();\n\n return ;\n};\n\nexport default withParams;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useParams } from 'react-router-dom';\nimport type { Subtract } from 'utility-types';\n\ntype ParamsContext = {\n params: {\n [key: string]: string | null | undefined;\n };\n};\n\nconst withParams = (Component: React.ComponentType): React.ComponentType> => (props) => {\n const params = useParams();\n\n return ;\n};\n\nexport default withParams;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport Reflux from 'reflux';\nimport URI from 'urijs';\nimport merge from 'lodash/merge';\n\nimport * as URLUtils from 'util/URLUtils';\nimport fetch from 'logic/rest/FetchProvider';\nimport UserNotification from 'util/UserNotification';\nimport { singletonStore, singletonActions } from 'logic/singleton';\n\nexport const CollectorsActions = singletonActions(\n 'core.Collectors',\n () => Reflux.createActions({\n getCollector: { asyncResult: true },\n all: { asyncResult: true },\n list: { asyncResult: true },\n create: { asyncResult: true },\n update: { asyncResult: true },\n delete: { asyncResult: true },\n copy: { asyncResult: true },\n validate: { asyncResult: true },\n }),\n);\n\nexport const CollectorsStore = singletonStore(\n 'core.Collectors',\n () => Reflux.createStore({\n listenables: [CollectorsActions],\n sourceUrl: '/sidecar',\n collectors: undefined,\n query: undefined,\n pagination: {\n page: undefined,\n pageSize: undefined,\n total: undefined,\n },\n total: undefined,\n paginatedCollectors: undefined,\n\n getInitialState() {\n return {\n collectors: this.collectors,\n };\n },\n\n propagateChanges() {\n this.trigger({\n collectors: this.collectors,\n paginatedCollectors: this.paginatedCollectors,\n query: this.query,\n total: this.total,\n pagination: this.pagination,\n });\n },\n\n getCollector(collectorId) {\n const promise = fetch('GET', URLUtils.qualifyUrl(`${this.sourceUrl}/collectors/${collectorId}`));\n\n promise.catch((error) => {\n let errorMessage = `Fetching Collector failed with status: ${error}`;\n\n if (error.status === 404) {\n errorMessage = `Unable to find a collector with ID <${collectorId}>, please ensure it was not deleted.`;\n }\n\n UserNotification.error(errorMessage, 'Could not retrieve Collector');\n });\n\n CollectorsActions.getCollector.promise(promise);\n },\n\n _fetchCollectors({ query, page, pageSize }) {\n const search = {\n query: query,\n page: page,\n per_page: pageSize,\n };\n\n const uri = URI(`${this.sourceUrl}/collectors/summary`).search(search).toString();\n\n return fetch('GET', URLUtils.qualifyUrl(uri));\n },\n\n all() {\n const promise = this._fetchCollectors({ pageSize: 0 });\n\n promise\n .then(\n (response) => {\n this.collectors = response.collectors;\n this.propagateChanges();\n\n return response.collectors;\n },\n (error) => {\n UserNotification.error(`Fetching collectors failed with status: ${error}`,\n 'Could not retrieve collectors');\n },\n );\n\n CollectorsActions.all.promise(promise);\n },\n\n list({ query = '', page = 1, pageSize = 10 }) {\n const promise = this._fetchCollectors({ query: query, page: page, pageSize: pageSize });\n\n promise\n .then(\n (response) => {\n this.query = response.query;\n\n this.pagination = {\n page: response.pagination.page,\n pageSize: response.pagination.per_page,\n total: response.pagination.total,\n };\n\n this.total = response.total;\n this.paginatedCollectors = response.collectors;\n\n this.propagateChanges();\n\n return response.collectors;\n },\n (error) => {\n UserNotification.error(`Fetching collectors failed with status: ${error}`,\n 'Could not retrieve collectors');\n },\n );\n\n CollectorsActions.list.promise(promise);\n },\n\n refreshList() {\n this.list({ query: this.query, page: this.pagination.page, pageSize: this.pagination.pageSize });\n },\n\n create(collector) {\n const promise = fetch('POST', URLUtils.qualifyUrl(`${this.sourceUrl}/collectors`), collector);\n\n promise\n .then(\n (response) => {\n UserNotification.success('', 'Collector successfully created');\n this.collectors = response.collectors;\n this.propagateChanges();\n\n return this.collectors;\n },\n (error) => {\n UserNotification.error(`Fetching collectors failed with status: ${error}`,\n 'Could not retrieve collectors');\n },\n );\n\n CollectorsActions.create.promise(promise);\n },\n\n update(collector) {\n const promise = fetch('PUT', URLUtils.qualifyUrl(`${this.sourceUrl}/collectors/${collector.id}`), collector);\n\n promise\n .then(\n (response) => {\n UserNotification.success('', 'Collector successfully updated');\n this.collectors = response.collectors;\n this.propagateChanges();\n\n return this.collectors;\n },\n (error) => {\n UserNotification.error(`Fetching collectors failed with status: ${error}`,\n 'Could not retrieve collectors');\n },\n );\n\n CollectorsActions.update.promise(promise);\n },\n\n delete(collector) {\n const url = URLUtils.qualifyUrl(`${this.sourceUrl}/collectors/${collector.id}`);\n const promise = fetch('DELETE', url);\n\n promise\n .then((response) => {\n UserNotification.success('', `Collector \"${collector.name}\" successfully deleted`);\n this.refreshList();\n\n return response;\n }, (error) => {\n UserNotification.error(`Deleting Collector failed: ${error.status === 400 ? error.responseMessage : error.message}`,\n `Could not delete Collector \"${collector.name}\"`);\n });\n\n CollectorsActions.delete.promise(promise);\n },\n\n copy(collectorId, name) {\n const url = URLUtils.qualifyUrl(`${this.sourceUrl}/collectors/${collectorId}/${name}`);\n const method = 'POST';\n\n const promise = fetch(method, url);\n\n promise\n .then((response) => {\n UserNotification.success('', `Collector \"${name}\" successfully copied`);\n this.refreshList();\n\n return response;\n }, (error) => {\n UserNotification.error(`Saving collector \"${name}\" failed with status: ${error.message}`,\n 'Could not save Collector');\n });\n\n CollectorsActions.copy.promise(promise);\n },\n\n validate(collector) {\n // set minimum api defaults for faster validation feedback\n const payload = {\n id: ' ',\n service_type: 'exec',\n executable_path: ' ',\n default_template: ' ',\n };\n\n merge(payload, collector);\n\n const promise = fetch('POST', URLUtils.qualifyUrl(`${this.sourceUrl}/collectors/validate`), payload);\n\n promise\n .then(\n (response) => response,\n (error) => (\n UserNotification.error(`Validating collector \"${payload.name}\" failed with status: ${error.message}`,\n 'Could not validate collector')\n ),\n );\n\n CollectorsActions.validate.promise(promise);\n },\n }),\n);\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport Reflux from 'reflux';\nimport URI from 'urijs';\n\nimport * as URLUtils from 'util/URLUtils';\nimport UserNotification from 'util/UserNotification';\nimport fetch, { fetchPeriodically } from 'logic/rest/FetchProvider';\nimport { singletonStore, singletonActions } from 'logic/singleton';\n\nexport const SidecarsActions = singletonActions(\n 'core.Sidecars',\n () => Reflux.createActions({\n listPaginated: { asyncResult: true },\n getSidecar: { asyncResult: true },\n getSidecarActions: { asyncResult: true },\n restartCollector: { asyncResult: true },\n assignConfigurations: { asyncResult: true },\n }),\n);\n\nexport const SidecarsStore = singletonStore(\n 'core.Sidecars',\n () => Reflux.createStore({\n listenables: [SidecarsActions],\n sourceUrl: '/sidecars',\n sidecars: undefined,\n onlyActive: undefined,\n pagination: {\n count: undefined,\n page: undefined,\n pageSize: undefined,\n total: undefined,\n },\n query: undefined,\n sort: {\n field: undefined,\n order: undefined,\n },\n\n init() {\n this.propagateChanges();\n },\n\n propagateChanges() {\n this.trigger({\n sidecars: this.sidecars,\n query: this.query,\n onlyActive: this.onlyActive,\n pagination: this.pagination,\n sort: this.sort,\n });\n },\n\n listPaginated({ query = '', page = 1, pageSize = 50, onlyActive = false, sortField = 'node_name', order = 'asc' }) {\n const search = {\n query: query,\n page: page,\n per_page: pageSize,\n only_active: onlyActive,\n sort: sortField,\n order: order,\n };\n\n const uri = URI(this.sourceUrl).search(search).toString();\n const promise = fetchPeriodically('GET', URLUtils.qualifyUrl(uri));\n\n promise.then(\n (response) => {\n this.sidecars = response.sidecars;\n this.query = response.query;\n this.onlyActive = response.only_active;\n\n this.pagination = {\n total: response.pagination.total,\n count: response.pagination.count,\n page: response.pagination.page,\n pageSize: response.pagination.per_page,\n };\n\n this.sort = {\n field: response.sort,\n order: response.order,\n };\n\n this.propagateChanges();\n\n return response;\n },\n (error) => {\n UserNotification.error(error.status === 400 ? error.responseMessage : `Fetching Sidecars failed with status: ${error.message}`,\n 'Could not retrieve Sidecars');\n },\n );\n\n SidecarsActions.listPaginated.promise(promise);\n },\n\n getSidecar(sidecarId) {\n const promise = fetchPeriodically('GET', URLUtils.qualifyUrl(`${this.sourceUrl}/${sidecarId}`));\n\n promise.catch((error) => {\n let errorMessage = `Fetching Sidecar failed with status: ${error}`;\n\n if (error.status === 404) {\n errorMessage = `Unable to find a sidecar with ID <${sidecarId}>, maybe it was inactive for too long.`;\n }\n\n UserNotification.error(errorMessage, 'Could not retrieve Sidecar');\n });\n\n SidecarsActions.getSidecar.promise(promise);\n },\n\n restartCollector(sidecarId, collector) {\n const action = {};\n\n action.collector = collector;\n action.properties = {};\n action.properties.restart = true;\n const promise = fetch('PUT', URLUtils.qualifyUrl(`${this.sourceUrl}/${sidecarId}/action`), [action]);\n\n promise\n .catch(\n (error) => {\n UserNotification.error(`Restarting Sidecar failed with status: ${error}`,\n 'Could not restart Sidecar');\n },\n );\n\n SidecarsActions.restartCollector.promise(promise);\n },\n\n getSidecarActions(sidecarId) {\n const promise = fetchPeriodically('GET', URLUtils.qualifyUrl(`${this.sourceUrl}/${sidecarId}/action`));\n\n promise\n .catch(\n (error) => {\n UserNotification.error(`Fetching Sidecar actions failed with status: ${error}`,\n 'Could not retrieve Sidecar actions');\n },\n );\n\n SidecarsActions.getSidecarActions.promise(promise);\n },\n\n toConfigurationAssignmentDto(nodeId, collectorId, configurationId) {\n return {\n node_id: nodeId,\n collector_id: collectorId,\n configuration_id: configurationId,\n };\n },\n\n assignConfigurations(sidecars, configurations) {\n const nodes = sidecars.map(({ sidecar, collector }) => {\n // Add all previous assignments, but the one that was changed\n const assignments = sidecar.assignments.filter((assignment) => assignment.collector_id !== collector.id);\n\n // Add new assignments\n configurations.forEach((configuration) => {\n assignments.push({ collector_id: collector.id, configuration_id: configuration.id });\n });\n\n return { node_id: sidecar.node_id, assignments: assignments };\n });\n\n const promise = fetch('PUT', URLUtils.qualifyUrl(`${this.sourceUrl}/configurations`), { nodes: nodes });\n\n promise\n .then(\n (response) => {\n UserNotification.success('', `Configuration change for ${sidecars.length} collectors requested`);\n\n return response;\n },\n (error) => {\n UserNotification.error(`Fetching Sidecar actions failed with status: ${error}`,\n 'Could not retrieve Sidecar actions');\n },\n );\n\n SidecarsActions.assignConfigurations.promise(promise);\n },\n }),\n);\n","var createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string`, as space separated words, to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\nvar lowerCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n});\n\nmodule.exports = lowerCase;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./CommonSidecarStyles.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./CommonSidecarStyles.css\";\n export default content && content.locals ? content.locals : undefined;\n"],"names":["___CSS_LOADER_EXPORT___","module","Container","StyledButton","theme","items","path","title","permissions","exactPathMatch","NAV_ITEMS","VerboseMessage","VerboseMessageModal","showModal","onHide","collectorName","collectorVerbose","statusCode","stringStatus","status","SidecarStatusFileList","header","time","now","file","filterKeys","headers","details","metrics","collectors","collectorStatuses","statuses","collector","c","statusMessage","statusBadge","statusClass","verboseButton","SidecarStatusEnum","name","verbose","sidecar","logFileList","SidecarStatusPage","props","history","error","Routes","response","reloadSidecar","SidecarsPageNavigation","DocsHelper","withHistory","withParams","Component","params","CollectorsActions","CollectorsStore","collectorId","promise","errorMessage","query","page","pageSize","search","uri","url","method","payload","SidecarsActions","SidecarsStore","onlyActive","sortField","order","sidecarId","action","nodeId","configurationId","sidecars","configurations","nodes","assignments","assignment","configuration","createCompounder","lowerCase","result","word","index","options","update"],"sourceRoot":""}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy