X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=skyquake%2Fframework%2Fwidgets%2Fnfvi-metric-bars%2FnfviMetricBars.jsx;fp=skyquake%2Fframework%2Fwidgets%2Fnfvi-metric-bars%2FnfviMetricBars.jsx;h=019c4d782342212ced17976241b64e49aefb39ac;hb=e29efc315df33d546237e270470916e26df391d6;hp=0000000000000000000000000000000000000000;hpb=9c5e457509ba5a1822c316635c6308874e61b4b9;p=osm%2FUI.git diff --git a/skyquake/framework/widgets/nfvi-metric-bars/nfviMetricBars.jsx b/skyquake/framework/widgets/nfvi-metric-bars/nfviMetricBars.jsx new file mode 100644 index 000000000..019c4d782 --- /dev/null +++ b/skyquake/framework/widgets/nfvi-metric-bars/nfviMetricBars.jsx @@ -0,0 +1,80 @@ + +/* + * + * Copyright 2016 RIFT.IO Inc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +import React from 'react'; +import './nfviMetricBars.scss'; +class MetricChart extends React.Component { + constructor(props) { + super(props) + } + render() { + let html; + let byteSize = 1e+9; + let utilization = this.props.utilization; + // let utilization = (1 > this.props.utilization) ? Math.round(this.props.utilization * 100) : this.props.utilization; + let isVCPU = (this.props.label == "VCPU"); + let label; + if (isVCPU) { + label = this.props.total; + } else { + var num = this.props.used / byteSize; + label = Math.round(num * 100) / 100 + ' / ' + Math.round(this.props.total / byteSize) + 'GB'; + } + html = ( +
+
+
{utilization}%
+
+
+
{label}
+
{this.props.label}
+
+ ); + return html; + } +} + +class nfviMetrics extends React.Component { + constructor(props) { + super(props); + } + render() { + let html; + let nfviMetrics = this.props.metrics.map(function(metric, k) { + //Do not display network metrics + if("outgoing" in metric || "incoming" in metric){ + return + } else { + return () + } + }); + html = ( +
+ {nfviMetrics} +
+ ) + return html; + } +} +nfviMetrics.defaultProps = { + metrics: [] +} + + + +export default nfviMetrics;