117 lines
2.7 KiB
Go
117 lines
2.7 KiB
Go
package model
|
|
|
|
import (
|
|
"net/url"
|
|
"reflect"
|
|
)
|
|
|
|
const _query = "query"
|
|
|
|
// TreeResponse Tree Response.
|
|
type TreeResponse struct {
|
|
Code int `json:"code"`
|
|
Data UserTree `json:"data"`
|
|
}
|
|
|
|
// UserTree User Tree.
|
|
type UserTree struct {
|
|
Bilibili map[string]interface{} `json:"bilibili"`
|
|
}
|
|
|
|
// TreeMachinesResponse Tree Machines Response.
|
|
type TreeMachinesResponse struct {
|
|
Code int `json:"code"`
|
|
Data []string `json:"data"`
|
|
}
|
|
|
|
// TreeSonResponse Tree Son Response.
|
|
type TreeSonResponse struct {
|
|
Code int `json:"code"`
|
|
Data map[string]interface{} `json:"data"`
|
|
}
|
|
|
|
// TreeRoleResponse Tree Role Response.
|
|
type TreeRoleResponse struct {
|
|
Code int `json:"code"`
|
|
Data []*TreeRole `json:"data"`
|
|
}
|
|
|
|
// TreeInstancesResponse Tree Instance Response.
|
|
type TreeInstancesResponse struct {
|
|
Code int `json:"code"`
|
|
Data map[string]*TreeInstance `json:"data"`
|
|
}
|
|
|
|
// TreeInstance Tree Instance.
|
|
type TreeInstance struct {
|
|
HostName string `json:"hostname"`
|
|
IP string `json:"ip"`
|
|
InstanceType string `json:"instance_type"`
|
|
InternalIP string `json:"internal_ip"`
|
|
ServiceIP string `json:"service_ip"`
|
|
ExtendIP string `json:"extend_ip"`
|
|
}
|
|
|
|
// TreeAppInstanceRequest Tree App Instance Request.
|
|
type TreeAppInstanceRequest struct {
|
|
Paths []string `json:"paths"`
|
|
}
|
|
|
|
// TreeAppInstanceResponse Tree App Instance Response.
|
|
type TreeAppInstanceResponse struct {
|
|
Code int `json:"code"`
|
|
Data map[string][]*TreeAppInstance `json:"data"`
|
|
}
|
|
|
|
// TreeAppInstance Tree App Instance.
|
|
type TreeAppInstance struct {
|
|
HostName string `json:"hostname"`
|
|
}
|
|
|
|
// TreePlatformTokenRequest Tree Platform Token Request.
|
|
type TreePlatformTokenRequest struct {
|
|
UserName string `json:"user_name"`
|
|
PlatformID string `json:"platform_id"`
|
|
}
|
|
|
|
// TreeRole Tree Role.
|
|
type TreeRole struct {
|
|
UserName string `json:"user_name"`
|
|
Role int `json:"role"`
|
|
OldRole int `json:"old_role"`
|
|
RdSre bool `json:"rd_sre"`
|
|
}
|
|
|
|
// TreeConf tree conf.
|
|
type TreeConf struct {
|
|
Host string
|
|
Key string
|
|
Secret string
|
|
}
|
|
|
|
// TreeInstanceRequest request for hostname.
|
|
type TreeInstanceRequest struct {
|
|
Path string `query:"path"`
|
|
PathFuzzy string `query:"path_fuzzy"`
|
|
Hostname string `query:"hostname"`
|
|
HostnameFuzzy string `query:"hostname_fuzzy"`
|
|
HostnameRegex string `query:"hostname_regex"`
|
|
}
|
|
|
|
// ToQueryURI convert field to uri.
|
|
func (tir TreeInstanceRequest) ToQueryURI() string {
|
|
var (
|
|
params = &url.Values{}
|
|
t = reflect.TypeOf(tir)
|
|
v = reflect.ValueOf(tir)
|
|
fv string
|
|
)
|
|
for i := 0; i < t.NumField(); i++ {
|
|
fv = v.Field(i).Interface().(string)
|
|
if fv != "" {
|
|
params.Set(t.Field(i).Tag.Get(_query), fv)
|
|
}
|
|
}
|
|
return params.Encode()
|
|
}
|