/* Copyright (C) 2017 Cloudbase Solutions SRL This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ import React, { PropTypes } from 'react'; import Reflux from 'reflux'; import MigrationStore from '../../stores/MigrationStore'; class EndpointUsage extends Reflux.Component { static propTypes = { connectionId: PropTypes.string }; constructor(props) { super(props) this.store = MigrationStore; this.state = { connectionId: props.connectionId, migrationCount: 0, replicaCount: 0 } } componentWillMount() { super.componentWillMount.call(this) this.componentWillReceiveProps(this.props) } componentWillReceiveProps(props) { if (props.connectionId && this.state.migrations) { let migrationCount = 0 let replicaCount = 0 this.state.migrations.forEach(migration => { if (migration.destination_endpoint_id === this.state.connectionId || migration.origin_endpoint_id === this.state.connectionId) { migrationCount++ } }) this.state.replicas.forEach(replica => { if (replica.destination_endpoint_id === this.state.connectionId || replica.origin_endpoint_id === this.state.connectionId) { replicaCount++ } }) this.setState({ migrationCount: migrationCount, replicaCount: replicaCount }) } } render() { if (this.state && this.state.connectionId) { return
{this.state.migrationCount} migrations, {this.state.replicaCount} replicas
; } else { return null } } } export default EndpointUsage;