Skip to content

Commit 15a256b

Browse files
authored
Merge pull request #4219 from dlabrecq/COST-5922
Display the overhead cost selection in the VMs tab
2 parents 12ca3ca + c6c3a9b commit 15a256b

File tree

4 files changed

+15
-8
lines changed

4 files changed

+15
-8
lines changed

src/routes/details/components/breakdown/breakdownBase.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -385,9 +385,9 @@ class BreakdownBase extends React.Component<BreakdownProps, BreakdownState> {
385385
onCurrencySelect={() => handleOnCurrencySelect(query, router, router.location.state)}
386386
query={query}
387387
report={report}
388-
showCostDistribution={showCostDistribution && !(optimizationsComponent && activeTabKey === 2)}
388+
showCostDistribution={showCostDistribution && !(optimizationsComponent && activeTabKey === 3)}
389389
showCostType={showCostType}
390-
showCurrency={!(optimizationsComponent && activeTabKey === 2)}
390+
showCurrency={!(optimizationsComponent && activeTabKey === 3)}
391391
tabs={this.getTabs(availableTabs)}
392392
tagPathsType={tagPathsType}
393393
timeScopeValue={timeScopeValue}

src/routes/details/ocpBreakdown/ocpBreakdown.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ const mapStateToProps = createMapStateToProps<OcpBreakdownOwnProps, BreakdownSta
152152
tagPathsType: TagPathsType.ocp,
153153
timeScopeValue,
154154
title,
155-
virtualizationComponent: <Virtualization currency={currency} />,
155+
virtualizationComponent: <Virtualization costDistribution={costDistribution} currency={currency} />,
156156
};
157157
return test;
158158
});

src/routes/details/ocpBreakdown/virtualization/virtualization.tsx

+3-1
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ import { VirtualizationTable, VirtualizationTableColumnIds } from './virtualizat
3939
import { VirtualizationToolbar } from './virtualizationToolbar';
4040

4141
interface VirtualizationOwnProps {
42+
costDistribution?: string;
4243
costType?: string;
4344
currency?: string;
4445
}
@@ -86,7 +87,7 @@ const defaultColumnOptions: ColumnManagementModalOption[] = [
8687
const reportType = ReportType.virtualization;
8788
const reportPathsType = ReportPathsType.ocp;
8889

89-
const Virtualization: React.FC<VirtualizationProps> = ({ costType, currency }) => {
90+
const Virtualization: React.FC<VirtualizationProps> = ({ costDistribution, costType, currency }) => {
9091
const intl = useIntl();
9192

9293
const [hiddenColumns, setHiddenColumns] = useState(initHiddenColumns(defaultColumnOptions));
@@ -192,6 +193,7 @@ const Virtualization: React.FC<VirtualizationProps> = ({ costType, currency }) =
192193
const getTable = () => {
193194
return (
194195
<VirtualizationTable
196+
costDistribution={costDistribution}
195197
exclude={query.exclude}
196198
filterBy={query.filter_by}
197199
hideCluster={hasClusterFilter}

src/routes/details/ocpBreakdown/virtualization/virtualizationTable.tsx

+9-4
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import type { Report } from 'api/reports/report';
66
import messages from 'locales/messages';
77
import React, { useEffect, useState } from 'react';
88
import { useIntl } from 'react-intl';
9+
import { ComputedReportItemValueType } from 'routes/components/charts/common';
910
import { DataTable } from 'routes/components/dataTable';
1011
import { styles } from 'routes/components/dataTable/dataTable.styles';
1112
import { NoVirtualizationState } from 'routes/components/page/noVirtualization/noVirtualizationState';
@@ -16,6 +17,7 @@ import { getUnsortedComputedReportItems } from 'routes/utils/computedReport/getC
1617
import { formatCurrency, formatUnits, unitsLookupKey } from 'utils/format';
1718

1819
interface VirtualizationTableOwnProps {
20+
costDistribution?: string;
1921
exclude?: any;
2022
filterBy?: any;
2123
hideCluster?: boolean;
@@ -43,6 +45,7 @@ export const VirtualizationTableColumnIds = {
4345
};
4446

4547
const VirtualizationTable: React.FC<VirtualizationTableProps> = ({
48+
costDistribution,
4649
exclude,
4750
filterBy,
4851
hideCluster,
@@ -119,7 +122,7 @@ const VirtualizationTable: React.FC<VirtualizationTableProps> = ({
119122
...(computedItems.length && { isSortable: true }),
120123
},
121124
{
122-
orderBy: 'cost',
125+
orderBy: costDistribution === ComputedReportItemValueType.distributed ? 'distributed_cost' : 'cost',
123126
name: intl.formatMessage(messages.cost),
124127
style: styles.costColumn,
125128
...(computedItems.length && { isSortable: true }),
@@ -212,8 +215,10 @@ const VirtualizationTable: React.FC<VirtualizationTableProps> = ({
212215
};
213216

214217
const getTotalCost = (item: ComputedReportItem) => {
215-
const value = item.cost?.total?.value || 0;
216-
const units = item.cost?.total?.units || 'USD';
218+
const reportItemValue = costDistribution ? costDistribution : ComputedReportItemValueType.total;
219+
const hasTotal = item?.cost?.[reportItemValue];
220+
const value = hasTotal ? item?.cost?.[reportItemValue]?.value : 0;
221+
const units = hasTotal ? item?.cost?.[reportItemValue]?.units : 'USD';
217222
return formatCurrency(value, units);
218223
};
219224

@@ -225,7 +230,7 @@ const VirtualizationTable: React.FC<VirtualizationTableProps> = ({
225230

226231
useEffect(() => {
227232
initDatum();
228-
}, [hiddenColumns, report, selectedItems]);
233+
}, [costDistribution, hiddenColumns, report, selectedItems]);
229234

230235
return (
231236
<DataTable

0 commit comments

Comments
 (0)