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

web-interface.assets.0fe74163-6.8772c3b88e590016e5d1.js.map Maven / Gradle / Ivy

There is a newer version: 6.0.5
Show newest version
{"version":3,"sources":["webpack:///./src/components/support/SmallSupportLink.jsx","webpack:///./src/components/support/index.jsx","webpack:///./src/components/configurations/ConfigurationStyles.css","webpack:///./src/components/indices/ClosedIndexDetails.jsx","webpack:///./src/components/indices/IndexDetails.jsx","webpack:///./src/components/indices/IndexRangeSummary.jsx","webpack:///./src/components/indices/IndexMaintenanceStrategiesConfiguration.jsx","webpack:///./src/components/indices/rotation/MessageCountRotationStrategyConfiguration.jsx","webpack:///./src/components/indices/rotation/MessageCountRotationStrategySummary.jsx","webpack:///./src/components/indices/rotation/SizeBasedRotationStrategyConfiguration.jsx","webpack:///./src/components/indices/rotation/SizeBasedRotationStrategySummary.jsx","webpack:///./src/components/indices/rotation/TimeBasedRotationStrategyConfiguration.jsx","webpack:///./src/components/indices/rotation/TimeBasedRotationStrategySummary.jsx","webpack:///./src/components/indices/rotation/index.js","webpack:///./src/components/indices/retention/DeletionRetentionStrategyConfiguration.jsx","webpack:///./src/components/indices/retention/DeletionRetentionStrategySummary.jsx","webpack:///./src/components/indices/retention/ClosingRetentionStrategyConfiguration.jsx","webpack:///./src/components/indices/retention/ClosingRetentionStrategySummary.jsx","webpack:///./src/components/indices/retention/NoopRetentionStrategyConfiguration.jsx","webpack:///./src/components/indices/retention/NoopRetentionStrategySummary.jsx","webpack:///./src/components/indices/retention/index.js","webpack:///./src/components/indices/IndexSetConfigurationForm.jsx","webpack:///./src/components/indices/IndexSetDeletionForm.jsx","webpack:///./src/components/indices/IndexSetDetails.jsx","webpack:///./src/components/indices/IndexSetsComponent.jsx","webpack:///./src/components/indices/IndexSummary.jsx","webpack:///./src/components/indices/IndexSizeSummary.jsx","webpack:///./src/components/indices/IndicesMaintenanceDropdown.jsx","webpack:///./src/components/indices/IndicesOverview.jsx","webpack:///./src/components/indices/IndexMaintenanceStrategiesSummary.jsx","webpack:///./src/components/indices/IndicesConfiguration.jsx","webpack:///./src/components/indices/ShardMeter.jsx","webpack:///./src/components/indices/ShardRouting.jsx","webpack:///./src/components/indices/ShardRoutingOverview.jsx","webpack:///./src/components/indices/index.jsx","webpack:///./src/components/indices/IndexSetDetails.css","webpack:///./src/components/indices/IndexSetDetails.css?6bd5","webpack:///./src/components/configurations/ConfigurationStyles.css?6d5e"],"names":["IconStack","styled","span","SmallSupportLink","className","name","inverse","this","props","children","React","Component","PropTypes","node","isRequired","module","exports","push","i","IndicesActions","ActionsProvider","getActions","ClosedIndexDetails","reopen","indexName","window","confirm","indexRange","bsStyle","style","marginBottom","marginTop","bsSize","onClick","_onReopen","_onDeleteIndex","string","object","IndexRangesActions","StoreProvider","getStore","IndexDetails","isDeflector","disabled","_onRecalculateIndex","_onCloseIndex","recalculateIndex","then","list","indexSetId","close","subscribe","unsubscribe","index","all_shards","segments","open_search_contexts","documents","deleted","md","title","shardMeter","primary_shards","routing","_formatActionButtons","bool","IndexRangeSummary","calculated_at","dateTime","relative","took_ms","IndexMaintenanceStrategiesConfiguration","activeStrategy","activeConfig","strategy","config","newStrategy","newConfig","selectedStrategy","result","strategies","filter","type","default_config","undefined","json_schema","state","_getDefaultStrategyConfig","length","setState","_getStrategyConfig","updateState","data","s","copy","_addConfigType","pluginExports","map","value","label","displayName","exportedStrategy","strategyConfig","element","createElement","configComponent","jsonSchema","_getStrategyJsonSchema","updateConfig","_onConfigUpdate","key","description","id","selectPlaceholder","placeholder","options","_availableSelectOptions","matchProp","_activeSelection","onChange","_onSelect","_getConfigurationComponent","array","func","MessageCountRotationStrategyConfiguration","max_docs_per_index","field","e","update","target","_onInputUpdate","help","required","MessageCountRotationStrategySummary","SizeBasedRotationStrategyConfiguration","max_size","NumberUtils","formatBytes","addonAfter","_formatSize","SizeBasedRotationStrategySummary","TimeBasedRotationStrategyConfiguration","rotation_period","period","inputs","getValue","toUpperCase","startsWith","_isValidPeriod","duration","check","moment","asMilliseconds","humanize","ref","rotationPeriod","_onPeriodUpdate","_formatDuration","_validationState","TimeBasedRotationStrategySummary","format","_humanizedPeriod","PluginStore","register","PluginManifest","indexRotationConfig","summaryComponent","DeletionRetentionStrategyConfiguration","max_number_of_indices","DeletionRetentionStrategySummary","ClosingRetentionStrategyConfiguration","ClosingRetentionStrategySummary","NoopRetentionStrategyConfiguration","NoopRetentionStrategySummary","indexRetentionConfig","IndexSetConfigurationForm","indexSet","fieldTypeRefreshIntervalUnit","validationErrors","fieldName","lodash","cloneDeep","event","match","nextValidationErrors","indexOf","toLowerCase","_onInputChange","_updateConfig","checked","preventDefault","invalidFields","Object","keys","onUpdate","document","getElementsByName","focus","unit","rotationConfig","retentionConfig","readOnlyconfig","rotationStrategies","rotation_strategy","rotation_strategy_class","_updateRotationConfigState","retentionStrategies","retention_strategy","retention_strategy_class","_updateRetentionConfigState","create","indexPrefixHelp","_validateIndexPrefix","index_prefix","index_analyzer","onSubmit","_saveConfiguration","autoFocus","shards","replicas","min","index_optimization_max_num_segments","_onDisableOptimizationClick","index_optimization_disabled","field_type_refresh_interval","as","units","_onFieldTypeRefreshIntervalChange","writable","marginRight","to","cancelLink","StreamsStore","CombinedProvider","get","IndexSetDeletionForm","assignedStreams","deleteIndices","load","streams","forEach","stream","index_set_id","forms","open","_isLoading","text","_isDeletable","sort","s1","s2","naturalSort","_onRemoveClick","onDelete","BootstrapModalForm","elem","onModalOpen","_onModalOpen","onSubmitForm","_onDelete","submitButtonText","submitButtonDisabled","_modalContent","require","IndexSetDetails","use","unuse","IndexSetsStore","IndexSetsActions","IndexSetsComponent","createReactClass","mixins","Reflux","connect","componentDidMount","loadData","PAGE_SIZE","pageNo","limit","currentPageNo","currentPageSize","listPaginated","stats","_onChangePaginatedList","page","size","_onSetDefault","setDefault","_deleteIndexSet","_formatIndexSet","statsString","actions","Routes","SYSTEM","INDEX_SETS","CONFIGURATION","pullRight","onSelect","divider","content","indexSetTitle","SHOW","isDefault","isReadOnly","endsWith","indexSetStats","_formatStatsString","titleSuffix","contentRow","indices","formatNumber","StringUtils","pluralize","indexSets","render","globalIndexSetStats","pageSize","totalItems","indexSetsCount","showPageSizeSelect","bsNoItemsStyle","noItemsText","items","IndexSummary","showDetails","labels","is_deflector","is_closed","is_reopened","DateTime","toISOString","sizes","count","events","begin","end","_formatLabels","_formatIndexRange","_toggleShowDetails","href","_formatShowDetailsLink","IndexSizeSummary","bytes","numeral","DeflectorActions","IndicesMaintenanceDropdown","recalculate","cycle","cycleButton","eventKey","_onCycleDeflector","_onRecalculateIndexRange","IndicesOverview","indexSummary","range","indexDetails","_formatClosedIndex","_formatIndex","index1","index2","closedIndices","deflector","IndexMaintenanceStrategiesSummary","Spinner","IndicesConfiguration","ShardMeter","meter","total","time_seconds","sm","display","_formatMeter","flush","merge","search_query","search_fetch","refresh","ShardRouting","route","tooltip","node_hostname","node_name","classNames","primary","placement","overlay","ShardRoutingWrap","div","theme","util","colorLevel","color","variant","light","success","warning","gray","ShardRoutingOverview","shard1","shard2","node_id","clear","propTypes","dispose","refs","locals","unref"],"mappings":"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","file":"0fe74163-6.8772c3b88e590016e5d1.js","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport styled from 'styled-components';\n\nimport { Icon } from 'components/common';\n\nconst IconStack = styled.span`\n  margin-right: 1px;\n  position: relative;\n  top: -1px;\n`;\n\nclass SmallSupportLink extends React.Component {\n  static propTypes = {\n    children: PropTypes.node.isRequired,\n  };\n\n  render() {\n    return (\n      

\n \n \n \n \n \n {this.props.children}\n \n

\n );\n }\n}\n\nexport default SmallSupportLink;\n","export { default as ContactUs } from './ContactUs';\nexport { default as DocumentationLink } from './DocumentationLink';\nexport { default as SmallSupportLink } from './SmallSupportLink';\nexport { default as SupportLink } from './SupportLink';\n","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".deflist{margin-top:10px}.deflist dt{float:left;clear:left}.deflist dd{margin-left:160px}.top-margin,hr.separator{margin-top:10px}hr.separator{margin-bottom:5px}\", \"\"]);\n\n// exports\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport ActionsProvider from 'injection/ActionsProvider';\n\nimport { Alert, Button } from 'components/graylog';\nimport { Icon } from 'components/common';\nimport { IndexRangeSummary } from 'components/indices';\n\nconst IndicesActions = ActionsProvider.getActions('Indices');\n\nclass ClosedIndexDetails extends React.Component {\n static propTypes = {\n indexName: PropTypes.string.isRequired,\n indexRange: PropTypes.object,\n };\n\n _onReopen = () => {\n IndicesActions.reopen(this.props.indexName);\n };\n\n _onDeleteIndex = () => {\n if (window.confirm(`Really delete index ${this.props.indexName}?`)) {\n IndicesActions.delete(this.props.indexName);\n }\n };\n\n render() {\n const { indexRange } = this.props;\n return (\n
\n \n This index is closed. Index information is not available{' '}\n at the moment, please reopen the index and try again.\n \n\n
\n\n {' '}\n \n
\n );\n }\n}\n\nexport default ClosedIndexDetails;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { Col, Row, Button } from 'components/graylog';\nimport { Spinner } from 'components/common';\n\nimport ActionsProvider from 'injection/ActionsProvider';\nimport StoreProvider from 'injection/StoreProvider'; // To make IndexRangesActions work.\n\nimport { IndexRangeSummary, ShardMeter, ShardRoutingOverview } from 'components/indices';\n\nconst IndicesActions = ActionsProvider.getActions('Indices');\nconst IndexRangesActions = ActionsProvider.getActions('IndexRanges');\nStoreProvider.getStore('IndexRanges');\n\nclass IndexDetails extends React.Component {\n static propTypes = {\n index: PropTypes.object.isRequired,\n indexName: PropTypes.string.isRequired,\n indexRange: PropTypes.object.isRequired,\n indexSetId: PropTypes.string.isRequired,\n isDeflector: PropTypes.bool.isRequired,\n };\n\n componentDidMount() {\n IndicesActions.subscribe(this.props.indexName);\n }\n\n componentWillUnmount() {\n IndicesActions.unsubscribe(this.props.indexName);\n }\n\n _formatActionButtons = () => {\n if (this.props.isDeflector) {\n return (\n \n {' '}\n \n \n );\n }\n\n return (\n \n {' '}\n {' '}\n \n \n );\n };\n\n _onRecalculateIndex = () => {\n if (window.confirm(`Really recalculate the index ranges for index ${this.props.indexName}?`)) {\n IndexRangesActions.recalculateIndex(this.props.indexName).then(() => {\n IndicesActions.list(this.props.indexSetId);\n });\n }\n };\n\n _onCloseIndex = () => {\n if (window.confirm(`Really close index ${this.props.indexName}?`)) {\n IndicesActions.close(this.props.indexName).then(() => {\n IndicesActions.list(this.props.indexSetId);\n });\n }\n };\n\n _onDeleteIndex = () => {\n if (window.confirm(`Really delete index ${this.props.indexName}?`)) {\n IndicesActions.delete(this.props.indexName).then(() => {\n IndicesActions.list(this.props.indexSetId);\n });\n }\n };\n\n render() {\n if (!this.props.index || !this.props.index.all_shards) {\n return ;\n }\n const { index, indexRange, indexName } = this.props;\n return (\n
\n {' '}\n\n {index.all_shards.segments} segments,{' '}\n {index.all_shards.open_search_contexts} open search contexts,{' '}\n {index.all_shards.documents.deleted} deleted messages\n\n \n \n \n \n \n \n \n \n\n \n\n
\n\n {this._formatActionButtons()}\n
\n );\n }\n}\n\nexport default IndexDetails;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Timestamp } from 'components/common';\n\nclass IndexRangeSummary extends React.Component {\n static propTypes = {\n indexRange: PropTypes.object,\n };\n\n render() {\n const { indexRange } = this.props;\n if (!indexRange) {\n return No index range available.;\n }\n return (\n Range re-calculated{' '}\n {' '}\n in {indexRange.took_ms}ms.\n \n );\n }\n}\n\nexport default IndexRangeSummary;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Input } from 'components/bootstrap';\n\nimport { Select } from 'components/common';\n\nclass IndexMaintenanceStrategiesConfiguration extends React.Component {\n static propTypes = {\n title: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n selectPlaceholder: PropTypes.string.isRequired,\n pluginExports: PropTypes.array.isRequired,\n strategies: PropTypes.array.isRequired,\n activeConfig: PropTypes.object.isRequired,\n updateState: PropTypes.func.isRequired,\n };\n\n state = {\n activeStrategy: this.props.activeConfig.strategy,\n activeConfig: this.props.activeConfig.config,\n newStrategy: this.props.activeConfig.strategy,\n newConfig: this.props.activeConfig.config,\n };\n\n _getDefaultStrategyConfig = (selectedStrategy) => {\n const result = this.props.strategies.filter((strategy) => strategy.type === selectedStrategy)[0];\n return result ? result.default_config : undefined;\n };\n\n _getStrategyJsonSchema = (selectedStrategy) => {\n const result = this.props.strategies.filter((strategy) => strategy.type === selectedStrategy)[0];\n return result ? result.json_schema : undefined;\n };\n\n _getStrategyConfig = (selectedStrategy) => {\n if (this.state.activeStrategy === selectedStrategy) {\n // If the newly selected strategy is the current active strategy, we use the active configuration.\n return this.state.activeConfig;\n }\n // If the newly selected strategy is not the current active strategy, we use the selected strategy's default config.\n return this._getDefaultStrategyConfig(selectedStrategy);\n };\n\n _onSelect = (newStrategy) => {\n if (!newStrategy || newStrategy.length < 1) {\n this.setState({ newStrategy: undefined });\n return;\n }\n\n const newConfig = this._getStrategyConfig(newStrategy);\n\n this.setState({ newStrategy: newStrategy, newConfig: newConfig });\n this.props.updateState(newStrategy, newConfig);\n };\n\n _addConfigType = (strategy, data) => {\n // The config object needs to have the \"type\" field set to the \"default_config.type\" to make the REST call work.\n const result = this.props.strategies.filter((s) => s.type === strategy)[0];\n const copy = data;\n\n if (result) {\n copy.type = result.default_config.type;\n }\n\n return copy;\n };\n\n _onConfigUpdate = (newConfig) => {\n const config = this._addConfigType(this.state.newStrategy, newConfig);\n\n this.setState({ newConfig: config });\n this.props.updateState(this.state.newStrategy, config);\n };\n\n _availableSelectOptions = () => {\n return this.props.pluginExports.map((config) => {\n return { value: config.type, label: config.displayName };\n });\n };\n\n _getConfigurationComponent = (selectedStrategy) => {\n if (!selectedStrategy || selectedStrategy.length < 1) {\n return null;\n }\n\n const strategy = this.props.pluginExports.filter((exportedStrategy) => exportedStrategy.type === selectedStrategy)[0];\n\n if (!strategy) {\n return null;\n }\n\n const strategyConfig = this._getStrategyConfig(selectedStrategy);\n const element = React.createElement(strategy.configComponent, {\n config: strategyConfig,\n jsonSchema: this._getStrategyJsonSchema(selectedStrategy),\n updateConfig: this._onConfigUpdate,\n });\n\n return ({element});\n };\n\n _activeSelection = () => {\n return this.state.newStrategy;\n };\n\n render() {\n return (\n \n

{this.props.title}

\n

{this.props.description}

\n \n \n \n
\n );\n }\n}\n\nexport default MessageCountRotationStrategyConfiguration;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nclass MessageCountRotationStrategySummary extends React.Component {\n static propTypes = {\n config: PropTypes.object.isRequired,\n };\n\n render() {\n return (\n
\n
\n
Index rotation strategy:
\n
Message Count
\n
Max docs per index:
\n
{this.props.config.max_docs_per_index}
\n
\n
\n );\n }\n}\n\nexport default MessageCountRotationStrategySummary;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Input } from 'components/bootstrap';\n\nimport NumberUtils from 'util/NumberUtils';\n\nclass SizeBasedRotationStrategyConfiguration extends React.Component {\n static propTypes = {\n config: PropTypes.object.isRequired,\n jsonSchema: PropTypes.object.isRequired,\n updateConfig: PropTypes.func.isRequired,\n };\n\n state = {\n max_size: this.props.config.max_size,\n };\n\n _onInputUpdate = (field) => {\n return (e) => {\n const update = {};\n update[field] = e.target.value;\n\n this.setState(update);\n this.props.updateConfig(update);\n };\n };\n\n _formatSize = () => {\n return NumberUtils.formatBytes(this.state.max_size);\n };\n\n render() {\n return (\n
\n
\n \n
\n
\n );\n }\n}\n\nexport default SizeBasedRotationStrategyConfiguration;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport NumberUtils from 'util/NumberUtils';\n\nclass SizeBasedRotationStrategySummary extends React.Component {\n static propTypes = {\n config: PropTypes.object.isRequired,\n };\n\n render() {\n return (\n
\n
\n
Index rotation strategy:
\n
Index Size
\n
Max index size:
\n
{this.props.config.max_size} bytes ({NumberUtils.formatBytes(this.props.config.max_size)})
\n
\n
\n );\n }\n}\n\nexport default SizeBasedRotationStrategySummary;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Input } from 'components/bootstrap';\nimport moment from 'moment';\n\nclass TimeBasedRotationStrategyConfiguration extends React.Component {\n static propTypes = {\n config: PropTypes.object.isRequired,\n jsonSchema: PropTypes.object.isRequired,\n updateConfig: PropTypes.func.isRequired,\n };\n\n state = {\n rotation_period: this.props.config.rotation_period,\n };\n\n inputs = {};\n\n _onPeriodUpdate = (field) => {\n return () => {\n const update = {};\n let period = this.inputs[field].getValue().toUpperCase();\n\n if (!period.startsWith('P')) {\n period = `P${period}`;\n }\n\n update[field] = period;\n\n this.setState(update);\n\n if (this._isValidPeriod(update[field])) {\n // Only propagate state if the config is valid.\n this.props.updateConfig(update);\n }\n };\n };\n\n _isValidPeriod = (duration) => {\n const check = duration || this.state.rotation_period;\n return moment.duration(check).asMilliseconds() >= 3600000;\n };\n\n _validationState = () => {\n if (this._isValidPeriod()) {\n return undefined;\n }\n return 'error';\n };\n\n _formatDuration = () => {\n return this._isValidPeriod() ? moment.duration(this.state.rotation_period).humanize() : 'invalid (min 1 hour)';\n };\n\n render() {\n return (\n
\n { this.inputs.rotation_period = rotationPeriod; }}\n label=\"Rotation period (ISO8601 Duration)\"\n onChange={this._onPeriodUpdate('rotation_period')}\n value={this.state.rotation_period}\n help={'How long an index gets written to before it is rotated. (i.e. \"P1D\" for 1 day, \"PT6H\" for 6 hours)'}\n addonAfter={this._formatDuration()}\n bsStyle={this._validationState()}\n required />\n
\n );\n }\n}\n\nexport default TimeBasedRotationStrategyConfiguration;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport moment from 'moment';\nimport {} from 'moment-duration-format';\n\nclass TimeBasedRotationStrategySummary extends React.Component {\n static propTypes = {\n config: PropTypes.object.isRequired,\n };\n\n _humanizedPeriod = () => {\n const duration = moment.duration(this.props.config.rotation_period);\n\n return `${duration.format()}, ${duration.humanize()}`;\n };\n\n render() {\n return (\n
\n
\n
Index rotation strategy:
\n
Index Time
\n
Rotation period:
\n
{this.props.config.rotation_period} ({this._humanizedPeriod()})
\n
\n
\n );\n }\n}\n\nexport default TimeBasedRotationStrategySummary;\n","import { PluginManifest, PluginStore } from 'graylog-web-plugin/plugin';\n\nimport MessageCountRotationStrategyConfiguration from './MessageCountRotationStrategyConfiguration';\nimport MessageCountRotationStrategySummary from './MessageCountRotationStrategySummary';\nimport SizeBasedRotationStrategyConfiguration from './SizeBasedRotationStrategyConfiguration';\nimport SizeBasedRotationStrategySummary from './SizeBasedRotationStrategySummary';\nimport TimeBasedRotationStrategyConfiguration from './TimeBasedRotationStrategyConfiguration';\nimport TimeBasedRotationStrategySummary from './TimeBasedRotationStrategySummary';\n\nPluginStore.register(new PluginManifest({}, {\n indexRotationConfig: [\n {\n type: 'org.graylog2.indexer.rotation.strategies.MessageCountRotationStrategy',\n displayName: 'Index Message Count',\n configComponent: MessageCountRotationStrategyConfiguration,\n summaryComponent: MessageCountRotationStrategySummary,\n },\n {\n type: 'org.graylog2.indexer.rotation.strategies.SizeBasedRotationStrategy',\n displayName: 'Index Size',\n configComponent: SizeBasedRotationStrategyConfiguration,\n summaryComponent: SizeBasedRotationStrategySummary,\n },\n {\n type: 'org.graylog2.indexer.rotation.strategies.TimeBasedRotationStrategy',\n displayName: 'Index Time',\n configComponent: TimeBasedRotationStrategyConfiguration,\n summaryComponent: TimeBasedRotationStrategySummary,\n },\n ],\n}));\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Input } from 'components/bootstrap';\n\nclass DeletionRetentionStrategyConfiguration extends React.Component {\n static propTypes = {\n config: PropTypes.object.isRequired,\n jsonSchema: PropTypes.object.isRequired,\n updateConfig: PropTypes.func.isRequired,\n };\n\n state = {\n max_number_of_indices: this.props.config.max_number_of_indices,\n };\n\n _onInputUpdate = (field) => {\n return (e) => {\n const update = {};\n update[field] = e.target.value;\n\n this.setState(update);\n this.props.updateConfig(update);\n };\n };\n\n render() {\n return (\n
\n
\n Maximum number of indices to keep before deleting the oldest ones}\n required />\n
\n
\n );\n }\n}\n\nexport default DeletionRetentionStrategyConfiguration;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nclass DeletionRetentionStrategySummary extends React.Component {\n static propTypes = {\n config: PropTypes.object.isRequired,\n };\n\n render() {\n return (\n
\n
\n
Index retention strategy:
\n
Delete
\n
Max number of indices:
\n
{this.props.config.max_number_of_indices}
\n
\n
\n );\n }\n}\n\nexport default DeletionRetentionStrategySummary;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Input } from 'components/bootstrap';\n\nclass ClosingRetentionStrategyConfiguration extends React.Component {\n static propTypes = {\n config: PropTypes.object.isRequired,\n jsonSchema: PropTypes.object.isRequired,\n updateConfig: PropTypes.func.isRequired,\n };\n\n state = {\n max_number_of_indices: this.props.config.max_number_of_indices,\n };\n\n _onInputUpdate = (field) => {\n return (e) => {\n const update = {};\n update[field] = e.target.value;\n\n this.setState(update);\n this.props.updateConfig(update);\n };\n };\n\n render() {\n return (\n
\n
\n Maximum number of indices to keep before closing the oldest ones}\n required />\n
\n
\n );\n }\n}\n\nexport default ClosingRetentionStrategyConfiguration;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nclass ClosingRetentionStrategySummary extends React.Component {\n static propTypes = {\n config: PropTypes.object.isRequired,\n };\n\n render() {\n return (\n
\n
\n
Index retention strategy:
\n
Close
\n
Max number of indices:
\n
{this.props.config.max_number_of_indices}
\n
\n
\n );\n }\n}\n\nexport default ClosingRetentionStrategySummary;\n","import React from 'react';\nimport { Alert } from 'components/graylog';\n\nclass NoopRetentionStrategyConfiguration extends React.Component {\n render() {\n return (\n \n This retention strategy is not configurable because it does not do anything.\n \n );\n }\n}\n\nexport default NoopRetentionStrategyConfiguration;\n","import React from 'react';\n\nclass NoopRetentionStrategySummary extends React.Component {\n render() {\n return (\n
\n
\n
Index retention strategy:
\n
Do nothing
\n
\n
\n );\n }\n}\n\nexport default NoopRetentionStrategySummary;\n","import { PluginManifest, PluginStore } from 'graylog-web-plugin/plugin';\nimport DeletionRetentionStrategyConfiguration from './DeletionRetentionStrategyConfiguration';\nimport DeletionRetentionStrategySummary from './DeletionRetentionStrategySummary';\nimport ClosingRetentionStrategyConfiguration from './ClosingRetentionStrategyConfiguration';\nimport ClosingRetentionStrategySummary from './ClosingRetentionStrategySummary';\nimport NoopRetentionStrategyConfiguration from './NoopRetentionStrategyConfiguration';\nimport NoopRetentionStrategySummary from './NoopRetentionStrategySummary';\n\nPluginStore.register(new PluginManifest({}, {\n indexRetentionConfig: [\n {\n type: 'org.graylog2.indexer.retention.strategies.DeletionRetentionStrategy',\n displayName: 'Delete Index',\n configComponent: DeletionRetentionStrategyConfiguration,\n summaryComponent: DeletionRetentionStrategySummary,\n },\n {\n type: 'org.graylog2.indexer.retention.strategies.ClosingRetentionStrategy',\n displayName: 'Close Index',\n configComponent: ClosingRetentionStrategyConfiguration,\n summaryComponent: ClosingRetentionStrategySummary,\n },\n {\n type: 'org.graylog2.indexer.retention.strategies.NoopRetentionStrategy',\n displayName: 'Do nothing',\n configComponent: NoopRetentionStrategyConfiguration,\n summaryComponent: NoopRetentionStrategySummary,\n },\n ],\n}));\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { LinkContainer } from 'react-router-bootstrap';\nimport moment from 'moment';\nimport lodash from 'lodash';\n\nimport { Col, Row, Button } from 'components/graylog';\nimport { Input } from 'components/bootstrap';\nimport { Spinner, TimeUnitInput } from 'components/common';\n\nimport { PluginStore } from 'graylog-web-plugin/plugin';\nimport IndexMaintenanceStrategiesConfiguration from 'components/indices/IndexMaintenanceStrategiesConfiguration';\nimport {} from 'components/indices/rotation'; // Load rotation plugin UI plugins from core.\nimport {} from 'components/indices/retention'; // Load rotation plugin UI plugins from core.\n\nclass IndexSetConfigurationForm extends React.Component {\n static propTypes = {\n indexSet: PropTypes.object.isRequired,\n rotationStrategies: PropTypes.array.isRequired,\n retentionStrategies: PropTypes.array.isRequired,\n create: PropTypes.bool,\n onUpdate: PropTypes.func.isRequired,\n cancelLink: PropTypes.string.isRequired,\n };\n\n static defaultProps = {\n create: false,\n };\n\n state = {\n indexSet: this.props.indexSet,\n fieldTypeRefreshIntervalUnit: 'SECONDS',\n validationErrors: {},\n };\n\n _updateConfig = (fieldName, value) => {\n // Use `setState()` with updater function so consecutive calls to `_updateConfig()` always refer to the state\n // at the time the change is applied, resulting in all different keys of the object being updated.\n this.setState((state) => {\n const config = lodash.cloneDeep(state.indexSet);\n config[fieldName] = value;\n return { indexSet: config };\n });\n };\n\n _validateIndexPrefix = (event) => {\n const { value } = event.target;\n\n if (value.match(/^[a-z0-9][a-z0-9_\\-+]*$/)) {\n if (this.state.validationErrors[event.target.name]) {\n const nextValidationErrors = { ...this.state.validationErrors };\n delete nextValidationErrors[event.target.name];\n this.setState({ validationErrors: nextValidationErrors });\n }\n } else {\n const nextValidationErrors = { ...this.state.validationErrors };\n if (value.length === 0) {\n nextValidationErrors[event.target.name] = 'Invalid index prefix: cannot be empty';\n } else if (value.indexOf('_') === 0 || value.indexOf('-') === 0 || value.indexOf('+') === 0) {\n nextValidationErrors[event.target.name] = 'Invalid index prefix: must start with a letter or number';\n } else if (value.toLowerCase() !== value) {\n nextValidationErrors[event.target.name] = 'Invalid index prefix: must be lower case';\n } else {\n nextValidationErrors[event.target.name] = 'Invalid index prefix: must only contain letters, numbers, \\'_\\', \\'-\\' and \\'+\\'';\n }\n this.setState({ validationErrors: nextValidationErrors });\n }\n\n this._onInputChange(event);\n };\n\n _onInputChange = (event) => {\n this._updateConfig(event.target.name, event.target.value);\n };\n\n _onDisableOptimizationClick = (event) => {\n this._updateConfig(event.target.name, event.target.checked);\n };\n\n _saveConfiguration = (event) => {\n event.preventDefault();\n\n const invalidFields = Object.keys(this.state.validationErrors);\n if (invalidFields.length !== 0) {\n document.getElementsByName(invalidFields[0])[0].focus();\n return;\n }\n\n this.props.onUpdate(this.state.indexSet);\n };\n\n _updateRotationConfigState = (strategy, data) => {\n this._updateConfig('rotation_strategy_class', strategy);\n this._updateConfig('rotation_strategy', data);\n };\n\n _updateRetentionConfigState = (strategy, data) => {\n this._updateConfig('retention_strategy_class', strategy);\n this._updateConfig('retention_strategy', data);\n };\n\n _onFieldTypeRefreshIntervalChange = (value, unit) => {\n this._updateConfig('field_type_refresh_interval', moment.duration(value, unit).asMilliseconds());\n this.setState({ fieldTypeRefreshIntervalUnit: unit });\n };\n\n render() {\n const { indexSet, fieldTypeRefreshIntervalUnit } = this.state;\n const { validationErrors } = this.state;\n\n let rotationConfig;\n if (this.props.rotationStrategies) {\n // The component expects a different structure - legacy\n const activeConfig = {\n config: this.props.indexSet.rotation_strategy,\n strategy: this.props.indexSet.rotation_strategy_class,\n };\n rotationConfig = (\n \n );\n } else {\n rotationConfig = ();\n }\n\n let retentionConfig;\n if (this.props.retentionStrategies) {\n // The component expects a different structure - legacy\n const activeConfig = {\n config: this.props.indexSet.retention_strategy,\n strategy: this.props.indexSet.retention_strategy_class,\n };\n retentionConfig = (\n \n );\n } else {\n retentionConfig = ();\n }\n\n let readOnlyconfig;\n if (this.props.create) {\n const indexPrefixHelp = (\n \n A unique prefix used in Elasticsearch indices belonging to this index set.\n The prefix must start with a letter or number, and can only contain letters, numbers, '_', '-' and '+'.\n \n );\n readOnlyconfig = (\n \n \n \n \n );\n }\n\n return (\n \n \n
\n \n \n \n \n {readOnlyconfig}\n \n \n \n \n \n \n \n \n \n {indexSet.writable && rotationConfig}\n \n \n \n \n {indexSet.writable && retentionConfig}\n \n \n\n \n \n \n \n \n \n \n \n
\n \n
\n );\n }\n}\n\nexport default IndexSetConfigurationForm;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Alert, Row, Col } from 'components/graylog';\nimport { Input } from 'components/bootstrap';\nimport { Spinner } from 'components/common';\nimport BootstrapModalForm from 'components/bootstrap/BootstrapModalForm';\nimport naturalSort from 'javascript-natural-sort';\n\nimport CombinedProvider from 'injection/CombinedProvider';\n\nconst { StreamsStore } = CombinedProvider.get('Streams');\n\nclass IndexSetDeletionForm extends React.Component {\n static propTypes = {\n indexSet: PropTypes.object.isRequired,\n onDelete: PropTypes.func.isRequired,\n };\n\n state = {\n assignedStreams: undefined,\n deleteIndices: true,\n };\n\n forms = {};\n\n _onModalOpen = () => {\n StreamsStore.load((streams) => {\n const assignedStreams = [];\n\n streams.forEach((stream) => {\n if (stream.index_set_id === this.props.indexSet.id) {\n assignedStreams.push({ id: stream.id, title: stream.title });\n }\n });\n\n this.setState({ assignedStreams: assignedStreams });\n });\n };\n\n _onRemoveClick = (e) => {\n this.setState({ deleteIndices: e.target.checked });\n };\n\n open = () => {\n this.forms[`index-set-deletion-modal-${this.props.indexSet.id}`].open();\n };\n\n close = () => {\n this.forms[`index-set-deletion-modal-${this.props.indexSet.id}`].close();\n };\n\n _isLoading = () => {\n return !this.state.assignedStreams;\n };\n\n _isDeletable = () => {\n return !this._isLoading() && this.state.assignedStreams.length < 1 && !this.props.indexSet.default;\n };\n\n _modalContent = () => {\n if (this._isLoading()) {\n return ;\n }\n\n if (this.props.indexSet.default) {\n return (\n \n \n \n Unable to delete the index set because it is the default index set!\n \n \n \n );\n }\n\n if (!this._isDeletable()) {\n const assignedStreams = this.state.assignedStreams\n .sort((s1, s2) => naturalSort(s1.title, s2.title))\n .map((stream) =>
  • {stream.title}
  • );\n\n return (\n
    \n \n \n \n Unable to delete the index set because it has assigned streams. Remove stream assignments to be able to delete this index set.\n \n \n \n \n \n

    Assigned streams:

    \n
      \n {assignedStreams}\n
    \n \n
    \n
    \n );\n }\n\n return (\n \n \n All indices related to this index set will be deleted from Elasticsearch.}\n checked={this.state.deleteIndices}\n onChange={this._onRemoveClick} />\n \n \n );\n };\n\n _onDelete = (e) => {\n e.preventDefault();\n\n if (this._isDeletable()) {\n this.props.onDelete(this.props.indexSet, this.state.deleteIndices);\n }\n };\n\n render() {\n return (\n { this.forms[`index-set-deletion-modal-${this.props.indexSet.id}`] = elem; }}\n title={`Delete index set \"${this.props.indexSet.title}\"?`}\n onModalOpen={this._onModalOpen}\n onSubmitForm={this._onDelete}\n submitButtonText=\"Delete\"\n submitButtonDisabled={!this._isDeletable()}>\n {this._modalContent()}\n \n );\n }\n}\n\nexport default IndexSetDeletionForm;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Row, Col } from 'components/graylog';\n\nimport { IndicesConfiguration } from 'components/indices';\n\nconst style = require('!style/useable!css!./IndexSetDetails.css');\n\nclass IndexSetDetails extends React.Component {\n static propTypes = {\n indexSet: PropTypes.object.isRequired,\n };\n\n componentDidMount() {\n style.use();\n }\n\n componentWillUnmount() {\n style.unuse();\n }\n\n render() {\n const { indexSet } = this.props;\n\n return (\n \n \n
    \n
    Index prefix:
    \n
    {indexSet.index_prefix}
    \n\n
    Shards:
    \n
    {indexSet.shards}
    \n\n
    Replicas:
    \n
    {indexSet.replicas}
    \n\n
    Field type refresh interval:
    \n
    {indexSet.field_type_refresh_interval / 1000.0} seconds
    \n
    \n \n\n \n \n \n
    \n );\n }\n}\n\nexport default IndexSetDetails;\n","import React from 'react';\nimport createReactClass from 'create-react-class';\nimport Reflux from 'reflux';\nimport { LinkContainer } from 'react-router-bootstrap';\nimport { Link } from 'react-router';\n\nimport { Col, Label, DropdownButton, MenuItem, Button } from 'components/graylog';\nimport { EntityList, EntityListItem, PaginatedList, Spinner } from 'components/common';\nimport Routes from 'routing/Routes';\nimport StringUtils from 'util/StringUtils';\nimport NumberUtils from 'util/NumberUtils';\nimport { IndexSetDeletionForm, IndexSetDetails } from 'components/indices';\nimport CombinedProvider from 'injection/CombinedProvider';\n\nconst { IndexSetsStore, IndexSetsActions } = CombinedProvider.get('IndexSets');\n\nconst IndexSetsComponent = createReactClass({\n displayName: 'IndexSetsComponent',\n mixins: [Reflux.connect(IndexSetsStore)],\n\n componentDidMount() {\n this.loadData(1, this.PAGE_SIZE);\n },\n\n forms: {},\n\n loadData(pageNo, limit) {\n this.currentPageNo = pageNo;\n this.currentPageSize = limit;\n IndexSetsActions.listPaginated((pageNo - 1) * limit, limit, true);\n IndexSetsActions.stats();\n },\n\n // Stores the current page and page size to be able to reload the current page\n currentPageNo: 1,\n\n currentPageSize: 10,\n PAGE_SIZE: 10,\n\n _onChangePaginatedList(page, size) {\n this.loadData(page, size);\n },\n\n _onSetDefault(indexSet) {\n return () => {\n IndexSetsActions.setDefault(indexSet).then(() => this.loadData(this.currentPageNo, this.currentPageSize));\n };\n },\n\n _onDelete(indexSet) {\n return () => {\n this.forms[`index-set-deletion-form-${indexSet.id}`].open();\n };\n },\n\n _deleteIndexSet(indexSet, deleteIndices) {\n IndexSetsActions.delete(indexSet, deleteIndices).then(() => {\n this.loadData(1, this.PAGE_SIZE);\n });\n },\n\n _formatIndexSet(indexSet) {\n const actions = (\n
    \n \n \n \n {' '}\n \n Set as default\n \n \n Delete\n \n
    \n );\n\n const content = (\n \n \n\n { this.forms[`index-set-deletion-form-${indexSet.id}`] = elem; }} indexSet={indexSet} onDelete={this._deleteIndexSet} />\n \n );\n\n const indexSetTitle = (\n \n {indexSet.title}\n \n );\n\n const isDefault = indexSet.default ? : '';\n const isReadOnly = !indexSet.writable ? : '';\n let { description } = indexSet;\n if (indexSet.default) {\n description += `${description.endsWith('.') ? '' : '.'} Graylog will use this index set by default.`;\n }\n\n let statsString;\n const stats = this.state.indexSetStats[indexSet.id];\n if (stats) {\n statsString = this._formatStatsString(stats);\n }\n\n return (\n {statsString} {isDefault} {isReadOnly}}\n description={description}\n actions={actions}\n contentRow={content} />\n );\n },\n\n _formatStatsString(stats) {\n if (!stats) {\n return 'N/A';\n }\n const indices = `${NumberUtils.formatNumber(stats.indices)} ${StringUtils.pluralize(stats.indices, 'index', 'indices')}`;\n const documents = `${NumberUtils.formatNumber(stats.documents)} ${StringUtils.pluralize(stats.documents, 'document', 'documents')}`;\n const size = NumberUtils.formatBytes(stats.size);\n\n return `${indices}, ${documents}, ${size}`;\n },\n\n _isLoading() {\n return !this.state.indexSets;\n },\n\n render() {\n if (this._isLoading()) {\n return ;\n }\n\n return (\n
    \n

    Total: {this._formatStatsString(this.state.globalIndexSetStats)}

    \n\n
    \n\n \n this._formatIndexSet(indexSet))} />\n \n
    \n );\n },\n});\n\nexport default IndexSetsComponent;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { Label } from 'components/graylog';\nimport { Timestamp, Icon } from 'components/common';\nimport DateTime from 'logic/datetimes/DateTime';\n\nimport { IndexSizeSummary } from 'components/indices';\n\nclass IndexSummary extends React.Component {\n static propTypes = {\n children: PropTypes.node.isRequired,\n index: PropTypes.object.isRequired,\n indexRange: PropTypes.object,\n isDeflector: PropTypes.bool.isRequired,\n name: PropTypes.string.isRequired,\n };\n\n state = { showDetails: this.props.isDeflector };\n\n _formatLabels = (index) => {\n const labels = [];\n if (index.is_deflector) {\n labels.push();\n }\n\n if (index.is_closed) {\n labels.push();\n }\n\n if (index.is_reopened) {\n labels.push();\n }\n\n return {labels};\n };\n\n _formatIndexRange = () => {\n if (this.props.isDeflector) {\n return Contains messages up to ;\n }\n\n const sizes = this.props.index.size;\n if (sizes) {\n const count = sizes.events;\n const { deleted } = sizes;\n if (count === 0 || count - deleted === 0) {\n return 'Index does not contain any messages.';\n }\n }\n\n if (!this.props.indexRange) {\n return 'Time range of index is unknown, because index range is not available. Please recalculate index ranges manually.';\n }\n\n if (this.props.indexRange.begin === 0) {\n return Contains messages up to ;\n }\n\n return (\n \n Contains messages from up to{' '}\n \n \n );\n };\n\n _formatShowDetailsLink = () => {\n if (this.state.showDetails) {\n return Hide Details / Actions;\n }\n return Show Details / Actions;\n };\n\n _toggleShowDetails = (event) => {\n event.preventDefault();\n this.setState({ showDetails: !this.state.showDetails });\n };\n\n render() {\n const { index } = this.props;\n return (\n \n

    \n {this.props.name}{' '}\n\n \n {this._formatLabels(index)}{' '}\n {this._formatIndexRange(index)}{' '}\n\n \n\n {this._formatShowDetailsLink()}\n \n

    \n\n
    \n {this.state.showDetails && this.props.children}\n
    \n
    \n );\n }\n}\n\nexport default IndexSummary;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport numeral from 'numeral';\nimport NumberUtils from 'util/NumberUtils';\n\nclass IndexSizeSummary extends React.Component {\n static propTypes = {\n index: PropTypes.object.isRequired,\n };\n\n render() {\n const { index } = this.props;\n if (index.size) {\n return (\n ({NumberUtils.formatBytes(index.size.bytes)}{' '}\n / {numeral(index.size.events).format('0,0')} messages){' '}\n \n );\n }\n\n return ;\n }\n}\n\nexport default IndexSizeSummary;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { ButtonGroup, DropdownButton, MenuItem } from 'components/graylog';\n\nimport ActionsProvider from 'injection/ActionsProvider';\n\nimport StoreProvider from 'injection/StoreProvider';\n\nconst DeflectorActions = ActionsProvider.getActions('Deflector');\nconst IndexRangesActions = ActionsProvider.getActions('IndexRanges');\nconst DeflectorStore = StoreProvider.getStore('Deflector'); // eslint-disable-line no-unused-vars\n\nclass IndicesMaintenanceDropdown extends React.Component {\n static propTypes = {\n indexSetId: PropTypes.string.isRequired,\n indexSet: PropTypes.object,\n };\n\n _onRecalculateIndexRange = () => {\n if (window.confirm('This will recalculate index ranges for this index set using a background system job. Do you want to proceed?')) {\n IndexRangesActions.recalculate(this.props.indexSetId);\n }\n };\n\n _onCycleDeflector = () => {\n if (window.confirm('This will manually cycle the current active write index on this index set. Do you want to proceed?')) {\n DeflectorActions.cycle(this.props.indexSetId).then(() => {\n DeflectorActions.list(this.props.indexSetId);\n });\n }\n };\n\n render() {\n let cycleButton;\n if (this.props.indexSet && this.props.indexSet.writable) {\n cycleButton = Rotate active write index;\n }\n return (\n \n \n Recalculate index ranges\n {cycleButton}\n \n \n );\n }\n}\n\nexport default IndicesMaintenanceDropdown;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Col, Row } from 'components/graylog';\nimport naturalSort from 'javascript-natural-sort';\n\nimport { ClosedIndexDetails, IndexDetails, IndexSummary } from 'components/indices';\n\nclass IndicesOverview extends React.Component {\n static propTypes = {\n closedIndices: PropTypes.array.isRequired,\n deflector: PropTypes.object.isRequired,\n indexDetails: PropTypes.object.isRequired,\n indices: PropTypes.object.isRequired,\n indexSetId: PropTypes.string.isRequired,\n };\n\n _formatIndex = (indexName, index) => {\n const indexSummary = this.props.indices[indexName];\n const indexRange = indexSummary && indexSummary.range ? indexSummary.range : null;\n return (\n \n \n \n \n \n \n \n \n \n );\n };\n\n _formatClosedIndex = (indexName, index) => {\n const indexRange = index.range;\n return (\n \n \n \n \n \n \n \n \n \n );\n };\n\n render() {\n const indices = Object.keys(this.props.indices).map((indexName) => {\n return !this.props.indices[indexName].is_closed\n ? this._formatIndex(indexName, this.props.indices[indexName]) : this._formatClosedIndex(indexName, this.props.indices[indexName]);\n });\n return (\n \n {indices.sort((index1, index2) => naturalSort(index2.key, index1.key))}\n \n );\n }\n}\n\nexport default IndicesOverview;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Alert } from 'components/graylog';\nimport Spinner from 'components/common/Spinner';\n\nclass IndexMaintenanceStrategiesSummary extends React.Component {\n static propTypes = {\n config: PropTypes.object.isRequired,\n pluginExports: PropTypes.array.isRequired,\n };\n\n render() {\n if (!this.props.config) {\n return ();\n }\n\n const activeStrategy = this.props.config.strategy;\n const strategy = this.props.pluginExports.filter((exportedStrategy) => exportedStrategy.type === activeStrategy)[0];\n\n if (!strategy || !strategy.summaryComponent) {\n return (Summary for strategy {activeStrategy} not found!);\n }\n\n const element = React.createElement(strategy.summaryComponent, { config: this.props.config.config });\n\n return ({element});\n }\n}\n\nexport default IndexMaintenanceStrategiesSummary;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { Row, Col } from 'components/graylog';\nimport { PluginStore } from 'graylog-web-plugin/plugin';\n\nimport IndexMaintenanceStrategiesSummary from 'components/indices/IndexMaintenanceStrategiesSummary';\nimport {} from 'components/indices/rotation'; // Load rotation plugin UI plugins from core.\nimport {} from 'components/indices/retention'; // Load rotation plugin UI plugins from core.\n\nconst style = require('!style/useable!css!components/configurations/ConfigurationStyles.css');\n\nclass IndicesConfiguration extends React.Component {\n static propTypes = {\n indexSet: PropTypes.object.isRequired,\n };\n\n componentDidMount() {\n style.use();\n }\n\n componentWillUnmount() {\n style.unuse();\n }\n\n render() {\n if (!this.props.indexSet.writable) {\n return (\n \n \n Index set is not writable and will not be included in index rotation and retention.\n It is also not possible to assign it to a stream.\n \n \n );\n }\n\n const rotationConfig = {\n strategy: this.props.indexSet.rotation_strategy_class,\n config: this.props.indexSet.rotation_strategy,\n };\n const retentionConfig = {\n strategy: this.props.indexSet.retention_strategy_class,\n config: this.props.indexSet.retention_strategy,\n };\n\n return (\n \n \n \n \n \n \n \n \n );\n }\n}\n\nexport default IndicesConfiguration;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport numeral from 'numeral';\nimport moment from 'moment';\n\nclass ShardMeter extends React.Component {\n static propTypes = {\n title: PropTypes.string.isRequired,\n shardMeter: PropTypes.object.isRequired,\n };\n\n _formatMeter = (meter) => {\n const value = {numeral(meter.total).format('0,0')} ops;\n\n if (meter.total > 0) {\n return {value} (took {moment.duration(meter.time_seconds, 'seconds').humanize()});\n }\n\n return value;\n };\n\n render() {\n const sm = this.props.shardMeter;\n return (\n \n

    {this.props.title}

    \n
    \n
    Index:
    \n
    {this._formatMeter(sm.index)}
    \n\n
    Flush:
    \n
    {this._formatMeter(sm.flush)}
    \n\n
    Merge:
    \n
    {this._formatMeter(sm.merge)}
    \n\n
    Query:
    \n
    {this._formatMeter(sm.search_query)}
    \n\n
    Fetch:
    \n
    {this._formatMeter(sm.search_fetch)}
    \n\n
    Get:
    \n
    {this._formatMeter(sm.get)}
    \n\n
    Refresh:
    \n
    {this._formatMeter(sm.refresh)}
    \n
    \n
    \n );\n }\n}\n\nexport default ShardMeter;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport { OverlayTrigger, Tooltip } from 'components/graylog';\n\nclass ShardRouting extends React.Component {\n static propTypes = {\n route: PropTypes.object.isRequired,\n };\n\n render() {\n const { route } = this.props;\n const tooltip = State: {route.state} on {route.node_hostname} ({route.node_name});\n return (\n
  • \n \n S{route.id}\n \n
  • \n );\n }\n}\n\nexport default ShardRouting;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport styled from 'styled-components';\nimport naturalSort from 'javascript-natural-sort';\n\nimport { util } from 'theme';\nimport { ShardRouting } from 'components/indices';\n\nconst ShardRoutingWrap = styled.div(({ theme }) => `\n .shards {\n .shard {\n padding: 10px;\n margin: 5px;\n width: 50px;\n float: left;\n text-align: center;\n }\n\n .shard-started {\n background-color: ${util.colorLevel(theme.color.variant.light.success, -2)};\n }\n\n .shard-relocating {\n background-color: ${util.colorLevel(theme.color.variant.light.primary, -2)};\n }\n\n .shard-initializing {\n background-color: ${util.colorLevel(theme.color.variant.light.warning, -5)};\n }\n\n .shard-unassigned {\n background-color: ${util.colorLevel(theme.color.variant.light.default, -2)};\n }\n\n .shard-primary .id {\n font-weight: bold;\n margin-bottom: 3px;\n border-bottom: 1px solid ${theme.color.gray[10]};\n }\n }\n\n .description {\n font-size: 11px;\n margin-top: 2px;\n margin-left: 6px;\n }\n`);\n\nconst ShardRoutingOverview = ({ indexName, routing }) => {\n return (\n \n

    Shard routing

    \n\n
      \n {routing\n .sort((shard1, shard2) => naturalSort(shard1.id, shard2.id))\n .map((route) => )}\n
    \n
    \n\n
    \n Bold shards are primaries, others are replicas. Replicas are elected to primaries automatically\n when primaries leave the cluster. Size and document counts only reflect primary shards and no\n possible replica duplication.\n
    \n
    \n );\n};\n\nShardRoutingOverview.propTypes = {\n routing: PropTypes.array.isRequired,\n indexName: PropTypes.string.isRequired,\n};\n\nexport default ShardRoutingOverview;\n","export { default as ClosedIndexDetails } from './ClosedIndexDetails';\nexport { default as IndexDetails } from './IndexDetails';\nexport { default as IndexRangeSummary } from './IndexRangeSummary';\nexport { default as IndexSetConfigurationForm } from './IndexSetConfigurationForm';\nexport { default as IndexSetDeletionForm } from './IndexSetDeletionForm';\nexport { default as IndexSetDetails } from './IndexSetDetails';\nexport { default as IndexSetsComponent } from './IndexSetsComponent';\nexport { default as IndexSummary } from './IndexSummary';\nexport { default as IndexSizeSummary } from './IndexSizeSummary';\nexport { default as IndicesMaintenanceDropdown } from './IndicesMaintenanceDropdown';\nexport { default as IndicesOverview } from './IndicesOverview';\nexport { default as IndicesConfiguration } from './IndicesConfiguration';\nexport { default as ShardMeter } from './ShardMeter';\nexport { default as ShardRouting } from './ShardRouting';\nexport { default as ShardRoutingOverview } from './ShardRoutingOverview';\n","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".index-set-details dt{float:left;width:160px;overflow:hidden;clear:left;text-align:left;text-overflow:ellipsis;white-space:nowrap}.index-set-details dd{margin-left:180px}.index-set-details dl{margin-bottom:0}\", \"\"]);\n\n// exports\n","var refs = 0;\nvar dispose;\nvar content = require(\"!!../../../node_modules/css-loader/index.js!./IndexSetDetails.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) exports.locals = content.locals;\n\nexports.use = exports.ref = function() {\n\tif(!(refs++)) {\n\t\tdispose = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, {\"hmr\":true});\n\t}\n\n\treturn exports;\n};\n\nexports.unuse = exports.unref = function() {\n if(refs > 0 && !(--refs)) {\n\t dispose();\n\t\t dispose = null;\n }\n};\nif(module.hot) {\n\tvar lastRefs = module.hot.data && module.hot.data.refs || 0;\n\n\tif(lastRefs) {\n\t\texports.ref();\n\t\tif(!content.locals) {\n\t\t\trefs = lastRefs;\n\t\t}\n\t}\n\n\tif(!content.locals) {\n\t\tmodule.hot.accept();\n\t}\n\n\tmodule.hot.dispose(function(data) {\n\t\tdata.refs = content.locals ? 0 : refs;\n\n\t\tif(dispose) {\n\t\t\tdispose();\n\t\t}\n\t});\n}","var refs = 0;\nvar dispose;\nvar content = require(\"!!../../../node_modules/css-loader/index.js!./ConfigurationStyles.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) exports.locals = content.locals;\n\nexports.use = exports.ref = function() {\n\tif(!(refs++)) {\n\t\tdispose = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, {\"hmr\":true});\n\t}\n\n\treturn exports;\n};\n\nexports.unuse = exports.unref = function() {\n if(refs > 0 && !(--refs)) {\n\t dispose();\n\t\t dispose = null;\n }\n};\nif(module.hot) {\n\tvar lastRefs = module.hot.data && module.hot.data.refs || 0;\n\n\tif(lastRefs) {\n\t\texports.ref();\n\t\tif(!content.locals) {\n\t\t\trefs = lastRefs;\n\t\t}\n\t}\n\n\tif(!content.locals) {\n\t\tmodule.hot.accept();\n\t}\n\n\tmodule.hot.dispose(function(data) {\n\t\tdata.refs = content.locals ? 0 : refs;\n\n\t\tif(dispose) {\n\t\t\tdispose();\n\t\t}\n\t});\n}"],"sourceRoot":""}




    © 2015 - 2024 Weber Informatics LLC | Privacy Policy