Skip to content

Commit

Permalink
add feature & REST API for list of support CloudOS
Browse files Browse the repository at this point in the history
  • Loading branch information
powerkimhub committed Mar 5, 2020
1 parent 6147a60 commit 252f553
Show file tree
Hide file tree
Showing 6 changed files with 132 additions and 15 deletions.
3 changes: 3 additions & 0 deletions api-runtime/rest-runtime/CBSpiderRuntime.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,9 @@ func main() {

//======================================= setup routes
routes := []route{
//----------CloudOS
{"GET", "/cloudos", listCloudOS},

//----------CloudDriverInfo
{"POST", "/driver", registerCloudDriver},
{"GET", "/driver", listCloudDriver},
Expand Down
11 changes: 11 additions & 0 deletions api-runtime/rest-runtime/CIMRest.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import (
"strconv"

ccim "github.com/cloud-barista/cb-spider/cloud-info-manager/connection-config-info-manager"
im "github.com/cloud-barista/cb-spider/cloud-info-manager"
cim "github.com/cloud-barista/cb-spider/cloud-info-manager/credential-info-manager"
dim "github.com/cloud-barista/cb-spider/cloud-info-manager/driver-info-manager"
rim "github.com/cloud-barista/cb-spider/cloud-info-manager/region-info-manager"
Expand All @@ -23,6 +24,16 @@ import (
"github.com/labstack/echo"
)

//================ List of support CloudOS
func listCloudOS(c echo.Context) error {
cblog.Info("call listCloudOS()")

cldOSList := im.ListCloudOS()

return c.JSON(http.StatusOK, &cldOSList)
}


//================ CloudDriver Handler
func registerCloudDriver(c echo.Context) error {
cblog.Info("call registerCloudDriver()")
Expand Down
22 changes: 7 additions & 15 deletions cloud-control-manager/test/test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,32 +9,20 @@
package main

import (
"github.com/sirupsen/logrus"
"github.com/cloud-barista/cb-store/config"

ccm "github.com/cloud-barista/cb-spider/cloud-control-manager"

"fmt"
)


var cblog *logrus.Logger

func init() {
cblog = config.Cblogger
}


func main() {

func getDriver() {

fmt.Println("\n============== GetCloudDriver()")

cloudConnectConfigName := "azure-config01"

cldDrv, err := ccm.GetCloudDriver(cloudConnectConfigName)
if err != nil {
cblog.Error(err)
panic(err)
}

fmt.Printf(" === %#v\n", cldDrv)
Expand All @@ -44,10 +32,14 @@ func main() {

cldConn, err := ccm.GetCloudConnection(cloudConnectConfigName)
if err != nil {
cblog.Error(err)
panic(err)
}

fmt.Printf(" === %#v\n", cldConn)
}


func main() {
getDriver()
}

67 changes: 67 additions & 0 deletions cloud-info-manager/CloudOSList.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
package cloudos

import (
"github.com/sirupsen/logrus"
"github.com/cloud-barista/cb-store/config"

"gopkg.in/yaml.v3"
"io/ioutil"
"os"
_ "fmt"
"strings"
"sort"
)


var cblog *logrus.Logger

func init() {
cblog = config.Cblogger
}



type CloudOSList struct {
Name []string `yaml:"cloudos"`
}

func readYaml() CloudOSList {
// Set Environment Value of Project Root Path
rootPath := os.Getenv("CBSPIDER_ROOT")
data, err := ioutil.ReadFile(rootPath + "/cloud-info-manager/cloudos.yaml")
if err != nil {
cblog.Error(err)
panic(err)
}

var coList CloudOSList
err = yaml.Unmarshal(data, &coList)
if err != nil {
cblog.Error(err)
panic(err)
}

return coList
}

func ListCloudOS() []string {

// read YAML file
cloudosList := readYaml()

// to Upper
for n, cloudos := range cloudosList.Name{
cloudosList.Name[n] = strings.ToUpper(cloudos)
}

sort.Strings(cloudosList.Name)
cblog.Info(cloudosList)

/* for _, cloudos := range cloudosList.Name{
fmt.Printf("\n%s", cloudos)
}
*/

return cloudosList.Name
}

19 changes: 19 additions & 0 deletions cloud-info-manager/cloudos.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Cloud Driver Manager of CB-Spider.
# The CB-Spider is a sub-Framework of the Cloud-Barista Multi-Cloud Project.
# The CB-Spider Mission is to connect all the clouds with a single interface.
#
# * Cloud-Barista: https://github.com/cloud-barista
#
# by CB-Spider Team, 2020.03.


### List of support CloudOS.

cloudos:
- aws
- GCP
- AZURE
- OPENSTACK
- CLOUDIT
- ALIBABA
- CLOUDTWIN
25 changes: 25 additions & 0 deletions cloud-info-manager/test/test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// Test for Cloud Driver Handler of CB-Spider.
// The CB-Spider is a sub-Framework of the Cloud-Barista Multi-Cloud Project.
// The CB-Spider Mission is to connect all the clouds with a single interface.
//
// * Cloud-Barista: https://github.com/cloud-barista
//
// by CB-Spider Team, 2019.10.

package main

import (
cim "github.com/cloud-barista/cb-spider/cloud-info-manager"

"fmt"
)

func getCloudOSList() {
cloudOSList := cim.ListCloudOS()
fmt.Printf(" === %#v\n", cloudOSList)
}

func main() {
getCloudOSList()
}

0 comments on commit 252f553

Please sign in to comment.