diff --git a/operatorapi/operator_tenants.go b/operatorapi/operator_tenants.go index 6673fc8ed..499e6fd89 100644 --- a/operatorapi/operator_tenants.go +++ b/operatorapi/operator_tenants.go @@ -238,7 +238,6 @@ func registerTenantHandlers(api *operations.OperatorAPI) { //Get tenant monitoring info api.OperatorAPIGetTenantMonitoringHandler = operator_api.GetTenantMonitoringHandlerFunc(func(params operator_api.GetTenantMonitoringParams, session *models.Principal) middleware.Responder { - payload, err := getTenantMonitoringResponse(session, params) if err != nil { return operator_api.NewGetTenantMonitoringDefault(int(err.Code)).WithPayload(err) @@ -2221,12 +2220,16 @@ func getTenantMonitoringResponse(session *models.Principal, params operator_api. var requestedMem string if minInst.Spec.Prometheus.Resources.Requests != nil { - requestedCPUQ := minInst.Spec.Prometheus.Resources.Requests["cpu"] - requestedCPU = strconv.FormatInt(requestedCPUQ.Value(), 10) - requestedMemQ := minInst.Spec.Prometheus.Resources.Requests["memory"] - requestedMem = strconv.FormatInt(requestedMemQ.Value(), 10) - monitoringInfo.MonitoringCPURequest = requestedCPU - monitoringInfo.MonitoringMemRequest = requestedMem + // Parse cpu request + if requestedCPUQ, ok := minInst.Spec.Prometheus.Resources.Requests["cpu"]; ok && requestedCPUQ.Value() != 0 { + requestedCPU = strconv.FormatInt(requestedCPUQ.Value(), 10) + monitoringInfo.MonitoringCPURequest = requestedCPU + } + // Parse memory request + if requestedMemQ, ok := minInst.Spec.Prometheus.Resources.Requests["memory"]; ok && requestedMemQ.Value() != 0 { + requestedMem = strconv.FormatInt(requestedMemQ.Value(), 10) + monitoringInfo.MonitoringMemRequest = requestedMem + } } if len(minInst.Spec.Prometheus.Labels) != 0 && minInst.Spec.Prometheus.Labels != nil { @@ -2331,17 +2334,19 @@ func setTenantMonitoringResponse(session *models.Principal, params operator_api. } monitoringResourceRequest := make(corev1.ResourceList) - if ¶ms.Data.MonitoringCPURequest != nil { - + if params.Data.MonitoringCPURequest != "" { cpuQuantity, err := resource.ParseQuantity(params.Data.MonitoringCPURequest) if err != nil { return false, prepareError(err) } + monitoringResourceRequest["cpu"] = cpuQuantity + } + + if params.Data.MonitoringMemRequest != "" { memQuantity, err := resource.ParseQuantity(params.Data.MonitoringMemRequest) if err != nil { return false, prepareError(err) } - monitoringResourceRequest["cpu"] = cpuQuantity monitoringResourceRequest["memory"] = memQuantity } diff --git a/portal-ui/src/screens/Console/Tenants/AddTenant/Steps/Configure.tsx b/portal-ui/src/screens/Console/Tenants/AddTenant/Steps/Configure.tsx index 00f266a8b..8a6a0fe70 100644 --- a/portal-ui/src/screens/Console/Tenants/AddTenant/Steps/Configure.tsx +++ b/portal-ui/src/screens/Console/Tenants/AddTenant/Steps/Configure.tsx @@ -36,6 +36,7 @@ import FormSwitchWrapper from "../../../Common/FormComponents/FormSwitchWrapper/ import InputBoxWrapper from "../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper"; import SelectWrapper from "../../../Common/FormComponents/SelectWrapper/SelectWrapper"; import { ISecurityContext } from "../../types"; +import InputUnitMenu from "../../../Common/FormComponents/InputUnitMenu/InputUnitMenu"; interface IConfigureProps { updateAddField: typeof updateAddField; @@ -692,7 +693,16 @@ const Configure = ({ updateField("logSearchVolumeSize", e.target.value); cleanValidation("log_search_volume_size"); }} - label="Storage Size [Gi]" + label="Storage Size" + overlayObject={ + {}} + unitSelected={"Gi"} + unitsList={[{ label: "Gi", value: "Gi" }]} + disabled={true} + /> + } value={logSearchVolumeSize} required error={validationErrors["log_search_volume_size"] || ""} @@ -944,7 +954,16 @@ const Configure = ({ updateField("prometheusVolumeSize", e.target.value); cleanValidation("prometheus_volume_size"); }} - label="Storage Size [Gi]" + label="Storage Size" + overlayObject={ + {}} + unitSelected={"Gi"} + unitsList={[{ label: "Gi", value: "Gi" }]} + disabled={true} + /> + } value={prometheusVolumeSize} required error={validationErrors["prometheus_volume_size"] || ""} diff --git a/portal-ui/src/screens/Console/Tenants/AddTenant/Steps/TenantResources/TenantSize.tsx b/portal-ui/src/screens/Console/Tenants/AddTenant/Steps/TenantResources/TenantSize.tsx index 5e0bc210b..e7a2c538e 100644 --- a/portal-ui/src/screens/Console/Tenants/AddTenant/Steps/TenantResources/TenantSize.tsx +++ b/portal-ui/src/screens/Console/Tenants/AddTenant/Steps/TenantResources/TenantSize.tsx @@ -44,6 +44,7 @@ import api from "../../../../../../common/api"; import InputBoxWrapper from "../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper"; import SelectWrapper from "../../../../Common/FormComponents/SelectWrapper/SelectWrapper"; import TenantSizeResources from "./TenantSizeResources"; +import InputUnitMenu from "../../../../Common/FormComponents/InputUnitMenu/InputUnitMenu"; interface ITenantSizeProps { classes: any; @@ -310,39 +311,33 @@ const TenantSize = ({ /> -
-
-
- ) => { - updateField("volumeSize", e.target.value); - cleanValidation("volume_size"); +
+ ) => { + updateField("volumeSize", e.target.value); + cleanValidation("volume_size"); + }} + label="Total Size" + value={volumeSize} + disabled={selectedStorageClass === ""} + required + error={validationErrors["volume_size"] || ""} + min="0" + overlayObject={ + { + updateField("sizeFactor", newValue); }} - label="Total Size" - value={volumeSize} + unitSelected={sizeFactor} + unitsList={k8sfactorForDropdown()} disabled={selectedStorageClass === ""} - required - error={validationErrors["volume_size"] || ""} - min="0" /> -
- ) => { - updateField("sizeFactor", e.target.value as string); - }} - options={k8sfactorForDropdown()} - /> -
-
-
+ } + />
diff --git a/portal-ui/src/screens/Console/Tenants/AddTenant/Steps/TenantResources/TenantSizeResources.tsx b/portal-ui/src/screens/Console/Tenants/AddTenant/Steps/TenantResources/TenantSizeResources.tsx index ff4bbcbc5..45aea70f6 100644 --- a/portal-ui/src/screens/Console/Tenants/AddTenant/Steps/TenantResources/TenantSizeResources.tsx +++ b/portal-ui/src/screens/Console/Tenants/AddTenant/Steps/TenantResources/TenantSizeResources.tsx @@ -34,6 +34,7 @@ import api from "../../../../../../common/api"; import InputBoxWrapper from "../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper"; import FormSwitchWrapper from "../../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper"; import { floor } from "lodash"; +import InputUnitMenu from "../../../../Common/FormComponents/InputUnitMenu/InputUnitMenu"; interface ITenantSizeResourcesProps { classes: any; @@ -275,7 +276,16 @@ const TenantSizeResources = ({ } updateField("resourcesMemoryRequest", e.target.value); }} - label="Memory Request [Gi]" + label="Memory Request" + overlayObject={ + {}} + unitSelected={"Gi"} + unitsList={[{ label: "Gi", value: "Gi" }]} + disabled={true} + /> + } value={resourcesMemoryRequest} disabled={selectedStorageClass === ""} error={resourcesMemoryRequestError} @@ -351,7 +361,16 @@ const TenantSizeResources = ({ } updateField("resourcesMemoryLimit", e.target.value); }} - label="Memory Limit [Gi]" + label="Memory Limit" + overlayObject={ + {}} + unitSelected={"Gi"} + unitsList={[{ label: "Gi", value: "Gi" }]} + disabled={true} + /> + } value={resourcesMemoryLimit} disabled={selectedStorageClass === ""} error={resourcesMemoryLimitError} diff --git a/portal-ui/src/screens/Console/Tenants/TenantDetails/EditTenantLogsModal.tsx b/portal-ui/src/screens/Console/Tenants/TenantDetails/EditTenantLogsModal.tsx index 46af0302f..661d521bf 100644 --- a/portal-ui/src/screens/Console/Tenants/TenantDetails/EditTenantLogsModal.tsx +++ b/portal-ui/src/screens/Console/Tenants/TenantDetails/EditTenantLogsModal.tsx @@ -37,6 +37,7 @@ import { } from "../../../../utils/validationFunctions"; import { clearValidationError } from "../utils"; import { setModalErrorSnackMessage } from "../../../../actions"; +import InputUnitMenu from "../../Common/FormComponents/InputUnitMenu/InputUnitMenu"; interface IEditTenantLogsProps { tenant: ITenant; @@ -361,8 +362,8 @@ const EditTenantLogsModal = ({ { @@ -371,6 +372,15 @@ const EditTenantLogsModal = ({ }} key={`diskCapacityGB`} error={validationErrors[`diskCapacityGB`] || ""} + overlayObject={ + {}} + unitSelected={"Gi"} + unitsList={[{ label: "Gi", value: "Gi" }]} + disabled={true} + /> + } /> @@ -417,6 +427,15 @@ const EditTenantLogsModal = ({ }} key={`memRequest`} error={validationErrors[`memRequest`] || ""} + overlayObject={ + {}} + unitSelected={"Gi"} + unitsList={[{ label: "Gi", value: "Gi" }]} + disabled={true} + /> + } /> @@ -511,6 +530,15 @@ const EditTenantLogsModal = ({ }} key={`dbMemRequest`} error={validationErrors[`dbMemRequest`] || ""} + overlayObject={ + {}} + unitSelected={"Gi"} + unitsList={[{ label: "Gi", value: "Gi" }]} + disabled={true} + /> + } /> diff --git a/portal-ui/src/screens/Console/Tenants/TenantDetails/EditTenantMonitoringModal.tsx b/portal-ui/src/screens/Console/Tenants/TenantDetails/EditTenantMonitoringModal.tsx index ccc2a5939..c123eba24 100644 --- a/portal-ui/src/screens/Console/Tenants/TenantDetails/EditTenantMonitoringModal.tsx +++ b/portal-ui/src/screens/Console/Tenants/TenantDetails/EditTenantMonitoringModal.tsx @@ -20,6 +20,7 @@ import { IValidation, } from "../../../../utils/validationFunctions"; import { setModalErrorSnackMessage } from "../../../../actions"; +import InputUnitMenu from "../../Common/FormComponents/InputUnitMenu/InputUnitMenu"; interface IEditTenantMonitoringProps { tenant: ITenant; @@ -88,7 +89,9 @@ const EditTenantMonitoringModal = ({ ); const [newCPURequest, setNewCPURequest] = useState(cpuRequest); const [newMemRequest, setNewMemRequest] = useState( - Math.floor(parseInt(memRequest, 10) / 1000000000).toString() + memRequest + ? Math.floor(parseInt(memRequest, 10) / 1000000000).toString() + : "" ); const [newServiceAccountName, setNewServiceAccountName] = useState(serviceAccountName); @@ -285,8 +288,8 @@ const EditTenantMonitoringModal = ({ ) => { @@ -294,6 +297,15 @@ const EditTenantMonitoringModal = ({ }} key={`diskCapacityGB`} error={validationErrors[`diskCapacityGB`] || ""} + overlayObject={ + {}} + unitSelected={"Gi"} + unitsList={[{ label: "Gi", value: "Gi" }]} + disabled={true} + /> + } /> @@ -313,15 +325,27 @@ const EditTenantMonitoringModal = ({ ) => { - setNewMemRequest(event.target.value); + if (event.target.validity.valid) { + setNewMemRequest(event.target.value); + } }} + pattern={"[0-9]*"} key={`memRequest`} error={validationErrors[`memRequest`] || ""} + overlayObject={ + {}} + unitSelected={"Gi"} + unitsList={[{ label: "Gi", value: "Gi" }]} + disabled={true} + /> + } />