Documentation ¶
Index ¶
- Constants
- Variables
- func AppendToFile(name string, content string) error
- func Confirm(yes bool, text string) bool
- func FormatDate(seconds int) string
- func FormatDateTime(seconds int) string
- func GetConfigDir() string
- func GetFileList(suffix string) []string
- func GetHomePath() string
- func GetLogFileDir() string
- func GetLogFilePath() string
- func GetLogger() *log.Logger
- func GetUserInfo() (*uaccount.UserInfo, error)
- func HandleBizError(resp response.Common) error
- func HandleError(err error)
- func InitConfig()
- func InitConfigInCloudShell() error
- func IsBase64Encoded(data []byte) bool
- func LineInFile(fileName string, lookFor string) bool
- func ListAggConfig(json bool)
- func LoadUserInfo() (*uaccount.UserInfo, error)
- func LogError(logs ...string)
- func LogInfo(logs ...string)
- func LogPrint(logs ...string)
- func LogWarn(logs ...string)
- func MosaicString(str string, beginChars, lastChars int) string
- func ParseError(err error) string
- func PickResourceID(str string) string
- func PrintDescribe(attrs []DescribeTableRow, json bool)
- func PrintJSON(dataSet interface{}, out io.Writer) error
- func PrintList(dataSet interface{}, out io.Writer)
- func PrintTable(dataSet interface{}, fieldList []string)
- func PrintTableS(dataSet interface{})
- func ToQueryMap(req request.Common) map[string]string
- func UploadLogs(logs []string, level string, goID int64)
- func WriteJSONFile(list interface{}, filePath string) error
- type AggConfig
- type AggConfigManager
- func (p *AggConfigManager) Append(config *AggConfig) error
- func (p *AggConfigManager) DeleteByProfile(profile string) error
- func (p *AggConfigManager) GetActiveAggConfig() (*AggConfig, error)
- func (p *AggConfigManager) GetActiveAggConfigName() string
- func (p *AggConfigManager) GetAggConfigByProfile(profile string) (*AggConfig, bool)
- func (p *AggConfigManager) GetAggConfigList() []AggConfig
- func (p *AggConfigManager) GetProfileNameList() []string
- func (p *AggConfigManager) Load() error
- func (p *AggConfigManager) Save() error
- func (p *AggConfigManager) UpdateAggConfig(config *AggConfig) error
- type CLIConfig
- type Client
- type CredHeader
- type CredentialConfig
- type DescribeTableRow
- type GlobalFlag
- type LogRotateHook
- type OldConfig
- type Poller
- type PrivatePathxClient
- type PrivateUDBClient
- type PrivateUHostClient
- type PrivateUMemClient
- type Tracer
Constants ¶
const ConfigPath = ".ucloud"
ConfigPath 配置文件路径
const DateTimeLayout = "2006-01-02/15:04:05"
DateTimeLayout 时间格式
const DefaultBaseURL = "https://api.ucloud.cn/"
DefaultBaseURL location of api server
const DefaultDasURL = "https://das-rpt.ucloud.cn/log"
const DefaultMaxRetryTimes = 3
DefaultMaxRetryTimes default timeout for requesting api, 15s
const DefaultProfile = "default"
DefaultProfile name of default profile
const DefaultTimeoutSec = 15
DefaultTimeoutSec default timeout for requesting api, 15s
const GAP = 2
GAP 表格列直接的间隔字符数
const LocalFileMode os.FileMode = 0600
LocalFileMode file mode of $HOME/ucloud/*
const Version = "0.1.46"
Version 版本号
Variables ¶
var AggConfigListIns = &AggConfigManager{}
AggConfigListIns 配置列表, 进程启动时从本地文件加载
var ClientConfig *sdk.Config
ClientConfig 创建sdk client参数
var ConfigFilePath = fmt.Sprintf("%s/%s", GetConfigDir(), "config.json")
ConfigFilePath path of config.json
var ConfigIns = &AggConfig{ Profile: DefaultProfile, BaseURL: DefaultBaseURL, Timeout: DefaultTimeoutSec, MaxRetryTimes: sdk.Int(DefaultMaxRetryTimes), }
ConfigIns 配置实例, 程序加载时生成
var CredentialFilePath = fmt.Sprintf("%s/%s", GetConfigDir(), "credential.json")
CredentialFilePath path of credential.json
var CredentialFilePathInCloudShell = os.Getenv("CLOUD_SHELL_CREDENTIAL_FILE")
var Cxt = model.GetContext(os.Stdout)
Cxt 上下文
var InCloudShell = os.Getenv("CLOUD_SHELL") == "true"
var RegionLabel = map[string]string{
"cn-bj1": "Beijing1",
"cn-bj2": "Beijing2",
"cn-sh2": "Shanghai2",
"cn-gd": "Guangzhou",
"cn-qz": "Quanzhou",
"hk": "Hongkong",
"us-ca": "LosAngeles",
"us-ws": "Washington",
"ge-fra": "Frankfurt",
"th-bkk": "Bangkok",
"kr-seoul": "Seoul",
"sg": "Singapore",
"tw-kh": "Kaohsiung",
"rus-mosc": "Moscow",
"jpn-tky": "Tokyo",
"tw-tp": "TaiPei",
"uae-dubai": "Dubai",
"idn-jakarta": "Jakarta",
"ind-mumbai": "Bombay",
"bra-saopaulo": "SaoPaulo",
"uk-london": "London",
"afr-nigeria": "Lagos",
}
RegionLabel regionlable
var SdkClient *sdk.Client
SdkClient 用于上报数据
var UserAgent = fmt.Sprintf("UCloud-CLI/%s", Version)
Functions ¶
func FormatDateTime ¶
FormatDateTime 格式化时间,把以秒为单位的时间戳格式化未年月日/时分秒
func GetUserInfo ¶
GetUserInfo from local file and remote api
func HandleBizError ¶
HandleBizError 处理RetCode != 0 的业务异常
func InitConfigInCloudShell ¶
func InitConfigInCloudShell() error
func IsBase64Encoded ¶
func ListAggConfig ¶
func ListAggConfig(json bool)
ListAggConfig ucloud --config + ucloud config list
func LoadUserInfo ¶
LoadUserInfo 从~/.ucloud/user.json加载用户信息
func MosaicString ¶
MosaicString 对字符串敏感部分打马赛克 如公钥私钥
func PickResourceID ¶
PickResourceID uhost-xxx/uhost-name => uhost-xxx
func ToQueryMap ¶
ToQueryMap tranform request to map
func UploadLogs ¶
UploadLogs send logs to das server
func WriteJSONFile ¶
WriteJSONFile 写json文件
Types ¶
type AggConfig ¶
type AggConfig struct { Profile string `json:"profile"` Active bool `json:"active"` ProjectID string `json:"project_id"` Region string `json:"region"` Zone string `json:"zone"` BaseURL string `json:"base_url"` Timeout int `json:"timeout_sec"` PublicKey string `json:"public_key"` PrivateKey string `json:"private_key"` Cookie string `json:"cookie"` CSRFToken string `json:"csrf_token"` MaxRetryTimes *int `json:"max_retry_times"` AgreeUploadLog bool `json:"agree_upload_log"` }
AggConfig 聚合配置 config+credential
func (*AggConfig) ConfigPrivateKey ¶
ConfigPrivateKey 输入私钥
func (*AggConfig) ConfigPublicKey ¶
ConfigPublicKey 输入公钥
func (*AggConfig) ConfigUploadLog ¶
ConfigUploadLog agree upload log or not
func (*AggConfig) GetClientConfig ¶
GetClientConfig 用来生成sdkClient
func (*AggConfig) GetCredential ¶
func (p *AggConfig) GetCredential() *auth.Credential
GetCredential 用来生成SDkClient
type AggConfigManager ¶
type AggConfigManager struct {
// contains filtered or unexported fields
}
AggConfigManager 配置管理
func NewAggConfigManager ¶
func NewAggConfigManager(cfgFile, credFile *os.File) (*AggConfigManager, error)
NewAggConfigManager create instance
func NewInCloudShell ¶
func NewInCloudShell() (*AggConfigManager, error)
func (*AggConfigManager) Append ¶
func (p *AggConfigManager) Append(config *AggConfig) error
Append config to list, override if already exist the same profile
func (*AggConfigManager) DeleteByProfile ¶
func (p *AggConfigManager) DeleteByProfile(profile string) error
DeleteByProfile 从AggConfigList和本地文件中删除此配置
func (*AggConfigManager) GetActiveAggConfig ¶
func (p *AggConfigManager) GetActiveAggConfig() (*AggConfig, error)
GetActiveAggConfig get active agg config
func (*AggConfigManager) GetActiveAggConfigName ¶
func (p *AggConfigManager) GetActiveAggConfigName() string
GetActiveAggConfigName get active config name
func (*AggConfigManager) GetAggConfigByProfile ¶
func (p *AggConfigManager) GetAggConfigByProfile(profile string) (*AggConfig, bool)
GetAggConfigByProfile get config of specify profile
func (*AggConfigManager) GetAggConfigList ¶
func (p *AggConfigManager) GetAggConfigList() []AggConfig
GetAggConfigList get all profile config
func (*AggConfigManager) GetProfileNameList ¶
func (p *AggConfigManager) GetProfileNameList() []string
GetProfileNameList 获取所有profiles 用于ucloud config --profile 补全
func (*AggConfigManager) Load ¶
func (p *AggConfigManager) Load() error
Load AggConfigList from local file $HOME/.ucloud/config.json+credential.json
func (*AggConfigManager) UpdateAggConfig ¶
func (p *AggConfigManager) UpdateAggConfig(config *AggConfig) error
UpdateAggConfig update AggConfig append if not exist
type CLIConfig ¶
type CLIConfig struct { ProjectID string `json:"project_id"` Region string `json:"region"` Zone string `json:"zone"` BaseURL string `json:"base_url"` Timeout int `json:"timeout_sec"` Profile string `json:"profile"` Active bool `json:"active"` //是否生效 MaxRetryTimes *int `json:"max_retry_times"` AgreeUploadLog bool `json:"agree_upload_log"` }
CLIConfig cli_config element
type Client ¶
type Client struct { uaccount.UAccountClient uhost.UHostClient unet.UNetClient vpc.VPCClient udpn.UDPNClient pathx.PathXClient udisk.UDiskClient ulb.ULBClient udb.UDBClient umem.UMemClient uphost.UPHostClient PrivateUHostClient PrivateUDBClient PrivateUMemClient PrivateUMemClient PrivatePathxClient }
Client aggregate client for business
var BizClient *Client
BizClient 用于调用业务接口
type CredHeader ¶
type CredentialConfig ¶
type CredentialConfig struct { PublicKey string `json:"public_key"` PrivateKey string `json:"private_key"` Cookie string `json:"cookie"` CSRFToken string `json:"csrf_token"` Profile string `json:"profile"` }
CredentialConfig credential element
var AuthCredential *CredentialConfig
AuthCredential 创建sdk client参数
type DescribeTableRow ¶
DescribeTableRow 详情表格通用表格行
type GlobalFlag ¶
type GlobalFlag struct { Debug bool JSON bool Version bool Completion bool Config bool Signup bool Profile string PublicKey string PrivateKey string BaseURL string Timeout int MaxRetryTimes int }
GlobalFlag 几乎所有接口都需要的参数,例如 region zone projectID
var Global GlobalFlag
Global 全局flag
type LogRotateHook ¶
type LogRotateHook struct { MaxSize int64 Cut float32 LogFile *os.File // contains filtered or unexported fields }
LogRotateHook rotate log file
func NewLogRotateHook ¶
func NewLogRotateHook(file *os.File) *LogRotateHook
NewLogRotateHook create a LogRotateHook
type OldConfig ¶
type OldConfig struct { PublicKey string `json:"public_key"` PrivateKey string `json:"private_key"` Region string `json:"region"` Zone string `json:"zone"` ProjectID string `json:"project_id"` }
OldConfig 0.1.7以及之前版本的配置struct
type Poller ¶
type Poller struct { DescribeFunc func(string, string, string, string) (interface{}, error) Out io.Writer Timeout time.Duration SdescribeFunc func(string) (interface{}, error) // contains filtered or unexported fields }
Poller 轮询器
func NewPoller ¶
func NewPoller(describeFunc func(string, string, string, string) (interface{}, error), out io.Writer) *Poller
NewPoller 轮询
func NewSpoller ¶
NewSpoller simple
func (*Poller) Poll ¶
func (p *Poller) Poll(resourceID, projectID, region, zone, pollText string, targetState []string) bool
Poll function
type PrivatePathxClient ¶
type PrivatePathxClient = ppathx.PathXClient
PrivatePathxClient 私有模块的pathx client 即未在官网开放的接口
type PrivateUDBClient ¶
PrivateUDBClient 私有模块的udb client 即未在官网开放的接口
type PrivateUHostClient ¶
type PrivateUHostClient = puhost.UHostClient
PrivateUHostClient 私有模块的uhost client 即未在官网开放的接口
type PrivateUMemClient ¶
type PrivateUMemClient = pumem.UMemClient
PrivateUMemClient 私有模块的umem client 即未在官网开放的接口