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

web-interface.assets.6e61897c-36.472622149827c1587209.js.map Maven / Gradle / Ivy

There is a newer version: 6.0.1
Show newest version
{"version":3,"sources":["webpack:///./src/components/sidecars/common/CollectorIndicator.jsx","webpack:///./src/components/sidecars/common/ColorLabel.tsx","webpack:///./src/components/sidecars/common/StatusIndicator.css?6222","webpack:///./src/components/sidecars/common/StatusIndicator.jsx","webpack:///./src/components/sidecars/administration/CollectorConfigurationSelector.jsx","webpack:///./src/components/sidecars/administration/CollectorProcessControl.jsx","webpack:///./src/components/sidecars/administration/CollectorsAdministrationActions.jsx","webpack:///./src/components/sidecars/administration/CollectorsAdministrationFilters.jsx","webpack:///./src/components/sidecars/administration/FiltersSummary.css?51d1","webpack:///./src/components/sidecars/administration/FiltersSummary.jsx","webpack:///./src/components/sidecars/administration/CollectorsAdministration.css?2728","webpack:///./src/components/sidecars/administration/CollectorsAdministration.jsx","webpack:///./src/components/sidecars/administration/CollectorsAdministrationContainer.jsx","webpack:///./src/pages/SidecarAdministrationPage.jsx","webpack:///./src/components/sidecars/common/SidecarSearchForm.css?5315","webpack:///./src/components/sidecars/common/SidecarSearchForm.jsx","webpack:///./src/components/sidecars/common/CommonSidecarStyles.css?4f39","webpack:///./src/components/sidecars/common/OperatingSystemIcon.jsx","webpack:///./src/components/sidecars/administration/CollectorsAdministration.css","webpack:///./src/components/sidecars/administration/FiltersSummary.css","webpack:///./src/util/SortUtils.js","webpack:///./src/components/sidecars/common/CommonSidecarStyles.css","webpack:///./src/logic/sidecar/SidecarStatusEnum.js","webpack:///./src/components/sidecars/common/SidecarSearchForm.css","webpack:///./src/components/sidecars/common/StatusIndicator.css"],"names":["CollectorIndicator","createReactClass","propTypes","collector","PropTypes","string","isRequired","operatingSystem","getDefaultProps","undefined","render","this","props","lodash","upperFirst","ColorLabelWrap","styled","span","size","theme","fonts","body","small","tiny","fontSize","css","ColorLabel","color","text","borderColor","utils","colorLevel","textColor","contrastingColor","style","backgroundColor","border","oneOfType","element","oneOf","themePropTypes","defaultProps","withTheme","options","locals","StatusIndicator","icon","className","SidecarStatusEnum","toString","status","lastSeenDateTime","DateTime","lastSeen","message","RUNNING","FAILING","STOPPED","toRelativeString","id","popover","placement","overlay","rootClose","trigger","indicator","name","fixedWidth","React","Component","number","CollectorConfigurationSelector","selectedSidecarCollectorPairs","configurations","map","sidecar","reduce","accumulator","concat","assignments","assignment","find","configuration","configuration_id","configurationIds","hideCallback","nextAssignedConfigurations","filter","c","includes","setState","modal","open","doneCallback","onConfigurationSelectionChange","state","configurationId","collectors","b","collector_id","node_operating_system","actionSummary","exampleSidecarCollectorPair","collectorIndicator","length","formattedSummary","node_name","join","ref","title","onConfirm","confirmConfigurationChange","onCancel","cancelConfigurationChange","selectedLogCollectors","uniq","triggerNode","bsSize","bsStyle","items","displayDataFilter","disabled","sort","c1","c2","naturalSortIgnoreCase","assignedConfigurations","getAssignedConfigurations","itemFormatter","configurationFormatter","onItemSelect","handleConfigurationSelect","selectedItems","config","filterPlaceholder","renderConfigurationSummary","array","func","PROCESS_ACTIONS","CollectorProcessControl","onProcessAction","getInitialState","selectedAction","isConfigurationWarningHidden","resetSelectedAction","handleProcessActionSelect","processAction","confirmProcessAction","cancelProcessAction","hideConfigurationWarning","renderSummaryContent","selectedSidecars","singular","plural","value","renderConfigurationWarning","header","capitalize","onClick","renderProcessActionSummary","allHaveConfigurationsAssigned","every","some","shouldShowConfigurationWarning","confirmButtonDisabled","action","CollectorsAdministrationActions","CollectorsAdministrationFilters","filters","object","onFilterChange","callback","getCollectorsFilter","collectorFilter","collectorMapper","collectorItems","collectorId","split","getConfigurationFilter","configurationFilter","configurationMapper","configurationItems","getOSFilter","operatingSystems","osFilter","os","getStatusFilter","Object","keys","properties","key","String","statusFilter","statusCode","FiltersSummary","type","filterKey","formatFilter","onResetFilters","isEmpty","md","formatFilters","deleteButton","HeaderComponentsWrapper","div","colors","variant","darker","DisabledCollector","light","CollectorsAdministration","sidecarCollectorPairs","pagination","query","onPageChange","onFilter","onQueryChange","onConfigurationChange","enabledCollectors","getEnabledCollectors","selected","UNSAFE_componentWillReceiveProps","nextProps","isEqual","filterSelectedCollectors","componentDidUpdate","setSelectAllCheckboxState","selectAllInput","selectAllCheckbox","getInputDOMNode","indeterminate","isAllSelected","sidecarCollectorId","node_id","filteredSidecarCollectorIds","handleConfigurationChange","selectedConfigurations","handleProcessAction","selectedCollectors","forEach","push","formatHeader","headerMenu","selectedSidecarCollectorId","Header","label","checked","onChange","toggleSelectAll","wrapperClassName","handleSidecarCollectorSelect","event","newSelection","target","union","without","formatSidecarNoCollectors","Item","collectorEntry","alignedInformation","OperatingSystemIcon","node_details","operating_system","formatCollector","configAssignment","collectorStatus","result","e","lg","xs","additionalContent","last_seen","to","Routes","SYSTEM","SIDECARS","EDIT_CONFIGURATION","formatSidecar","active","commonStyle","greyedOut","handleSearch","handleReset","handleResetFilters","formattedCollectors","sidecarToMap","sidecarCollectors","paginatedList","activePage","page","pageSize","pageSizes","totalItems","total","SidecarSearchForm","onSearch","onReset","CombinedProvider","get","CollectorsStore","CollectorsActions","SidecarsAdministrationStore","SidecarsAdministrationActions","CollectorConfigurationsStore","CollectorConfigurationsActions","SidecarsActions","CollectorsAdministrationContainer","nodeId","mixins","Reflux","connect","componentDidMount","loadData","interval","setInterval","reloadSidecars","prevProps","componentWillUnmount","clearInterval","all","list","sidecars","refreshList","handlePageChange","effectivePage","handleFilter","property","newFilters","cloneDeep","handleQueryChange","assignConfigurations","then","response","setAction","s1","s2","compatibleCollectorIds","compatibleCollector","SidecarAdministrationPage","location","DocumentationLink","DocsHelper","PAGES","COLLECTOR_SIDECAR","OVERVIEW","ADMINISTRATION","CONFIGURATION","withLocation","children","queryHelpPopover","popoverWide","condensed","queryHelp","searchButtonLabel","placeholder","queryWidth","queryHelpComponent","topMargin","useLoadingState","SidecarIcon","Icon","iconName","iconType","trim","toLowerCase","indexOf","___CSS_LOADER_EXPORT___","module","i","sortByDate","d1","d2","sortOrder","effectiveSortOrder","d1Time","moment","d2Time","isBefore","naturalSort","UNKNOWN","0","1","2","3","isValidStatusCode","toStatusCode","stringStatus","lowerCase","toNumber"],"mappings":"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","file":"6e61897c-36.472622149827c1587209.js","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 React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css, withTheme, DefaultTheme } from 'styled-components';\n\nimport { themePropTypes } from 'theme';\nimport { Label } from 'components/graylog';\n\ntype Size = 'normal' | 'small' | 'xsmall';\n\ninterface ColorLabelWrapProps {\n  size: Size,\n  theme: DefaultTheme\n}\n\ninterface ColorLabelProps {\n  color: string,\n  size?: Size,\n  text?: string | React.ReactNode,\n  theme: DefaultTheme\n}\n\nconst ColorLabelWrap = styled.span(({ size, theme }: ColorLabelWrapProps) => {\n  const { body, small, tiny } = theme.fonts.size;\n  const fontSize = size === 'small' ? small : body;\n\n  return css`\n    vertical-align: middle;\n    font-size: ${size === 'xsmall' ? tiny : fontSize};\n  `;\n});\n\nconst ColorLabel = ({ color, size, text, theme }: ColorLabelProps) => {\n  const borderColor = theme.utils.colorLevel(color, 5);\n  const textColor = theme.utils.contrastingColor(color);\n\n  return (\n    \n      \n    \n  );\n};\n\nColorLabel.propTypes = {\n  color: PropTypes.string.isRequired,\n  text: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n  size: PropTypes.oneOf(['normal', 'small', 'xsmall']),\n  theme: themePropTypes.isRequired,\n};\n\nColorLabel.defaultProps = {\n  text: ,\n  size: 'normal',\n};\n\nexport default withTheme(ColorLabel);\n","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n            import content from \"!!../../../../node_modules/css-loader/dist/cjs.js??ref--10-1!./StatusIndicator.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/*\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 { OverlayTrigger, Popover } from 'components/graylog';\nimport { Icon } from 'components/common';\nimport SidecarStatusEnum from 'logic/sidecar/SidecarStatusEnum';\nimport DateTime from 'logic/datetimes/DateTime';\n\nimport style from './StatusIndicator.css';\n\nclass StatusIndicator extends React.Component {\n  static propTypes = {\n    id: PropTypes.string,\n    lastSeen: PropTypes.string,\n    message: PropTypes.string,\n    status: PropTypes.number,\n  };\n\n  static defaultProps = {\n    id: '',\n    lastSeen: undefined,\n    message: '',\n    status: -1,\n  };\n\n  render() {\n    const text = lodash.upperFirst(SidecarStatusEnum.toString(this.props.status));\n    const lastSeenDateTime = new DateTime(this.props.lastSeen);\n\n    let icon;\n    let className;\n    let { message } = this.props;\n\n    switch (this.props.status) {\n      case SidecarStatusEnum.RUNNING:\n        className = 'text-success';\n        icon = 'play';\n        break;\n      case SidecarStatusEnum.FAILING:\n        className = 'text-danger';\n        icon = 'exclamation-triangle';\n        break;\n      case SidecarStatusEnum.STOPPED:\n        className = 'text-danger';\n        icon = 'stop';\n        break;\n      default:\n        className = 'text-info';\n        icon = 'question-circle';\n        message += ` (${lastSeenDateTime.toRelativeString()})`;\n    }\n\n    if (this.props.message && this.props.id) {\n      const popover = (\n        \n          {message}\n        \n      );\n\n      return (\n        \n          \n             {text}\n          \n        \n      );\n    }\n\n    return (\n      \n         {text}\n      \n    );\n  }\n}\n\nexport default StatusIndicator;\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 } from 'components/graylog';\nimport { SelectPopover } from 'components/common';\nimport { BootstrapModalConfirm } from 'components/bootstrap';\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 } from 'components/graylog';\nimport { Pluralize, SelectPopover } from 'components/common';\nimport { BootstrapModalConfirm } from 'components/bootstrap';\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/graylog';\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 { Button, ButtonToolbar } from 'components/graylog';\nimport { naturalSortIgnoreCase } from 'util/SortUtils';\nimport { SelectPopover } from 'components/common';\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","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../node_modules/css-loader/dist/cjs.js??ref--10-1!./FiltersSummary.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/*\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/graylog';\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","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../node_modules/css-loader/dist/cjs.js??ref--10-1!./CollectorsAdministration.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/*\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/graylog/router';\nimport { Col, Row } from 'components/graylog';\nimport Routes from 'routing/Routes';\nimport { ControlledTableList, PaginatedList } from 'components/common';\nimport { 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 CombinedProvider from 'injection/CombinedProvider';\nimport { Spinner } from 'components/common';\n\nimport CollectorsAdministration from './CollectorsAdministration';\n\nconst { CollectorsStore, CollectorsActions } = CombinedProvider.get('Collectors');\nconst { SidecarsAdministrationStore, SidecarsAdministrationActions } = CombinedProvider.get('SidecarsAdministration');\nconst { CollectorConfigurationsStore, CollectorConfigurationsActions } = CombinedProvider.get('CollectorConfigurations');\nconst { SidecarsActions } = CombinedProvider.get('Sidecars');\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/graylog/router';\nimport { ButtonToolbar, Col, Row, Button } from 'components/graylog';\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","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../node_modules/css-loader/dist/cjs.js??ref--10-1!./SidecarSearchForm.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/*\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 { OverlayTrigger, Popover, Table, Button } from 'components/graylog';\nimport { SearchForm, Icon } from 'components/common';\n\nimport style from './SidecarSearchForm.css';\n\nclass SidecarSearchForm extends React.Component {\n static propTypes = {\n query: PropTypes.string.isRequired,\n onSearch: PropTypes.func.isRequired,\n onReset: PropTypes.func.isRequired,\n children: PropTypes.element,\n };\n\n static defaultProps = {\n children: undefined,\n };\n\n render() {\n const { query, onSearch, onReset, children } = this.props;\n\n const queryHelpPopover = (\n \n

    Available search fields

    \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 \n \n \n \n \n \n \n \n \n
    FieldDescription
    nameSidecar name
    statusStatus of the sidecar as it appears in the list, i.e. running, failing, or unknown
    operating_systemOperating system the sidecar is running on
    last_seenDate and time when the sidecar last communicated with Graylog
    node_idIdentifier of the sidecar
    sidecar_versionSidecar version
    \n

    Examples

    \n

    \n Find sidecars that did not communicate with Graylog since a date:
    \n {'last_seen:<=2018-04-10'}
    \n

    \n

    \n Find sidecars with failing or unknown status:
    \n status:failing status:unknown
    \n

    \n
    \n );\n\n const queryHelp = (\n \n \n \n );\n\n return (\n \n {children}\n \n );\n }\n}\n\nexport default SidecarSearchForm;\n","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../node_modules/css-loader/dist/cjs.js??ref--10-1!./CommonSidecarStyles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/*\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 styled from 'styled-components';\n\nimport { Icon } from 'components/common';\n\nconst SidecarIcon = styled(Icon)`\n margin-right: 5px;\n margin-left: 2px;\n`;\n\nconst OperatingSystemIcon = ({ operatingSystem }) => {\n let iconName = 'question-circle';\n let iconType = 'solid';\n\n if (operatingSystem) {\n const os = operatingSystem.trim().toLowerCase();\n\n if (os.indexOf('darwin') !== -1 || os.indexOf('mac os') !== -1) {\n iconName = 'apple';\n iconType = 'brand';\n } else if (os.indexOf('linux') !== -1) {\n iconName = 'linux';\n iconType = 'brand';\n } else if (os.indexOf('win') !== -1) {\n iconName = 'windows';\n iconType = 'brand';\n }\n }\n\n return (\n \n );\n};\n\nOperatingSystemIcon.propTypes = {\n operatingSystem: PropTypes.string,\n};\n\nOperatingSystemIcon.defaultProps = {\n operatingSystem: undefined,\n};\n\nexport default OperatingSystemIcon;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.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, \"._2Lnn-HhU-IFiqNelxUNXb6 .row {\\n margin-bottom: 5px;\\n}\\n\\n._2Lnn-HhU-IFiqNelxUNXb6 .form-group {\\n display: inline-block;\\n margin: 0 10px 0 0;\\n}\\n\\n._2Lnn-HhU-IFiqNelxUNXb6 .checkbox {\\n margin-top: 5px;\\n margin-bottom: 5px;\\n}\\n\\n._2Lnn-HhU-IFiqNelxUNXb6 .checkbox label {\\n font-size: 1rem; /* theme.fonts.size.body */\\n}\\n\\n._1q4aJE9btctHlHuQ5wfuIo {\\n margin-left: 20px;\\n}\\n\\n.byEHSI9R_wsW5lf5HdmG7 {\\n display: block;\\n height: 20px;\\n margin: 5px 0;\\n}\\n\\n._16fHHlN1Q9gpLsWDEehuw7 .page-size {\\n padding-top: 4px;\\n}\\n\\n._16fHHlN1Q9gpLsWDEehuw7 .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\": \"_2Lnn-HhU-IFiqNelxUNXb6\",\n\t\"alignedInformation\": \"_1q4aJE9btctHlHuQ5wfuIo\",\n\t\"additionalContent\": \"byEHSI9R_wsW5lf5HdmG7\",\n\t\"paginatedList\": \"_16fHHlN1Q9gpLsWDEehuw7\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.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, \"._2GQ9jQdNfwo3UwakpygV_t {\\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\": \"_2GQ9jQdNfwo3UwakpygV_t\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport 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/cssWithMappingToString.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, \".PCbPKPvnKVA8oUwYA4M9j {\\n margin-top: 10px;\\n}\\n\\n.PCbPKPvnKVA8oUwYA4M9j dt {\\n float: left;\\n clear: left;\\n}\\n\\n.PCbPKPvnKVA8oUwYA4M9j dd {\\n margin-left: 160px;\\n}\\n\\n._3xaZ935tc3aOzEycmIw18T {\\n margin-top: 10px;\\n}\\n\\n._2QB1w0qTpRdQWQ7TDkb1UC {\\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\": \"PCbPKPvnKVA8oUwYA4M9j\",\n\t\"topMargin\": \"_3xaZ935tc3aOzEycmIw18T\",\n\t\"greyedOut\": \"_2QB1w0qTpRdQWQ7TDkb1UC\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport 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","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.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, \".popover.Up-p8arY5cN_wOhMEPAmg {\\n max-width: 500px;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/sidecars/common/SidecarSearchForm.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,gBAAgB;AACpB\",\"sourcesContent\":[\".popover:local(.popoverWide) {\\n max-width: 500px;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"popoverWide\": \"Up-p8arY5cN_wOhMEPAmg\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.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, \"._2dGh29RrhW7JzKows_fZAC {\\n white-space: nowrap;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/sidecars/common/StatusIndicator.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,mBAAmB;AACvB\",\"sourcesContent\":[\":local(.indicator) {\\n white-space: nowrap;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"indicator\": \"_2dGh29RrhW7JzKows_fZAC\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n"],"sourceRoot":""}




    © 2015 - 2024 Weber Informatics LLC | Privacy Policy