diff --git a/src/api/rest/docs/docs.go b/src/api/rest/docs/docs.go index 1c180c8e..1fbf284a 100644 --- a/src/api/rest/docs/docs.go +++ b/src/api/rest/docs/docs.go @@ -2216,13 +2216,13 @@ const docTemplate = `{ "schema": { "allOf": [ { - "$ref": "#/definitions/infra.JSONResult" + "$ref": "#/definitions/resource.JSONResult" }, { "type": "object", "properties": { "[DEFAULT]": { - "$ref": "#/definitions/infra.RestGetAllK8sClusterResponse" + "$ref": "#/definitions/resource.RestGetAllK8sClusterResponse" }, "[ID]": { "$ref": "#/definitions/model.IdList" @@ -9340,17 +9340,6 @@ const docTemplate = `{ } } }, - "infra.RestGetAllK8sClusterResponse": { - "type": "object", - "properties": { - "cluster": { - "type": "array", - "items": { - "$ref": "#/definitions/model.TbK8sClusterInfo" - } - } - } - }, "infra.RestGetAllMciPolicyResponse": { "type": "object", "properties": { @@ -13754,6 +13743,17 @@ const docTemplate = `{ } } }, + "resource.RestGetAllK8sClusterResponse": { + "type": "object", + "properties": { + "cluster": { + "type": "array", + "items": { + "$ref": "#/definitions/model.TbK8sClusterInfo" + } + } + } + }, "resource.RestGetAllSecurityGroupResponse": { "type": "object", "properties": { diff --git a/src/api/rest/docs/swagger.json b/src/api/rest/docs/swagger.json index 58566604..4abd4ed7 100644 --- a/src/api/rest/docs/swagger.json +++ b/src/api/rest/docs/swagger.json @@ -2209,13 +2209,13 @@ "schema": { "allOf": [ { - "$ref": "#/definitions/infra.JSONResult" + "$ref": "#/definitions/resource.JSONResult" }, { "type": "object", "properties": { "[DEFAULT]": { - "$ref": "#/definitions/infra.RestGetAllK8sClusterResponse" + "$ref": "#/definitions/resource.RestGetAllK8sClusterResponse" }, "[ID]": { "$ref": "#/definitions/model.IdList" @@ -9333,17 +9333,6 @@ } } }, - "infra.RestGetAllK8sClusterResponse": { - "type": "object", - "properties": { - "cluster": { - "type": "array", - "items": { - "$ref": "#/definitions/model.TbK8sClusterInfo" - } - } - } - }, "infra.RestGetAllMciPolicyResponse": { "type": "object", "properties": { @@ -13747,6 +13736,17 @@ } } }, + "resource.RestGetAllK8sClusterResponse": { + "type": "object", + "properties": { + "cluster": { + "type": "array", + "items": { + "$ref": "#/definitions/model.TbK8sClusterInfo" + } + } + } + }, "resource.RestGetAllSecurityGroupResponse": { "type": "object", "properties": { diff --git a/src/api/rest/docs/swagger.yaml b/src/api/rest/docs/swagger.yaml index 34373129..7d7d0b47 100644 --- a/src/api/rest/docs/swagger.yaml +++ b/src/api/rest/docs/swagger.yaml @@ -117,13 +117,6 @@ definitions: host: type: string type: object - infra.RestGetAllK8sClusterResponse: - properties: - cluster: - items: - $ref: '#/definitions/model.TbK8sClusterInfo' - type: array - type: object infra.RestGetAllMciPolicyResponse: properties: mciPolicy: @@ -3210,6 +3203,13 @@ definitions: $ref: '#/definitions/model.TbImageInfo' type: array type: object + resource.RestGetAllK8sClusterResponse: + properties: + cluster: + items: + $ref: '#/definitions/model.TbK8sClusterInfo' + type: array + type: object resource.RestGetAllSecurityGroupResponse: properties: securityGroup: @@ -4802,10 +4802,10 @@ paths: description: Different return structures by the given option param schema: allOf: - - $ref: '#/definitions/infra.JSONResult' + - $ref: '#/definitions/resource.JSONResult' - properties: '[DEFAULT]': - $ref: '#/definitions/infra.RestGetAllK8sClusterResponse' + $ref: '#/definitions/resource.RestGetAllK8sClusterResponse' '[ID]': $ref: '#/definitions/model.IdList' type: object diff --git a/src/api/rest/server/infra/nlb.go b/src/api/rest/server/infra/loadbalance.go similarity index 100% rename from src/api/rest/server/infra/nlb.go rename to src/api/rest/server/infra/loadbalance.go diff --git a/src/api/rest/server/infra/k8scluster.go b/src/api/rest/server/resource/k8scluster.go similarity index 95% rename from src/api/rest/server/infra/k8scluster.go rename to src/api/rest/server/resource/k8scluster.go index c7069bb7..b2d42b4f 100644 --- a/src/api/rest/server/infra/k8scluster.go +++ b/src/api/rest/server/resource/k8scluster.go @@ -11,15 +11,15 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Package mci is to handle REST API for mci -package infra +// Package resource is to handle REST API for resource +package resource import ( "net/http" "github.com/cloud-barista/cb-tumblebug/src/core/common" - "github.com/cloud-barista/cb-tumblebug/src/core/infra" "github.com/cloud-barista/cb-tumblebug/src/core/model" + "github.com/cloud-barista/cb-tumblebug/src/core/resource" "github.com/labstack/echo/v4" "github.com/rs/zerolog/log" ) @@ -128,7 +128,7 @@ func RestPostK8sCluster(c echo.Context) error { log.Debug().Msg("[POST K8sCluster]") - content, err := infra.CreateK8sCluster(nsId, u, optionFlag) + content, err := resource.CreateK8sCluster(nsId, u, optionFlag) if err != nil { log.Error().Err(err).Msg("") @@ -190,7 +190,7 @@ func RestPostK8sNodeGroup(c echo.Context) error { log.Debug().Msg("[POST K8sNodeGroup]") - content, err := infra.AddK8sNodeGroup(nsId, k8sClusterId, u) + content, err := resource.AddK8sNodeGroup(nsId, k8sClusterId, u) if err != nil { log.Error().Err(err).Msg("") @@ -223,7 +223,7 @@ func RestDeleteK8sNodeGroup(c echo.Context) error { forceFlag := c.QueryParam("force") - res, err := infra.RemoveK8sNodeGroup(nsId, k8sClusterId, k8sNodeGroupName, forceFlag) + res, err := resource.RemoveK8sNodeGroup(nsId, k8sClusterId, k8sNodeGroupName, forceFlag) if err != nil { log.Error().Err(err).Msg("") mapA := map[string]string{"message": err.Error()} @@ -269,7 +269,7 @@ func RestPutSetK8sNodeGroupAutoscaling(c echo.Context) error { log.Debug().Msg("[PUT K8s Set AutoScaling]") - content, err := infra.SetK8sNodeGroupAutoscaling(nsId, k8sClusterId, k8sNodeGroupName, u) + content, err := resource.SetK8sNodeGroupAutoscaling(nsId, k8sClusterId, k8sNodeGroupName, u) if err != nil { log.Error().Err(err).Msg("") @@ -309,7 +309,7 @@ func RestPutChangeK8sNodeGroupAutoscaleSize(c echo.Context) error { log.Debug().Msg("[PUT K8s Change AutoScale Size]") - content, err := infra.ChangeK8sNodeGroupAutoscaleSize(nsId, k8sClusterId, k8sNodeGroupName, u) + content, err := resource.ChangeK8sNodeGroupAutoscaleSize(nsId, k8sClusterId, k8sNodeGroupName, u) if err != nil { log.Error().Err(err).Msg("") @@ -339,7 +339,7 @@ func RestGetK8sCluster(c echo.Context) error { nsId := c.Param("nsId") k8sClusterId := c.Param("k8sClusterId") - res, err := infra.GetK8sCluster(nsId, k8sClusterId) + res, err := resource.GetK8sCluster(nsId, k8sClusterId) if err != nil { mapA := map[string]string{"message": "Failed to find the K8sCluster " + k8sClusterId + ": " + err.Error()} return c.JSON(http.StatusNotFound, &mapA) @@ -379,7 +379,7 @@ func RestGetAllK8sCluster(c echo.Context) error { if optionFlag == "id" { content := model.IdList{} var err error - content.IdList, err = infra.ListK8sClusterId(nsId) + content.IdList, err = resource.ListK8sClusterId(nsId) if err != nil { mapA := map[string]string{"message": "Failed to list K8sClusters' ID; " + err.Error()} return c.JSON(http.StatusNotFound, &mapA) @@ -388,7 +388,7 @@ func RestGetAllK8sCluster(c echo.Context) error { return c.JSON(http.StatusOK, &content) } else { - resourceList, err := infra.ListK8sCluster(nsId, filterKey, filterVal) + resourceList, err := resource.ListK8sCluster(nsId, filterKey, filterVal) if err != nil { mapA := map[string]string{"message": "Failed to list K8sClusters; " + err.Error()} return c.JSON(http.StatusNotFound, &mapA) @@ -423,7 +423,7 @@ func RestDeleteK8sCluster(c echo.Context) error { forceFlag := c.QueryParam("force") - res, err := infra.DeleteK8sCluster(nsId, k8sClusterId, forceFlag) + res, err := resource.DeleteK8sCluster(nsId, k8sClusterId, forceFlag) if err != nil { log.Error().Err(err).Msg("") mapA := map[string]string{"message": err.Error()} @@ -459,7 +459,7 @@ func RestDeleteAllK8sCluster(c echo.Context) error { forceFlag := c.QueryParam("force") subString := c.QueryParam("match") - output, err := infra.DeleteAllK8sCluster(nsId, subString, forceFlag) + output, err := resource.DeleteAllK8sCluster(nsId, subString, forceFlag) if err != nil { log.Error().Err(err).Msg("") mapA := map[string]string{"message": err.Error()} @@ -496,7 +496,7 @@ func RestPutUpgradeK8sCluster(c echo.Context) error { log.Debug().Msg("[PUT Upgrade K8sCluster]") - content, err := infra.UpgradeK8sCluster(nsId, k8sClusterId, u) + content, err := resource.UpgradeK8sCluster(nsId, k8sClusterId, u) if err != nil { log.Error().Err(err).Msg("") diff --git a/src/api/rest/server/server.go b/src/api/rest/server/server.go index e2e19ac8..221cdb1d 100644 --- a/src/api/rest/server/server.go +++ b/src/api/rest/server/server.go @@ -364,21 +364,21 @@ func RunServer(port string) { g.PUT("/:nsId/monitoring/status/mci/:mciId/vm/:vmId", rest_infra.RestPutMonitorAgentStatusInstalled) // K8sCluster - e.GET("/tumblebug/availableK8sClusterVersion", rest_infra.RestGetAvailableK8sClusterVersion) - e.GET("/tumblebug/availableK8sClusterNodeImage", rest_infra.RestGetAvailableK8sClusterNodeImage) - e.GET("/tumblebug/checkNodeGroupsOnK8sCreation", rest_infra.RestCheckNodeGroupsOnK8sCreation) - g.POST("/:nsId/k8scluster", rest_infra.RestPostK8sCluster) - g.POST("/:nsId/k8scluster/:k8sClusterId/k8snodegroup", rest_infra.RestPostK8sNodeGroup) - g.DELETE("/:nsId/k8scluster/:k8sClusterId/k8snodegroup/:k8sNodeGroupName", rest_infra.RestDeleteK8sNodeGroup) - g.PUT("/:nsId/k8scluster/:k8sClusterId/k8snodegroup/:k8sNodeGroupName/onautoscaling", rest_infra.RestPutSetK8sNodeGroupAutoscaling) - g.PUT("/:nsId/k8scluster/:k8sClusterId/k8snodegroup/:k8sNodeGroupName/autoscalesize", rest_infra.RestPutChangeK8sNodeGroupAutoscaleSize) - g.GET("/:nsId/k8scluster/:k8sClusterId", rest_infra.RestGetK8sCluster, middleware.TimeoutWithConfig(timeoutConfig), + e.GET("/tumblebug/availableK8sClusterVersion", rest_resource.RestGetAvailableK8sClusterVersion) + e.GET("/tumblebug/availableK8sClusterNodeImage", rest_resource.RestGetAvailableK8sClusterNodeImage) + e.GET("/tumblebug/checkNodeGroupsOnK8sCreation", rest_resource.RestCheckNodeGroupsOnK8sCreation) + g.POST("/:nsId/k8scluster", rest_resource.RestPostK8sCluster) + g.POST("/:nsId/k8scluster/:k8sClusterId/k8snodegroup", rest_resource.RestPostK8sNodeGroup) + g.DELETE("/:nsId/k8scluster/:k8sClusterId/k8snodegroup/:k8sNodeGroupName", rest_resource.RestDeleteK8sNodeGroup) + g.PUT("/:nsId/k8scluster/:k8sClusterId/k8snodegroup/:k8sNodeGroupName/onautoscaling", rest_resource.RestPutSetK8sNodeGroupAutoscaling) + g.PUT("/:nsId/k8scluster/:k8sClusterId/k8snodegroup/:k8sNodeGroupName/autoscalesize", rest_resource.RestPutChangeK8sNodeGroupAutoscaleSize) + g.GET("/:nsId/k8scluster/:k8sClusterId", rest_resource.RestGetK8sCluster, middleware.TimeoutWithConfig(timeoutConfig), middleware.RateLimiter(middleware.NewRateLimiterMemoryStore(2))) - g.GET("/:nsId/k8scluster", rest_infra.RestGetAllK8sCluster, middleware.TimeoutWithConfig(timeoutConfig), + g.GET("/:nsId/k8scluster", rest_resource.RestGetAllK8sCluster, middleware.TimeoutWithConfig(timeoutConfig), middleware.RateLimiter(middleware.NewRateLimiterMemoryStore(2))) - g.DELETE("/:nsId/k8scluster/:k8sClusterId", rest_infra.RestDeleteK8sCluster) - g.DELETE("/:nsId/k8scluster", rest_infra.RestDeleteAllK8sCluster) - g.PUT("/:nsId/k8scluster/:k8sClusterId/upgrade", rest_infra.RestPutUpgradeK8sCluster) + g.DELETE("/:nsId/k8scluster/:k8sClusterId", rest_resource.RestDeleteK8sCluster) + g.DELETE("/:nsId/k8scluster", rest_resource.RestDeleteAllK8sCluster) + g.PUT("/:nsId/k8scluster/:k8sClusterId/upgrade", rest_resource.RestPutUpgradeK8sCluster) // Network Load Balancer g.POST("/:nsId/mci/:mciId/mcSwNlb", rest_infra.RestPostMcNLB) diff --git a/src/core/infra/nlb.go b/src/core/infra/loadbalance.go similarity index 100% rename from src/core/infra/nlb.go rename to src/core/infra/loadbalance.go diff --git a/src/core/infra/k8scluster.go b/src/core/resource/k8scluster.go similarity index 97% rename from src/core/infra/k8scluster.go rename to src/core/resource/k8scluster.go index 0348e58e..6b1ec1a3 100644 --- a/src/core/infra/k8scluster.go +++ b/src/core/resource/k8scluster.go @@ -11,8 +11,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Package mci is to manage multi-cloud infra -package infra +// Package resource is to manage multi-cloud infra resource +package resource import ( "encoding/json" @@ -24,7 +24,6 @@ import ( "github.com/cloud-barista/cb-tumblebug/src/core/common" "github.com/cloud-barista/cb-tumblebug/src/core/common/label" "github.com/cloud-barista/cb-tumblebug/src/core/model" - "github.com/cloud-barista/cb-tumblebug/src/core/resource" "github.com/cloud-barista/cb-tumblebug/src/kvstore/kvstore" "github.com/cloud-barista/cb-tumblebug/src/kvstore/kvutil" validator "github.com/go-playground/validator/v10" @@ -105,7 +104,7 @@ func CreateK8sCluster(nsId string, u *model.TbK8sClusterReq, option string) (mod } spVersion := u.Version - spVPCName, err := resource.GetCspResourceId(nsId, model.StrVNet, u.VNetId) + spVPCName, err := GetCspResourceId(nsId, model.StrVNet, u.VNetId) if spVPCName == "" { log.Err(err).Msg("Failed to Create a K8sCluster") return emptyObj, err @@ -114,7 +113,7 @@ func CreateK8sCluster(nsId string, u *model.TbK8sClusterReq, option string) (mod /* var spSubnetNames []string for _, v := range u.SubnetIds { - spSnName, err := resource.GetCspResourceId(nsId, model.StrSubnet, v) + spSnName, err := GetCspResourceId(nsId, model.StrSubnet, v) if spSnName == "" { log.Error().Err(err).Msg("") return emptyObj, err @@ -128,7 +127,7 @@ func CreateK8sCluster(nsId string, u *model.TbK8sClusterReq, option string) (mod var spSubnetNames []string var found bool - tmpInf, err := resource.GetResource(nsId, model.StrVNet, u.VNetId) + tmpInf, err := GetResource(nsId, model.StrVNet, u.VNetId) if err != nil { log.Err(err).Msg("Failed to Create a K8sCluster") return emptyObj, err @@ -162,7 +161,7 @@ func CreateK8sCluster(nsId string, u *model.TbK8sClusterReq, option string) (mod var spSecurityGroupNames []string for _, v := range u.SecurityGroupIds { - spSgName, err := resource.GetCspResourceId(nsId, model.StrSecurityGroup, v) + spSgName, err := GetCspResourceId(nsId, model.StrSecurityGroup, v) if spSgName == "" { log.Err(err).Msg("Failed to Create a K8sCluster") return emptyObj, err @@ -183,14 +182,14 @@ func CreateK8sCluster(nsId string, u *model.TbK8sClusterReq, option string) (mod if v.ImageId == "" || v.ImageId == "default" { spImgName = "" } else { - spImgName, err = resource.GetCspResourceId(nsId, model.StrImage, v.ImageId) + spImgName, err = GetCspResourceId(nsId, model.StrImage, v.ImageId) if spImgName == "" { log.Err(err).Msg("Failed to Create a K8sCluster") return emptyObj, err } } - // specInfo, err := resource.GetSpec(model.SystemCommonNs, v.SpecId) + // specInfo, err := GetSpec(model.SystemCommonNs, v.SpecId) // if err != nil { // log.Err(err).Msg("Failed to Create a K8sCluster") // return emptyObj, err @@ -198,7 +197,7 @@ func CreateK8sCluster(nsId string, u *model.TbK8sClusterReq, option string) (mod // spSpecName := specInfo.CspSpecName spSpecName := v.SpecId - spKpName, err := resource.GetCspResourceId(nsId, model.StrSSHKey, v.SshKeyId) + spKpName, err := GetCspResourceId(nsId, model.StrSSHKey, v.SshKeyId) if spKpName == "" { log.Err(err).Msg("Failed to Create a K8sCluster") return emptyObj, err @@ -402,14 +401,14 @@ func AddK8sNodeGroup(nsId string, k8sClusterId string, u *model.TbK8sNodeGroupRe spImgName := "" // Some CSPs do not require ImageName for creating a cluster if u.ImageId != "" { - spImgName, err = resource.GetCspResourceId(nsId, model.StrImage, u.ImageId) + spImgName, err = GetCspResourceId(nsId, model.StrImage, u.ImageId) if spImgName == "" { log.Err(err).Msg("Failed to Add K8sNodeGroup") return emptyObj, err } } - // specInfo, err := resource.GetSpec(model.SystemCommonNs, u.SpecId) + // specInfo, err := GetSpec(model.SystemCommonNs, u.SpecId) // if err != nil { // log.Err(err).Msg("Failed to Add K8sNodeGroup") // return emptyObj, err @@ -417,7 +416,7 @@ func AddK8sNodeGroup(nsId string, k8sClusterId string, u *model.TbK8sNodeGroupRe // spSpecName := specInfo.CspSpecName spSpecName := u.SpecId - spKpName, err := resource.GetCspResourceId(nsId, model.StrSSHKey, u.SshKeyId) + spKpName, err := GetCspResourceId(nsId, model.StrSSHKey, u.SshKeyId) if spKpName == "" { log.Err(err).Msg("Failed to Add K8sNodeGroup") return emptyObj, err