From 910f513ab2b04bf5607213da0a49ce9c5c73bc32 Mon Sep 17 00:00:00 2001 From: George Tsiolis Date: Mon, 5 Mar 2018 18:50:01 +0200 Subject: Move MemoryGraph and MemoryUsage vue components --- .../components/memory_usage.vue | 160 +++++++++++++++++++++ .../components/mr_widget_deployment.js | 8 +- .../components/mr_widget_memory_usage.js | 153 -------------------- .../vue_shared/components/memory_graph.js | 117 --------------- .../vue_shared/components/memory_graph.vue | 133 +++++++++++++++++ ...mr-widget-memory-usage-and-graph-components.yml | 5 + .../components/mr_widget_memory_usage_spec.js | 18 +-- .../vue_shared/components/memory_graph_spec.js | 26 +--- 8 files changed, 308 insertions(+), 312 deletions(-) create mode 100644 app/assets/javascripts/vue_merge_request_widget/components/memory_usage.vue delete mode 100644 app/assets/javascripts/vue_merge_request_widget/components/mr_widget_memory_usage.js delete mode 100644 app/assets/javascripts/vue_shared/components/memory_graph.js create mode 100644 app/assets/javascripts/vue_shared/components/memory_graph.vue create mode 100644 changelogs/unreleased/refactor-move-mr-widget-memory-usage-and-graph-components.yml diff --git a/app/assets/javascripts/vue_merge_request_widget/components/memory_usage.vue b/app/assets/javascripts/vue_merge_request_widget/components/memory_usage.vue new file mode 100644 index 00000000000..a16f9055a6d --- /dev/null +++ b/app/assets/javascripts/vue_merge_request_widget/components/memory_usage.vue @@ -0,0 +1,160 @@ + + + diff --git a/app/assets/javascripts/vue_merge_request_widget/components/mr_widget_deployment.js b/app/assets/javascripts/vue_merge_request_widget/components/mr_widget_deployment.js index d174a900f63..c7f992384c8 100644 --- a/app/assets/javascripts/vue_merge_request_widget/components/mr_widget_deployment.js +++ b/app/assets/javascripts/vue_merge_request_widget/components/mr_widget_deployment.js @@ -1,7 +1,7 @@ import { getTimeago } from '~/lib/utils/datetime_utility'; import { visitUrl } from '../../lib/utils/url_utility'; import Flash from '../../flash'; -import MemoryUsage from './mr_widget_memory_usage'; +import MemoryUsage from './memory_usage.vue'; import StatusIcon from './mr_widget_status_icon.vue'; import MRWidgetService from '../services/mr_widget_service'; @@ -12,8 +12,8 @@ export default { service: { type: Object, required: true }, }, components: { - 'mr-widget-memory-usage': MemoryUsage, - 'status-icon': StatusIcon, + MemoryUsage, + StatusIcon, }, methods: { formatDate(date) { @@ -100,7 +100,7 @@ export default { class="btn btn-default btn-xs"> Stop environment - memoryFrom) { - return 'increased'; - } else if (memoryTo < memoryFrom) { - return 'decreased'; - } - - return 'unchanged'; - }, - }, - methods: { - getMegabytes(bytesString) { - const valueInBytes = Number(bytesString).toFixed(2); - return (bytesToMiB(valueInBytes)).toFixed(2); - }, - computeGraphData(metrics, deploymentTime) { - this.loadingMetrics = false; - const { memory_before, memory_after, memory_values } = metrics; - - // Both `memory_before` and `memory_after` objects - // have peculiar structure where accessing only a specific - // index yeilds correct value that we can use to show memory delta. - if (memory_before.length > 0) { - this.memoryFrom = this.getMegabytes(memory_before[0].value[1]); - } - - if (memory_after.length > 0) { - this.memoryTo = this.getMegabytes(memory_after[0].value[1]); - } - - if (memory_values.length > 0) { - this.hasMetrics = true; - this.memoryMetrics = memory_values[0].values; - this.deploymentTime = deploymentTime; - } - }, - loadMetrics() { - backOff((next, stop) => { - MRWidgetService.fetchMetrics(this.metricsUrl) - .then((res) => { - if (res.status === statusCodes.NO_CONTENT) { - this.backOffRequestCounter = this.backOffRequestCounter += 1; - /* eslint-disable no-unused-expressions */ - this.backOffRequestCounter < 3 ? next() : stop(res); - } else { - stop(res); - } - }) - .catch(stop); - }) - .then((res) => { - if (res.status === statusCodes.NO_CONTENT) { - return res; - } - - return res.data; - }) - .then((data) => { - this.computeGraphData(data.metrics, data.deployment_time); - return data; - }) - .catch(() => { - this.loadFailed = true; - this.loadingMetrics = false; - }); - }, - }, - mounted() { - this.loadingMetrics = true; - this.loadMetrics(); - }, - template: ` -
-

-