You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
2.7 KiB
116 lines
2.7 KiB
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() |
|
}
|
|
|