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

web-interface.assets.9d1739ed-7011.77c5381663794528ef98.js.map Maven / Gradle / Ivy

There is a newer version: 6.0.6
Show newest version
{"version":3,"file":"9d1739ed-7011.77c5381663794528ef98.js","mappings":"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","sources":["webpack://graylog-web-interface/./src/components/sidecars/common/CollectorIndicator.jsx","webpack://graylog-web-interface/./src/stores/sidecars/SidecarsAdministrationStore.js","webpack://graylog-web-interface/./src/components/sidecars/administration/CollectorConfigurationSelector.jsx","webpack://graylog-web-interface/./src/components/sidecars/administration/CollectorProcessControl.jsx","webpack://graylog-web-interface/./src/components/sidecars/administration/CollectorsAdministrationActions.jsx","webpack://graylog-web-interface/./src/components/sidecars/administration/CollectorsAdministrationFilters.jsx","webpack://graylog-web-interface/./src/components/sidecars/administration/FiltersSummary.css?e0a2","webpack://graylog-web-interface/./src/components/sidecars/administration/FiltersSummary.jsx","webpack://graylog-web-interface/./src/components/sidecars/administration/CollectorsAdministration.css?cf63","webpack://graylog-web-interface/./src/components/sidecars/administration/CollectorsAdministration.jsx","webpack://graylog-web-interface/./src/components/sidecars/administration/CollectorsAdministrationContainer.jsx","webpack://graylog-web-interface/./src/pages/SidecarAdministrationPage.jsx","webpack://graylog-web-interface/./src/util/SortUtils.js","webpack://graylog-web-interface/./src/components/sidecars/administration/CollectorsAdministration.css","webpack://graylog-web-interface/./src/components/sidecars/administration/FiltersSummary.css","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 React from 'react';\nimport createReactClass from 'create-react-class';\nimport PropTypes from 'prop-types';\nimport lodash from 'lodash';\n\nimport OperatingSystemIcon from './OperatingSystemIcon';\n\nconst CollectorIndicator = createReactClass({\n  propTypes: {\n    collector: PropTypes.string.isRequired,\n    operatingSystem: PropTypes.string,\n  },\n\n  getDefaultProps() {\n    return {\n      operatingSystem: undefined,\n    };\n  },\n\n  render() {\n    const { collector, operatingSystem } = this.props;\n\n    return (\n      \n         {collector}\n        {operatingSystem &&  on {lodash.upperFirst(operatingSystem)}}\n      \n    );\n  },\n});\n\nexport default CollectorIndicator;\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 lodash from 'lodash';\n\nimport * as URLUtils from 'util/URLUtils';\nimport UserNotification from 'util/UserNotification';\nimport { fetchPeriodically } from 'logic/rest/FetchProvider';\nimport { singletonStore, singletonActions } from 'logic/singleton';\n\nexport const SidecarsAdministrationActions = singletonActions(\n  'core.SidecarsAdministration',\n  () => Reflux.createActions({\n    list: { asyncResult: true },\n    refreshList: { asyncResult: true },\n    setAction: { asyncResult: true },\n  }),\n);\n\nexport const SidecarsAdministrationStore = singletonStore(\n  'core.SidecarsAdministration',\n  () => Reflux.createStore({\n    listenables: [SidecarsAdministrationActions],\n    sourceUrl: '/sidecar',\n    sidecars: undefined,\n    filters: undefined,\n    pagination: {\n      count: undefined,\n      page: undefined,\n      pageSize: undefined,\n      total: undefined,\n    },\n    query: undefined,\n\n    propagateChanges() {\n      this.trigger({\n        sidecars: this.sidecars,\n        filters: this.filters,\n        query: this.query,\n        pagination: this.pagination,\n      });\n    },\n\n    list({ query = '', page = 1, pageSize = 50, filters }) {\n      const body = {\n        query: query,\n        page: page,\n        per_page: pageSize,\n        filters: filters,\n      };\n\n      const promise = fetchPeriodically('POST', URLUtils.qualifyUrl(`${this.sourceUrl}/administration`), body);\n\n      promise.then(\n        (response) => {\n          this.sidecars = response.sidecars;\n          this.query = response.query;\n          this.filters = response.filters;\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.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      SidecarsAdministrationActions.list.promise(promise);\n    },\n\n    refreshList() {\n      this.list({ query: this.query, page: this.pagination.page, pageSize: this.pagination.pageSize, filters: this.filters });\n    },\n\n    setAction(action, collectors) {\n      const sidecarIds = Object.keys(collectors);\n      const formattedCollectors = sidecarIds.map((sidecarId) => ({\n        sidecar_id: sidecarId,\n        collector_ids: collectors[sidecarId],\n      }));\n      const body = {\n        action: action,\n        collectors: formattedCollectors,\n      };\n\n      const promise = fetchPeriodically('PUT', URLUtils.qualifyUrl(`${this.sourceUrl}/administration/action`), body);\n\n      promise.then(\n        (response) => {\n          UserNotification.success('', `${lodash.upperFirst(action)} for ${formattedCollectors.length} collectors requested`);\n\n          return response;\n        },\n        (error) => {\n          UserNotification.error(`Requesting ${action} failed with status: ${error}`,\n            `Could not ${action} collectors`);\n        },\n      );\n\n      SidecarsAdministrationActions.setAction.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 React from 'react';\nimport PropTypes from 'prop-types';\nimport lodash from 'lodash';\n\nimport { Button, BootstrapModalConfirm } from 'components/bootstrap';\nimport { SelectPopover } from 'components/common';\nimport { naturalSortIgnoreCase } from 'util/SortUtils';\nimport CollectorIndicator from 'components/sidecars/common/CollectorIndicator';\nimport ColorLabel from 'components/sidecars/common/ColorLabel';\n\nclass CollectorConfigurationSelector extends React.Component {\n  static propTypes = {\n    collectors: PropTypes.array.isRequired,\n    configurations: PropTypes.array.isRequired,\n    selectedSidecarCollectorPairs: PropTypes.array.isRequired,\n    onConfigurationSelectionChange: PropTypes.func.isRequired,\n  };\n\n  constructor(props) {\n    super(props);\n\n    this.state = {\n      nextAssignedConfigurations: [],\n    };\n  }\n\n  getAssignedConfigurations = (selectedSidecarCollectorPairs, configurations) => {\n    const assignments = selectedSidecarCollectorPairs.map(({ sidecar }) => sidecar).reduce((accumulator, sidecar) => accumulator.concat(sidecar.assignments), []);\n\n    return assignments.map((assignment) => configurations.find((configuration) => configuration.id === assignment.configuration_id));\n  };\n\n  handleConfigurationSelect = (configurationIds, hideCallback) => {\n    const { configurations } = this.props;\n\n    hideCallback();\n    const nextAssignedConfigurations = configurations.filter((c) => configurationIds.includes(c.id));\n\n    this.setState({ nextAssignedConfigurations }, this.modal.open);\n  };\n\n  confirmConfigurationChange = (doneCallback) => {\n    const { onConfigurationSelectionChange } = this.props;\n    const { nextAssignedConfigurations } = this.state;\n\n    onConfigurationSelectionChange(nextAssignedConfigurations, doneCallback);\n  };\n\n  cancelConfigurationChange = () => {\n    this.setState({ nextAssignedConfigurations: [] });\n  };\n\n  configurationFormatter = (configurationId) => {\n    const { configurations, collectors } = this.props;\n    const configuration = configurations.find((c) => c.id === configurationId);\n    const collector = collectors.find((b) => b.id === configuration.collector_id);\n\n    return (\n      \n         {configuration.name} \n        \n          {collector\n            ? (\n              \n            )\n            : Unknown collector}\n        \n      \n    );\n  };\n\n  renderConfigurationSummary = (nextAssignedConfigurations, selectedSidecarCollectorPairs) => {\n    const exampleSidecarCollectorPair = selectedSidecarCollectorPairs[0];\n    const collectorIndicator = (\n      \n        \n      \n    );\n\n    let actionSummary;\n\n    if (nextAssignedConfigurations.length === 0) {\n      actionSummary = You are going to remove the configuration for collector {collectorIndicator} from:;\n    } else {\n      actionSummary = You are going to apply the {nextAssignedConfigurations[0].name} configuration for collector {collectorIndicator} to:;\n    }\n\n    const formattedSummary = selectedSidecarCollectorPairs.map(({ sidecar }) => sidecar.node_name).join(', ');\n\n    return (\n       { this.modal = c; }}\n                             title=\"Configuration summary\"\n                             onConfirm={this.confirmConfigurationChange}\n                             onCancel={this.cancelConfigurationChange}>\n        
\n

{actionSummary}

\n

{formattedSummary}

\n

Are you sure you want to proceed with this action?

\n
\n
\n );\n };\n\n render() {\n const { nextAssignedConfigurations } = this.state;\n const { configurations, selectedSidecarCollectorPairs } = this.props;\n\n // Do not allow configuration changes when more than one log collector type is selected\n const selectedLogCollectors = lodash.uniq(selectedSidecarCollectorPairs.map(({ collector }) => collector));\n\n if (selectedLogCollectors.length > 1) {\n return (\n Configure }\n items={[`Cannot change configurations of ${selectedLogCollectors.map((collector) => collector.name).join(', ')} collectors simultaneously`]}\n displayDataFilter={false}\n disabled />\n );\n }\n\n const configurationIds = configurations\n .filter((configuration) => selectedLogCollectors[0].id === configuration.collector_id)\n .sort((c1, c2) => naturalSortIgnoreCase(c1.name, c2.name))\n .map((c) => c.id);\n\n if (configurationIds.length === 0) {\n return (\n Configure }\n items={['No configurations available for the selected log collector']}\n displayDataFilter={false}\n disabled />\n );\n }\n\n const assignedConfigurations = this.getAssignedConfigurations(selectedSidecarCollectorPairs, configurations)\n .filter((configuration) => selectedLogCollectors[0].id === configuration.collector_id);\n\n return (\n \n Configure }\n items={configurationIds}\n itemFormatter={this.configurationFormatter}\n onItemSelect={this.handleConfigurationSelect}\n selectedItems={assignedConfigurations.map((config) => config.id)}\n filterPlaceholder=\"Filter by configuration\" />\n {this.renderConfigurationSummary(nextAssignedConfigurations, selectedSidecarCollectorPairs)}\n \n );\n }\n}\n\nexport default CollectorConfigurationSelector;\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 { Button, Panel, BootstrapModalConfirm } from 'components/bootstrap';\nimport { Pluralize, SelectPopover } from 'components/common';\n\nconst PROCESS_ACTIONS = ['start', 'restart', 'stop'];\n\nconst CollectorProcessControl = createReactClass({\n propTypes: {\n selectedSidecarCollectorPairs: PropTypes.array.isRequired,\n onProcessAction: PropTypes.func.isRequired,\n },\n\n getInitialState() {\n return {\n selectedAction: undefined,\n isConfigurationWarningHidden: false,\n };\n },\n\n resetSelectedAction() {\n this.setState({ selectedAction: undefined });\n },\n\n handleProcessActionSelect(processAction, hideCallback) {\n hideCallback();\n this.setState({ selectedAction: processAction ? processAction[0] : undefined }, this.modal.open);\n },\n\n confirmProcessAction(doneCallback) {\n const { onProcessAction, selectedSidecarCollectorPairs } = this.props;\n const { selectedAction } = this.state;\n\n const callback = () => {\n doneCallback();\n this.resetSelectedAction();\n };\n\n onProcessAction(selectedAction, selectedSidecarCollectorPairs, callback);\n },\n\n cancelProcessAction() {\n this.resetSelectedAction();\n },\n\n hideConfigurationWarning() {\n this.setState({ isConfigurationWarningHidden: true });\n },\n\n renderSummaryContent(selectedAction, selectedSidecars) {\n return (\n <>\n

\n You are going to {selectedAction} log collectors in \n :\n

\n

{selectedSidecars.join(', ')}

\n

Are you sure you want to proceed with this action?

\n \n );\n },\n\n renderConfigurationWarning(selectedAction) {\n return (\n \n

\n At least one selected Collector is not configured yet. To start a new Collector, assign a\n Configuration to it and the Sidecar will start the process for you.\n

\n

\n {lodash.capitalize(selectedAction)}ing a Collector without Configuration will have no effect.\n

\n \n
\n );\n },\n\n renderProcessActionSummary(selectedSidecarCollectorPairs, selectedAction) {\n const { isConfigurationWarningHidden } = this.state;\n const selectedSidecars = lodash.uniq(selectedSidecarCollectorPairs.map(({ sidecar }) => sidecar.node_name));\n\n // Check if all selected collectors have assigned configurations\n const allHaveConfigurationsAssigned = selectedSidecarCollectorPairs.every(({ collector, sidecar }) => {\n return sidecar.assignments.some(({ collector_id }) => collector_id === collector.id);\n });\n\n const shouldShowConfigurationWarning = !isConfigurationWarningHidden && !allHaveConfigurationsAssigned;\n\n return (\n { this.modal = c; }}\n title=\"Process action summary\"\n confirmButtonDisabled={shouldShowConfigurationWarning}\n onConfirm={this.confirmProcessAction}\n onCancel={this.cancelProcessAction}>\n
\n {shouldShowConfigurationWarning\n ? this.renderConfigurationWarning(selectedAction)\n : this.renderSummaryContent(selectedAction, selectedSidecars)}\n
\n
\n );\n },\n\n render() {\n const { selectedSidecarCollectorPairs } = this.props;\n const { selectedAction } = this.state;\n\n const actionFormatter = (action) => lodash.capitalize(action);\n\n return (\n \n Process \n \n)}\n items={PROCESS_ACTIONS}\n itemFormatter={actionFormatter}\n selectedItems={selectedAction ? [selectedAction] : []}\n displayDataFilter={false}\n onItemSelect={this.handleProcessActionSelect} />\n {this.renderProcessActionSummary(selectedSidecarCollectorPairs, selectedAction)}\n \n );\n },\n});\n\nexport default CollectorProcessControl;\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';\n\nimport { ButtonToolbar } from 'components/bootstrap';\n\nimport CollectorConfigurationSelector from './CollectorConfigurationSelector';\nimport CollectorProcessControl from './CollectorProcessControl';\n\nconst CollectorsAdministrationActions = createReactClass({\n propTypes: {\n collectors: PropTypes.array.isRequired,\n configurations: PropTypes.array.isRequired,\n selectedSidecarCollectorPairs: PropTypes.array.isRequired,\n onConfigurationSelectionChange: PropTypes.func.isRequired,\n onProcessAction: PropTypes.func.isRequired,\n },\n\n render() {\n const { collectors, configurations, selectedSidecarCollectorPairs, onConfigurationSelectionChange, onProcessAction } = this.props;\n\n return (\n \n \n \n \n );\n },\n});\n\nexport default CollectorsAdministrationActions;\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 { SelectPopover } from 'components/common';\nimport { Button, ButtonToolbar } from 'components/bootstrap';\nimport { naturalSortIgnoreCase } from 'util/SortUtils';\nimport CollectorIndicator from 'components/sidecars/common/CollectorIndicator';\nimport ColorLabel from 'components/sidecars/common/ColorLabel';\nimport SidecarStatusEnum from 'logic/sidecar/SidecarStatusEnum';\n\nconst CollectorsAdministrationFilters = createReactClass({\n propTypes: {\n collectors: PropTypes.array.isRequired,\n configurations: PropTypes.array.isRequired,\n filters: PropTypes.object.isRequired,\n filter: PropTypes.func.isRequired,\n },\n\n onFilterChange(name, value, callback) {\n const { filter } = this.props;\n\n filter(name, value);\n callback();\n },\n\n getCollectorsFilter() {\n const { collectors, filters } = this.props;\n const collectorMapper = (collector) => `${collector.id};${collector.name}`;\n\n const collectorItems = collectors\n .sort((c1, c2) => naturalSortIgnoreCase(c1.name, c2.name))\n // TODO: Hack to be able to filter in SelectPopover. We should change that to avoid this hack.\n .map(collectorMapper);\n\n const collectorFormatter = (collectorId) => {\n const [id] = collectorId.split(';');\n const collector = lodash.find(collectors, { id: id });\n\n return ;\n };\n\n const filter = ([collectorId], callback) => {\n const [id] = collectorId ? collectorId.split(';') : [];\n\n this.onFilterChange('collector', id, callback);\n };\n\n let collectorFilter;\n\n if (filters.collector) {\n const collector = collectors.find((c) => c.id === filters.collector);\n\n collectorFilter = collector ? collectorMapper(collector) : undefined;\n }\n\n return (\n Collector }\n items={collectorItems}\n itemFormatter={collectorFormatter}\n onItemSelect={filter}\n selectedItems={collectorFilter ? [collectorFilter] : []}\n filterPlaceholder=\"Filter by collector\" />\n );\n },\n\n getConfigurationFilter() {\n const { configurations, filters } = this.props;\n\n const configurationMapper = (configuration) => `${configuration.id};${configuration.name}`;\n const configurationItems = configurations\n .sort((c1, c2) => naturalSortIgnoreCase(c1.name, c2.name))\n // TODO: Hack to be able to filter in SelectPopover. We should change that to avoid this hack.\n .map(configurationMapper);\n\n const configurationFormatter = (configurationId) => {\n const [id] = configurationId.split(';');\n const configuration = lodash.find(configurations, { id: id });\n\n return {configuration.name};\n };\n\n const filter = ([configurationId], callback) => {\n const [id] = configurationId ? configurationId.split(';') : [];\n\n this.onFilterChange('configuration', id, callback);\n };\n\n let configurationFilter;\n\n if (filters.configuration) {\n const configuration = configurations.find((c) => c.id === filters.configuration);\n\n configurationFilter = configuration ? configurationMapper(configuration) : undefined;\n }\n\n return (\n Configuration }\n items={configurationItems}\n itemFormatter={configurationFormatter}\n onItemSelect={filter}\n selectedItems={configurationFilter ? [configurationFilter] : []}\n filterPlaceholder=\"Filter by configuration\" />\n );\n },\n\n getOSFilter() {\n const { collectors, filters } = this.props;\n\n const operatingSystems = lodash\n .uniq(collectors.map((collector) => lodash.upperFirst(collector.node_operating_system)))\n .sort(naturalSortIgnoreCase);\n\n const filter = ([os], callback) => this.onFilterChange('os', os, callback);\n\n const osFilter = filters.os;\n\n return (\n OS }\n items={operatingSystems}\n onItemSelect={filter}\n selectedItems={osFilter ? [osFilter] : []}\n filterPlaceholder=\"Filter by OS\" />\n );\n },\n\n getStatusFilter() {\n const { filters } = this.props;\n const status = Object.keys(SidecarStatusEnum.properties).map((key) => String(key));\n const filter = ([statusCode], callback) => this.onFilterChange('status', statusCode, callback);\n\n const statusFilter = filters.status;\n const statusFormatter = (statusCode) => lodash.upperFirst(SidecarStatusEnum.toString(statusCode));\n\n return (\n Collector Status }\n items={status}\n itemFormatter={statusFormatter}\n onItemSelect={filter}\n selectedItems={statusFilter ? [statusFilter] : []}\n filterPlaceholder=\"Filter by collector status\" />\n );\n },\n\n render() {\n return (\n \n {this.getCollectorsFilter()}\n {this.getConfigurationFilter()}\n {this.getStatusFilter()}\n {this.getOSFilter()}\n \n );\n },\n});\n\nexport default CollectorsAdministrationFilters;\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]!./FiltersSummary.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]!./FiltersSummary.css\";\n export default content && content.locals ? content.locals : undefined;\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 PropTypes from 'prop-types';\nimport lodash from 'lodash';\n\nimport { Button, Col, Row } from 'components/bootstrap';\nimport { Icon } from 'components/common';\nimport SidecarStatusEnum from 'logic/sidecar/SidecarStatusEnum';\n\nimport style from './FiltersSummary.css';\n\nclass FiltersSummary extends React.Component {\n static propTypes = {\n collectors: PropTypes.array.isRequired,\n configurations: PropTypes.array.isRequired,\n filters: PropTypes.object.isRequired,\n onResetFilters: PropTypes.func.isRequired,\n };\n\n formatFilter = (type, value) => {\n const { collectors, configurations } = this.props;\n\n if (type === 'collector') {\n // Get collector name\n const collector = collectors.find((c) => c.id === value);\n\n return `${collector.name} on ${collector.node_operating_system}`;\n }\n\n if (type === 'configuration') {\n // Get configuration name\n return configurations.find((c) => c.id === value).name;\n }\n\n if (type === 'status') {\n // Convert status code to string\n return SidecarStatusEnum.toString(value);\n }\n\n return value;\n };\n\n formatFilters = (filters) => {\n return Object.keys(filters).map((filterKey) => {\n return
  • {filterKey}: {this.formatFilter(filterKey, filters[filterKey])}
  • ;\n });\n };\n\n render() {\n const { filters, onResetFilters } = this.props;\n\n if (lodash.isEmpty(filters)) {\n return null;\n }\n\n return (\n \n \n
      \n
    • Filters
    • \n {this.formatFilters(filters)}\n
    • \n \n
    • \n
    \n \n
    \n );\n }\n}\n\nexport default FiltersSummary;\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]!./CollectorsAdministration.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]!./CollectorsAdministration.css\";\n export default content && content.locals ? content.locals : undefined;\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 lodash from 'lodash';\nimport styled, { css } from 'styled-components';\n\nimport { Link } from 'components/common/router';\nimport { ControlledTableList, PaginatedList } from 'components/common';\nimport Routes from 'routing/Routes';\nimport { Col, Row, Input } from 'components/bootstrap';\nimport ColorLabel from 'components/sidecars/common/ColorLabel';\nimport OperatingSystemIcon from 'components/sidecars/common/OperatingSystemIcon';\nimport SidecarSearchForm from 'components/sidecars/common/SidecarSearchForm';\nimport StatusIndicator from 'components/sidecars/common/StatusIndicator';\nimport commonStyle from 'components/sidecars/common/CommonSidecarStyles.css';\n\nimport CollectorsAdministrationActions from './CollectorsAdministrationActions';\nimport CollectorsAdministrationFilters from './CollectorsAdministrationFilters';\nimport FiltersSummary from './FiltersSummary';\nimport style from './CollectorsAdministration.css';\n\nconst HeaderComponentsWrapper = styled.div(({ theme }) => css`\n float: right;\n margin: 5px 0;\n\n .btn-link {\n color: ${theme.colors.variant.darker.default};\n }\n`);\n\nconst DisabledCollector = styled.div(({ theme }) => css`\n color: ${theme.colors.variant.light.default};\n`);\n\nconst CollectorsAdministration = createReactClass({\n propTypes: {\n sidecarCollectorPairs: PropTypes.array.isRequired,\n collectors: PropTypes.array.isRequired,\n configurations: PropTypes.array.isRequired,\n pagination: PropTypes.object.isRequired,\n query: PropTypes.string.isRequired,\n filters: PropTypes.object.isRequired,\n onPageChange: PropTypes.func.isRequired,\n onFilter: PropTypes.func.isRequired,\n onQueryChange: PropTypes.func.isRequired,\n onConfigurationChange: PropTypes.func.isRequired,\n onProcessAction: PropTypes.func.isRequired,\n },\n\n getInitialState() {\n const { sidecarCollectorPairs } = this.props;\n\n return {\n enabledCollectors: this.getEnabledCollectors(sidecarCollectorPairs),\n selected: [],\n };\n },\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { sidecarCollectorPairs } = this.props;\n\n if (!lodash.isEqual(sidecarCollectorPairs, nextProps.sidecarCollectorPairs)) {\n this.setState({\n enabledCollectors: this.getEnabledCollectors(nextProps.sidecarCollectorPairs),\n selected: this.filterSelectedCollectors(nextProps.sidecarCollectorPairs),\n });\n }\n },\n\n componentDidUpdate() {\n const { enabledCollectors, selected } = this.state;\n\n this.setSelectAllCheckboxState(this.selectAllInput, enabledCollectors, selected);\n },\n\n // Filter out sidecars with no compatible collectors\n getEnabledCollectors(collectors) {\n return collectors.filter(({ collector }) => !lodash.isEmpty(collector));\n },\n\n setSelectAllCheckboxState(selectAllInput, collectors, selected) {\n const selectAllCheckbox = selectAllInput ? selectAllInput.getInputDOMNode() : undefined;\n\n if (!selectAllCheckbox) {\n return;\n }\n\n // Set the select all checkbox as indeterminate if some but not all items are selected.\n selectAllCheckbox.indeterminate = selected.length > 0 && !this.isAllSelected(collectors, selected);\n },\n\n sidecarCollectorId(sidecar, collector) {\n return `${sidecar.node_id}-${collector.name}`;\n },\n\n filterSelectedCollectors(collectors) {\n const { selected } = this.state;\n const filteredSidecarCollectorIds = collectors.map(({ collector, sidecar }) => this.sidecarCollectorId(sidecar, collector));\n\n return selected.filter((sidecarCollectorId) => filteredSidecarCollectorIds.includes(sidecarCollectorId));\n },\n\n handleConfigurationChange(selectedConfigurations, doneCallback) {\n const { selected, enabledCollectors } = this.state;\n const { onConfigurationChange } = this.props;\n\n const selectedSidecars = enabledCollectors\n .filter(({ sidecar, collector }) => selected.includes(this.sidecarCollectorId(sidecar, collector)));\n\n onConfigurationChange(selectedSidecars, selectedConfigurations, doneCallback);\n },\n\n handleProcessAction(action, selectedSidecarCollectorPairs, doneCallback) {\n const { onProcessAction } = this.props;\n const selectedCollectors = {};\n\n selectedSidecarCollectorPairs.forEach(({ sidecar, collector }) => {\n if (selectedCollectors[sidecar.node_id]) {\n selectedCollectors[sidecar.node_id].push(collector.id);\n } else {\n selectedCollectors[sidecar.node_id] = [collector.id];\n }\n });\n\n onProcessAction(action, selectedCollectors, doneCallback);\n },\n\n formatHeader() {\n const { collectors, configurations, sidecarCollectorPairs } = this.props;\n const { selected, enabledCollectors } = this.state;\n const selectedItems = selected.length;\n\n const selectedSidecarCollectorPairs = selected.map((selectedSidecarCollectorId) => {\n return sidecarCollectorPairs.find(({ sidecar, collector }) => this.sidecarCollectorId(sidecar, collector) === selectedSidecarCollectorId);\n });\n\n let headerMenu;\n\n if (selectedItems === 0) {\n const { filters, onFilter } = this.props;\n\n headerMenu = (\n \n );\n } else {\n headerMenu = (\n \n );\n }\n\n return (\n \n {headerMenu}\n\n { this.selectAllInput = c; }}\n id=\"select-all-checkbox\"\n type=\"checkbox\"\n label={selectedItems === 0 ? 'Select all' : `${selectedItems} selected`}\n disabled={enabledCollectors.length === 0}\n checked={this.isAllSelected(enabledCollectors, selected)}\n onChange={this.toggleSelectAll}\n wrapperClassName=\"form-group-inline\" />\n \n );\n },\n\n handleSidecarCollectorSelect(sidecarCollectorId) {\n return (event) => {\n const { selected } = this.state;\n\n const newSelection = (event.target.checked\n ? lodash.union(selected, [sidecarCollectorId])\n : lodash.without(selected, sidecarCollectorId));\n\n this.setState({ selected: newSelection });\n };\n },\n\n isAllSelected(collectors, selected) {\n return collectors.length > 0 && collectors.length === selected.length;\n },\n\n toggleSelectAll(event) {\n const { enabledCollectors } = this.state;\n const newSelection = (event.target.checked\n ? enabledCollectors.map(({ sidecar, collector }) => this.sidecarCollectorId(sidecar, collector))\n : []);\n\n this.setState({ selected: newSelection });\n },\n\n formatSidecarNoCollectors(sidecar) {\n return (\n \n \n \n \n

    \n {sidecar.node_name} \n  {sidecar.node_id}\n

    \n \n
    \n \n \n \n No collectors compatible with {sidecar.node_details.operating_system}\n \n \n \n
    \n
    \n );\n },\n\n formatCollector(sidecar, collector, configurations) {\n const sidecarCollectorId = this.sidecarCollectorId(sidecar, collector);\n const configAssignment = sidecar.assignments.find((assignment) => assignment.collector_id === collector.id) || {};\n const configuration = configurations.find((config) => config.id === configAssignment.configuration_id);\n const { selected } = this.state;\n let collectorStatus = { status: null, message: null, id: null };\n\n try {\n const result = sidecar.node_details.status.collectors.find((c) => c.collector_id === collector.id);\n\n if (result) {\n collectorStatus = {\n status: result.status,\n message: result.message,\n id: result.collector_id,\n };\n }\n } catch (e) {\n // Do nothing\n }\n\n return (\n \n \n \n \n \n \n {configuration && (\n \n )}\n \n \n \n \n {configuration && }\n \n \n \n );\n },\n\n formatSidecar(sidecar, collectors, configurations) {\n if (collectors.length === 0) {\n return this.formatSidecarNoCollectors(sidecar);\n }\n\n return (\n \n
    \n \n \n

    \n {sidecar.node_name} \n  {sidecar.node_id} {!sidecar.active && — inactive}\n

    \n \n
    \n {collectors.map((collector) => this.formatCollector(sidecar, collector, configurations))}\n
    \n
    \n );\n },\n\n handleSearch(query, callback) {\n const { onQueryChange } = this.props;\n\n onQueryChange(query, callback());\n },\n\n handleReset() {\n const { onQueryChange } = this.props;\n\n onQueryChange();\n },\n\n handleResetFilters() {\n const { onFilter } = this.props;\n\n onFilter();\n },\n\n render() {\n const { configurations, collectors, onPageChange, pagination, query, sidecarCollectorPairs, filters } = this.props;\n\n let formattedCollectors;\n\n if (sidecarCollectorPairs.length === 0) {\n formattedCollectors = (\n \n {sidecarCollectorPairs.length === 0 ? 'There are no collectors to display' : 'Filters do not match any collectors'}\n \n );\n } else {\n const sidecars = lodash.uniq(sidecarCollectorPairs.map(({ sidecar }) => sidecar));\n\n formattedCollectors = sidecars.map((sidecarToMap) => {\n const sidecarCollectors = sidecarCollectorPairs\n .filter(({ sidecar }) => sidecar.node_id === sidecarToMap.node_id)\n .map(({ collector }) => collector)\n .filter((collector) => !lodash.isEmpty(collector));\n\n return this.formatSidecar(sidecarToMap, sidecarCollectors, configurations);\n });\n }\n\n return (\n
    \n \n \n \n \n \n \n {this.formatHeader()}\n {formattedCollectors}\n \n \n \n \n
    \n );\n },\n});\n\nexport default CollectorsAdministration;\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 Reflux from 'reflux';\nimport lodash from 'lodash';\n\nimport { naturalSortIgnoreCase } from 'util/SortUtils';\nimport { Spinner } from 'components/common';\nimport { CollectorConfigurationsActions, CollectorConfigurationsStore } from 'stores/sidecars/CollectorConfigurationsStore';\nimport { CollectorsActions, CollectorsStore } from 'stores/sidecars/CollectorsStore';\nimport { SidecarsActions } from 'stores/sidecars/SidecarsStore';\nimport { SidecarsAdministrationActions, SidecarsAdministrationStore } from 'stores/sidecars/SidecarsAdministrationStore';\n\nimport CollectorsAdministration from './CollectorsAdministration';\n\nconst CollectorsAdministrationContainer = createReactClass({\n propTypes: {\n nodeId: PropTypes.string,\n },\n\n mixins: [Reflux.connect(CollectorsStore, 'collectors'), Reflux.connect(SidecarsAdministrationStore, 'sidecars'), Reflux.connect(CollectorConfigurationsStore, 'configurations')],\n\n getDefaultProps() {\n return {\n nodeId: undefined,\n };\n },\n\n componentDidMount() {\n this.loadData(this.props.nodeId);\n this.interval = setInterval(this.reloadSidecars, 5000);\n },\n\n componentDidUpdate(prevProps) {\n if (prevProps.nodeId !== this.props.nodeId) {\n // This means the user changed the URL, so we don't need to keep the previous state.\n this.loadData(this.props.nodeId);\n }\n },\n\n componentWillUnmount() {\n if (this.interval) {\n clearInterval(this.interval);\n }\n },\n\n loadData(nodeId) {\n const query = nodeId ? `node_id:${nodeId}` : '';\n\n CollectorsActions.all();\n SidecarsAdministrationActions.list({ query: query });\n CollectorConfigurationsActions.all();\n },\n\n reloadSidecars() {\n if (this.state.sidecars) {\n SidecarsAdministrationActions.refreshList();\n }\n },\n\n handlePageChange(page, pageSize) {\n const { filters, pagination, query } = this.state.sidecars;\n const effectivePage = pagination.pageSize !== pageSize ? 1 : page;\n\n SidecarsAdministrationActions.list({ query: query, filters: filters, page: effectivePage, pageSize: pageSize });\n },\n\n handleFilter(property, value) {\n const { filters, pagination, query } = this.state.sidecars;\n let newFilters;\n\n if (property) {\n newFilters = lodash.cloneDeep(filters);\n newFilters[property] = value;\n } else {\n newFilters = {};\n }\n\n SidecarsAdministrationActions.list({ query: query, filters: newFilters, pageSize: pagination.pageSize });\n },\n\n handleQueryChange(query = '', callback = () => {}) {\n const { filters, pagination } = this.state.sidecars;\n\n SidecarsAdministrationActions.list({ query: query, filters: filters, pageSize: pagination.pageSize }).finally(callback);\n },\n\n handleConfigurationChange(selectedSidecars, selectedConfigurations, doneCallback) {\n SidecarsActions.assignConfigurations(selectedSidecars, selectedConfigurations).then((response) => {\n doneCallback();\n const { query, filters, pagination } = this.state.sidecars;\n\n SidecarsAdministrationActions.list({ query: query, filters: filters, pageSize: pagination.pageSize, page: pagination.page });\n\n return response;\n });\n },\n\n handleProcessAction(action, selectedCollectors, doneCallback) {\n SidecarsAdministrationActions.setAction(action, selectedCollectors).then((response) => {\n doneCallback();\n\n return response;\n });\n },\n\n render() {\n const { collectors, configurations, sidecars } = this.state;\n\n if (!collectors || !collectors.collectors || !sidecars || !sidecars.sidecars || !configurations || !configurations.configurations) {\n return ;\n }\n\n const sidecarCollectors = [];\n\n sidecars.sidecars\n .sort((s1, s2) => naturalSortIgnoreCase(s1.node_name, s2.node_name))\n .forEach((sidecar) => {\n const compatibleCollectorIds = sidecar.collectors;\n\n if (lodash.isEmpty(compatibleCollectorIds)) {\n sidecarCollectors.push({ collector: {}, sidecar: sidecar });\n\n return;\n }\n\n compatibleCollectorIds\n .map((id) => lodash.find(collectors.collectors, { id: id }))\n .forEach((compatibleCollector) => {\n sidecarCollectors.push({ collector: compatibleCollector, sidecar: sidecar });\n });\n });\n\n return (\n \n );\n },\n});\n\nexport default CollectorsAdministrationContainer;\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 PropTypes from 'prop-types';\n\nimport { LinkContainer } from 'components/common/router';\nimport { ButtonToolbar, Col, Row, Button } from 'components/bootstrap';\nimport DocsHelper from 'util/DocsHelper';\nimport { DocumentTitle, PageHeader } from 'components/common';\nimport Routes from 'routing/Routes';\nimport DocumentationLink from 'components/support/DocumentationLink';\nimport CollectorsAdministrationContainer from 'components/sidecars/administration/CollectorsAdministrationContainer';\nimport withLocation from 'routing/withLocation';\n\nconst SidecarAdministrationPage = ({ location: { query: { node_id: nodeId } } }) => (\n \n \n \n \n The Graylog collectors can reliably forward contents of log files or Windows EventLog from your servers.\n \n\n \n Read more about collectors 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 \n);\n\nSidecarAdministrationPage.propTypes = {\n location: PropTypes.object.isRequired,\n};\n\nexport default withLocation(SidecarAdministrationPage);\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 moment from 'moment';\nimport naturalSort from 'javascript-natural-sort';\n\n// sortOrder: \"asc\"|\"desc\"\nexport function sortByDate(d1, d2, sortOrder) {\n const effectiveSortOrder = sortOrder || 'asc';\n const d1Time = moment(d1);\n const d2Time = moment(d2);\n\n if (effectiveSortOrder === 'asc') {\n return (d1Time.isBefore(d2Time) ? -1 : d2Time.isBefore(d1Time) ? 1 : 0);\n }\n\n return (d2Time.isBefore(d1Time) ? -1 : d1Time.isBefore(d2Time) ? 1 : 0);\n}\n\nexport function naturalSortIgnoreCase(s1, s2, sortOrder) {\n const effectiveSortOrder = sortOrder || 'asc';\n\n return (effectiveSortOrder === 'asc' ? naturalSort(s1.toLowerCase(), s2.toLowerCase()) : naturalSort(s2.toLowerCase(), s1.toLowerCase()));\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, \".dvlly6VO46TrdCVZPpGE .row {\\n margin-bottom: 5px;\\n}\\n\\n.dvlly6VO46TrdCVZPpGE .form-group {\\n display: inline-block;\\n margin: 0 10px 0 0;\\n}\\n\\n.dvlly6VO46TrdCVZPpGE .checkbox {\\n margin-top: 5px;\\n margin-bottom: 5px;\\n}\\n\\n.dvlly6VO46TrdCVZPpGE .checkbox label {\\n font-size: 1rem; /* theme.fonts.size.body */\\n}\\n\\n.vRmZxO1HeYcmgofMZMjV {\\n margin-left: 20px;\\n}\\n\\n.B3MjqAiZbEtKhqEgh7mc {\\n display: block;\\n height: 20px;\\n margin: 5px 0;\\n}\\n\\n.s468Ies3jqXwHW18byQ1 .page-size {\\n padding-top: 4px;\\n}\\n\\n.s468Ies3jqXwHW18byQ1 .search {\\n margin-bottom: 15px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/sidecars/administration/CollectorsAdministration.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,kBAAkB;AACpB;;AAEA;EACE,qBAAqB;EACrB,kBAAkB;AACpB;;AAEA;EACE,eAAe;EACf,kBAAkB;AACpB;;AAEA;EACE,eAAe,EAAE,0BAA0B;AAC7C;;AAEA;EACE,iBAAiB;AACnB;;AAEA;EACE,cAAc;EACd,YAAY;EACZ,aAAa;AACf;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,mBAAmB;AACrB\",\"sourcesContent\":[\":local(.collectorEntry) .row {\\n margin-bottom: 5px;\\n}\\n\\n:local(.collectorEntry) .form-group {\\n display: inline-block;\\n margin: 0 10px 0 0;\\n}\\n\\n:local(.collectorEntry) .checkbox {\\n margin-top: 5px;\\n margin-bottom: 5px;\\n}\\n\\n:local(.collectorEntry) .checkbox label {\\n font-size: 1rem; /* theme.fonts.size.body */\\n}\\n\\n:local(.alignedInformation) {\\n margin-left: 20px;\\n}\\n\\n:local(.additionalContent) {\\n display: block;\\n height: 20px;\\n margin: 5px 0;\\n}\\n\\n:local(.paginatedList) .page-size {\\n padding-top: 4px;\\n}\\n\\n:local(.paginatedList) .search {\\n margin-bottom: 15px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"collectorEntry\": \"dvlly6VO46TrdCVZPpGE\",\n\t\"alignedInformation\": \"vRmZxO1HeYcmgofMZMjV\",\n\t\"additionalContent\": \"B3MjqAiZbEtKhqEgh7mc\",\n\t\"paginatedList\": \"s468Ies3jqXwHW18byQ1\"\n};\nexport default ___CSS_LOADER_EXPORT___;\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, \".Lrll75Yl_6CGdqA_fws8 {\\n vertical-align: baseline;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/sidecars/administration/FiltersSummary.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,wBAAwB;AAC5B\",\"sourcesContent\":[\":local(.deleteButton) {\\n vertical-align: baseline;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"deleteButton\": \"Lrll75Yl_6CGdqA_fws8\"\n};\nexport default ___CSS_LOADER_EXPORT___;\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":["createReactClass","propTypes","collector","PropTypes","operatingSystem","getDefaultProps","undefined","render","this","props","lodash","SidecarsAdministrationActions","singletonActions","Reflux","list","asyncResult","refreshList","setAction","SidecarsAdministrationStore","singletonStore","listenables","sourceUrl","sidecars","filters","pagination","count","page","pageSize","total","query","propagateChanges","trigger","body","per_page","promise","fetchPeriodically","URLUtils","then","response","error","UserNotification","status","responseMessage","message","action","collectors","formattedCollectors","Object","keys","map","sidecarId","sidecar_id","collector_ids","length","CollectorConfigurationSelector","selectedSidecarCollectorPairs","configurations","sidecar","reduce","accumulator","concat","assignments","assignment","find","configuration","id","configuration_id","configurationIds","hideCallback","nextAssignedConfigurations","filter","c","includes","setState","modal","open","doneCallback","onConfigurationSelectionChange","state","configurationId","b","collector_id","ColorLabel","color","size","name","CollectorIndicator","node_operating_system","actionSummary","exampleSidecarCollectorPair","collectorIndicator","formattedSummary","node_name","join","ref","title","onConfirm","confirmConfigurationChange","onCancel","cancelConfigurationChange","selectedLogCollectors","triggerNode","bsSize","bsStyle","className","items","displayDataFilter","disabled","sort","c1","c2","naturalSortIgnoreCase","assignedConfigurations","getAssignedConfigurations","itemFormatter","configurationFormatter","onItemSelect","handleConfigurationSelect","selectedItems","config","filterPlaceholder","renderConfigurationSummary","React","PROCESS_ACTIONS","onProcessAction","getInitialState","selectedAction","isConfigurationWarningHidden","resetSelectedAction","handleProcessActionSelect","processAction","confirmProcessAction","cancelProcessAction","hideConfigurationWarning","renderSummaryContent","selectedSidecars","singular","plural","value","renderConfigurationWarning","header","onClick","renderProcessActionSummary","allHaveConfigurationsAssigned","every","some","shouldShowConfigurationWarning","confirmButtonDisabled","onFilterChange","callback","getCollectorsFilter","collectorFilter","collectorMapper","collectorItems","collectorId","split","getConfigurationFilter","configurationFilter","configurationMapper","configurationItems","getOSFilter","operatingSystems","osFilter","os","getStatusFilter","SidecarStatusEnum","key","String","statusFilter","statusCode","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","FiltersSummary","type","filterKey","formatFilter","onResetFilters","md","formatFilters","style","HeaderComponentsWrapper","styled","theme","css","colors","variant","darker","DisabledCollector","light","sidecarCollectorPairs","onPageChange","onFilter","onQueryChange","onConfigurationChange","enabledCollectors","getEnabledCollectors","selected","UNSAFE_componentWillReceiveProps","nextProps","filterSelectedCollectors","componentDidUpdate","setSelectAllCheckboxState","selectAllInput","selectAllCheckbox","getInputDOMNode","indeterminate","isAllSelected","sidecarCollectorId","node_id","filteredSidecarCollectorIds","handleConfigurationChange","selectedConfigurations","handleProcessAction","selectedCollectors","forEach","push","formatHeader","headerMenu","selectedSidecarCollectorId","label","checked","onChange","toggleSelectAll","wrapperClassName","handleSidecarCollectorSelect","event","newSelection","target","formatSidecarNoCollectors","OperatingSystemIcon","node_details","operating_system","formatCollector","configAssignment","collectorStatus","result","e","lg","xs","StatusIndicator","lastSeen","last_seen","to","Routes","text","formatSidecar","active","commonStyle","handleSearch","handleReset","handleResetFilters","sidecarToMap","sidecarCollectors","activePage","pageSizes","totalItems","SidecarSearchForm","onSearch","onReset","nodeId","mixins","CollectorsStore","CollectorConfigurationsStore","componentDidMount","loadData","interval","setInterval","reloadSidecars","prevProps","componentWillUnmount","clearInterval","CollectorsActions","CollectorConfigurationsActions","handlePageChange","effectivePage","handleFilter","property","newFilters","handleQueryChange","SidecarsActions","s1","s2","compatibleCollectorIds","compatibleCollector","SidecarAdministrationPage","location","DocumentationLink","DocsHelper","withLocation","sortByDate","d1","d2","sortOrder","effectiveSortOrder","d1Time","moment","d2Time","isBefore","naturalSort","toLowerCase","___CSS_LOADER_EXPORT___","module","locals"],"sourceRoot":""}




    © 2015 - 2024 Weber Informatics LLC | Privacy Policy