@@ -28,6 +28,7 @@ import (
2828 "net"
2929 "net/http"
3030 "os"
31+ "reflect"
3132 "sort"
3233 "strconv"
3334 "strings"
@@ -237,6 +238,7 @@ func registerTenantHandlers(api *operations.OperatorAPI) {
237238
238239 //Get tenant monitoring info
239240 api .OperatorAPIGetTenantMonitoringHandler = operator_api .GetTenantMonitoringHandlerFunc (func (params operator_api.GetTenantMonitoringParams , session * models.Principal ) middleware.Responder {
241+
240242 payload , err := getTenantMonitoringResponse (session , params )
241243 if err != nil {
242244 return operator_api .NewGetTenantMonitoringDefault (int (err .Code )).WithPayload (err )
@@ -1789,14 +1791,6 @@ func getTenantLogsResponse(session *models.Principal, params operator_api.GetTen
17891791 minTenant .Spec .Log .Audit = & miniov2.AuditConfig {DiskCapacityGB : swag .Int (0 )}
17901792 }
17911793
1792- /*if minTenant.Spec.Log.Image == "" {
1793- minTenant.Spec.Log.Image = miniov2.DefaultLogSearchAPIImage
1794- }
1795-
1796- if minTenant.Spec.Log.Db.Image == "" {
1797- minTenant.Spec.Log.Db.Image = miniov2.LogPgImage
1798- }*/
1799-
18001794 retval := & models.TenantLogs {
18011795 Image : minTenant .Spec .Log .Image ,
18021796 DiskCapacityGB : fmt .Sprintf ("%d" , * minTenant .Spec .Log .Audit .DiskCapacityGB ),
@@ -1811,11 +1805,33 @@ func getTenantLogsResponse(session *models.Principal, params operator_api.GetTen
18111805 DbServiceAccountName : minTenant .Spec .Log .Db .ServiceAccountName ,
18121806 Disabled : false ,
18131807 }
1808+
1809+ var requestedCPU string
1810+ var requestedMem string
1811+ var requestedDBCPU string
1812+ var requestedDBMem string
1813+ if minTenant .Spec .Log .Resources .Requests != nil {
1814+ requestedCPUQ := minTenant .Spec .Log .Resources .Requests ["cpu" ]
1815+ requestedCPU = strconv .FormatInt (requestedCPUQ .Value (), 10 )
1816+ requestedMemQ := minTenant .Spec .Log .Resources .Requests ["memory" ]
1817+ requestedMem = strconv .FormatInt (requestedMemQ .Value (), 10 )
1818+
1819+ requestedDBCPUQ := minTenant .Spec .Log .Db .Resources .Requests ["cpu" ]
1820+ requestedDBCPU = strconv .FormatInt (requestedDBCPUQ .Value (), 10 )
1821+ requestedDBMemQ := minTenant .Spec .Log .Db .Resources .Requests ["memory" ]
1822+ requestedDBMem = strconv .FormatInt (requestedDBMemQ .Value (), 10 )
1823+
1824+ retval .LogCPURequest = requestedCPU
1825+ retval .LogMemRequest = requestedMem
1826+ retval .LogDBCPURequest = requestedDBCPU
1827+ retval .LogDBMemRequest = requestedDBMem
1828+ }
18141829 return retval , nil
18151830}
18161831
18171832// setTenantLogsResponse returns the logs of a tenant
18181833func setTenantLogsResponse (session * models.Principal , params operator_api.SetTenantLogsParams ) (bool , * models.Error ) {
1834+
18191835 // 30 seconds timeout
18201836 ctx , cancel := context .WithTimeout (context .Background (), 30 * time .Second )
18211837 defer cancel ()
@@ -1833,6 +1849,7 @@ func setTenantLogsResponse(session *models.Principal, params operator_api.SetTen
18331849 if err != nil {
18341850 return false , prepareError (err , errorUnableToGetTenantUsage )
18351851 }
1852+
18361853 var labels = make (map [string ]string )
18371854 for i := 0 ; i < len (params .Data .Labels ); i ++ {
18381855 if params .Data .Labels [i ] != nil {
@@ -1854,6 +1871,26 @@ func setTenantLogsResponse(session *models.Principal, params operator_api.SetTen
18541871 }
18551872 }
18561873 minTenant .Spec .Log .NodeSelector = nodeSelector
1874+ logResourceRequest := make (corev1.ResourceList )
1875+
1876+ if reflect .TypeOf (params .Data .LogCPURequest ).Kind () == reflect .String && params .Data .LogCPURequest != "0Gi" && params .Data .LogCPURequest != "" {
1877+ cpuQuantity , err := resource .ParseQuantity (params .Data .LogCPURequest )
1878+ if err != nil {
1879+ return false , prepareError (err )
1880+ }
1881+ logResourceRequest ["cpu" ] = cpuQuantity
1882+ minTenant .Spec .Log .Resources .Requests = logResourceRequest
1883+ }
1884+ if reflect .TypeOf (params .Data .LogMemRequest ).Kind () == reflect .String {
1885+ memQuantity , err := resource .ParseQuantity (params .Data .LogMemRequest )
1886+ if err != nil {
1887+ return false , prepareError (err )
1888+ }
1889+
1890+ logResourceRequest ["memory" ] = memQuantity
1891+ minTenant .Spec .Log .Resources .Requests = logResourceRequest
1892+ }
1893+
18571894 modified := false
18581895 if minTenant .Spec .Log .Db != nil {
18591896 modified = true
@@ -1879,6 +1916,24 @@ func setTenantLogsResponse(session *models.Principal, params operator_api.SetTen
18791916 }
18801917 modified = true
18811918 }
1919+
1920+ logDBResourceRequest := make (corev1.ResourceList )
1921+ if reflect .TypeOf (params .Data .LogDBCPURequest ).Kind () == reflect .String && params .Data .LogDBCPURequest != "0Gi" && params .Data .LogDBCPURequest != "" {
1922+ dbCPUQuantity , err := resource .ParseQuantity (params .Data .LogDBCPURequest )
1923+ if err != nil {
1924+ return false , prepareError (err )
1925+ }
1926+ logDBResourceRequest ["cpu" ] = dbCPUQuantity
1927+ minTenant .Spec .Log .Db .Resources .Requests = logDBResourceRequest
1928+ }
1929+ if reflect .TypeOf (params .Data .LogDBMemRequest ).Kind () == reflect .String {
1930+ dbMemQuantity , err := resource .ParseQuantity (params .Data .LogDBMemRequest )
1931+ if err != nil {
1932+ return false , prepareError (err )
1933+ }
1934+ logDBResourceRequest ["memory" ] = dbMemQuantity
1935+ minTenant .Spec .Log .Db .Resources .Requests = logDBResourceRequest
1936+ }
18821937 minTenant .Spec .Log .Image = params .Data .Image
18831938 diskCapacityGB , err := strconv .Atoi (params .Data .DiskCapacityGB )
18841939 if err == nil {
@@ -1922,6 +1977,9 @@ func setTenantLogsResponse(session *models.Principal, params operator_api.SetTen
19221977 NodeSelector : dbNodeSelector ,
19231978 Image : params .Data .DbImage ,
19241979 ServiceAccountName : params .Data .DbServiceAccountName ,
1980+ Resources : corev1.ResourceRequirements {
1981+ Requests : minTenant .Spec .Log .Db .Resources .Requests ,
1982+ },
19251983 }
19261984 } else {
19271985 minTenant .Spec .Log .Db .Labels = dbLabels
@@ -1931,6 +1989,7 @@ func setTenantLogsResponse(session *models.Principal, params operator_api.SetTen
19311989 minTenant .Spec .Log .Db .ServiceAccountName = params .Data .DbServiceAccountName
19321990 }
19331991 }
1992+
19341993 _ , err = opClient .TenantUpdate (ctx , minTenant , metav1.UpdateOptions {})
19351994 if err != nil {
19361995 return false , prepareError (err )
0 commit comments