Documentation
¶
Overview ¶
Package common is to include common methods for managing multi-cloud infra
Package common is to include common methods for managing multi-cloud infra ¶
Package common is to include common methods for managing multi-cloud infra ¶
Package common is to include common methods for managing multi-cloud infra ¶
Package common is to include common methods for managing multi-cloud infra
Index ¶
- Constants
- Variables
- func ChangeIdString(name string) string
- func CheckConfig(id string) (bool, error)
- func CheckElement(a string, list []string) bool
- func CheckString(name string) error
- func ConvertToMessage(inType string, inData string, obj interface{}) error
- func ConvertToOutput(outType string, obj interface{}) (string, error)
- func CopySrcToDest(src interface{}, dest interface{}) error
- func DeleteObject(key string) error
- func DeleteObjects(key string) error
- func EndRequestWithLog(c echo.Context, reqID string, err error, responseData interface{}) error
- func ExecuteHttpRequest[B any, T any](client *resty.Client, method string, url string, headers map[string]string, ...) error
- func GenChildResourceKey(nsId string, resourceType string, parentResourceId string, resourceId string) string
- func GenMcisKey(nsId string, mcisId string, vmId string) string
- func GenMcisPolicyKey(nsId string, mcisId string, vmId string) string
- func GenMcisSubGroupKey(nsId string, mcisId string, groupId string) string
- func GenRandomPassword(length int) string
- func GenResourceKey(nsId string, resourceType string, resourceId string) string
- func GenUid() string
- func GenerateNewRandomString(n int) string
- func GetChildIdList(key string) []string
- func GetCspResourceId(nsId string, resourceType string, resourceId string) (string, error)
- func GetFuncName() string
- func GetObjectList(key string) []string
- func GetObjectValue(key string) (string, error)
- func InitAllConfig() error
- func InitConfig(id string) error
- func ListConfigId() []string
- func LookupKeyValueList(kvl []KeyValue, key string) string
- func NVL(str string, def string) string
- func OpenSQL(path string) error
- func PrintJsonPretty(v interface{})
- func RandomSleep(from int, to int)
- func SelectDatabase(database string) error
- func SetUseBody(requestBody interface{}) bool
- func StartRequestWithLog(c echo.Context) (string, error)
- func ToLower(name string) string
- func UpdateGlobalVariable(id string) error
- type CSPDetail
- type CacheItem
- type Cloud
- type CloudDriverInfo
- type CloudInfo
- type CloudSetting
- type ConfigInfo
- type ConfigReq
- type ConnConfig
- type Credential
- type CredentialInfo
- type CredentialReq
- type IID
- type IdList
- type KeyValue
- type Location
- type NlbSetting
- type Nlbsw
- type NsInfo
- type NsReq
- type RegionDetail
- type RegionZoneInfo
- type RequestDetails
- type RequestInfo
- type RestGetAllNsResponse
- type RuntimeConfig
- type SimpleMsg
- type SpiderConnConfig
- type SpiderConnectionName
- type SpiderRegionZoneInfo
Constants ¶
const ( // VeryShortDuration is a duration for very short-term cache VeryShortDuration = 1 * time.Second // ShortDuration is a duration for short-term cache ShortDuration = 2 * time.Second // MediumDuration is a duration for medium-term cache MediumDuration = 5 * time.Second // LongDuration is a duration for long-term cache LongDuration = 10 * time.Second )
const ( // StrSpiderRestUrl string = "SPIDER_REST_URL" // StrDragonflyRestUrl string = "DRAGONFLY_REST_URL" StrTumblebugRestUrl string = "TUMBLEBUG_REST_URL" StrDBUrl string = "DB_URL" StrDBDatabase string = "DB_DATABASE" StrDBUser string = "DB_USER" StrDBPassword string = "DB_PASSWORD" StrAutocontrolDurationMs string = "AUTOCONTROL_DURATION_MS" CbStoreKeyNotFoundErrorString string = "key not found" StrAdd string = "add" StrDelete string = "delete" StrSSHKey string = "sshKey" StrImage string = "image" StrCustomImage string = "customImage" StrSecurityGroup string = "securityGroup" StrSpec string = "spec" StrVNet string = "vNet" StrSubnet string = "subnet" StrDataDisk string = "dataDisk" StrNLB string = "nlb" StrVM string = "vm" StrMCIS string = "mcis" StrDefaultResourceName string = "-systemdefault-" // SystemCommonNs is const for SystemCommon NameSpace ID SystemCommonNs string = "system-purpose-common-ns" )
const ( AttachDataDisk string = "attach" DetachDataDisk string = "detach" AvailableDataDisk string = "available" )
type DataDiskCmd string
const NoBody = "NOBODY"
NoBody is a constant for empty body
Variables ¶
var AutocontrolDurationMs string
var CBLog *logrus.Logger
CB-Store
var CBStore icbs.Store
var DBDatabase string
var DBPassword string
var DBUrl string
var DBUser string
var DefaulNamespaceId = "ns-mig01"
var MyDB *sql.DB
var ORM *xorm.Engine
var RequestMap = sync.Map{}
RequestMap is a map for request details
var RuntimeCloudInfo = CloudInfo{}
RuntimeCloudInfo is global variable for CloudInfo
var RuntimeConf = RuntimeConfig{}
RuntimeConf is global variable for cloud config
var RuntimeCredential = Credential{}
var RuntimeLatancyMap = [][]string{}
RuntimeLatancyMap is global variable for LatancyMap
var RuntimeLatancyMapIndex = make(map[string]int)
RuntimeLatancyMapIndex is global variable for LatancyMap (index)
var StartTime string
var SystemReady bool
SystemReady is global variable for checking SystemReady status
var TumblebugRestUrl string
var SpiderRestUrl string var DragonflyRestUrl string
Functions ¶
func ChangeIdString ¶
ChangeIdString is func to change strings in id or name (special chars to -, to lower string )
func CheckConfig ¶
func CheckElement ¶
func CheckString ¶
CheckString is func to check string by the given rule `[a-z]([-a-z0-9]*[a-z0-9])?`
func ConvertToMessage ¶
ConvertToMessage is func to change input data to gRPC message
func ConvertToOutput ¶
ConvertToOutput is func to convert gRPC message to print format
func CopySrcToDest ¶
func CopySrcToDest(src interface{}, dest interface{}) error
CopySrcToDest is func to copy data from source to target
func EndRequestWithLog ¶ added in v0.1.1
EndRequestWithLog updates the request details and sends the final response.
func ExecuteHttpRequest ¶
func ExecuteHttpRequest[B any, T any]( client *resty.Client, method string, url string, headers map[string]string, useBody bool, body *B, result *T, cacheDuration time.Duration, ) error
ExecuteHttpRequest performs the HTTP request and fills the result (var requestBody interface{} = nil for empty body)
func GenChildResourceKey ¶
func GenChildResourceKey(nsId string, resourceType string, parentResourceId string, resourceId string) string
GenChildResourceKey is func to generate a key from resource type and id
func GenMcisKey ¶
GenMcisKey is func to generate a key used in keyValue store
func GenMcisPolicyKey ¶
GenMcisPolicyKey is func to generate Mcis policy key
func GenMcisSubGroupKey ¶
GenMcisSubGroupKey is func to generate a key from subGroupId used in keyValue store
func GenRandomPassword ¶
GenRandomPassword is func to return a RandomPassword
func GenResourceKey ¶
GenResourceKey is func to generate a key from resource type and id
func GenerateNewRandomString ¶
generate a random string (from CB-MCKS source code)
func GetChildIdList ¶
GetChildIdList is func to get child id list from given key
func GetCspResourceId ¶
GetCspResourceId is func to retrieve CSP native resource ID
func GetFuncName ¶
func GetFuncName() string
GetFuncName is func to get the name of the running function
func GetObjectList ¶
GetObjectList is func to return IDs of each child objects that has the same key
func GetObjectValue ¶
GetObjectValue is func to return the object value
func InitAllConfig ¶
func InitAllConfig() error
func InitConfig ¶
func ListConfigId ¶
func ListConfigId() []string
func LookupKeyValueList ¶
LookupKeyValueList is func to lookup KeyValue list
func PrintJsonPretty ¶
func PrintJsonPretty(v interface{})
PrintJsonPretty is func to print JSON pretty with indent
func RandomSleep ¶
RandomSleep is func to make a caller waits for during random time seconds (random value within x~y)
func SelectDatabase ¶
func SetUseBody ¶
func SetUseBody(requestBody interface{}) bool
SetUseBody returns false if the given body is NoBody
func StartRequestWithLog ¶ added in v0.1.1
StartRequestWithLog initializes request tracking details
func ToLower ¶
ToLower is func to change strings (_ to -, " " to -, to lower string ) (deprecated soon)
func UpdateGlobalVariable ¶
Types ¶
type CSPDetail ¶ added in v0.1.2
type CSPDetail struct {
Description string `mapstructure:"description" json:"description"`
Driver string `mapstructure:"driver" json:"driver"`
Links []string `mapstructure:"link" json:"links"`
Regions map[string]RegionDetail `mapstructure:"region" json:"regions"`
}
CSPDetail is structure for CSP information
type Cloud ¶
type Cloud struct {
Common CloudSetting `yaml:"common"`
Aws CloudSetting `yaml:"aws"`
Azure CloudSetting `yaml:"azure"`
Gcp CloudSetting `yaml:"gcp"`
Alibaba CloudSetting `yaml:"alibaba"`
Tencent CloudSetting `yaml:"tencent"`
Ibm CloudSetting `yaml:"ibm"`
Openstack CloudSetting `yaml:"openstack"`
Cloudit CloudSetting `yaml:"cloudit"`
}
Cloud is structure for cloud settings per CSP
type CloudDriverInfo ¶ added in v0.1.2
CloudDriverInfo is struct for containing a CB-Spider struct for cloud driver info
type CloudSetting ¶
type CloudSetting struct {
Enable string `yaml:"enable"`
Nlb NlbSetting `yaml:"nlb"`
}
CloudSetting is structure for cloud settings per CSP in details
type ConfigInfo ¶
type ConfigInfo struct {
Id string `json:"id" example:"SPIDER_REST_URL"`
Name string `json:"name" example:"SPIDER_REST_URL"`
Value string `json:"value" example:"http://localhost:1024/spider"`
}
swagger:response ConfigInfo
func GetConfig ¶
func GetConfig(id string) (ConfigInfo, error)
func ListConfig ¶
func ListConfig() ([]ConfigInfo, error)
func UpdateConfig ¶
func UpdateConfig(u *ConfigReq) (ConfigInfo, error)
type ConfigReq ¶
type ConfigReq struct {
Name string `json:"name" example:"SPIDER_REST_URL"`
Value string `json:"value" example:"http://localhost:1024/spider"`
}
swagger:request ConfigReq
type ConnConfig ¶
type ConnConfig struct {
ConfigName string `json:"configName"`
ProviderName string `json:"providerName"`
DriverName string `json:"driverName"`
CredentialName string `json:"credentialName"`
CredentialHolder string `json:"credentialHolder"`
RegionZoneInfoName string `json:"regionZoneInfoName"`
RegionZoneInfo RegionZoneInfo `json:"regionZoneInfo"`
RegionDetail RegionDetail `json:"regionDetail"`
RegionRepresentative bool `json:"regionRepresentative"`
Verified bool `json:"verified"`
}
ConnConfig is struct for containing modified CB-Spider struct for connection config
type Credential ¶ added in v0.1.2
type CredentialInfo ¶ added in v0.1.2
type CredentialInfo struct {
CredentialName string `json:"credentialName"`
CredentialHolder string `json:"credentialHolder"`
ProviderName string `json:"providerName"`
KeyValueInfoList []KeyValue `json:"keyValueInfoList"`
}
CredentialInfo is struct for containing a struct for credential info
type CredentialReq ¶ added in v0.1.2
type CredentialReq struct {
CredentialHolder string `json:"credentialHolder"`
ProviderName string `json:"providerName"`
KeyValueInfoList []KeyValue `json:"keyValueInfoList"`
}
CredentialReq is struct for containing a struct for credential request
type IID ¶
Spider 2020-03-30 https://github.com/cloud-barista/cb-spider/blob/master/cloud-control-manager/cloud-driver/interfaces/resources/IId.go
type Location ¶ added in v0.1.1
type Location struct {
Display string `mapstructure:"display" json:"display"`
Latitude float64 `mapstructure:"latitude" json:"latitude"`
Longitude float64 `mapstructure:"longitude" json:"longitude"`
}
Location is structure for location information
type NlbSetting ¶
type NlbSetting struct {
Enable string `yaml:"enable"`
Interval string `yaml:"interval"`
Timeout string `yaml:"timeout"`
Threshold string `yaml:"threshold"`
}
NlbSetting is structure for NLB setting
type Nlbsw ¶
type Nlbsw struct {
Sw string `yaml:"sw"`
Version string `yaml:"version"`
CommandNlbPrepare string `yaml:"commandNlbPrepare"`
CommandNlbDeploy string `yaml:"commandNlbDeploy"`
CommandNlbAddTargetNode string `yaml:"commandNlbAddTargetNode"`
CommandNlbApplyConfig string `yaml:"commandNlbApplyConfig"`
NlbMcisCommonSpec string `yaml:"nlbMcisCommonSpec"`
NlbMcisCommonImage string `yaml:"nlbMcisCommonImage"`
NlbMcisSubGroupSize string `yaml:"nlbMcisSubGroupSize"`
}
Nlbsw is structure for NLB setting
type NsInfo ¶
type NsInfo struct {
Id string `json:"id" example:"ns01"`
Name string `json:"name" example:"ns01"`
Description string `json:"description" example:"Description for this namespace"`
}
swagger:response NsInfo
func CreateNamespace ¶ added in v0.1.1
func GetNamespace ¶ added in v0.1.1
type RegionDetail ¶ added in v0.1.2
type RegionDetail struct {
RegionId string `mapstructure:"id" json:"regionId"`
RegionName string `mapstructure:"regionName" json:"regionName"`
Description string `mapstructure:"description" json:"description"`
Location Location `mapstructure:"location" json:"location"`
Zones []string `mapstructure:"zone" json:"zones"`
}
RegionDetail is structure for region information
type RegionZoneInfo ¶ added in v0.1.2
type RegionZoneInfo struct {
AssignedRegion string `json:"assignedRegion"`
AssignedZone string `json:"assignedZone"`
}
RegionZoneInfo is struct for containing region struct
type RequestDetails ¶ added in v0.1.1
type RequestDetails struct {
StartTime time.Time `json:"startTime"` // The time when the request was received by the server.
EndTime time.Time `json:"endTime"` // The time when the request was fully processed.
Status string `json:"status"` // The current status of the request (e.g., "Handling", "Error", "Success").
RequestInfo RequestInfo `json:"requestInfo"` // Extracted information about the request.
ResponseData interface{} `json:"responseData"` // The data sent back in response to the request.
ErrorResponse string `json:"errorResponse"` // A message describing any error that occurred during request processing.
}
RequestDetails contains detailed information about an HTTP request and its processing status.
type RequestInfo ¶ added in v0.1.1
type RequestInfo struct {
Method string `json:"method"` // HTTP method (GET, POST, etc.), indicating the request's action type.
URL string `json:"url"` // The URL the request is made to.
Header map[string]string `json:"header"` // Key-value pairs of the request headers.
Body interface{} `json:"body,omitempty"` // Optional: request body
}
RequestInfo stores the essential details of an HTTP request.
func ExtractRequestInfo ¶ added in v0.1.1
func ExtractRequestInfo(r *http.Request) RequestInfo
ExtractRequestInfo extracts necessary information from http.Request
type RestGetAllNsResponse ¶ added in v0.1.1
type RestGetAllNsResponse struct {
//Name string `json:"name"`
Ns []NsInfo `json:"ns"`
}
Response structure for RestGetAllNs
func GetAllNamespaces ¶ added in v0.1.1
func GetAllNamespaces() (RestGetAllNsResponse, error)
type RuntimeConfig ¶
RuntimeConfig is structure for global variable for cloud config
type SimpleMsg ¶
type SimpleMsg struct {
Message string `json:"message" example:"Any message"`
}
SimpleMsg is struct for JSON Simple message
func DeleteNamespace ¶ added in v0.1.1
type SpiderConnConfig ¶ added in v0.1.2
type SpiderConnConfig struct {
ConfigName string
ProviderName string
DriverName string
CredentialName string
RegionName string
}
SpiderConnConfig is struct for containing a CB-Spider struct for connection config
type SpiderConnectionName ¶
type SpiderConnectionName struct {
ConnectionName string `json:"ConnectionName"`
}
type SpiderRegionZoneInfo ¶ added in v0.1.2
type SpiderRegionZoneInfo struct {
RegionName string // ex) "region01"
ProviderName string // ex) "GCP"
KeyValueInfoList []KeyValue // ex) { {region, us-east1}, {zone, us-east1-c} }
AvailableZoneList []string
}
SpiderRegionZoneInfo is struct for containing region struct of CB-Spider