91 lines
2.4 KiB
Go
91 lines
2.4 KiB
Go
package controllers
|
|
|
|
import (
|
|
"github.com/beego/beego/v2/core/logs"
|
|
beego "github.com/beego/beego/v2/server/web"
|
|
"golang.org/x/net/context"
|
|
)
|
|
|
|
// WorkspaceController is the controller in chrage of solr
|
|
type WorkspaceController struct {
|
|
beego.Controller
|
|
}
|
|
|
|
// @Title GetWorkspace
|
|
// @Description Return Workspace
|
|
// @router / [get]
|
|
func (c *WorkspaceController) GetWorkspace() {
|
|
|
|
//TODO: Use fullModel api call
|
|
workspaceObj, _, err := OCCatalogAPI.WorkspaceApi.WorkspaceControllerGetWorkspace(context.Background())
|
|
if err != nil {
|
|
logs.Warn(err.Error())
|
|
return
|
|
}
|
|
|
|
outputArray := []interface{}{}
|
|
|
|
if len(workspaceObj.Data) > 0 {
|
|
dataArr, _, err := OCCatalogAPI.DataApi.DataControllerGetMultipleDataByIDs(context.Background(), workspaceObj.Data)
|
|
if err != nil {
|
|
logs.Warn(err.Error())
|
|
}
|
|
|
|
//convert array of strings to interface{}
|
|
ArrInterface := make([]interface{}, len(dataArr))
|
|
for i := range dataArr {
|
|
ArrInterface[i] = dataArr[i]
|
|
}
|
|
|
|
outputArray = append(outputArray, ArrInterface...)
|
|
}
|
|
|
|
if len(workspaceObj.Computing) > 0 {
|
|
computingArr, _, err := OCCatalogAPI.ComputingApi.ComputingControllerGetMultipleComputingByIDs(context.Background(), workspaceObj.Computing)
|
|
if err != nil {
|
|
logs.Warn(err.Error())
|
|
}
|
|
|
|
//convert array of strings to interface{}
|
|
ArrInterface := make([]interface{}, len(computingArr))
|
|
for i := range computingArr {
|
|
ArrInterface[i] = computingArr[i]
|
|
}
|
|
|
|
outputArray = append(outputArray, ArrInterface...)
|
|
}
|
|
|
|
if len(workspaceObj.Datacenter) > 0 {
|
|
datacenterArr, _, err := OCCatalogAPI.DatacenterApi.DatacenterControllerGetMultipleDatacentersByIDs(context.Background(), workspaceObj.Datacenter)
|
|
if err != nil {
|
|
logs.Warn(err.Error())
|
|
}
|
|
|
|
//convert array of strings to interface{}
|
|
ArrInterface := make([]interface{}, len(datacenterArr))
|
|
for i := range datacenterArr {
|
|
ArrInterface[i] = datacenterArr[i]
|
|
}
|
|
|
|
outputArray = append(outputArray, ArrInterface...)
|
|
}
|
|
|
|
if len(workspaceObj.Storage) > 0 {
|
|
storageArr, _, err := OCCatalogAPI.StorageApi.StorageControllerGetMultipleStoragesByIDs(context.Background(), workspaceObj.Storage)
|
|
if err != nil {
|
|
logs.Warn(err.Error())
|
|
}
|
|
|
|
//convert array of strings to interface{}
|
|
ArrInterface := make([]interface{}, len(storageArr))
|
|
for i := range storageArr {
|
|
ArrInterface[i] = storageArr[i]
|
|
}
|
|
|
|
outputArray = append(outputArray, ArrInterface...)
|
|
}
|
|
|
|
c.Data["list"] = outputArray
|
|
c.TplName = "workspace.tpl"
|
|
}
|