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

web-interface.assets.b6fe2bb5-5666.8177e1813c24f9963dc8.js.map Maven / Gradle / Ivy

{"version":3,"file":"b6fe2bb5-5666.8177e1813c24f9963dc8.js","mappings":"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","sources":["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 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 { LinkContainer } from 'components/common/router';\nimport { ButtonToolbar, Button } from 'components/bootstrap';\nimport { DocumentTitle, PageHeader, Spinner } from 'components/common';\nimport DocsHelper from 'util/DocsHelper';\nimport DocumentationLink from 'components/support/DocumentationLink';\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';\n\nclass SidecarStatusPage extends React.Component {\n static propTypes = {\n params: PropTypes.object.isRequired,\n };\n\n state = {\n sidecar: undefined,\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 \n A status overview of the Graylog Sidecar.\n \n\n \n Read more about sidecars and how to set them up in the\n {' '}.\n \n\n \n \n \n \n \n \n \n \n \n \n \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":["RUNNING","UNKNOWN","FAILING","STOPPED","properties","name","isValidStatusCode","statusCode","Object","keys","this","includes","String","toStatusCode","stringStatus","status","lodash","toString","SidecarStatusFileList","header","time","now","Date","getTime","file","is_dir","path","type","key","className","_activityFormatter","mod_time","dateTime","size","_dirFormatter","id","headers","headerCellFormatter","_headerCellFormatter","rows","props","files","dataRowFormatter","_fileListFormatter","filterLabel","filterKeys","React","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","statusMessage","statusBadge","statusClass","verboseButton","collector","find","collector_id","SidecarStatusEnum","fixedWidth","message","verbose_message","bsStyle","_onShowVerbose","push","verbose","setState","modal","render","logFileList","node_details","log_file_list","md","hidden","state","SidecarStatusPage","SidecarsActions","params","sidecarId","then","error","history","Routes","CollectorsActions","response","reloadSidecar","reloadCollectors","interval","setInterval","clearInterval","title","node_name","DocumentationLink","page","DocsHelper","text","to","withParams","singletonActions","Reflux","getCollector","asyncResult","all","list","create","update","delete","copy","validate","CollectorsStore","singletonStore","listenables","sourceUrl","query","pagination","pageSize","total","paginatedCollectors","propagateChanges","trigger","collectorId","promise","fetch","URLUtils","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","map","assignments","filter","assignment","configuration","___CSS_LOADER_EXPORT___","module","locals","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement"],"sourceRoot":""}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy