All Downloads are FREE. Search and download functionalities are using the official Maven repository.

web-interface.assets.325e2d4b-5666.e21cb6c13937ace06a1e.js.map Maven / Gradle / Ivy

There is a newer version: 6.0.2
Show newest version
{"version":3,"file":"325e2d4b-5666.e21cb6c13937ace06a1e.js","mappings":"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","sources":["webpack://graylog-web-interface/./src/components/common/PageNavigation.tsx","webpack://graylog-web-interface/./src/components/sidecars/common/SidecarsPageNavigation.tsx","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/VerboseMessageModal.jsx","webpack://graylog-web-interface/./src/components/sidecars/sidecars/SidecarStatus.jsx","webpack://graylog-web-interface/./src/pages/SidecarStatusPage.jsx","webpack://graylog-web-interface/./src/stores/sidecars/CollectorsStore.js","webpack://graylog-web-interface/./src/stores/sidecars/SidecarsStore.js","webpack://graylog-web-interface/./src/components/sidecars/common/CommonSidecarStyles.css","webpack://graylog-web-interface/./src/components/sidecars/common/CommonSidecarStyles.css?9855"],"sourcesContent":["/*\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, :focus {\n      text-decoration: none;  \n    }\n\n    :hover {\n      ${hoverIndicatorStyles(theme)}\n    }\n\n    &.active {\n      color: ${theme.colors.global.textDefault};\n\n      ${activeIndicatorStyles(theme)}\n\n      :hover, :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];\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 lodash from 'lodash';\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 = lodash.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 (lodash.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) => {\n    return {header};\n  };\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 PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { Modal, Button } from 'components/bootstrap';\nimport BootstrapModalWrapper from 'components/bootstrap/BootstrapModalWrapper';\n\nclass VerboseMessageModal extends React.Component {\n static propTypes = {\n collectorName: PropTypes.string.isRequired,\n collectorVerbose: PropTypes.string.isRequired,\n };\n\n open = () => {\n this.sourceModal.open();\n };\n\n hide = () => {\n this.sourceModal.close();\n };\n\n render() {\n return (\n { this.sourceModal = c; }} bsSize=\"large\">\n \n Error Details for {this.props.collectorName}\n \n \n
\n
\n              {this.props.collectorVerbose || ''}\n            
\n
\n
\n \n \n \n
\n );\n }\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 React from 'react';\nimport createReactClass from 'create-react-class';\nimport PropTypes from 'prop-types';\nimport lodash from 'lodash';\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 propTypes: {\n sidecar: PropTypes.object.isRequired,\n collectors: PropTypes.array.isRequired,\n },\n\n getInitialState() {\n return { collectorName: '', collectorVerbose: '' };\n },\n\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
{lodash.defaultTo(details.ip, 'Not available')}
\n
Operating System
\n
{lodash.defaultTo(details.operating_system, 'Not available')}
\n
CPU Idle
\n
{lodash.isNumber(metrics.cpu_idle) ? `${metrics.cpu_idle}%` : 'Not available'}
\n
Load
\n
{lodash.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 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 });\n this.modal.open();\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 { this.modal = c; }}\n collectorName={this.state.collectorName}\n collectorVerbose={this.state.collectorVerbose} />\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 history from 'util/History';\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';\n\nclass SidecarStatusPage extends React.Component {\n static propTypes = {\n params: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n sidecar: undefined,\n };\n }\n\n componentDidMount() {\n this.reloadSidecar();\n this.reloadCollectors();\n this.interval = setInterval(this.reloadSidecar, 5000);\n }\n\n componentWillUnmount() {\n if (this.interval) {\n clearInterval(this.interval);\n }\n }\n\n reloadSidecar = () => {\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 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 Reflux from 'reflux';\nimport URI from 'urijs';\nimport lodash from 'lodash';\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 lodash.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","// 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 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[6].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[6].use[1]!./CommonSidecarStyles.css\";\n export default content && content.locals ? content.locals : undefined;\n"],"names":["Container","styled","ButtonToolbar","StyledButton","Button","theme","css","fonts","family","navigation","size","colors","variant","darker","default","hoverIndicatorStyles","global","textDefault","activeIndicatorStyles","displayName","items","map","path","title","permissions","exactPathMatch","key","to","relativeActive","bsStyle","NAV_ITEMS","Routes","RUNNING","UNKNOWN","FAILING","STOPPED","properties","name","isValidStatusCode","statusCode","Object","keys","this","includes","String","toStatusCode","stringStatus","status","lodash","toString","SidecarStatusFileList","React","header","time","now","Date","getTime","file","is_dir","type","className","_activityFormatter","mod_time","dateTime","_dirFormatter","render","id","headers","headerCellFormatter","_headerCellFormatter","rows","props","files","dataRowFormatter","_fileListFormatter","filterLabel","filterKeys","PropTypes","VerboseMessageModal","sourceModal","open","close","BootstrapModalWrapper","ref","c","bsSize","closeButton","collectorName","collectorVerbose","onClick","hide","createReactClass","propTypes","sidecar","collectors","getInitialState","formatNodeDetails","details","metrics","commonStyles","ip","operating_system","cpu_idle","load_1","undefined","disks_75","length","join","formatCollectorStatus","collectorStatuses","statuses","forEach","collector","find","collector_id","statusMessage","statusBadge","statusClass","verboseButton","SidecarStatusEnum","fixedWidth","message","verbose_message","_onShowVerbose","push","verbose","setState","modal","logFileList","node_details","log_file_list","md","hidden","state","SidecarStatusPage","constructor","super","SidecarsActions","params","sidecarId","then","error","history","CollectorsActions","response","componentDidMount","reloadSidecar","reloadCollectors","interval","setInterval","componentWillUnmount","clearInterval","node_name","SidecarsPageNavigation","documentationLink","DocsHelper","withParams","singletonActions","Reflux","getCollector","asyncResult","all","list","create","update","delete","copy","validate","CollectorsStore","singletonStore","listenables","sourceUrl","query","pagination","page","pageSize","total","paginatedCollectors","propagateChanges","trigger","collectorId","promise","fetch","URLUtils","catch","errorMessage","UserNotification","_fetchCollectors","search","per_page","uri","URI","refreshList","url","responseMessage","payload","service_type","executable_path","default_template","listPaginated","getSidecar","getSidecarActions","restartCollector","assignConfigurations","SidecarsStore","sidecars","onlyActive","count","sort","field","order","init","sortField","only_active","fetchPeriodically","action","restart","toConfigurationAssignmentDto","nodeId","configurationId","node_id","configuration_id","configurations","nodes","assignments","filter","assignment","configuration","___CSS_LOADER_EXPORT___","module","locals","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement"],"sourceRoot":""}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy