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 CacheItem
- type Cloud
- type CloudSetting
- type ConfigInfo
- type ConfigReq
- type ConnConfig
- type GeoLocation
- type IID
- type IdList
- type KeyValue
- type Location
- type NlbSetting
- type Nlbsw
- type NsInfo
- type NsReq
- type RequestDetails
- type RequestInfo
- type RestGetAllNsResponse
- type RuntimeConfig
- type SimpleMsg
- type SpiderConnectionName
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 RuntimeConf = RuntimeConfig{}
RuntimeConf is global variable for cloud config
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 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 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
ProviderName string
DriverName string
CredentialName string
RegionName string
Location GeoLocation
}
ConnConfig is struct for containing a CB-Spider struct for connection config
type GeoLocation ¶
type GeoLocation struct {
Latitude string `json:"latitude"`
Longitude string `json:"longitude"`
BriefAddr string `json:"briefAddr"`
CloudType string `json:"cloudType"`
NativeRegion string `json:"nativeRegion"`
}
GeoLocation is struct for geographical location
func GetCloudLocation ¶
func GetCloudLocation(cloudType string, nativeRegion string) GeoLocation
GetCloudLocation is to get location of clouds (need error handling)
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 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 SpiderConnectionName ¶
type SpiderConnectionName struct {
ConnectionName string `json:"ConnectionName"`
}