mirror of
https://hubproxy.babadafafafafa.cn/https://github.com/yunionio/cloudpods.git
synced 2026-09-20 08:03:53 +08:00
Compare commits
104 Commits
v4.0.3-rc.
...
v4.0.2-202
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c14170ff8f | ||
|
|
6f23751754 | ||
|
|
ece4993df6 | ||
|
|
fec1f2495b | ||
|
|
e42d360bb5 | ||
|
|
6ea800897e | ||
|
|
f1740579f1 | ||
|
|
da37f6836a | ||
|
|
e701abe273 | ||
|
|
e51be81c7e | ||
|
|
5649836123 | ||
|
|
590a775cd8 | ||
|
|
184de997c5 | ||
|
|
c7b7911401 | ||
|
|
5250d2b647 | ||
|
|
da094dbb5e | ||
|
|
3b031ebdca | ||
|
|
93ea44d336 | ||
|
|
bdbe0642a0 | ||
|
|
e6e4b70b6f | ||
|
|
4b91e6235c | ||
|
|
c8a6867c10 | ||
|
|
1673cf3fca | ||
|
|
140054c927 | ||
|
|
fc33607c0e | ||
|
|
1b276b02cb | ||
|
|
8543f3735d | ||
|
|
5dd913b40f | ||
|
|
bfca09016e | ||
|
|
d1dec1d4bb | ||
|
|
129e15e52f | ||
|
|
f832e211bd | ||
|
|
d1351b84c7 | ||
|
|
36afb063ef | ||
|
|
8bce8e4e17 | ||
|
|
92b77d1f4d | ||
|
|
d9229dae60 | ||
|
|
af117c4f4b | ||
|
|
2e89fd9f95 | ||
|
|
e9c33ccb09 | ||
|
|
cc7e6fca79 | ||
|
|
aaf93d316d | ||
|
|
734e73da54 | ||
|
|
bfd9d30689 | ||
|
|
d9d0819e94 | ||
|
|
f5facd4c0a | ||
|
|
465ffb8977 | ||
|
|
9799dcadf8 | ||
|
|
39cbadd2b8 | ||
|
|
817673bbc5 | ||
|
|
f7161ae1bf | ||
|
|
42b5913416 | ||
|
|
2e90864f32 | ||
|
|
15ea182d65 | ||
|
|
3c4f838bbb | ||
|
|
bbcdc46a82 | ||
|
|
67ad215c00 | ||
|
|
7d1f917f0d | ||
|
|
673bae1853 | ||
|
|
2dad4c9162 | ||
|
|
093a497f63 | ||
|
|
bdbb3e71e0 | ||
|
|
1eb46d87e1 | ||
|
|
050d940832 | ||
|
|
e7caa1f6e2 | ||
|
|
1667655c28 | ||
|
|
36e4f22d37 | ||
|
|
55e355860c | ||
|
|
3a53b034ba | ||
|
|
24b1bc9c38 | ||
|
|
11ceadfcf2 | ||
|
|
f8611bb9f0 | ||
|
|
aa5f56b225 | ||
|
|
1868c64c2f | ||
|
|
d5e86b770b | ||
|
|
9c77f44b94 | ||
|
|
2ea2e74464 | ||
|
|
97c6af0dab | ||
|
|
2c2fe1bb16 | ||
|
|
b6622f1fde | ||
|
|
82c5ab2fb1 | ||
|
|
10bdd3c05d | ||
|
|
02370a6529 | ||
|
|
24012af0d7 | ||
|
|
fd12d54130 | ||
|
|
aa4cfa6688 | ||
|
|
1d58d47425 | ||
|
|
bdc91273e1 | ||
|
|
f3f21962ab | ||
|
|
c7cdb0297a | ||
|
|
0d58a6228a | ||
|
|
348fcdfca9 | ||
|
|
83814d3c84 | ||
|
|
4b4ee6aa64 | ||
|
|
2f91466ab4 | ||
|
|
2d99794806 | ||
|
|
15318ac0ea | ||
|
|
1786b05c3a | ||
|
|
75d2af1a6a | ||
|
|
0bb65d75e5 | ||
|
|
81a336ea41 | ||
|
|
0c9d242f34 | ||
|
|
db2932e20c | ||
|
|
2d4a3da562 |
2
Makefile
2
Makefile
@@ -260,7 +260,7 @@ dep:
|
||||
@echo "$$depDeprecated"
|
||||
@$(MAKE) mod
|
||||
|
||||
RELEASE_BRANCH:=release/4.0
|
||||
RELEASE_BRANCH:=release/4.0.2
|
||||
GOPROXY ?= direct
|
||||
|
||||
mod:
|
||||
|
||||
@@ -2,7 +2,7 @@ FROM registry.cn-beijing.aliyuncs.com/yunionio/ansibleserver-base:3.22.2-0
|
||||
|
||||
# https://github.com/yunionio/telegraf/blob/yn-release-1.36/Makefile.yn#L28
|
||||
# install playbook and telegraf install pkg
|
||||
COPY --from=registry.cn-beijing.aliyuncs.com/yunionio/file-repo:v0.5.2 /opt/yunion/playbook /opt/yunion/playbook
|
||||
COPY --from=registry.cn-beijing.aliyuncs.com/yunionio/file-repo:v0.5.2 /opt/yunion/ansible-install-pkg /opt/yunion/ansible-install-pkg
|
||||
COPY --from=registry.cn-beijing.aliyuncs.com/yunionio/file-repo:v0.5.3 /opt/yunion/playbook /opt/yunion/playbook
|
||||
COPY --from=registry.cn-beijing.aliyuncs.com/yunionio/file-repo:v0.5.3 /opt/yunion/ansible-install-pkg /opt/yunion/ansible-install-pkg
|
||||
|
||||
ADD ./_output/alpine-build/bin/ansibleserver /opt/yunion/bin/ansibleserver
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/host-deployer-base:1.5.3
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/host-deployer-base:1.5.8
|
||||
|
||||
LABEL maintainer="Yaoqi Wan wanyaoqi@yunionyun.com"
|
||||
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
策略名称: {{.name}}
|
||||
触发时间: {{.start_time}}
|
||||
报警级别: {{.level}}
|
||||
触发条件: {{.description | unescaped}}
|
||||
报警数量:{{len .matches}}
|
||||
触发条件:{{if eq (len .matches) 1}} {{(index .matches 0).condition | unescaped}}{{else}}
|
||||
{{- range .matches}}- {{.condition | unescaped}}
|
||||
{{- end}}{{end}}
|
||||
{{if .reason}}报警原因: {{.reason}}
|
||||
{{end}}报警数量:{{len .matches}}
|
||||
资源名称:{{.resource_name}}
|
||||
|
||||
详情地址: {{.web_url}}
|
||||
@@ -88,8 +88,19 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="td">策略详情:</td>
|
||||
<td>{{.description}}</td>
|
||||
<td>
|
||||
{{- range $i, $m := .matches -}}
|
||||
{{- if $i}}<br/>{{end -}}
|
||||
{{- $m.condition | unescaped -}}
|
||||
{{- end -}}
|
||||
</td>
|
||||
</tr>
|
||||
{{if .reason}}
|
||||
<tr>
|
||||
<td class="td">报警原因:</td>
|
||||
<td>{{.reason}}</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
</table>
|
||||
<table class="table" style="padding-top: 6px; padding-bottom: 10px;">
|
||||
<tr>
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
AlertName: {{.name}}
|
||||
Time: {{.start_time}}
|
||||
Level: {{.level}}
|
||||
TriggerCondition: {{.description | unescaped}}
|
||||
AlertCount: {{len .matches}}
|
||||
TriggerCondition:{{if eq (len .matches) 1}} {{(index .matches 0).condition | unescaped}}{{else}}
|
||||
{{- range .matches}}- {{.condition | unescaped}}
|
||||
{{- end}}{{end}}
|
||||
{{if .reason}}Reason: {{.reason}}
|
||||
{{end}}AlertCount: {{len .matches}}
|
||||
ResourceName: {{.resource_name}}
|
||||
|
||||
WebUrl: {{.web_url}}
|
||||
|
||||
@@ -88,8 +88,19 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="td">Strategy details:</td>
|
||||
<td>{{.description}}</td>
|
||||
<td>
|
||||
{{- range $i, $m := .matches -}}
|
||||
{{- if $i}}<br/>{{end -}}
|
||||
{{- $m.condition | unescaped -}}
|
||||
{{- end -}}
|
||||
</td>
|
||||
</tr>
|
||||
{{if .reason}}
|
||||
<tr>
|
||||
<td class="td">Reason:</td>
|
||||
<td>{{.reason}}</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
</table>
|
||||
<table class="table" style="padding-top: 6px; padding-bottom: 10px;">
|
||||
<tr>
|
||||
|
||||
@@ -42,6 +42,12 @@ import (
|
||||
func init() {
|
||||
cmd := shell.NewResourceCmd(&modules.Disks)
|
||||
cmd.List(&compute_options.DiskListOptions{})
|
||||
cmd.Show(&compute_options.DiskIdOptions{})
|
||||
cmd.Perform("public", &compute_options.DiskIdOptions{})
|
||||
cmd.Perform("private", &compute_options.DiskIdOptions{})
|
||||
cmd.Perform("syncstatus", &compute_options.DiskIdOptions{})
|
||||
cmd.Perform("change-owner-candidate-domains", &compute_options.DiskIdOptions{})
|
||||
cmd.Perform("disk-cancel-delete", &compute_options.DiskIdOptions{})
|
||||
cmd.Perform("set-class-metadata", &options.ResourceMetadataOptions{})
|
||||
cmd.Perform("rebuild", &compute_options.DiskRebuildOptions{})
|
||||
cmd.Perform("migrate", &compute_options.DiskMigrateOptions{})
|
||||
@@ -49,26 +55,6 @@ func init() {
|
||||
cmd.Perform("change-billing-type", new(compute_options.DiskChangeBillingTypeOptions))
|
||||
cmd.Perform("change-storage-type", &compute_options.DiskChangeStorageTypeOptions{})
|
||||
|
||||
type DiskDetailOptions struct {
|
||||
ID string `help:"ID or Name of disk"`
|
||||
}
|
||||
R(&DiskDetailOptions{}, "disk-show", "Show details of disk", func(s *mcclient.ClientSession, args *DiskDetailOptions) error {
|
||||
disk, e := modules.Disks.Get(s, args.ID, nil)
|
||||
if e != nil {
|
||||
return e
|
||||
}
|
||||
printObject(disk)
|
||||
return nil
|
||||
})
|
||||
R(&DiskDetailOptions{}, "disk-cancel-delete", "Cancel pending delete disks", func(s *mcclient.ClientSession, args *DiskDetailOptions) error {
|
||||
disk, e := modules.Disks.PerformAction(s, args.ID, "cancel-delete", nil)
|
||||
if e != nil {
|
||||
return e
|
||||
}
|
||||
printObject(disk)
|
||||
return nil
|
||||
})
|
||||
|
||||
type DiskDeleteOptions struct {
|
||||
ID []string `help:"ID of disks to delete" metavar:"DISK"`
|
||||
OverridePendingDelete bool `help:"Delete disk directly instead of pending delete" short-token:"f"`
|
||||
@@ -97,25 +83,7 @@ func init() {
|
||||
return nil
|
||||
})
|
||||
|
||||
R(&DiskDetailOptions{}, "disk-public", "Make a disk public", func(s *mcclient.ClientSession, args *DiskDetailOptions) error {
|
||||
disk, e := modules.Disks.PerformAction(s, args.ID, "public", nil)
|
||||
if e != nil {
|
||||
return e
|
||||
}
|
||||
printObject(disk)
|
||||
return nil
|
||||
})
|
||||
|
||||
R(&DiskDetailOptions{}, "disk-private", "Make a disk private", func(s *mcclient.ClientSession, args *DiskDetailOptions) error {
|
||||
disk, e := modules.Disks.PerformAction(s, args.ID, "private", nil)
|
||||
if e != nil {
|
||||
return e
|
||||
}
|
||||
printObject(disk)
|
||||
return nil
|
||||
})
|
||||
|
||||
R(&DiskDetailOptions{}, "disk-metadata", "Get metadata of a disk", func(s *mcclient.ClientSession, args *DiskDetailOptions) error {
|
||||
R(&compute_options.DiskIdOptions{}, "disk-metadata", "Get metadata of a disk", func(s *mcclient.ClientSession, args *compute_options.DiskIdOptions) error {
|
||||
meta, e := modules.Disks.GetMetadata(s, args.ID, nil)
|
||||
if e != nil {
|
||||
return e
|
||||
@@ -124,20 +92,11 @@ func init() {
|
||||
return nil
|
||||
})
|
||||
|
||||
R(&DiskDetailOptions{}, "disk-syncstatus", "Sync status for disk", func(s *mcclient.ClientSession, args *DiskDetailOptions) error {
|
||||
ret, e := modules.Disks.PerformAction(s, args.ID, "syncstatus", nil)
|
||||
if e != nil {
|
||||
return e
|
||||
}
|
||||
printObject(ret)
|
||||
return nil
|
||||
})
|
||||
|
||||
type DiskUpdateOptions struct {
|
||||
ID string `help:"ID or name of disk"`
|
||||
Name string `help:"New name of disk"`
|
||||
Desc string `help:"Description" metavar:"DESCRIPTION"`
|
||||
AutoDelete string `help:"enable/disable auto delete of disk" choices:"enable|disable"`
|
||||
AutoDelete string `help:"Set disk auto_delete (true/false or enable/disable)" choices:"true|false|enable|disable"`
|
||||
AutoSnapshot string `help:"enable/disable auto snapshot of disk" choices:"enable|disable"`
|
||||
DiskType string `help:"Disk type" choices:"data|volume|sys"`
|
||||
IsSsd *bool `help:"mark disk as ssd" negative:"no-is-ssd"`
|
||||
@@ -152,7 +111,7 @@ func init() {
|
||||
params.Add(jsonutils.NewString(args.Desc), "description")
|
||||
}
|
||||
if len(args.AutoDelete) > 0 {
|
||||
if args.AutoDelete == "enable" {
|
||||
if args.AutoDelete == "enable" || args.AutoDelete == "true" {
|
||||
params.Add(jsonutils.JSONTrue, "auto_delete")
|
||||
} else {
|
||||
params.Add(jsonutils.JSONFalse, "auto_delete")
|
||||
@@ -301,7 +260,7 @@ func init() {
|
||||
return nil
|
||||
})
|
||||
|
||||
R(&DiskDetailOptions{}, "disk-change-owner-candidate-domains", "Get change owner candidate domain list", func(s *mcclient.ClientSession, args *DiskDetailOptions) error {
|
||||
R(&compute_options.DiskIdOptions{}, "disk-change-owner-candidate-domains", "Get change owner candidate domain list", func(s *mcclient.ClientSession, args *compute_options.DiskIdOptions) error {
|
||||
result, err := modules.Disks.GetSpecific(s, args.ID, "change-owner-candidate-domains", nil)
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@@ -267,6 +267,7 @@ func init() {
|
||||
Ip6Addr string `help:"IPv6 address"`
|
||||
Bridge string `help:"Bridge of hostwire"`
|
||||
Interface string `help:"Interface name, eg:eth0, en0"`
|
||||
VlanId int `help:"Vlan ID"`
|
||||
}
|
||||
R(&HostAddNetIfOptions{}, "host-add-netif", "Host add a NIC", func(s *mcclient.ClientSession, args *HostAddNetIfOptions) error {
|
||||
params := jsonutils.NewDict()
|
||||
@@ -289,6 +290,7 @@ func init() {
|
||||
if len(args.Interface) > 0 {
|
||||
params.Add(jsonutils.NewString(args.Interface), "interface")
|
||||
}
|
||||
addVlanIdToParams(params, args.VlanId)
|
||||
result, err := modules.Hosts.PerformAction(s, args.ID, "add-netif", params)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -298,12 +300,14 @@ func init() {
|
||||
})
|
||||
|
||||
type HostRemoveNetIfOptions struct {
|
||||
ID string `help:"ID or Name of host"`
|
||||
MAC string `help:"MAC of NIC to remove"`
|
||||
ID string `help:"ID or Name of host"`
|
||||
MAC string `help:"MAC of NIC to remove"`
|
||||
VlanId int `help:"Vlan Id"`
|
||||
}
|
||||
R(&HostRemoveNetIfOptions{}, "host-remove-netif", "Remove NIC from host", func(s *mcclient.ClientSession, args *HostRemoveNetIfOptions) error {
|
||||
params := jsonutils.NewDict()
|
||||
params.Add(jsonutils.NewString(args.MAC), "mac")
|
||||
addVlanIdToParams(params, args.VlanId)
|
||||
result, err := modules.Hosts.PerformAction(s, args.ID, "remove-netif", params)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -319,6 +323,7 @@ func init() {
|
||||
Ip6 string `help:"IPv6 address"`
|
||||
Network string `help:"network to connect"`
|
||||
Reserved bool `help:"fetch IP from reserved pool"`
|
||||
VlanId int `help:"Vlan ID"`
|
||||
}
|
||||
R(&HostEnableNetIfOptions{}, "host-enable-netif", "Enable a network interface for a host", func(s *mcclient.ClientSession, args *HostEnableNetIfOptions) error {
|
||||
params := jsonutils.NewDict()
|
||||
@@ -337,6 +342,7 @@ func init() {
|
||||
if len(args.Network) > 0 {
|
||||
params.Add(jsonutils.NewString(args.Network), "network")
|
||||
}
|
||||
addVlanIdToParams(params, args.VlanId)
|
||||
result, err := modules.Hosts.PerformAction(s, args.ID, "enable-netif", params)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -349,6 +355,7 @@ func init() {
|
||||
ID string `help:"ID or Name of host"`
|
||||
MAC string `help:"MAC of NIC to disable"`
|
||||
Reserve bool `help:"Reserve the IP address"`
|
||||
VlanId int `help:"Vlan Id"`
|
||||
}
|
||||
R(&HostDisableNetIfOptions{}, "host-disable-netif", "Disable a network interface", func(s *mcclient.ClientSession, args *HostDisableNetIfOptions) error {
|
||||
params := jsonutils.NewDict()
|
||||
@@ -356,6 +363,7 @@ func init() {
|
||||
if args.Reserve {
|
||||
params.Add(jsonutils.JSONTrue, "reserve")
|
||||
}
|
||||
addVlanIdToParams(params, args.VlanId)
|
||||
result, err := modules.Hosts.PerformAction(s, args.ID, "disable-netif", params)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -697,3 +705,9 @@ func init() {
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
func addVlanIdToParams(params *jsonutils.JSONDict, vlanId int) {
|
||||
if vlanId > 1 {
|
||||
params.Add(jsonutils.NewInt(int64(vlanId)), "vlan_id")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ func init() {
|
||||
return nil
|
||||
})
|
||||
|
||||
R(&options.TagListOptions{}, "tag-list", "List tags", func(s *mcclient.ClientSession, opts *options.TagListOptions) error {
|
||||
R(&options.TagListOptions{}, "service-metadata-list", "List service metadata", func(s *mcclient.ClientSession, opts *options.TagListOptions) error {
|
||||
var mod modulebase.IResourceManager
|
||||
switch opts.Service {
|
||||
case "compute":
|
||||
|
||||
@@ -98,6 +98,22 @@ func init() {
|
||||
return nil
|
||||
})
|
||||
|
||||
type NetworkCreate3Options struct {
|
||||
compute_options.NetworkCreateOptions `start_ip->positional:"false" end_ip->positional:"false" net_mask->positional:"false"`
|
||||
}
|
||||
R(&NetworkCreate3Options{}, "network-create3", "Create a dual-stack virtual network", func(s *mcclient.ClientSession, args *NetworkCreate3Options) error {
|
||||
params, err := args.Params()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
net, err := modules.Networks.Create(s, params)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
printObject(net)
|
||||
return nil
|
||||
})
|
||||
|
||||
type NetworkSplitOptions struct {
|
||||
NETWORK string `help:"ID or name of network to split"`
|
||||
IP string `help:"Start ip of the split network"`
|
||||
|
||||
@@ -36,4 +36,7 @@ func init() {
|
||||
cmd.Perform("change-owner", &options.SecgroupChangeOwnerOptions{})
|
||||
cmd.Perform("import-rules", &options.SecgroupImportRulesOptions{})
|
||||
cmd.PerformClass("clean", &options.SecgroupCleanOptions{})
|
||||
|
||||
scmd := shell.NewResourceCmd(&modules.Servernetworksecgroups)
|
||||
scmd.List(&options.ServerNetworkSecgroupListOptions{})
|
||||
}
|
||||
|
||||
@@ -23,14 +23,20 @@ import (
|
||||
"yunion.io/x/pkg/util/printutils"
|
||||
"yunion.io/x/pkg/util/regutils"
|
||||
|
||||
"yunion.io/x/onecloud/cmd/climc/shell"
|
||||
"yunion.io/x/onecloud/pkg/apis/compute"
|
||||
"yunion.io/x/onecloud/pkg/cloudcommon/cmdline"
|
||||
"yunion.io/x/onecloud/pkg/mcclient"
|
||||
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
compute_options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
|
||||
)
|
||||
|
||||
func init() {
|
||||
|
||||
cmd := shell.NewResourceCmd(&modules.ServerNetworkTrafficLogs)
|
||||
cmd.List(new(compute_options.ServerNetworkTrafficLogListOptions))
|
||||
|
||||
type ServerNetworkListOptions struct {
|
||||
options.BaseListOptions
|
||||
Server string `help:"ID or Name of Server"`
|
||||
|
||||
@@ -30,6 +30,7 @@ import (
|
||||
"yunion.io/x/pkg/util/printutils"
|
||||
|
||||
"yunion.io/x/onecloud/cmd/climc/shell"
|
||||
billing_api "yunion.io/x/onecloud/pkg/apis/billing"
|
||||
"yunion.io/x/onecloud/pkg/apis/compute"
|
||||
"yunion.io/x/onecloud/pkg/mcclient"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/modulebase"
|
||||
@@ -132,6 +133,10 @@ func init() {
|
||||
cmd.BatchPerform("set-root-disk-matcher", &options.ServerSetRootDiskMatcher{})
|
||||
cmd.Perform("disable-auto-merge-snapshot", &options.ServerDisableAutoMergeSnapshot{})
|
||||
cmd.BatchPerform("set-tpm", &options.ServerSetTpmOptions{})
|
||||
cmd.Perform("set-kickstart", &options.ServerKickstartConfigOptions{})
|
||||
cmd.Perform("delete-kickstart", &options.ServerIdOptions{})
|
||||
cmd.Perform("kickstart-complete", &options.ServerKickstartCompleteOptions{})
|
||||
cmd.Get("kickstart", new(options.ServerIdOptions))
|
||||
cmd.Get("vnc", new(options.ServerVncOptions))
|
||||
cmd.Get("desc", new(options.ServerIdOptions))
|
||||
cmd.Get("status", new(options.ServerIdOptions))
|
||||
@@ -148,6 +153,10 @@ func init() {
|
||||
cmd.Get("screen-dump-show", new(options.ServerScreenDumpOptions))
|
||||
cmd.Get("numa-info", new(options.ServerIdOptions))
|
||||
cmd.BatchPerform("screen-dump", new(options.ServerIdsOptions))
|
||||
cmd.Perform("set-network-num-queues", new(options.ServerSetNetworkNumQueues))
|
||||
cmd.Perform("set-network-secgroup", new(options.ServerNetworkSecGroupsOptions))
|
||||
cmd.Perform("add-network-secgroup", new(options.ServerNetworkSecGroupsOptions))
|
||||
cmd.Perform("revoke-network-secgroup", new(options.ServerNetworkSecGroupsOptions))
|
||||
|
||||
cmd.GetProperty(&options.ServerStatusStatisticsOptions{})
|
||||
cmd.GetProperty(&options.ServerProjectStatisticsOptions{})
|
||||
@@ -209,7 +218,7 @@ func init() {
|
||||
params.Name = opts.NAME
|
||||
params.AutoStart = opts.AutoStart
|
||||
params.Eip = opts.Eip
|
||||
params.EipChargeType = opts.EipChargeType
|
||||
params.EipChargeType = billing_api.ParseNetChargeType(opts.EipChargeType)
|
||||
params.EipBw = opts.EipBw
|
||||
|
||||
server, err := modules.Servers.Create(s, params.JSON(params))
|
||||
|
||||
@@ -54,7 +54,7 @@ type ImageOptionalOptions struct {
|
||||
OsDist string `help:"Distribution name of OS" metavar:"OS_DISTRIBUTION"`
|
||||
OsVersion string `help:"Version of OS"`
|
||||
OsCodename string `help:"Codename of OS"`
|
||||
OsArch string `help:"Os hardware architecture" choices:"x86|x86_64|aarch32|aarch64"`
|
||||
OsArch string `help:"Os hardware architecture" choices:"x86|x86_64|aarch32|aarch64|riscv32|riscv64"`
|
||||
OsLang string `help:"OS Language" choices:"zh_CN|en_US"`
|
||||
Preference int64 `help:"Disk preferences"`
|
||||
Notes string `help:"Notes about the image"`
|
||||
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
)
|
||||
|
||||
func init() {
|
||||
cmd := shell.NewResourceCmd(&modules.Difies)
|
||||
cmd := shell.NewResourceCmd(&modules.LLMs).WithKeyword("dify")
|
||||
cmd.BatchCreate(new(options.DifyCreateOptions))
|
||||
cmd.List(new(options.DifyListOptions))
|
||||
cmd.Show(new(options.DifyShowOptions))
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
package llm
|
||||
|
||||
import (
|
||||
"yunion.io/x/onecloud/cmd/climc/shell"
|
||||
modules "yunion.io/x/onecloud/pkg/mcclient/modules/llm"
|
||||
base_options "yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
options "yunion.io/x/onecloud/pkg/mcclient/options/llm"
|
||||
)
|
||||
|
||||
func init() {
|
||||
cmd := shell.NewResourceCmd(&modules.DifySku)
|
||||
cmd.List(new(options.DifySkuListOptions))
|
||||
cmd.Show(new(options.DifySkuShowOptions))
|
||||
cmd.Update(new(options.DifySkuUpdateOptions))
|
||||
cmd.Create(new(options.DifySkuCreateOptions))
|
||||
cmd.Delete(new(options.DifySkuDeleteOptions))
|
||||
cmd.Perform("public", &base_options.BasePublicOptions{})
|
||||
cmd.Perform("private", &base_options.BaseIdOptions{})
|
||||
// cmd.Perform("clone", new(options.DesktopSkuCloneOptions))
|
||||
}
|
||||
@@ -2,7 +2,6 @@ package llm
|
||||
|
||||
import (
|
||||
"yunion.io/x/onecloud/cmd/climc/shell"
|
||||
|
||||
modules "yunion.io/x/onecloud/pkg/mcclient/modules/llm"
|
||||
commonoptions "yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
options "yunion.io/x/onecloud/pkg/mcclient/options/llm"
|
||||
@@ -22,4 +21,5 @@ func init() {
|
||||
cmd.Perform("public", new(commonoptions.BasePublicOptions))
|
||||
cmd.Perform("private", new(commonoptions.BaseIdOptions))
|
||||
cmd.PerformClass("import", new(options.LLMInstantModelImportOptions))
|
||||
cmd.GetProperty(new(options.LLMInstantModelCommunityRegistryOptions))
|
||||
}
|
||||
|
||||
@@ -11,13 +11,17 @@ func init() {
|
||||
cmd.BatchCreate(new(options.LLMCreateOptions))
|
||||
cmd.List(new(options.LLMListOptions))
|
||||
cmd.Show(new(options.LLMShowOptions))
|
||||
cmd.Update(new(options.LLMUpdateOptions))
|
||||
cmd.Delete(new(options.LLMDeleteOptions))
|
||||
// cmd.Perform("change-model", new(options.LLMChangeModelOptions))
|
||||
cmd.Perform("syncstatus", new(options.LLMIdOptions))
|
||||
cmd.BatchPerform("stop", new(options.LLMStopOptions))
|
||||
cmd.BatchPerform("start", new(options.LLMStartOptions))
|
||||
cmd.BatchPerform("restart", new(options.LLMRestartOptions))
|
||||
cmd.Get("probed-models", new(options.LLMIdOptions))
|
||||
cmd.Get("url", new(options.LLMIdOptions))
|
||||
cmd.Get("login-info", new(options.LLMIdOptions))
|
||||
cmd.Custom(shell.CustomActionGet, "available-network", new(options.LLMAvailableNetworkOptions))
|
||||
cmd.Perform("save-instant-model", new(options.LLMSaveInstantModelOptions))
|
||||
cmd.Perform("quick-models", new(options.LLMQuickModelsOptions))
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import (
|
||||
options "yunion.io/x/onecloud/pkg/mcclient/options/llm"
|
||||
)
|
||||
|
||||
// llm-sku: unified SKU (ollama/vllm/dify). Create/update here for ollama|vllm; for dify use dify-sku or list with --llm-type dify.
|
||||
func init() {
|
||||
cmd := shell.NewResourceCmd(&modules.LLMSku)
|
||||
cmd.List(new(options.LLMSkuListOptions))
|
||||
@@ -16,5 +17,4 @@ func init() {
|
||||
cmd.Delete(new(options.LLMSkuDeleteOptions))
|
||||
cmd.Perform("public", &base_options.BasePublicOptions{})
|
||||
cmd.Perform("private", &base_options.BaseIdOptions{})
|
||||
// cmd.Perform("clone", new(options.DesktopSkuCloneOptions))
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"io"
|
||||
"net/url"
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"yunion.io/x/onecloud/cmd/climc/shell"
|
||||
@@ -28,6 +28,7 @@ func init() {
|
||||
// cmd.Get("chat-test", new(options.MCPAgentChatTestOptions))
|
||||
cmd.Get("request", new(options.MCPAgentMCPAgentRequestOptions))
|
||||
shell.R(&options.MCPAgentMCPAgentRequestOptions{}, "mcp-agent-chat", "Chat with MCP Agent (Stream)", chatStream)
|
||||
shell.R(&options.MCPAgentDefaultChatOptions{}, "mcp-agent-chat-default", "Chat with default MCP Agent (Stream, no ID required)", chatStreamDefault)
|
||||
}
|
||||
|
||||
func chatStream(s *mcclient.ClientSession, args *options.MCPAgentMCPAgentRequestOptions) error {
|
||||
@@ -36,15 +37,24 @@ func chatStream(s *mcclient.ClientSession, args *options.MCPAgentMCPAgentRequest
|
||||
return err
|
||||
}
|
||||
|
||||
path := fmt.Sprintf("/mcp_agents/%s/chat-stream?message=%s", id, url.QueryEscape(args.Message))
|
||||
bodyJSON, err := args.Params()
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to build request params: %v", err)
|
||||
}
|
||||
|
||||
headers := http.Header{}
|
||||
headers.Set("Content-Type", "application/json")
|
||||
|
||||
body := strings.NewReader(bodyJSON.String())
|
||||
|
||||
path := fmt.Sprintf("/mcp_agents/%s/chat-stream", id)
|
||||
resp, err := s.RawVersionRequest(
|
||||
modules.MCPAgent.ServiceType(),
|
||||
modules.MCPAgent.EndpointType(),
|
||||
"GET",
|
||||
"POST",
|
||||
path,
|
||||
nil,
|
||||
nil,
|
||||
headers,
|
||||
body,
|
||||
)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -79,3 +89,50 @@ func chatStream(s *mcclient.ClientSession, args *options.MCPAgentMCPAgentRequest
|
||||
fmt.Println()
|
||||
return nil
|
||||
}
|
||||
|
||||
func chatStreamDefault(s *mcclient.ClientSession, args *options.MCPAgentDefaultChatOptions) error {
|
||||
bodyJSON, err := args.Params()
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to build request params: %v", err)
|
||||
}
|
||||
headers := http.Header{}
|
||||
headers.Set("Content-Type", "application/json")
|
||||
body := strings.NewReader(bodyJSON.String())
|
||||
path := "/mcp_agents/default/chat-stream"
|
||||
resp, err := s.RawVersionRequest(
|
||||
modules.MCPAgent.ServiceType(),
|
||||
modules.MCPAgent.EndpointType(),
|
||||
"POST",
|
||||
path,
|
||||
headers,
|
||||
body,
|
||||
)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
if resp.StatusCode != 200 {
|
||||
respBody, _ := io.ReadAll(resp.Body)
|
||||
return fmt.Errorf("Error: %s %s", resp.Status, string(respBody))
|
||||
}
|
||||
scanner := bufio.NewScanner(resp.Body)
|
||||
var eventData []string
|
||||
for scanner.Scan() {
|
||||
line := scanner.Text()
|
||||
if line == "" {
|
||||
if len(eventData) > 0 {
|
||||
fmt.Print(strings.Join(eventData, "\n"))
|
||||
eventData = nil
|
||||
}
|
||||
continue
|
||||
}
|
||||
if after, found := strings.CutPrefix(line, "data: "); found {
|
||||
eventData = append(eventData, after)
|
||||
}
|
||||
}
|
||||
if err := scanner.Err(); err != nil {
|
||||
return err
|
||||
}
|
||||
fmt.Println()
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -23,4 +23,5 @@ func init() {
|
||||
cmd := NewResourceCmd(modules.MonitorResourceManager)
|
||||
cmd.GetProperty(new(options.MonitorResourceJointAlertOptions))
|
||||
cmd.List(new(options.MonitorResourceListOptions))
|
||||
cmd.Perform("do-action", new(options.MonitorResourceDoActionOptions))
|
||||
}
|
||||
|
||||
87
cmd/isocli/main.go
Normal file
87
cmd/isocli/main.go
Normal file
@@ -0,0 +1,87 @@
|
||||
// Copyright 2019 Yunion
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"yunion.io/x/pkg/util/shellutils"
|
||||
"yunion.io/x/structarg"
|
||||
|
||||
_ "yunion.io/x/onecloud/cmd/isocli/shell"
|
||||
)
|
||||
|
||||
type BaseOptions struct {
|
||||
Debug bool `help:"debug mode"`
|
||||
SUBCOMMAND string `help:"aliyuncli subcommand" subcommand:"true"`
|
||||
}
|
||||
|
||||
func getSubcommandParser() (*structarg.ArgumentParser, error) {
|
||||
parse, e := structarg.NewArgumentParserWithHelp(&BaseOptions{},
|
||||
"isocli",
|
||||
"Command-line ISO tools.",
|
||||
`See "isocli COMMAND --help" for help on a specific command.`)
|
||||
|
||||
if e != nil {
|
||||
return nil, e
|
||||
}
|
||||
|
||||
subcmd := parse.GetSubcommand()
|
||||
if subcmd == nil {
|
||||
return nil, fmt.Errorf("No subcommand argument.")
|
||||
}
|
||||
for _, v := range shellutils.CommandTable {
|
||||
_, e := subcmd.AddSubParserWithHelp(v.Options, v.Command, v.Desc, v.Callback)
|
||||
if e != nil {
|
||||
return nil, e
|
||||
}
|
||||
}
|
||||
return parse, nil
|
||||
}
|
||||
|
||||
func showErrorAndExit(e error) {
|
||||
fmt.Fprintf(os.Stderr, "%s", e)
|
||||
fmt.Fprintln(os.Stderr)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
func main() {
|
||||
parser, e := getSubcommandParser()
|
||||
if e != nil {
|
||||
showErrorAndExit(e)
|
||||
}
|
||||
e = parser.ParseArgs(os.Args[1:], false)
|
||||
|
||||
if parser.IsHelpSet() {
|
||||
fmt.Print(parser.HelpString())
|
||||
return
|
||||
}
|
||||
subcmd := parser.GetSubcommand()
|
||||
subparser := subcmd.GetSubParser()
|
||||
if e != nil || subparser == nil {
|
||||
if subparser != nil {
|
||||
fmt.Print(subparser.Usage())
|
||||
} else {
|
||||
fmt.Print(parser.Usage())
|
||||
}
|
||||
showErrorAndExit(e)
|
||||
}
|
||||
suboptions := subparser.Options()
|
||||
e = subcmd.Invoke(suboptions)
|
||||
if e != nil {
|
||||
showErrorAndExit(e)
|
||||
}
|
||||
}
|
||||
82
cmd/isocli/shell/iso.go
Normal file
82
cmd/isocli/shell/iso.go
Normal file
@@ -0,0 +1,82 @@
|
||||
// Copyright 2019 Yunion
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package shell
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/pkg/util/shellutils"
|
||||
|
||||
"yunion.io/x/onecloud/pkg/util/isoutils"
|
||||
)
|
||||
|
||||
func init() {
|
||||
type DetectOSOptions struct {
|
||||
ISO string `help:"ISO file"`
|
||||
}
|
||||
shellutils.R(&DetectOSOptions{}, "detect", "Detect", func(args *DetectOSOptions) error {
|
||||
stat, err := os.Stat(args.ISO)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if stat.IsDir() {
|
||||
// 如果是目录,仅遍历一层目录下的 .iso 文件
|
||||
entries, err := os.ReadDir(args.ISO)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for _, entry := range entries {
|
||||
if entry.IsDir() {
|
||||
continue // 跳过子目录
|
||||
}
|
||||
if strings.HasSuffix(strings.ToLower(entry.Name()), ".iso") {
|
||||
path := filepath.Join(args.ISO, entry.Name())
|
||||
fmt.Printf("Processing: %s\n", path)
|
||||
f, err := os.Open(path)
|
||||
if err != nil {
|
||||
fmt.Printf("Error opening %s: %v\n", path, err)
|
||||
continue // 继续处理其他文件
|
||||
}
|
||||
isoInfo, err := isoutils.DetectOSFromISO(f)
|
||||
f.Close()
|
||||
if err != nil {
|
||||
fmt.Printf("Error detecting OS from %s: %v\n", path, err)
|
||||
continue
|
||||
}
|
||||
fmt.Printf("%s: %s\n", path, jsonutils.Marshal(isoInfo))
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// 如果是文件,按原逻辑处理
|
||||
f, err := os.Open(args.ISO)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer f.Close()
|
||||
isoInfo, err := isoutils.DetectOSFromISO(f)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
fmt.Printf("%s: %s\n", args.ISO, jsonutils.Marshal(isoInfo))
|
||||
return nil
|
||||
})
|
||||
}
|
||||
146
go.mod
146
go.mod
@@ -6,29 +6,32 @@ require (
|
||||
bazil.org/fuse v0.0.0-20180421153158-65cc252bf669
|
||||
github.com/360EntSecGroup-Skylar/excelize v1.4.0
|
||||
github.com/LeeEirc/terminalparser v0.0.0-20240205084113-fbf78c8480f2
|
||||
github.com/Microsoft/go-winio v0.6.2
|
||||
github.com/aliyun/alibaba-cloud-sdk-go v1.61.684
|
||||
github.com/anacrolix/torrent v1.57.0
|
||||
github.com/benbjohnson/clock v1.0.0
|
||||
github.com/bitly/go-simplejson v0.5.0
|
||||
github.com/c-bata/go-prompt v0.2.4
|
||||
github.com/cheggaaa/pb/v3 v3.0.8
|
||||
github.com/containerd/containerd v1.4.1
|
||||
github.com/containerd/containerd v1.7.13
|
||||
github.com/containerd/typeurl v1.0.2
|
||||
github.com/coredns/coredns v1.3.0
|
||||
github.com/coreos/go-iptables v0.6.0
|
||||
github.com/creack/pty v1.1.18
|
||||
github.com/docker/docker v17.12.0-ce-rc1.0.20200916142827-bd33bbf0497b+incompatible
|
||||
github.com/docker/go-units v0.5.0
|
||||
github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96
|
||||
github.com/eggsampler/acme/v3 v3.6.2
|
||||
github.com/fernet/fernet-go v0.0.0-20180830025343-9eac43b88a5e
|
||||
github.com/fsnotify/fsnotify v1.5.4
|
||||
github.com/fsnotify/fsnotify v1.6.0
|
||||
github.com/ghodss/yaml v1.0.0
|
||||
github.com/gin-gonic/gin v1.7.7
|
||||
github.com/go-ldap/ldap/v3 v3.1.5
|
||||
github.com/go-yaml/yaml v2.1.0+incompatible
|
||||
github.com/golang-plus/errors v1.0.0
|
||||
github.com/golang-plus/uuid v1.0.0
|
||||
github.com/golang/mock v1.4.4
|
||||
github.com/golang/mock v1.6.0
|
||||
github.com/golang/protobuf v1.5.4
|
||||
github.com/google/cadvisor v0.38.5
|
||||
github.com/google/cadvisor v0.46.0
|
||||
github.com/google/gopacket v1.1.17
|
||||
github.com/google/uuid v1.6.0
|
||||
github.com/googollee/go-socket.io v0.0.0-20181214084611-0ad7206c347a
|
||||
@@ -39,8 +42,9 @@ require (
|
||||
github.com/influxdata/influxql v1.1.0
|
||||
github.com/influxdata/promql/v2 v2.12.0
|
||||
github.com/jaypipes/ghw v0.11.0
|
||||
github.com/kdomanski/iso9660 v0.4.0
|
||||
github.com/koding/websocketproxy v0.0.0-20181220232114-7ed82d81a28c
|
||||
github.com/lestrrat-go/jwx v1.0.2
|
||||
github.com/lestrrat-go/jwx v1.2.25
|
||||
github.com/lestrrat/go-jwx v0.0.0-20180221005942-b7d4802280ae
|
||||
github.com/libvirt/libvirt-go-xml v5.2.0+incompatible
|
||||
github.com/mark3labs/mcp-go v0.42.0
|
||||
@@ -52,6 +56,9 @@ require (
|
||||
github.com/miekg/dns v1.1.25
|
||||
github.com/minio/minio-go v6.0.14+incompatible
|
||||
github.com/mitchellh/go-wordwrap v1.0.1
|
||||
github.com/moby/term v0.5.0
|
||||
github.com/mogaika/udf v0.0.0-20171019171931-167f0ab01c73
|
||||
github.com/opencontainers/runtime-spec v1.1.0
|
||||
github.com/petermattis/goid v0.0.0-20250904145737-900bdf8bb490
|
||||
github.com/pierrec/lz4/v4 v4.1.15
|
||||
github.com/pkg/errors v0.9.1
|
||||
@@ -70,7 +77,7 @@ require (
|
||||
github.com/tatsushid/go-fastping v0.0.0-20160109021039-d7bb493dee3e
|
||||
github.com/tjfoc/gmsm v1.4.1
|
||||
github.com/tredoe/osutil v1.5.0
|
||||
github.com/vishvananda/netlink v1.1.0
|
||||
github.com/vishvananda/netlink v1.2.1-beta.2
|
||||
github.com/vishvananda/netns v0.0.5-0.20240412164733-9469873f4601
|
||||
github.com/vmihailenco/msgpack v4.0.4+incompatible
|
||||
github.com/xuri/excelize/v2 v2.7.1
|
||||
@@ -78,32 +85,33 @@ require (
|
||||
github.com/zexi/influxql-to-metricsql v0.1.1
|
||||
go.etcd.io/etcd/api/v3 v3.5.0
|
||||
go.etcd.io/etcd/client/v3 v3.5.0
|
||||
golang.org/x/crypto v0.21.0
|
||||
golang.org/x/net v0.23.0
|
||||
golang.org/x/sync v0.8.0
|
||||
golang.org/x/sys v0.26.0
|
||||
golang.org/x/text v0.14.0
|
||||
golang.org/x/crypto v0.41.0
|
||||
golang.org/x/net v0.43.0
|
||||
golang.org/x/sync v0.16.0
|
||||
golang.org/x/sys v0.35.0
|
||||
golang.org/x/text v0.28.0
|
||||
golang.org/x/time v0.5.0
|
||||
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028
|
||||
golang.zx2c4.com/wireguard/wgctrl v0.0.0-20230215201556-9c5414ab4bde
|
||||
google.golang.org/grpc v1.62.0
|
||||
google.golang.org/protobuf v1.35.1
|
||||
gopkg.in/fatih/set.v0 v0.2.1
|
||||
gopkg.in/ini.v1 v1.62.0
|
||||
gopkg.in/mail.v2 v2.3.1
|
||||
gopkg.in/yaml.v2 v2.4.0
|
||||
k8s.io/api v0.19.3
|
||||
k8s.io/apimachinery v0.19.3
|
||||
k8s.io/client-go v0.19.3
|
||||
k8s.io/api v0.26.2
|
||||
k8s.io/apimachinery v0.26.2
|
||||
k8s.io/client-go v0.26.2
|
||||
k8s.io/cluster-bootstrap v0.19.3
|
||||
k8s.io/cri-api v0.28.15
|
||||
k8s.io/klog/v2 v2.20.0
|
||||
k8s.io/klog/v2 v2.90.1
|
||||
moul.io/http2curl/v2 v2.3.0
|
||||
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20260115023540-d2cc546f0409
|
||||
yunion.io/x/executor v0.0.0-20250518005516-5402e9e0bed0
|
||||
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20260318103111-0977df013ba7
|
||||
yunion.io/x/executor v0.0.0-20260312022053-f538abd2b005
|
||||
yunion.io/x/jsonutils v1.0.1-0.20250507052344-1abcf4f443b1
|
||||
yunion.io/x/log v1.0.1-0.20240305175729-7cf2d6cd5a91
|
||||
yunion.io/x/ovsdb v0.0.0-20230306173834-f164f413a900
|
||||
yunion.io/x/pkg v1.10.4-0.20251114095758-2a2f105d9712
|
||||
yunion.io/x/pkg v1.10.4-0.20260224071200-5c269fa62429
|
||||
yunion.io/x/s3cli v0.0.0-20241221171442-1c11599d28e1
|
||||
yunion.io/x/sqlchemy v1.1.3-0.20251231025938-b0a38f6e9fab
|
||||
yunion.io/x/structarg v0.0.0-20231017124457-df4d5009457c
|
||||
@@ -116,6 +124,8 @@ require (
|
||||
cloud.google.com/go/iam v1.1.6 // indirect
|
||||
cloud.google.com/go/storage v1.39.1 // indirect
|
||||
gitee.com/chunanyong/dm v1.8.14 // indirect
|
||||
github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect
|
||||
github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20230306123547-8075edf89bb0 // indirect
|
||||
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect
|
||||
github.com/Azure/go-autorest/autorest v0.9.6 // indirect
|
||||
github.com/Azure/go-autorest/autorest/adal v0.8.2 // indirect
|
||||
@@ -127,8 +137,7 @@ require (
|
||||
github.com/ClickHouse/clickhouse-go v1.5.4 // indirect
|
||||
github.com/DataDog/dd-trace-go v0.6.1 // indirect
|
||||
github.com/DataDog/zstd v1.3.4 // indirect
|
||||
github.com/Microsoft/go-winio v0.6.2 // indirect
|
||||
github.com/Microsoft/hcsshim v0.8.14 // indirect
|
||||
github.com/Microsoft/hcsshim v0.11.4 // indirect
|
||||
github.com/RoaringBitmap/roaring v1.2.3 // indirect
|
||||
github.com/Shopify/sarama v1.20.0 // indirect
|
||||
github.com/StackExchange/wmi v1.2.1 // indirect
|
||||
@@ -179,38 +188,37 @@ require (
|
||||
github.com/benbjohnson/immutable v0.3.0 // indirect
|
||||
github.com/beorn7/perks v1.0.1 // indirect
|
||||
github.com/bits-and-blooms/bitset v1.2.2 // indirect
|
||||
github.com/blang/semver v3.5.1+incompatible // indirect
|
||||
github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 // indirect
|
||||
github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc // indirect
|
||||
github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8 // indirect
|
||||
github.com/buger/jsonparser v1.1.1 // indirect
|
||||
github.com/cespare/xxhash v1.1.0 // indirect
|
||||
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
||||
github.com/checkpoint-restore/go-criu/v4 v4.1.0 // indirect
|
||||
github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775 // indirect
|
||||
github.com/checkpoint-restore/go-criu/v5 v5.3.0 // indirect
|
||||
github.com/cilium/ebpf v0.9.1 // indirect
|
||||
github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 // indirect
|
||||
github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59 // indirect
|
||||
github.com/containerd/console v1.0.0 // indirect
|
||||
github.com/containerd/cgroups v1.1.0 // indirect
|
||||
github.com/containerd/console v1.0.3 // indirect
|
||||
github.com/containerd/continuity v0.4.5 // indirect
|
||||
github.com/containerd/fifo v1.1.0 // indirect
|
||||
github.com/containerd/log v0.1.0 // indirect
|
||||
github.com/containerd/ttrpc v1.0.2 // indirect
|
||||
github.com/containerd/typeurl v1.0.1 // indirect
|
||||
github.com/containerd/ttrpc v1.2.2 // indirect
|
||||
github.com/containerd/typeurl/v2 v2.1.1 // indirect
|
||||
github.com/coreos/go-semver v0.3.0 // indirect
|
||||
github.com/coreos/go-systemd/v22 v22.3.2 // indirect
|
||||
github.com/cyphar/filepath-securejoin v0.2.2 // indirect
|
||||
github.com/coreos/go-systemd/v22 v22.5.0 // indirect
|
||||
github.com/cyphar/filepath-securejoin v0.2.3 // indirect
|
||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.0-20210816181553-5444fa50b93d // indirect
|
||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible // indirect
|
||||
github.com/dimchansky/utfbom v1.1.0 // indirect
|
||||
github.com/dnstap/golang-dnstap v0.0.0-20170829151710-2cf77a2b5e11 // indirect
|
||||
github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible // indirect
|
||||
github.com/docker/go-connections v0.4.0 // indirect
|
||||
github.com/docker/go-events v0.0.0-20250114142523-c867878c5e32 // indirect
|
||||
github.com/docker/go-units v0.4.0 // indirect
|
||||
github.com/dustin/go-humanize v1.0.0 // indirect
|
||||
github.com/eapache/go-resiliency v1.1.0 // indirect
|
||||
github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 // indirect
|
||||
github.com/eapache/queue v1.1.0 // indirect
|
||||
github.com/edsrzf/mmap-go v1.1.0 // indirect
|
||||
github.com/emicklei/go-restful/v3 v3.10.1 // indirect
|
||||
github.com/euank/go-kmsg-parser v2.0.0+incompatible // indirect
|
||||
github.com/farsightsec/golang-framestream v0.0.0-20181102145529-8a0cb8ba8710 // indirect
|
||||
github.com/fatih/color v1.13.0 // indirect
|
||||
@@ -224,26 +232,32 @@ require (
|
||||
github.com/go-logr/logr v1.4.2 // indirect
|
||||
github.com/go-logr/stdr v1.2.2 // indirect
|
||||
github.com/go-ole/go-ole v1.2.6 // indirect
|
||||
github.com/go-openapi/jsonpointer v0.19.5 // indirect
|
||||
github.com/go-openapi/jsonreference v0.20.0 // indirect
|
||||
github.com/go-openapi/swag v0.19.14 // indirect
|
||||
github.com/go-playground/locales v0.13.0 // indirect
|
||||
github.com/go-playground/universal-translator v0.17.0 // indirect
|
||||
github.com/go-playground/validator/v10 v10.4.1 // indirect
|
||||
github.com/go-sql-driver/mysql v1.6.0 // indirect
|
||||
github.com/godbus/dbus/v5 v5.0.4 // indirect
|
||||
github.com/goccy/go-json v0.9.7 // indirect
|
||||
github.com/godbus/dbus/v5 v5.1.0 // indirect
|
||||
github.com/gofrs/uuid v4.1.0+incompatible // indirect
|
||||
github.com/gogo/protobuf v1.3.2 // indirect
|
||||
github.com/golang-plus/errors v1.0.0 // indirect
|
||||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
||||
github.com/golang/snappy v0.0.4 // indirect
|
||||
github.com/google/btree v1.1.2 // indirect
|
||||
github.com/google/gnostic v0.5.7-v3refs // indirect
|
||||
github.com/google/go-cmp v0.6.0 // indirect
|
||||
github.com/google/go-querystring v1.0.0 // indirect
|
||||
github.com/google/gofuzz v1.1.0 // indirect
|
||||
github.com/google/gofuzz v1.2.0 // indirect
|
||||
github.com/google/s2a-go v0.1.7 // indirect
|
||||
github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect
|
||||
github.com/googleapis/gax-go/v2 v2.12.2 // indirect
|
||||
github.com/googleapis/gnostic v0.4.1 // indirect
|
||||
github.com/googollee/go-engine.io v0.0.0-20180829091931-e2f255711dcb // indirect
|
||||
github.com/gopherjs/gopherjs v0.0.0-20190910122728-9d188e94fb99 // indirect
|
||||
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect
|
||||
github.com/hashicorp/errwrap v1.1.0 // indirect
|
||||
github.com/hashicorp/go-multierror v1.1.1 // indirect
|
||||
github.com/huandu/xstrings v1.3.2 // indirect
|
||||
github.com/huaweicloud/huaweicloud-sdk-go v1.0.26 // indirect
|
||||
github.com/icholy/digest v1.1.0 // indirect
|
||||
@@ -251,17 +265,22 @@ require (
|
||||
github.com/invopop/jsonschema v0.13.0 // indirect
|
||||
github.com/jdcloud-api/jdcloud-sdk-go v1.55.0 // indirect
|
||||
github.com/jmespath/go-jmespath v0.4.0 // indirect
|
||||
github.com/josharian/intern v1.0.0 // indirect
|
||||
github.com/josharian/native v1.1.0 // indirect
|
||||
github.com/json-iterator/go v1.1.12 // indirect
|
||||
github.com/jtolds/gls v4.20.0+incompatible // indirect
|
||||
github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect
|
||||
github.com/karrick/godirwalk v1.16.1 // indirect
|
||||
github.com/karrick/godirwalk v1.17.0 // indirect
|
||||
github.com/klauspost/compress v1.16.0 // indirect
|
||||
github.com/klauspost/cpuid/v2 v2.2.3 // indirect
|
||||
github.com/kr/fs v0.1.0 // indirect
|
||||
github.com/ks3sdklib/aws-sdk-go v1.8.1 // indirect
|
||||
github.com/leodido/go-urn v1.2.0 // indirect
|
||||
github.com/lestrrat-go/iter v0.0.0-20200422075355-fc1769541911 // indirect
|
||||
github.com/lestrrat-go/pdebug v0.0.0-20200204225717-4d6bd78da58d // indirect
|
||||
github.com/lestrrat-go/backoff/v2 v2.0.8 // indirect
|
||||
github.com/lestrrat-go/blackmagic v1.0.0 // indirect
|
||||
github.com/lestrrat-go/httpcc v1.0.1 // indirect
|
||||
github.com/lestrrat-go/iter v1.0.1 // indirect
|
||||
github.com/lestrrat-go/option v1.0.0 // indirect
|
||||
github.com/lestrrat/go-pdebug v0.0.0-20180220043741-569c97477ae8 // indirect
|
||||
github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect
|
||||
github.com/ma314smith/signedxml v0.0.0-20210628192057-abc5b481ae1c // indirect
|
||||
@@ -270,7 +289,7 @@ require (
|
||||
github.com/mattn/go-isatty v0.0.16 // indirect
|
||||
github.com/mattn/go-runewidth v0.0.13 // indirect
|
||||
github.com/mattn/go-tty v0.0.0-20181127064339-e4f871175a2f // indirect
|
||||
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect
|
||||
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
|
||||
github.com/mdlayher/raw v0.0.0-20190606142536-fef19f00fc18 // indirect
|
||||
github.com/mdlayher/socket v0.4.1 // indirect
|
||||
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b // indirect
|
||||
@@ -279,24 +298,27 @@ require (
|
||||
github.com/minio/sha256-simd v1.0.0 // indirect
|
||||
github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible // indirect
|
||||
github.com/mitchellh/go-homedir v1.1.0 // indirect
|
||||
github.com/moby/sys/mountinfo v0.1.3 // indirect
|
||||
github.com/moby/term v0.5.0 // indirect
|
||||
github.com/moby/locker v1.0.1 // indirect
|
||||
github.com/moby/sys/mountinfo v0.6.2 // indirect
|
||||
github.com/moby/sys/sequential v0.5.0 // indirect
|
||||
github.com/moby/sys/signal v0.7.0 // indirect
|
||||
github.com/moby/sys/user v0.1.0 // indirect
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||
github.com/modern-go/reflect2 v1.0.2 // indirect
|
||||
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
|
||||
github.com/mozillazg/go-httpheader v0.2.1 // indirect
|
||||
github.com/mozillazg/go-pinyin v0.19.0 // indirect
|
||||
github.com/mr-tron/base58 v1.2.0 // indirect
|
||||
github.com/mrunalp/fileutils v0.0.0-20200520151820-abd8a0e76976 // indirect
|
||||
github.com/mrunalp/fileutils v0.5.0 // indirect
|
||||
github.com/mschoch/smat v0.2.0 // indirect
|
||||
github.com/multiformats/go-multihash v0.2.3 // indirect
|
||||
github.com/multiformats/go-varint v0.0.6 // indirect
|
||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
||||
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect
|
||||
github.com/opencontainers/go-digest v1.0.0 // indirect
|
||||
github.com/opencontainers/image-spec v1.0.1 // indirect
|
||||
github.com/opencontainers/runc v1.0.0-rc92 // indirect
|
||||
github.com/opencontainers/runtime-spec v1.0.3-0.20200728170252-4d89ac9fbff6 // indirect
|
||||
github.com/opencontainers/selinux v1.6.0 // indirect
|
||||
github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b // indirect
|
||||
github.com/opencontainers/runc v1.1.5 // indirect
|
||||
github.com/opencontainers/selinux v1.11.0 // indirect
|
||||
github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492 // indirect
|
||||
github.com/opentracing/opentracing-go v1.0.2 // indirect
|
||||
github.com/openzipkin/zipkin-go-opentracing v0.3.4 // indirect
|
||||
@@ -323,24 +345,24 @@ require (
|
||||
github.com/pkg/term v1.0.0 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||
github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect
|
||||
github.com/prometheus/client_golang v1.12.2 // indirect
|
||||
github.com/prometheus/client_model v0.2.0 // indirect
|
||||
github.com/prometheus/common v0.35.0 // indirect
|
||||
github.com/prometheus/procfs v0.7.3 // indirect
|
||||
github.com/prometheus/client_golang v1.14.0 // indirect
|
||||
github.com/prometheus/client_model v0.3.0 // indirect
|
||||
github.com/prometheus/common v0.37.0 // indirect
|
||||
github.com/prometheus/procfs v0.8.0 // indirect
|
||||
github.com/protolambda/ctxlock v0.1.0 // indirect
|
||||
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a // indirect
|
||||
github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0 // indirect
|
||||
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
|
||||
github.com/richardlehane/mscfb v1.0.4 // indirect
|
||||
github.com/richardlehane/msoleps v1.0.3 // indirect
|
||||
github.com/rivo/uniseg v0.2.0 // indirect
|
||||
github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417 // indirect
|
||||
github.com/seccomp/libseccomp-golang v0.9.1 // indirect
|
||||
github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646 // indirect
|
||||
github.com/smartystreets/assertions v1.2.0 // indirect
|
||||
github.com/spaolacci/murmur3 v1.1.0 // indirect
|
||||
github.com/spf13/cast v1.7.1 // indirect
|
||||
github.com/spf13/pflag v1.0.5 // indirect
|
||||
github.com/stretchr/objx v0.5.2 // indirect
|
||||
github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2 // indirect
|
||||
github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 // indirect
|
||||
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.413 // indirect
|
||||
github.com/tencentyun/cos-go-sdk-v5 v0.7.24 // indirect
|
||||
github.com/texttheater/golang-levenshtein v0.0.0-20180516184445-d188e65d659e // indirect
|
||||
@@ -352,7 +374,6 @@ require (
|
||||
github.com/vmware/govmomi v0.37.1 // indirect
|
||||
github.com/volcengine/ve-tos-golang-sdk/v2 v2.6.2 // indirect
|
||||
github.com/volcengine/volc-sdk-golang v1.0.23 // indirect
|
||||
github.com/willf/bitset v1.1.11-0.20200630133818-d5bec3311243 // indirect
|
||||
github.com/wk8/go-ordered-map/v2 v2.1.8 // indirect
|
||||
github.com/xuri/efp v0.0.0-20220603152613-6918739fd470 // indirect
|
||||
github.com/xuri/nfp v0.0.0-20220409054826-5e722a1d9e22 // indirect
|
||||
@@ -371,7 +392,7 @@ require (
|
||||
go.uber.org/zap v1.17.0 // indirect
|
||||
golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 // indirect
|
||||
golang.org/x/oauth2 v0.17.0 // indirect
|
||||
golang.org/x/term v0.18.0 // indirect
|
||||
golang.org/x/term v0.34.0 // indirect
|
||||
google.golang.org/api v0.167.0 // indirect
|
||||
google.golang.org/appengine v1.6.8 // indirect
|
||||
google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 // indirect
|
||||
@@ -379,19 +400,18 @@ require (
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240228224816-df926f6c8641 // indirect
|
||||
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect
|
||||
gopkg.in/inf.v0 v0.9.1 // indirect
|
||||
gopkg.in/ini.v1 v1.62.0 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
k8s.io/utils v0.0.0-20201110183641-67b214c5f920 // indirect
|
||||
k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 // indirect
|
||||
k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 // indirect
|
||||
lukechampine.com/blake3 v1.1.6 // indirect
|
||||
modernc.org/libc v1.22.3 // indirect
|
||||
modernc.org/mathutil v1.5.0 // indirect
|
||||
modernc.org/memory v1.5.0 // indirect
|
||||
modernc.org/sqlite v1.21.1 // indirect
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.0.1 // indirect
|
||||
sigs.k8s.io/yaml v1.2.0 // indirect
|
||||
sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 // indirect
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
|
||||
sigs.k8s.io/yaml v1.3.0 // indirect
|
||||
zombiezen.com/go/sqlite v0.13.1 // indirect
|
||||
)
|
||||
|
||||
replace github.com/influxdata/promql/v2 => github.com/zexi/promql/v2 v2.12.1
|
||||
|
||||
replace github.com/docker/docker => github.com/docker/docker v20.10.27+incompatible
|
||||
|
||||
363
go.sum
363
go.sum
@@ -8,7 +8,6 @@ cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxK
|
||||
cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc=
|
||||
cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0=
|
||||
cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To=
|
||||
cloud.google.com/go v0.51.0/go.mod h1:hWtGJ6gnXH+KgDv+V0zFGDvpi07n3z8ZNj3T1RW0Gcw=
|
||||
cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4=
|
||||
cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M=
|
||||
cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc=
|
||||
@@ -52,7 +51,11 @@ gitee.com/chunanyong/dm v1.8.14 h1:1S9+aD0fY/HXkcm8dKh2HjYsDlcdXNG+4IOX9JtrSjA=
|
||||
gitee.com/chunanyong/dm v1.8.14/go.mod h1:EPRJnuPFgbyOFgJ0TRYCTGzhq+ZT4wdyaj/GW/LLcNg=
|
||||
github.com/360EntSecGroup-Skylar/excelize v1.4.0 h1:43rak9uafmwSJpXfFO1heKQph8tP3nlfWJWFQQtW1R0=
|
||||
github.com/360EntSecGroup-Skylar/excelize v1.4.0/go.mod h1:R8KYLmGns0vDPe6/HyphW0mzW+MFexlGDafU0ykVEnU=
|
||||
github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8=
|
||||
github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU=
|
||||
github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8=
|
||||
github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20230306123547-8075edf89bb0 h1:59MxjQVfjXsBpLy+dbd2/ELV5ofnUkUZBvWSC85sheA=
|
||||
github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20230306123547-8075edf89bb0/go.mod h1:OahwfttHWG6eJ0clwcfBAHoDI6X/LV/15hx/wlMZSrU=
|
||||
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
|
||||
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0=
|
||||
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
|
||||
github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI=
|
||||
@@ -90,14 +93,14 @@ github.com/DataDog/zstd v1.3.4/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t
|
||||
github.com/LeeEirc/terminalparser v0.0.0-20240205084113-fbf78c8480f2 h1:XGB3B0651J1uKOE1KJa1gsrV/DO1kthhk2NTDUHATgs=
|
||||
github.com/LeeEirc/terminalparser v0.0.0-20240205084113-fbf78c8480f2/go.mod h1:tiLv6VBLH4Z3KdBSe2qIKRwQDGCVQ9/F5fOKpQGvyoA=
|
||||
github.com/Microsoft/go-winio v0.4.15/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw=
|
||||
github.com/Microsoft/go-winio v0.4.16-0.20201130162521-d1ffc52c7331/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0=
|
||||
github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
|
||||
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
|
||||
github.com/Microsoft/hcsshim v0.8.14 h1:lbPVK25c1cu5xTLITwpUcxoA9vKrKErASPYygvouJns=
|
||||
github.com/Microsoft/hcsshim v0.8.14/go.mod h1:NtVKoYxQuTLx6gEq0L96c9Ju4JbRJ4nY2ow3VK6a9Lg=
|
||||
github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8=
|
||||
github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w=
|
||||
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
||||
github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE=
|
||||
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
||||
github.com/OneOfOne/xxhash v1.2.8 h1:31czK/TI9sNkxIKfaUfGlU47BAxQ0ztGgd9vPyqimf8=
|
||||
github.com/OneOfOne/xxhash v1.2.8/go.mod h1:eZbhyaAYD41SGSSsnmcpxVoRiQ/MPUTjUdIIOT9Um7Q=
|
||||
github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
||||
github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
||||
github.com/QcloudApi/qcloud_sign_golang v0.0.0-20141224014652-e4130a326409/go.mod h1:1pk82RBxDY/JZnPQrtqHlUFfCctgdorsd9M06fMynOM=
|
||||
@@ -281,80 +284,86 @@ github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL
|
||||
github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||
github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
|
||||
github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||
github.com/checkpoint-restore/go-criu/v4 v4.1.0 h1:WW2B2uxx9KWF6bGlHqhm8Okiafwwx7Y2kcpn8lCpjgo=
|
||||
github.com/checkpoint-restore/go-criu/v4 v4.1.0/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw=
|
||||
github.com/checkpoint-restore/go-criu/v5 v5.3.0 h1:wpFFOoomK3389ue2lAb0Boag6XPht5QYpipxmSNL4d8=
|
||||
github.com/checkpoint-restore/go-criu/v5 v5.3.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E=
|
||||
github.com/cheggaaa/pb/v3 v3.0.8 h1:bC8oemdChbke2FHIIGy9mn4DPJ2caZYQnfbRqwmdCoA=
|
||||
github.com/cheggaaa/pb/v3 v3.0.8/go.mod h1:UICbiLec/XO6Hw6k+BHEtHeQFzzBH4i2/qk/ow1EJTA=
|
||||
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
|
||||
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
|
||||
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
|
||||
github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg=
|
||||
github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775 h1:cHzBGGVew0ezFsq2grfy2RsB8hO/eNyBgOLHBCqfR1U=
|
||||
github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc=
|
||||
github.com/cilium/ebpf v0.7.0/go.mod h1:/oI2+1shJiTGAMgl6/RgJr36Eo1jzrRcAWbcXO2usCA=
|
||||
github.com/cilium/ebpf v0.9.1 h1:64sn2K3UKw8NbP/blsixRpF3nXuyhz/VjRlRzvlBRu4=
|
||||
github.com/cilium/ebpf v0.9.1/go.mod h1:+OhNOIXx/Fnu1IE8bJz2dzOA+VSfyTfdNUVdlQnxUFY=
|
||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||
github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 h1:F1EaeKL/ta07PY/k9Os/UFtwERei2/XzGemhpGnBKNg=
|
||||
github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58/go.mod h1:EOBUe0h4xcZ5GoxqC5SDxFQ8gwyZPKQoEzownBlhI80=
|
||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
||||
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
|
||||
github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI=
|
||||
github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||
github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||
github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa h1:jQCWAUqqlij9Pgj2i/PB79y4KOPYVyFYdROxgaCwdTQ=
|
||||
github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa/go.mod h1:x/1Gn8zydmfq8dk6e9PdstVsDgu9RuyIIJqAaF//0IM=
|
||||
github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59 h1:qWj4qVYZ95vLWwqyNJCQg7rDsG5wPdze0UaPolH7DUk=
|
||||
github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM=
|
||||
github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw=
|
||||
github.com/containerd/console v1.0.0 h1:fU3UuQapBs+zLJu82NhR11Rif1ny2zfMMAyPJzSN5tQ=
|
||||
github.com/containerd/console v1.0.0/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE=
|
||||
github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
|
||||
github.com/containerd/containerd v1.4.1 h1:pASeJT3R3YyVn+94qEPk0SnU1OQ20Jd/T+SPKy9xehY=
|
||||
github.com/containerd/containerd v1.4.1/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
|
||||
github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
|
||||
github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM=
|
||||
github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw=
|
||||
github.com/containerd/console v1.0.3 h1:lIr7SlA5PxZyMV30bDW0MGbiOPXwc63yRuCP0ARubLw=
|
||||
github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U=
|
||||
github.com/containerd/containerd v1.7.13 h1:wPYKIeGMN8vaggSKuV1X0wZulpMz4CrgEsZdaCyB6Is=
|
||||
github.com/containerd/containerd v1.7.13/go.mod h1:zT3up6yTRfEUa6+GsITYIJNgSVL9NQ4x4h1RPzk0Wu4=
|
||||
github.com/containerd/continuity v0.4.5 h1:ZRoN1sXq9u7V6QoHMcVWGhOwDFqZ4B9i5H6un1Wh0x4=
|
||||
github.com/containerd/continuity v0.4.5/go.mod h1:/lNJvtJKUQStBzpVQ1+rasXO1LAWtUQssk28EZvJ3nE=
|
||||
github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI=
|
||||
github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0=
|
||||
github.com/containerd/fifo v1.1.0 h1:4I2mbh5stb1u6ycIABlBw9zgtlK8viPI9QkQNRQEEmY=
|
||||
github.com/containerd/fifo v1.1.0/go.mod h1:bmC4NWMbXlt2EZ0Hc7Fx7QzTFxgPID13eH0Qu+MAb2o=
|
||||
github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I=
|
||||
github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo=
|
||||
github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o=
|
||||
github.com/containerd/ttrpc v1.0.2 h1:2/O3oTZN36q2xRolk0a2WWGgh7/Vf/liElg5hFYLX9U=
|
||||
github.com/containerd/ttrpc v1.0.2/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y=
|
||||
github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc=
|
||||
github.com/containerd/typeurl v1.0.1 h1:PvuK4E3D5S5q6IqsPDCy928FhP0LUIGcmZ/Yhgp5Djw=
|
||||
github.com/containerd/typeurl v1.0.1/go.mod h1:TB1hUtrpaiO88KEK56ijojHS1+NeF0izUACaJW2mdXg=
|
||||
github.com/containerd/ttrpc v1.1.0/go.mod h1:XX4ZTnoOId4HklF4edwc4DcqskFZuvXB1Evzy5KFQpQ=
|
||||
github.com/containerd/ttrpc v1.2.2 h1:9vqZr0pxwOF5koz6N0N3kJ0zDHokrcPxIR/ZR2YFtOs=
|
||||
github.com/containerd/ttrpc v1.2.2/go.mod h1:sIT6l32Ph/H9cvnJsfXM5drIVzTr5A2flTf1G5tYZak=
|
||||
github.com/containerd/typeurl v1.0.2 h1:Chlt8zIieDbzQFzXzAeBEF92KhExuE4p9p92/QmY7aY=
|
||||
github.com/containerd/typeurl v1.0.2/go.mod h1:9trJWW2sRlGub4wZJRTW83VtbOLS6hwcDZXTn6oPz9s=
|
||||
github.com/containerd/typeurl/v2 v2.1.1 h1:3Q4Pt7i8nYwy2KmQWIw2+1hTvwTE/6w9FqcttATPO/4=
|
||||
github.com/containerd/typeurl/v2 v2.1.1/go.mod h1:IDp2JFvbwZ31H8dQbEIY7sDl2L3o3HZj1hsSQlywkQ0=
|
||||
github.com/coredns/coredns v1.3.0 h1:Ubjr8ZrOpEj95/A9dqQqQAG2k5DWEFdg2ZB3tUXuULA=
|
||||
github.com/coredns/coredns v1.3.0/go.mod h1:zASH/MVDgR6XZTbxvOnsZfffS+31vg6Ackf/wo1+AM0=
|
||||
github.com/coreos/go-iptables v0.6.0 h1:is9qnZMPYjLd8LYqmm/qlE+wwEgJIkTYdhV3rfZo4jk=
|
||||
github.com/coreos/go-iptables v0.6.0/go.mod h1:Qe8Bv2Xik5FyTXwgIbLAnv2sWSBmvWdFETJConOQ//Q=
|
||||
github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM=
|
||||
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
|
||||
github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk=
|
||||
github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk=
|
||||
github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI=
|
||||
github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
|
||||
github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs=
|
||||
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
|
||||
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
||||
github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
||||
github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY=
|
||||
github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4=
|
||||
github.com/cyphar/filepath-securejoin v0.2.2 h1:jCwT2GTP+PY5nBz3c/YL5PAIbusElVrPujOBSCj8xRg=
|
||||
github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4=
|
||||
github.com/cyphar/filepath-securejoin v0.2.3 h1:YX6ebbZCZP7VkM3scTTokDgBL2TY741X51MTk3ycuNI=
|
||||
github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc=
|
||||
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.0-20210816181553-5444fa50b93d h1:1iy2qD6JEhHKKhUOA9IWs7mjco7lnw2qx8FsRI2wirE=
|
||||
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.0-20210816181553-5444fa50b93d/go.mod h1:tmAIfUFEirG/Y8jhZ9M+h36obRZAk/1fcSpXwAVlfqE=
|
||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM=
|
||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
||||
github.com/dimchansky/utfbom v1.1.0 h1:FcM3g+nofKgUteL8dm/UpdRXNC9KmADgTpLKsu0TRo4=
|
||||
github.com/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQvIirEdv+8=
|
||||
github.com/dnstap/golang-dnstap v0.0.0-20170829151710-2cf77a2b5e11 h1:m8nX8hsUghn853BJ5qB0lX+VvS6LTJPksWyILFZRYN4=
|
||||
github.com/dnstap/golang-dnstap v0.0.0-20170829151710-2cf77a2b5e11/go.mod h1:s1PfVYYVmTMgCSPtho4LKBDecEHJWtiVDPNv78Z985U=
|
||||
github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible h1:dvc1KSkIYTVjZgHf/CTC2diTYC8PzhaA5sFISRfNVrE=
|
||||
github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
|
||||
github.com/docker/docker v20.10.27+incompatible h1:Id/ZooynV4ZlD6xX20RCd3SR0Ikn7r4QZDa2ECK2TgA=
|
||||
github.com/docker/docker v20.10.27+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
|
||||
github.com/docker/distribution v2.8.1+incompatible h1:Q50tZOPR6T/hjNsyc9g8/syEs6bk8XXApsHjKukMl68=
|
||||
github.com/docker/distribution v2.8.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
|
||||
github.com/docker/docker v20.10.18+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
|
||||
github.com/docker/docker v23.0.3+incompatible h1:9GhVsShNWz1hO//9BNg/dpMnZW25KydO4wtVxWAIbho=
|
||||
github.com/docker/docker v23.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
|
||||
github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ=
|
||||
github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=
|
||||
github.com/docker/go-events v0.0.0-20250114142523-c867878c5e32 h1:EHZfspsnLAz8Hzccd67D5abwLiqoqym2jz/jOS39mCk=
|
||||
github.com/docker/go-events v0.0.0-20250114142523-c867878c5e32/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA=
|
||||
github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw=
|
||||
github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
|
||||
github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4=
|
||||
github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
|
||||
github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96 h1:cenwrSVm+Z7QLSV/BsnenAOcDXdX4cMv4wP0B/5QbPg=
|
||||
github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
|
||||
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
|
||||
@@ -373,10 +382,14 @@ github.com/eggsampler/acme/v3 v3.6.2 h1:gvyZbQ92wNQLDASVftGpHEdFwPSfg0+17P0lLt09
|
||||
github.com/eggsampler/acme/v3 v3.6.2/go.mod h1:/qh0rKC/Dh7Jj+p4So7DbWmFNzC4dpcpK53r226Fhuo=
|
||||
github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
|
||||
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
||||
github.com/emicklei/go-restful/v3 v3.10.1 h1:rc42Y5YTp7Am7CS630D7JmhRjq4UlEUuEKfrDac4bSQ=
|
||||
github.com/emicklei/go-restful/v3 v3.10.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
|
||||
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
||||
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
||||
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
||||
github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
|
||||
github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
|
||||
github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE=
|
||||
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||
github.com/envoyproxy/protoc-gen-validate v1.0.4 h1:gVPz/FMfvh57HdSJQyvBtF00j8JU4zdyUgIUNhlgg0A=
|
||||
github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew=
|
||||
@@ -395,13 +408,14 @@ github.com/fernet/fernet-go v0.0.0-20180830025343-9eac43b88a5e/go.mod h1:2H9hjfb
|
||||
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 h1:BHsljHzVlRcyQhjrss6TZTdY2VfCqZPbv5k3iBFa2ZQ=
|
||||
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=
|
||||
github.com/frankban/quicktest v1.9.0/go.mod h1:ui7WezCLWMWxVWr1GETZY3smRy0G4KWq9vcPtJmFl7Y=
|
||||
github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k=
|
||||
github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
|
||||
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
|
||||
github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
|
||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
||||
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
|
||||
github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI=
|
||||
github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU=
|
||||
github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
|
||||
github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
|
||||
github.com/gernest/wow v0.1.0/go.mod h1:dEPabJRi5BneI1Nev1VWo0ZlcTWibHWp43qxKms4elY=
|
||||
github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
||||
github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
|
||||
@@ -439,7 +453,7 @@ github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNV
|
||||
github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs=
|
||||
github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
|
||||
github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
|
||||
github.com/go-logr/logr v1.0.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
||||
github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
||||
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
||||
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
|
||||
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||
@@ -449,9 +463,17 @@ github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiU
|
||||
github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY=
|
||||
github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
|
||||
github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0=
|
||||
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
||||
github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY=
|
||||
github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
||||
github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg=
|
||||
github.com/go-openapi/jsonreference v0.20.0 h1:MYlu0sBgChmCfJxxUKZ8g1cPWFOB37YSZqewK7OKeyA=
|
||||
github.com/go-openapi/jsonreference v0.20.0/go.mod h1:Ag74Ico3lPc+zR+qjn4XBUmXymS4zJbYVCZmcgkasdo=
|
||||
github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc=
|
||||
github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I=
|
||||
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
||||
github.com/go-openapi/swag v0.19.14 h1:gm3vOOXfiuw5i9p5N9xJvfjvuofpyvLA9Wr6QfK5Fng=
|
||||
github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
|
||||
github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A=
|
||||
github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
|
||||
github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q=
|
||||
@@ -467,11 +489,15 @@ github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/me
|
||||
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
|
||||
github.com/go-yaml/yaml v2.1.0+incompatible h1:RYi2hDdss1u4YE7GwixGzWwVo47T8UQwnTLB6vQiq+o=
|
||||
github.com/go-yaml/yaml v2.1.0+incompatible/go.mod h1:w2MrLa16VYP0jy6N7M5kHaCkaLENm+P+Tv+MfurjSw0=
|
||||
github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
|
||||
github.com/godbus/dbus/v5 v5.0.4 h1:9349emZab16e7zQvpmsbtjc18ykshndd8y2PG3sgJbA=
|
||||
github.com/goccy/go-json v0.9.7 h1:IcB+Aqpx/iMHu5Yooh7jEzJk1JZ7Pjtmys2ukPr7EeM=
|
||||
github.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
|
||||
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
|
||||
github.com/godbus/dbus/v5 v5.0.6/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
|
||||
github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk=
|
||||
github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
|
||||
github.com/gofrs/uuid v4.1.0+incompatible h1:sIa2eCvUTwgjbqXrPLfNwUf9S3i3mpH1O1atV+iL/Wk=
|
||||
github.com/gofrs/uuid v4.1.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
|
||||
github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4=
|
||||
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
||||
github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
||||
github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
|
||||
@@ -496,8 +522,9 @@ github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFU
|
||||
github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
|
||||
github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
|
||||
github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
|
||||
github.com/golang/mock v1.4.4 h1:l75CXGRSwbaYNpl/Z2X1XIIAMSCquvXgpVZDhwEIJsc=
|
||||
github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
|
||||
github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc=
|
||||
github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs=
|
||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
@@ -525,8 +552,10 @@ github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Z
|
||||
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||
github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU=
|
||||
github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4=
|
||||
github.com/google/cadvisor v0.38.5 h1:XOvqjL2+xMEuDORcLMv77NystZvQB7YgGxcKpRul/vE=
|
||||
github.com/google/cadvisor v0.38.5/go.mod h1:1OFB9sOOMkBdUBGCO/1SArawTnDscgMzTodacVDe8mA=
|
||||
github.com/google/cadvisor v0.46.0 h1:ryTIniqhN8/wR8UA1RuYSXHvsAtdpk/01XwTZtYHekY=
|
||||
github.com/google/cadvisor v0.46.0/go.mod h1:YnCDnR8amaS0HoMEjheOI0TMPzFKCBLc30mciLEjwGI=
|
||||
github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54=
|
||||
github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ=
|
||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||
@@ -534,19 +563,20 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
|
||||
github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
|
||||
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||
github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk=
|
||||
github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
|
||||
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
||||
github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g=
|
||||
github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
||||
github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
|
||||
github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
||||
github.com/google/gopacket v1.1.17 h1:rMrlX2ZY2UbvT+sdz3+6J+pp2z+msCq9MxTU6ymxbBY=
|
||||
github.com/google/gopacket v1.1.17/go.mod h1:UdDNZ1OO62aGYVnPhxT1U6aI7ukYtA/kB8vaU0diBUM=
|
||||
github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no=
|
||||
@@ -575,7 +605,6 @@ github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+
|
||||
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
|
||||
github.com/googleapis/gax-go/v2 v2.12.2 h1:mhN09QQW1jEWeMF74zGR81R30z4VJzjZsfkUhuHF+DA=
|
||||
github.com/googleapis/gax-go/v2 v2.12.2/go.mod h1:61M8vcyyXR2kqKFxKrfA22jaA8JGF7Dc8App1U3H6jc=
|
||||
github.com/googleapis/gnostic v0.4.1 h1:DLJCy1n/vrD4HPjOvYcT8aYQXpPIzoRZONaYwyycI+I=
|
||||
github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg=
|
||||
github.com/googollee/go-engine.io v0.0.0-20180829091931-e2f255711dcb h1:n22Aukg/TjoypWc37dbKIpCsz0VMFPD36HQk1WKvg3A=
|
||||
github.com/googollee/go-engine.io v0.0.0-20180829091931-e2f255711dcb/go.mod h1:MBpz1MS3P4HtRcBpQU4HcjvWXZ9q+JWacMEh2/BFYbg=
|
||||
@@ -594,13 +623,17 @@ github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWm
|
||||
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
||||
github.com/gosuri/uitable v0.0.0-20160404203958-36ee7e946282 h1:KFqmdzEPbU7Uck2tn50t+HQXZNVkxe8M9qRb/ZoSHaE=
|
||||
github.com/gosuri/uitable v0.0.0-20160404203958-36ee7e946282/go.mod h1:tKR86bXuXPZazfOTG1FIzvjIdXzd0mo4Vtn16vt0PJo=
|
||||
github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
|
||||
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
|
||||
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
|
||||
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU=
|
||||
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw=
|
||||
github.com/hako/durafmt v0.0.0-20180520121703-7b7ae1e72ead h1:Y9WOGZY2nw5ksbEf5AIpk+vK52Tdg/VN/rHFRfEeeGQ=
|
||||
github.com/hako/durafmt v0.0.0-20180520121703-7b7ae1e72ead/go.mod h1:5Scbynm8dF1XAPwIwkGPqzkM/shndPm79Jd1003hTjE=
|
||||
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
|
||||
github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
|
||||
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
|
||||
github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
|
||||
github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
|
||||
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
||||
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
||||
github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM=
|
||||
@@ -617,7 +650,6 @@ github.com/huaweicloud/huaweicloud-sdk-go v1.0.26/go.mod h1:YHXxw/bm7AohI4jTY8Z4
|
||||
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
|
||||
github.com/icholy/digest v1.1.0 h1:HfGg9Irj7i+IX1o1QAmPfIBNu/Q5A5Tu3n/MED9k9H4=
|
||||
github.com/icholy/digest v1.1.0/go.mod h1:QNrsSGQ5v7v9cReDI0+eyjsXGUoRSUZQHeQ5C4XLa0Y=
|
||||
github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
|
||||
github.com/imdario/mergo v0.3.6 h1:xTNEAn+kxVO7dTZGu0CegyqKZmoWFI0rF8UxjlB2d28=
|
||||
github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
|
||||
github.com/influxdata/influxql v1.1.0 h1:sPsaumLFRPMwR5QtD3Up54HXpNND8Eu7G1vQFmi3quQ=
|
||||
@@ -634,6 +666,7 @@ github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHW
|
||||
github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
|
||||
github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
|
||||
github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks=
|
||||
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
|
||||
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
|
||||
github.com/josharian/native v1.1.0 h1:uuaP0hAbW7Y4l0ZRQ6C9zfb7Mg1mbFKry/xzDAfmtLA=
|
||||
github.com/josharian/native v1.1.0/go.mod h1:7X/raswPFr05uY3HiLlYeyQntB6OO7E/d2Cu7qoaN2w=
|
||||
@@ -654,11 +687,15 @@ github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7V
|
||||
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
|
||||
github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uiaSepXwyf3o52HaUYcV+Tu66S3F5GA=
|
||||
github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8=
|
||||
github.com/karrick/godirwalk v1.16.1 h1:DynhcF+bztK8gooS0+NDJFrdNZjJ3gzVzC545UNA9iw=
|
||||
github.com/karrick/godirwalk v1.16.1/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk=
|
||||
github.com/karrick/godirwalk v1.17.0 h1:b4kY7nqDdioR/6qnbHQyDvmA17u5G1cZ6J+CZXwSWoI=
|
||||
github.com/karrick/godirwalk v1.17.0/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk=
|
||||
github.com/kdomanski/iso9660 v0.4.0 h1:BPKKdcINz3m0MdjIMwS0wx1nofsOjxOq8TOr45WGHFg=
|
||||
github.com/kdomanski/iso9660 v0.4.0/go.mod h1:OxUSupHsO9ceI8lBLPJKWBTphLemjrCQY8LPXM7qSzU=
|
||||
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
|
||||
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||
github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4=
|
||||
github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
|
||||
github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
|
||||
github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
|
||||
github.com/klauspost/cpuid/v2 v2.2.3 h1:sxCkb+qR91z4vsqw4vGGZlDgPz3G7gjaLyK3V8y70BU=
|
||||
@@ -666,7 +703,6 @@ github.com/klauspost/cpuid/v2 v2.2.3/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8t
|
||||
github.com/koding/websocketproxy v0.0.0-20181220232114-7ed82d81a28c h1:N7A4JCA2G+j5fuFxCsJqjFU/sZe0mj8H0sSoSwbaikw=
|
||||
github.com/koding/websocketproxy v0.0.0-20181220232114-7ed82d81a28c/go.mod h1:Nn5wlyECw3iJrzi0AhIWg+AJUb4PlRQVW4/3XHH1LZA=
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||
github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8=
|
||||
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
|
||||
@@ -685,12 +721,18 @@ github.com/ks3sdklib/aws-sdk-go v1.8.1 h1:/3mYWujGfr4K/+mAdESbi9u3T4VDuHYMYFk1/O
|
||||
github.com/ks3sdklib/aws-sdk-go v1.8.1/go.mod h1:jGcsV0dJgMmStAyqjkKVUu6F167pAXYZAS3LqoZMmtM=
|
||||
github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y=
|
||||
github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII=
|
||||
github.com/lestrrat-go/iter v0.0.0-20200422075355-fc1769541911 h1:FvnrqecqX4zT0wOIbYK1gNgTm0677INEWiFY8UEYggY=
|
||||
github.com/lestrrat-go/iter v0.0.0-20200422075355-fc1769541911/go.mod h1:zIdgO1mRKhn8l9vrZJZz9TUMMFbQbLeTsbqPDrJ/OJc=
|
||||
github.com/lestrrat-go/jwx v1.0.2 h1:FsbZg/v979RikHWhSu/7BRHh2Z1Z8byPleURRb1Y0XI=
|
||||
github.com/lestrrat-go/jwx v1.0.2/go.mod h1:TPF17WiSFegZo+c20fdpw49QD+/7n4/IsGvEmCSWwT0=
|
||||
github.com/lestrrat-go/pdebug v0.0.0-20200204225717-4d6bd78da58d h1:aEZT3f1GGg5RIlHMAy4/4fe4ciOi3SCwYoaURphcB4k=
|
||||
github.com/lestrrat-go/pdebug v0.0.0-20200204225717-4d6bd78da58d/go.mod h1:B06CSso/AWxiPejj+fheUINGeBKeeEZNt8w+EoU7+L8=
|
||||
github.com/lestrrat-go/backoff/v2 v2.0.8 h1:oNb5E5isby2kiro9AgdHLv5N5tint1AnDVVf2E2un5A=
|
||||
github.com/lestrrat-go/backoff/v2 v2.0.8/go.mod h1:rHP/q/r9aT27n24JQLa7JhSQZCKBBOiM/uP402WwN8Y=
|
||||
github.com/lestrrat-go/blackmagic v1.0.0 h1:XzdxDbuQTz0RZZEmdU7cnQxUtFUzgCSPq8RCz4BxIi4=
|
||||
github.com/lestrrat-go/blackmagic v1.0.0/go.mod h1:TNgH//0vYSs8VXDCfkZLgIrVTTXQELZffUV0tz3MtdQ=
|
||||
github.com/lestrrat-go/httpcc v1.0.1 h1:ydWCStUeJLkpYyjLDHihupbn2tYmZ7m22BGkcvZZrIE=
|
||||
github.com/lestrrat-go/httpcc v1.0.1/go.mod h1:qiltp3Mt56+55GPVCbTdM9MlqhvzyuL6W/NMDA8vA5E=
|
||||
github.com/lestrrat-go/iter v1.0.1 h1:q8faalr2dY6o8bV45uwrxq12bRa1ezKrB6oM9FUgN4A=
|
||||
github.com/lestrrat-go/iter v1.0.1/go.mod h1:zIdgO1mRKhn8l9vrZJZz9TUMMFbQbLeTsbqPDrJ/OJc=
|
||||
github.com/lestrrat-go/jwx v1.2.25 h1:tAx93jN2SdPvFn08fHNAhqFJazn5mBBOB8Zli0g0otA=
|
||||
github.com/lestrrat-go/jwx v1.2.25/go.mod h1:zoNuZymNl5lgdcu6P7K6ie2QRll5HVfF4xwxBBK1NxY=
|
||||
github.com/lestrrat-go/option v1.0.0 h1:WqAWL8kh8VcSoD6xjSH34/1m8yxluXQbDeKNfvFeEO4=
|
||||
github.com/lestrrat-go/option v1.0.0/go.mod h1:5ZHFbivi4xwXxhxY9XHDe2FHo6/Z7WWmtT7T5nBBp3I=
|
||||
github.com/lestrrat/go-jwx v0.0.0-20180221005942-b7d4802280ae h1:XoMPFIGibcPKgLrgIxzif36Zs/2yOEeGYc/7nitjzNM=
|
||||
github.com/lestrrat/go-jwx v0.0.0-20180221005942-b7d4802280ae/go.mod h1:T+yHdCP6MJKtzoVQMHvVCeam5VFwX1+rWzn5zZgKYMI=
|
||||
github.com/lestrrat/go-pdebug v0.0.0-20180220043741-569c97477ae8 h1:ttJD8hTqvrPEUBoAG5hJKbDOJ84u7zmbnZsUL4V9430=
|
||||
@@ -704,6 +746,9 @@ github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQ
|
||||
github.com/ma314smith/signedxml v0.0.0-20210628192057-abc5b481ae1c h1:UPJygtyk491bJJ/DnRJFuzcq9Dl9NSeFrJ7VdiRzMxc=
|
||||
github.com/ma314smith/signedxml v0.0.0-20210628192057-abc5b481ae1c/go.mod h1:KEgVcb43+f5KFUH/x6Vd3NROG0AIL2CuKMrIqYsmx6E=
|
||||
github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||
github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
|
||||
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
|
||||
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
|
||||
github.com/mark3labs/mcp-go v0.42.0 h1:gk/8nYJh8t3yroCAOBhNbYsM9TCKvkM13I5t5Hfu6Ls=
|
||||
@@ -731,8 +776,8 @@ github.com/mattn/go-tty v0.0.0-20180219170247-931426f7535a/go.mod h1:XPvLUNfbS4f
|
||||
github.com/mattn/go-tty v0.0.0-20181127064339-e4f871175a2f h1:4P7Ul+TAnk92vTeVkXs6VLjmf1EhrYtDRa03PCYY6VM=
|
||||
github.com/mattn/go-tty v0.0.0-20181127064339-e4f871175a2f/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE=
|
||||
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
|
||||
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI=
|
||||
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
|
||||
github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=
|
||||
github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
|
||||
github.com/mdlayher/arp v0.0.0-20190313224443-98a83c8a2717 h1:lAsTIRVOYxE/LwrMmSAVfV/HDndBEvHaAEkjbwhqsJ4=
|
||||
github.com/mdlayher/arp v0.0.0-20190313224443-98a83c8a2717/go.mod h1:eOj1DDj3NAZ6yv+WafaKzY37MFZ58TdfIhQ+8nQbiis=
|
||||
github.com/mdlayher/ethernet v0.0.0-20190313224307-5b5fc417d966/go.mod h1:5s5p/sMJ6sNsFl6uCh85lkFGV8kLuIYJCRJLavVJwvg=
|
||||
@@ -766,8 +811,18 @@ github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG
|
||||
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
|
||||
github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0=
|
||||
github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0=
|
||||
github.com/moby/sys/mountinfo v0.1.3 h1:KIrhRO14+AkwKvG/g2yIpNMOUVZ02xNhOw8KY1WsLOI=
|
||||
github.com/moby/sys/mountinfo v0.1.3/go.mod h1:w2t2Avltqx8vE7gX5l+QiBKxODu2TX0+Syr3h52Tw4o=
|
||||
github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg=
|
||||
github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc=
|
||||
github.com/moby/sys/mountinfo v0.5.0/go.mod h1:3bMD3Rg+zkqx8MRYPi7Pyb0Ie97QEBmdxbhnCLlSvSU=
|
||||
github.com/moby/sys/mountinfo v0.6.2 h1:BzJjoreD5BMFNmD9Rus6gdd1pLuecOFPt8wC+Vygl78=
|
||||
github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI=
|
||||
github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc=
|
||||
github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo=
|
||||
github.com/moby/sys/signal v0.7.0 h1:25RW3d5TnQEoKvRbEKUGay6DCQ46IxAVTT9CUMgmsSI=
|
||||
github.com/moby/sys/signal v0.7.0/go.mod h1:GQ6ObYZfqacOwTtlXvcmh9A26dVRul/hbOZn88Kg8Tg=
|
||||
github.com/moby/sys/user v0.1.0 h1:WmZ93f5Ux6het5iituh9x2zAG7NFY9Aqi49jjE1PaQg=
|
||||
github.com/moby/sys/user v0.1.0/go.mod h1:fKJhFOnsCN6xZ5gSfbM6zaHGgDJMrqt9/reuj4T7MmU=
|
||||
github.com/moby/term v0.0.0-20220808134915-39b0c02b01ae/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw=
|
||||
github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0=
|
||||
github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y=
|
||||
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||
@@ -777,9 +832,10 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN
|
||||
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
||||
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
|
||||
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
|
||||
github.com/mogaika/udf v0.0.0-20171019171931-167f0ab01c73 h1:HpHNB68mF30LkUorpr7B22Xy0XwParP/n+AL0z4VlFc=
|
||||
github.com/mogaika/udf v0.0.0-20171019171931-167f0ab01c73/go.mod h1:OVErfG87tRGCHZpQGO8pL4vDZuY0qr4blPOTR0go6e8=
|
||||
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw=
|
||||
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=
|
||||
github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=
|
||||
github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
|
||||
github.com/mozillazg/go-httpheader v0.2.1 h1:geV7TrjbL8KXSyvghnFm+NyTux/hxwueTSrwhe88TQQ=
|
||||
github.com/mozillazg/go-httpheader v0.2.1/go.mod h1:jJ8xECTlalr6ValeXYdOF8fFUISeBAdw6E61aqQma60=
|
||||
@@ -787,8 +843,8 @@ github.com/mozillazg/go-pinyin v0.19.0 h1:p+J8/kjJ558KPvVGYLvqBhxf8jbZA2exSLCs2u
|
||||
github.com/mozillazg/go-pinyin v0.19.0/go.mod h1:iR4EnMMRXkfpFVV5FMi4FNB6wGq9NV6uDWbUuPhP4Yc=
|
||||
github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o=
|
||||
github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc=
|
||||
github.com/mrunalp/fileutils v0.0.0-20200520151820-abd8a0e76976 h1:aZQToFSLH8ejFeSkTc3r3L4dPImcj7Ib/KgmkQqbGGg=
|
||||
github.com/mrunalp/fileutils v0.0.0-20200520151820-abd8a0e76976/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0=
|
||||
github.com/mrunalp/fileutils v0.5.0 h1:NKzVxiH7eSk+OQ4M+ZYW1K6h27RUV3MI6NUTsHhU6Z4=
|
||||
github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ=
|
||||
github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg=
|
||||
github.com/mschoch/smat v0.2.0 h1:8imxQsjDm8yFEAVBe7azKmKSgzSkZXDuKkSq9374khM=
|
||||
github.com/mschoch/smat v0.2.0/go.mod h1:kc9mz7DoBKqDyiRL7VZN8KvXQMWeTaVnttLRXOlotKw=
|
||||
@@ -797,10 +853,13 @@ github.com/multiformats/go-multihash v0.2.3/go.mod h1:dXgKXCXjBzdscBLk9JkjINiEsC
|
||||
github.com/multiformats/go-varint v0.0.6 h1:gk85QWKxh3TazbLxED/NlDVv8+q+ReFJk7Y2W/KhfNY=
|
||||
github.com/multiformats/go-varint v0.0.6/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE=
|
||||
github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
|
||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
||||
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
|
||||
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
|
||||
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus=
|
||||
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
|
||||
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
|
||||
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
|
||||
github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
|
||||
github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||
@@ -809,26 +868,32 @@ github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W
|
||||
github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
|
||||
github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0=
|
||||
github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
|
||||
github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU=
|
||||
github.com/onsi/ginkgo/v2 v2.4.0 h1:+Ig9nvqgS5OBSACXNk15PLdp0U9XPYROt9CFzVdFGIs=
|
||||
github.com/onsi/ginkgo/v2 v2.4.0/go.mod h1:iHkDK1fKGcBoEHT5W7YBq4RFWaQulw+caOMkAt4OrFo=
|
||||
github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
|
||||
github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
||||
github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
||||
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
|
||||
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
|
||||
github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=
|
||||
github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
|
||||
github.com/onsi/gomega v1.23.0 h1:/oxKu9c2HVap+F3PfKort2Hw5DEU+HGlW8n+tguWsys=
|
||||
github.com/onsi/gomega v1.23.0/go.mod h1:Z/NWtiqwBrwUt4/2loMmHL63EDLnYHmVbuBpDr2vQAg=
|
||||
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
|
||||
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
|
||||
github.com/opencontainers/image-spec v1.0.1 h1:JMemWkRwHx4Zj+fVxWoMCFm/8sYGGrUVojFA6h/TRcI=
|
||||
github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
|
||||
github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
|
||||
github.com/opencontainers/runc v1.0.0-rc92 h1:+IczUKCRzDzFDnw99O/PAqrcBBCoRp9xN3cB1SYSNS4=
|
||||
github.com/opencontainers/runc v1.0.0-rc92/go.mod h1:X1zlU4p7wOlX4+WRCz+hvlRv8phdL7UqbYD+vQwNMmE=
|
||||
github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
|
||||
github.com/opencontainers/runtime-spec v1.0.3-0.20200728170252-4d89ac9fbff6 h1:NhsM2gc769rVWDqJvapK37r+7+CBXI8xHhnfnt8uQsg=
|
||||
github.com/opencontainers/runtime-spec v1.0.3-0.20200728170252-4d89ac9fbff6/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
|
||||
github.com/opencontainers/selinux v1.6.0 h1:+bIAS/Za3q5FTwWym4fTB0vObnfCf3G/NC7K6Jx62mY=
|
||||
github.com/opencontainers/selinux v1.6.0/go.mod h1:VVGKuOLlE7v4PJyT6h7mNWvq1rzqiriPsEqVhc+svHE=
|
||||
github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
|
||||
github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b h1:YWuSjZCQAPM8UUBLkYUk1e+rZcvWHJmFb6i6rM44Xs8=
|
||||
github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ=
|
||||
github.com/opencontainers/runc v1.1.4/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg=
|
||||
github.com/opencontainers/runc v1.1.5 h1:L44KXEpKmfWDcS02aeGm8QNTFXTo2D+8MYGDIJ/GDEs=
|
||||
github.com/opencontainers/runc v1.1.5/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg=
|
||||
github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
|
||||
github.com/opencontainers/runtime-spec v1.1.0 h1:HHUyrt9mwHUjtasSbXSMvs4cyFxh+Bll4AjJ9odEGpg=
|
||||
github.com/opencontainers/runtime-spec v1.1.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
|
||||
github.com/opencontainers/selinux v1.10.0/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI=
|
||||
github.com/opencontainers/selinux v1.11.0 h1:+5Zbo97w3Lbmb3PeqQtpmTkMwsW5nRI3YaLpt7tQ7oU=
|
||||
github.com/opencontainers/selinux v1.11.0/go.mod h1:E5dMC3VPuVvVHDYmi78qvhJp8+M586T4DlDRYpFkyec=
|
||||
github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492 h1:lM6RxxfUMrYL/f8bWEUqdXrANWtrL7Nndbm9iFN0DlU=
|
||||
github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis=
|
||||
github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg=
|
||||
@@ -838,7 +903,6 @@ github.com/openzipkin/zipkin-go-opentracing v0.3.4 h1:x/pBv/5VJNWkcHF1G9xqhug8Iw
|
||||
github.com/openzipkin/zipkin-go-opentracing v0.3.4/go.mod h1:js2AbwmHW0YD9DwIw2JhQWmbfFi/UnWyYwdVhqbCDOE=
|
||||
github.com/oracle/oci-go-sdk v24.3.0+incompatible h1:x4mcfb4agelf1O4/1/auGlZ1lr97jXRSSN5MxTgG/zU=
|
||||
github.com/oracle/oci-go-sdk v24.3.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35ukwStZIg5F66tcBccjip/j888=
|
||||
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
|
||||
github.com/petermattis/goid v0.0.0-20250904145737-900bdf8bb490 h1:QTvNkZ5ylY0PGgA+Lih+GdboMLY/G9SEGLMEGVjTVA4=
|
||||
github.com/petermattis/goid v0.0.0-20250904145737-900bdf8bb490/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4=
|
||||
github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU=
|
||||
@@ -914,14 +978,16 @@ github.com/prometheus/client_golang v1.5.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3O
|
||||
github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
|
||||
github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
|
||||
github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY=
|
||||
github.com/prometheus/client_golang v1.12.2 h1:51L9cDoUHVrXx4zWYlcLQIZ+d+VXHgqnYKkIuq4g/34=
|
||||
github.com/prometheus/client_golang v1.12.2/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY=
|
||||
github.com/prometheus/client_golang v1.13.0/go.mod h1:vTeo+zgvILHsnnj/39Ou/1fPN5nJFOEMgftOUOmlvYQ=
|
||||
github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw=
|
||||
github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y=
|
||||
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
|
||||
github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
|
||||
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||
github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M=
|
||||
github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||
github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4=
|
||||
github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w=
|
||||
github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
|
||||
github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
|
||||
github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc=
|
||||
@@ -929,24 +995,23 @@ github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8b
|
||||
github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
|
||||
github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc=
|
||||
github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
|
||||
github.com/prometheus/common v0.35.0 h1:Eyr+Pw2VymWejHqCugNaQXkAi6KayVNxaHeu6khmFBE=
|
||||
github.com/prometheus/common v0.35.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA=
|
||||
github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
||||
github.com/prometheus/common v0.37.0 h1:ccBbHCgIiT9uSoFY0vX8H3zsNR5eLt17/RQLUvn8pXE=
|
||||
github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA=
|
||||
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
||||
github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
||||
github.com/prometheus/procfs v0.0.0-20190522114515-bc1a522cf7b1/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
||||
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
||||
github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
|
||||
github.com/prometheus/procfs v0.0.11/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
|
||||
github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
|
||||
github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
|
||||
github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
|
||||
github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU=
|
||||
github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
|
||||
github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo=
|
||||
github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4=
|
||||
github.com/protolambda/ctxlock v0.1.0 h1:rCUY3+vRdcdZXqT07iXgyr744J2DU2LCBIXowYAjBCE=
|
||||
github.com/protolambda/ctxlock v0.1.0/go.mod h1:vefhX6rIZH8rsg5ZpOJfEDYQOppZi19SfPiGOFrNnwM=
|
||||
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a h1:9ZKAASQSHhDYGoxY8uLVpewe1GDZ2vu2Tr/vTdVAkFQ=
|
||||
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
|
||||
github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0 h1:MkV+77GLUNo5oJ0jf870itWm3D0Sjh7+Za9gazKc5LQ=
|
||||
github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
|
||||
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
|
||||
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
|
||||
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
|
||||
@@ -973,8 +1038,8 @@ github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46/go.mod h1:uAQ5P
|
||||
github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww=
|
||||
github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
|
||||
github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw=
|
||||
github.com/seccomp/libseccomp-golang v0.9.1 h1:NJjM5DNFOs0s3kYE1WUOr6G8V97sdt46rlXTMfXGWBo=
|
||||
github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo=
|
||||
github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646 h1:RpforrEYXWkmGwJHIGnLZ3tTWStkjVVstwzNGqxX2Ds=
|
||||
github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg=
|
||||
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
|
||||
github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ=
|
||||
github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
|
||||
@@ -991,6 +1056,7 @@ github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPx
|
||||
github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=
|
||||
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
||||
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
||||
github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
|
||||
github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
|
||||
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
|
||||
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
|
||||
@@ -1012,8 +1078,10 @@ github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTd
|
||||
github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y=
|
||||
github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
|
||||
github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
||||
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||
github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||
@@ -1032,8 +1100,8 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO
|
||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
|
||||
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2 h1:b6uOv7YOFK0TYG7HtkIgExQo+2RdLuwRft63jn2HWj8=
|
||||
github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
|
||||
github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 h1:kdXcSzyDtseVEc4yCz2qF8ZrQvIDBJLl4S1c3GCXmoI=
|
||||
github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
|
||||
github.com/tailscale/depaware v0.0.0-20210622194025-720c4b409502/go.mod h1:p9lPsd+cx33L3H9nNoecRRxPssFKUwwI50I3pZ0yT+8=
|
||||
github.com/tatsushid/go-fastping v0.0.0-20160109021039-d7bb493dee3e h1:nt2877sKfojlHCTOBXbpWjBkuWKritFaGIfgQwbQUls=
|
||||
github.com/tatsushid/go-fastping v0.0.0-20160109021039-d7bb493dee3e/go.mod h1:B4+Kq1u5FlULTjFSM707Q6e/cOHFv0z/6QRoxubDIQ8=
|
||||
@@ -1063,9 +1131,9 @@ github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLY
|
||||
github.com/ulikunitz/xz v0.5.12 h1:37Nm15o69RwBkXM0J6A5OlE67RZTfzUxTj8fB3dfcsc=
|
||||
github.com/ulikunitz/xz v0.5.12/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
|
||||
github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
|
||||
github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
|
||||
github.com/vishvananda/netlink v1.1.0 h1:1iyaYNBLmP6L0220aDnYQpo1QEV4t4hJ+xEEhhJH8j0=
|
||||
github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE=
|
||||
github.com/vishvananda/netlink v1.2.1-beta.2 h1:Llsql0lnQEbHj0I1OuKyp8otXp0r3q0mPkuhwHfStVs=
|
||||
github.com/vishvananda/netlink v1.2.1-beta.2/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho=
|
||||
github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU=
|
||||
github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0=
|
||||
github.com/vishvananda/netns v0.0.5-0.20240412164733-9469873f4601 h1:eELqkILRCR0kkoFujWv/hGyn+KfpGjHY01Rl1p42CBg=
|
||||
@@ -1080,8 +1148,6 @@ github.com/volcengine/volc-sdk-golang v1.0.23 h1:anOslb2Qp6ywnsbyq9jqR0ljuO63kg9
|
||||
github.com/volcengine/volc-sdk-golang v1.0.23/go.mod h1:AfG/PZRUkHJ9inETvbjNifTDgut25Wbkm2QoYBTbvyU=
|
||||
github.com/willf/bitset v1.1.9/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
|
||||
github.com/willf/bitset v1.1.10/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
|
||||
github.com/willf/bitset v1.1.11-0.20200630133818-d5bec3311243 h1:R43TdZy32XXSXjJn7M/HhALJ9imq6ztLnChfYJpVDnM=
|
||||
github.com/willf/bitset v1.1.11-0.20200630133818-d5bec3311243/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
|
||||
github.com/wk8/go-ordered-map/v2 v2.1.8 h1:5h/BUHu93oj4gIdvHHHGsScSTMijfx5PeYkE/fJgbpc=
|
||||
github.com/wk8/go-ordered-map/v2 v2.1.8/go.mod h1:5nJHM5DyteebpVlHnWMV0rPz6Zp7+xBAnxjb1X5vnTw=
|
||||
github.com/xuri/efp v0.0.0-20220603152613-6918739fd470 h1:6932x8ltq1w4utjmfMPVj09jdMlkY0aiA6+Skbtl3/c=
|
||||
@@ -1138,6 +1204,7 @@ go.opentelemetry.io/otel/sdk v1.22.0 h1:6coWHw9xw7EfClIC/+O31R8IY3/+EiRFHevmHafB
|
||||
go.opentelemetry.io/otel/sdk v1.22.0/go.mod h1:iu7luyVGYovrRpe2fmj3CVKouQNdTOkxtLzPvPz1DOc=
|
||||
go.opentelemetry.io/otel/trace v1.23.0 h1:37Ik5Ib7xfYVb4V1UtnT97T1jI+AoIYkJyPkuL4iJgI=
|
||||
go.opentelemetry.io/otel/trace v1.23.0/go.mod h1:GSGTbIClEsuZrGIzoEHqsVfxgn5UkggkflQwDScNUsk=
|
||||
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
|
||||
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
||||
go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
|
||||
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
||||
@@ -1165,8 +1232,8 @@ golang.org/x/crypto v0.0.0-20220516162934-403b01795ae8/go.mod h1:IxCIyHEi3zRg3s0
|
||||
golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=
|
||||
golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU=
|
||||
golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE=
|
||||
golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA=
|
||||
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
|
||||
golang.org/x/crypto v0.41.0 h1:WKYxWedPGCTVVl5+WHSSrOBT0O8lx32+zxmHxijgXp4=
|
||||
golang.org/x/crypto v0.41.0/go.mod h1:pO5AFd7FA68rFak7rOAGVuygIISepHftHnr8dr6+sUc=
|
||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
||||
@@ -1229,7 +1296,6 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL
|
||||
golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
@@ -1249,6 +1315,7 @@ golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwY
|
||||
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20201201195509-5d6afe98e0b7/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
|
||||
@@ -1268,8 +1335,8 @@ golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws=
|
||||
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||
golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
|
||||
golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs=
|
||||
golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
|
||||
golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE=
|
||||
golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg=
|
||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
@@ -1290,10 +1357,11 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ
|
||||
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
|
||||
golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||
golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw=
|
||||
golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
|
||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
@@ -1320,7 +1388,7 @@ golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7w
|
||||
golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
@@ -1328,9 +1396,7 @@ golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7w
|
||||
golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
@@ -1350,11 +1416,10 @@ golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7w
|
||||
golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201110211018-35f3e6cf4a65/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
@@ -1364,11 +1429,13 @@ golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBc
|
||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20211116061358-0a5406a5449c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220608164250-635b8c9b7f68/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
@@ -1376,27 +1443,27 @@ golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBc
|
||||
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo=
|
||||
golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI=
|
||||
golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ=
|
||||
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
|
||||
golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY=
|
||||
golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8=
|
||||
golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58=
|
||||
golang.org/x/term v0.34.0 h1:O/2T7POpk0ZZ7MAzMeWFSg6S5IpWd/RXDlM9hgM3DR4=
|
||||
golang.org/x/term v0.34.0/go.mod h1:5jC53AEywhIVebHgPVeg0mj8OD3VO9OzclacVrqpaAw=
|
||||
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||
@@ -1405,12 +1472,11 @@ golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
|
||||
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
|
||||
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
||||
golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng=
|
||||
golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU=
|
||||
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk=
|
||||
golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
|
||||
golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
@@ -1428,6 +1494,7 @@ golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBn
|
||||
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||
golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||
golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||
golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||
golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
@@ -1451,7 +1518,6 @@ golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapK
|
||||
golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
|
||||
golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
|
||||
golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
|
||||
golang.org/x/tools v0.0.0-20200417140056-c07e33ef3290/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||
golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||
golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||
golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||
@@ -1463,6 +1529,7 @@ golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc
|
||||
golang.org/x/tools v0.0.0-20201211185031-d93e913c1a58/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/tools v0.1.8-0.20211029000441-d6a9af8af023/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU=
|
||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
||||
@@ -1515,7 +1582,6 @@ google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvx
|
||||
google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
|
||||
google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
|
||||
google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
|
||||
google.golang.org/genproto v0.0.0-20200117163144-32f20d992d24/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
|
||||
google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
|
||||
google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA=
|
||||
google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
||||
@@ -1533,7 +1599,7 @@ google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7Fc
|
||||
google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
|
||||
google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 h1:9+tzLLstTlPTRyJTh+ah5wIMsBW5c4tQwGTN3thOW9Y=
|
||||
google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:mqHbVIp48Muh7Ywss/AD6I5kNVKZMmAa/QEW58Gxp2s=
|
||||
@@ -1547,7 +1613,6 @@ google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiq
|
||||
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
||||
google.golang.org/grpc v1.22.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
|
||||
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
|
||||
google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
|
||||
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
|
||||
google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
|
||||
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
|
||||
@@ -1558,7 +1623,9 @@ google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM
|
||||
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
||||
google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
|
||||
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
|
||||
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
||||
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
||||
google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI=
|
||||
google.golang.org/grpc v1.62.0 h1:HQKZ/fa1bXkX1oFOvSjmZEUL8wLSaZTjCcLAlmZRtdk=
|
||||
google.golang.org/grpc v1.62.0/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE=
|
||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||
@@ -1573,6 +1640,8 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj
|
||||
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
|
||||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
||||
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||
google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||
google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA=
|
||||
google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
|
||||
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
|
||||
@@ -1581,6 +1650,7 @@ gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
||||
@@ -1607,11 +1677,11 @@ gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=
|
||||
gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw=
|
||||
gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk=
|
||||
gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU=
|
||||
gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU=
|
||||
honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
@@ -1622,12 +1692,14 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh
|
||||
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
||||
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
||||
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
||||
k8s.io/api v0.19.3 h1:GN6ntFnv44Vptj/b+OnMW7FmzkpDoIDLZRvKX3XH9aU=
|
||||
k8s.io/api v0.19.3/go.mod h1:VF+5FT1B74Pw3KxMdKyinLo+zynBaMBiAfGMuldcNDs=
|
||||
k8s.io/apimachinery v0.19.3 h1:bpIQXlKjB4cB/oNpnNnV+BybGPR7iP5oYpsOTEJ4hgc=
|
||||
k8s.io/api v0.26.2 h1:dM3cinp3PGB6asOySalOZxEG4CZ0IAdJsrYZXE/ovGQ=
|
||||
k8s.io/api v0.26.2/go.mod h1:1kjMQsFE+QHPfskEcVNgL3+Hp88B80uj0QtSOlj8itU=
|
||||
k8s.io/apimachinery v0.19.3/go.mod h1:DnPGDnARWFvYa3pMHgSxtbZb7gpzzAZ1pTfaUNDVlmA=
|
||||
k8s.io/client-go v0.19.3 h1:ctqR1nQ52NUs6LpI0w+a5U+xjYwflFwA13OJKcicMxg=
|
||||
k8s.io/client-go v0.19.3/go.mod h1:+eEMktZM+MG0KO+PTkci8xnbCZHvj9TqR6Q1XDUIJOM=
|
||||
k8s.io/apimachinery v0.26.2 h1:da1u3D5wfR5u2RpLhE/ZtZS2P7QvDgLZTi9wrNZl/tQ=
|
||||
k8s.io/apimachinery v0.26.2/go.mod h1:ats7nN1LExKHvJ9TmwootT00Yz05MuYqPXEXaVeOy5I=
|
||||
k8s.io/client-go v0.26.2 h1:s1WkVujHX3kTp4Zn4yGNFK+dlDXy1bAAkIl+cFAiuYI=
|
||||
k8s.io/client-go v0.26.2/go.mod h1:u5EjOuSyBa09yqqyY7m3abZeovO/7D/WehVVlZ2qcqU=
|
||||
k8s.io/cluster-bootstrap v0.19.3 h1:LIVoRLTjJt3Yq/u+cV8h3cxGPwz9w+SFXtHdiKxfD7A=
|
||||
k8s.io/cluster-bootstrap v0.19.3/go.mod h1:yZPVza5jZABN+xe4y6By4DnZI+UF9TxYj80etnDzZ5w=
|
||||
k8s.io/cri-api v0.28.15 h1:wawXexvh0QCJM+ymdPy+ssksy1tZv0fOKmc8CA1t3CA=
|
||||
@@ -1635,12 +1707,15 @@ k8s.io/cri-api v0.28.15/go.mod h1:8/bPK3T4irPoj3LjriQc1TAIheeN2yWXR3mz+8jNZ8U=
|
||||
k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
|
||||
k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
|
||||
k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
|
||||
k8s.io/klog/v2 v2.20.0 h1:tlyxlSvd63k7axjhuchckaRJm+a92z5GSOrTOQY5sHw=
|
||||
k8s.io/klog/v2 v2.20.0/go.mod h1:Gm8eSIfQN6457haJuPaMxZw4wyP5k+ykPFlrhQDvhvw=
|
||||
k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
|
||||
k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw=
|
||||
k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
|
||||
k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o=
|
||||
k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
|
||||
k8s.io/utils v0.0.0-20201110183641-67b214c5f920 h1:CbnUZsM497iRC5QMVkHwyl8s2tB3g7yaSHkYPkpgelw=
|
||||
k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
|
||||
k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 h1:+70TFaan3hfJzs+7VK2o+OGxg8HsuBr/5f6tVAjDu6E=
|
||||
k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280/go.mod h1:+Axhij7bCpeqhklhUTe3xmOn6bWxolyZEeyaFpjGtl4=
|
||||
k8s.io/utils v0.0.0-20211116205334-6203023598ed/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
|
||||
k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 h1:kmDqav+P+/5e1i9tFfHq1qcF3sOrDp+YEkVDAHu7Jwk=
|
||||
k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
|
||||
lukechampine.com/blake3 v1.1.6 h1:H3cROdztr7RCfoaTpGZFQsrqvweFLrqS73j7L7cmR5c=
|
||||
lukechampine.com/blake3 v1.1.6/go.mod h1:tkKEOtDkNtklkXtLNEOGNq5tcV90tJiA1vAA12R78LA=
|
||||
modernc.org/libc v1.22.3 h1:D/g6O5ftAfavceqlLOFwaZuA5KYafKwmr30A6iSqoyY=
|
||||
@@ -1656,15 +1731,19 @@ moul.io/http2curl/v2 v2.3.0/go.mod h1:RW4hyBjTWSYDOxapodpNEtX0g5Eb16sxklBqmd2RHc
|
||||
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
||||
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
||||
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.0.1 h1:YXTMot5Qz/X1iBRJhAt+vI+HVttY0WkSqqhKxQ0xVbA=
|
||||
sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 h1:iXTIw73aPyC+oRdyqqvVJuloN1p0AC/kzH07hu3NE+k=
|
||||
sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE=
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E=
|
||||
sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
|
||||
sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=
|
||||
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
|
||||
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20260115023540-d2cc546f0409 h1:T1CZAt2R7lD3+40hkZHZJyxptrUMCfNmLAh9WEBsISU=
|
||||
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20260115023540-d2cc546f0409/go.mod h1:aWRX5Phwz3nbHUNnIAm1oVogjguXPYDDgCOy/9Hnnvk=
|
||||
yunion.io/x/executor v0.0.0-20250518005516-5402e9e0bed0 h1:msG4SiDSVU7CrXH06WuHlNEZXIooTcmNbfrIGHuIHBU=
|
||||
yunion.io/x/executor v0.0.0-20250518005516-5402e9e0bed0/go.mod h1:Uxuou9WQIeJXNpy7t2fPLL0BYLvLiMvGQwY7Qc6aSws=
|
||||
sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
|
||||
sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=
|
||||
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20260318103111-0977df013ba7 h1:Pe3pFpuI4caUaAAZa3ErijwZixGtl8Y3CgXGFZuVKYU=
|
||||
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20260318103111-0977df013ba7/go.mod h1:aWRX5Phwz3nbHUNnIAm1oVogjguXPYDDgCOy/9Hnnvk=
|
||||
yunion.io/x/executor v0.0.0-20260312022053-f538abd2b005 h1:3sWwcjGXGjG9mLBWa7AyLq+QSi0udTAx21pfVQRFMBE=
|
||||
yunion.io/x/executor v0.0.0-20260312022053-f538abd2b005/go.mod h1:Uxuou9WQIeJXNpy7t2fPLL0BYLvLiMvGQwY7Qc6aSws=
|
||||
yunion.io/x/jsonutils v0.0.0-20190625054549-a964e1e8a051/go.mod h1:4N0/RVzsYL3kH3WE/H1BjUQdFiWu50JGCFQuuy+Z634=
|
||||
yunion.io/x/jsonutils v1.0.1-0.20250507052344-1abcf4f443b1 h1:/+THlvf/MvgCW+7KeCDCr33e81KSRa5JmdZ1IIyLOXQ=
|
||||
yunion.io/x/jsonutils v1.0.1-0.20250507052344-1abcf4f443b1/go.mod h1:VK4Z93dgiKgAijcSqbMKmGaBMJuHulR16Hz4K015ZPo=
|
||||
@@ -1676,8 +1755,8 @@ yunion.io/x/ovsdb v0.0.0-20230306173834-f164f413a900 h1:Hu/4ERvoWaN6aiFs4h4/yvVB
|
||||
yunion.io/x/ovsdb v0.0.0-20230306173834-f164f413a900/go.mod h1:0vLkNEhlmA64HViPBAnSTUMrx5QP1CLsxXmxDKQ80tc=
|
||||
yunion.io/x/pkg v0.0.0-20190620104149-945c25821dbf/go.mod h1:t6rEGG2sQ4J7DhFxSZVOTjNd0YO/KlfWQyK1W4tog+E=
|
||||
yunion.io/x/pkg v0.0.0-20190628082551-f4033ba2ea30/go.mod h1:t6rEGG2sQ4J7DhFxSZVOTjNd0YO/KlfWQyK1W4tog+E=
|
||||
yunion.io/x/pkg v1.10.4-0.20251114095758-2a2f105d9712 h1:LUYhaE2PbRrlO2dJTII3K5L62wYlwDet2drziGv6yLY=
|
||||
yunion.io/x/pkg v1.10.4-0.20251114095758-2a2f105d9712/go.mod h1:0Bwxqd9MA3ACi119/l02FprY/o9gHahmYC2bsSbnVpM=
|
||||
yunion.io/x/pkg v1.10.4-0.20260224071200-5c269fa62429 h1:yskc2HFnBZXEzfYeQBFdL2gXzVfdPQ8yT4qVDyuhajM=
|
||||
yunion.io/x/pkg v1.10.4-0.20260224071200-5c269fa62429/go.mod h1:0Bwxqd9MA3ACi119/l02FprY/o9gHahmYC2bsSbnVpM=
|
||||
yunion.io/x/s3cli v0.0.0-20241221171442-1c11599d28e1 h1:1KJ3YYinydPHpDEQRXdr/T8SYcKZ5Er+m489H+PnaQ4=
|
||||
yunion.io/x/s3cli v0.0.0-20241221171442-1c11599d28e1/go.mod h1:0iFKpOs1y4lbCxeOmq3Xx/0AcQoewVPwj62eRluioEo=
|
||||
yunion.io/x/sqlchemy v1.1.3-0.20251231025938-b0a38f6e9fab h1:5m/bSzW3uTAk83rp9eethbYsxJFYInFVeU1RDkteW4E=
|
||||
|
||||
@@ -19,13 +19,14 @@ import (
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"yunion.io/x/pkg/errors"
|
||||
|
||||
"yunion.io/x/onecloud/pkg/apigateway/clientman"
|
||||
"yunion.io/x/onecloud/pkg/appsrv"
|
||||
"yunion.io/x/onecloud/pkg/httperrors"
|
||||
"yunion.io/x/onecloud/pkg/mcclient"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/auth"
|
||||
"yunion.io/x/onecloud/pkg/util/netutils2"
|
||||
"yunion.io/x/pkg/errors"
|
||||
)
|
||||
|
||||
const (
|
||||
|
||||
257
pkg/apigateway/handler/mcp_agent.go
Normal file
257
pkg/apigateway/handler/mcp_agent.go
Normal file
@@ -0,0 +1,257 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"yunion.io/x/log"
|
||||
"yunion.io/x/pkg/errors"
|
||||
"yunion.io/x/pkg/util/httputils"
|
||||
|
||||
"yunion.io/x/onecloud/pkg/apigateway/options"
|
||||
"yunion.io/x/onecloud/pkg/appsrv"
|
||||
"yunion.io/x/onecloud/pkg/httperrors"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/auth"
|
||||
modules "yunion.io/x/onecloud/pkg/mcclient/modules/llm"
|
||||
mcpServerOption "yunion.io/x/onecloud/pkg/mcp-server/options"
|
||||
)
|
||||
|
||||
func mcpServersConfigHandler(ctx context.Context, w http.ResponseWriter, r *http.Request) {
|
||||
serviceName := "mcp-server"
|
||||
url, err := auth.GetPublicServiceURL(serviceName, options.Options.Region, "", httputils.GET)
|
||||
if err != nil {
|
||||
log.Warningf("GetPublicServiceURL for %s failed: %v", serviceName, err)
|
||||
}
|
||||
sseURL := fmt.Sprintf("%s/sse", url)
|
||||
|
||||
responseType := r.URL.Query().Get("type")
|
||||
switch responseType {
|
||||
case "claude":
|
||||
// Claude 仅支持单个自定义 header,使用 X-API-Key。填写方式:
|
||||
// base64(ak:sk):`echo -n "你的AK:你的SK" | base64`,将输出填入
|
||||
cmd := fmt.Sprintf("claude mcp add --transport sse %s --header \"X-API-Key: <填写 token 或 base64(AK:SK)>\"", sseURL)
|
||||
w.Header().Set("Content-Type", "text/plain; charset=utf-8")
|
||||
w.Write([]byte(cmd))
|
||||
return
|
||||
case "cursor":
|
||||
// fall through to JSON
|
||||
default:
|
||||
// default: return JSON (cursor format)
|
||||
}
|
||||
|
||||
// Cursor:在 headers 中填写控制台/CLI 获取的 Access Key 与 Secret Key
|
||||
config := map[string]interface{}{
|
||||
"mcpServers": map[string]interface{}{
|
||||
mcpServerOption.Options.MCPServerName: map[string]interface{}{
|
||||
"url": sseURL,
|
||||
"headers": map[string]string{
|
||||
"AK": "<填写 Access Key>",
|
||||
"SK": "<填写 Secret Key>",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
json.NewEncoder(w).Encode(config)
|
||||
}
|
||||
|
||||
func chatHandlerInfo(method, prefix string, handler func(context.Context, http.ResponseWriter, *http.Request)) *appsrv.SHandlerInfo {
|
||||
log.Debugf("%s - %s", method, prefix)
|
||||
hi := appsrv.SHandlerInfo{}
|
||||
hi.SetMethod(method)
|
||||
hi.SetPath(prefix)
|
||||
hi.SetHandler(handler)
|
||||
hi.SetProcessTimeout(6 * time.Hour)
|
||||
// Use default worker manager with default pool size (usually 32)
|
||||
// instead of uploader worker which has limited pool size (4)
|
||||
return &hi
|
||||
}
|
||||
|
||||
func mcpAgentChatStreamHandler(ctx context.Context, w http.ResponseWriter, r *http.Request) {
|
||||
params, _, body := appsrv.FetchEnv(ctx, w, r)
|
||||
id := params["<id>"]
|
||||
if len(id) == 0 {
|
||||
httperrors.MissingParameterError(ctx, w, "id")
|
||||
return
|
||||
}
|
||||
|
||||
token := AppContextToken(ctx)
|
||||
s := auth.GetSession(ctx, token, FetchRegion(r))
|
||||
|
||||
// Prepare request to backend
|
||||
headers := http.Header{}
|
||||
headers.Set("Content-Type", "application/json")
|
||||
|
||||
// Forward the request body to the backend
|
||||
var bodyReader io.Reader
|
||||
if body != nil {
|
||||
bodyStr := body.String()
|
||||
bodyReader = strings.NewReader(bodyStr)
|
||||
}
|
||||
|
||||
path := fmt.Sprintf("/mcp_agents/%s/chat-stream", id)
|
||||
resp, err := s.RawVersionRequest(
|
||||
modules.MCPAgent.ServiceType(),
|
||||
modules.MCPAgent.EndpointType(),
|
||||
"POST",
|
||||
path,
|
||||
headers,
|
||||
bodyReader,
|
||||
)
|
||||
if err != nil {
|
||||
httperrors.GeneralServerError(ctx, w, errors.Wrap(err, "request backend"))
|
||||
return
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
if resp.StatusCode != 200 {
|
||||
// Read error body
|
||||
respBody, _ := io.ReadAll(resp.Body)
|
||||
// Try to parse as JSON error if possible, or just return as is
|
||||
if resp.StatusCode >= 400 && resp.StatusCode < 500 {
|
||||
httperrors.InputParameterError(ctx, w, "backend error: %s", string(respBody))
|
||||
} else {
|
||||
httperrors.GeneralServerError(ctx, w, fmt.Errorf("backend error %d: %s", resp.StatusCode, string(respBody)))
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// Set SSE headers
|
||||
w.Header().Set("Content-Type", "text/event-stream")
|
||||
w.Header().Set("Cache-Control", "no-cache")
|
||||
w.Header().Set("Connection", "keep-alive")
|
||||
// For now just standard SSE headers.
|
||||
|
||||
if f, ok := w.(http.Flusher); ok {
|
||||
f.Flush()
|
||||
}
|
||||
|
||||
// Stream the response from backend to client
|
||||
buf := make([]byte, 1024)
|
||||
for {
|
||||
n, err := resp.Body.Read(buf)
|
||||
if n > 0 {
|
||||
if _, wErr := w.Write(buf[:n]); wErr != nil {
|
||||
log.Errorf("write response error: %v", wErr)
|
||||
return
|
||||
}
|
||||
if f, ok := w.(http.Flusher); ok {
|
||||
f.Flush()
|
||||
}
|
||||
}
|
||||
if err != nil {
|
||||
if err != io.EOF {
|
||||
log.Errorf("read backend response error: %v", err)
|
||||
}
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// mcpAgentDefaultChatStreamHandler 将请求转发到 region 的 default-chat-stream(使用 default_agent=true 的条目)
|
||||
func mcpAgentDefaultChatStreamHandler(ctx context.Context, w http.ResponseWriter, r *http.Request) {
|
||||
token := AppContextToken(ctx)
|
||||
s := auth.GetSession(ctx, token, FetchRegion(r))
|
||||
|
||||
headers := http.Header{}
|
||||
headers.Set("Content-Type", "application/json")
|
||||
|
||||
var bodyReader io.Reader
|
||||
if r.Body != nil {
|
||||
bodyReader = r.Body
|
||||
}
|
||||
|
||||
path := "/mcp_agents/default-chat-stream"
|
||||
resp, err := s.RawVersionRequest(
|
||||
modules.MCPAgent.ServiceType(),
|
||||
modules.MCPAgent.EndpointType(),
|
||||
"POST",
|
||||
path,
|
||||
headers,
|
||||
bodyReader,
|
||||
)
|
||||
if err != nil {
|
||||
httperrors.GeneralServerError(ctx, w, errors.Wrap(err, "request backend"))
|
||||
return
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
if resp.StatusCode != 200 {
|
||||
respBody, _ := io.ReadAll(resp.Body)
|
||||
if resp.StatusCode >= 400 && resp.StatusCode < 500 {
|
||||
httperrors.InputParameterError(ctx, w, "backend error: %s", string(respBody))
|
||||
} else {
|
||||
httperrors.GeneralServerError(ctx, w, fmt.Errorf("backend error %d: %s", resp.StatusCode, string(respBody)))
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
w.Header().Set("Content-Type", "text/event-stream")
|
||||
w.Header().Set("Cache-Control", "no-cache")
|
||||
w.Header().Set("Connection", "keep-alive")
|
||||
if f, ok := w.(http.Flusher); ok {
|
||||
f.Flush()
|
||||
}
|
||||
|
||||
buf := make([]byte, 1024)
|
||||
for {
|
||||
n, err := resp.Body.Read(buf)
|
||||
if n > 0 {
|
||||
if _, wErr := w.Write(buf[:n]); wErr != nil {
|
||||
log.Errorf("write response error: %v", wErr)
|
||||
return
|
||||
}
|
||||
if f, ok := w.(http.Flusher); ok {
|
||||
f.Flush()
|
||||
}
|
||||
}
|
||||
if err != nil {
|
||||
if err != io.EOF {
|
||||
log.Errorf("read backend response error: %v", err)
|
||||
}
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// mcpAgentDefaultToolsHandler 将 GET 请求转发到 region 的 default-mcp-tools(仅使用 options.MCPServerURL,不通过 mcp_agent 条目)
|
||||
func mcpAgentDefaultToolsHandler(ctx context.Context, w http.ResponseWriter, r *http.Request) {
|
||||
token := AppContextToken(ctx)
|
||||
s := auth.GetSession(ctx, token, FetchRegion(r))
|
||||
|
||||
path := "/mcp_agents/default-mcp-tools"
|
||||
resp, err := s.RawVersionRequest(
|
||||
modules.MCPAgent.ServiceType(),
|
||||
modules.MCPAgent.EndpointType(),
|
||||
"GET",
|
||||
path,
|
||||
nil,
|
||||
nil,
|
||||
)
|
||||
if err != nil {
|
||||
httperrors.GeneralServerError(ctx, w, errors.Wrap(err, "request backend"))
|
||||
return
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
if resp.StatusCode != 200 {
|
||||
respBody, _ := io.ReadAll(resp.Body)
|
||||
if resp.StatusCode >= 400 && resp.StatusCode < 500 {
|
||||
httperrors.InputParameterError(ctx, w, "backend error: %s", string(respBody))
|
||||
} else {
|
||||
httperrors.GeneralServerError(ctx, w, fmt.Errorf("backend error %d: %s", resp.StatusCode, string(respBody)))
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
_, err = io.Copy(w, resp.Body)
|
||||
if err != nil {
|
||||
log.Errorf("write default mcp tools response error: %v", err)
|
||||
}
|
||||
}
|
||||
@@ -105,11 +105,23 @@ func (h *MiscHandler) Bind(app *appsrv.Application) {
|
||||
s3upload := uploadHandlerInfo(POST, prefix+"s3uploads", FetchAuthToken(h.postS3UploadHandler))
|
||||
app.AddHandler3(s3upload)
|
||||
|
||||
// mcp agent chat stream
|
||||
chatStream := chatHandlerInfo("POST", prefix+"mcp_agents/<id>/chat-stream", FetchAuthToken(mcpAgentChatStreamHandler))
|
||||
app.AddHandler3(chatStream)
|
||||
// mcp agent default chat stream (uses agent with default_agent=true)
|
||||
defaultChatStream := chatHandlerInfo("POST", prefix+"mcp_agents/default/chat-stream", FetchAuthToken(mcpAgentDefaultChatStreamHandler))
|
||||
app.AddHandler3(defaultChatStream)
|
||||
|
||||
// syslog webservice handlers
|
||||
app.AddHandler(POST, prefix+"syslog/token", handleSyslogWebServiceToken)
|
||||
app.AddHandler(POST, prefix+"syslog/message", handleSyslogWebServiceMessage)
|
||||
// service settings
|
||||
app.AddHandler(GET, prefix+"service_settings", h.getServiceSettings)
|
||||
|
||||
// mcp servers config
|
||||
app.AddHandler(GET, prefix+"mcp-servers-config", mcpServersConfigHandler)
|
||||
// mcp agent default MCP server tools (options.MCPServerURL only, no mcp_agent entry)
|
||||
app.AddHandler(GET, prefix+"default-mcp-tools", FetchAuthToken(mcpAgentDefaultToolsHandler))
|
||||
}
|
||||
|
||||
func UploadHandlerInfo(method, prefix string, handler func(context.Context, http.ResponseWriter, *http.Request)) *appsrv.SHandlerInfo {
|
||||
|
||||
@@ -22,7 +22,7 @@ type BillingDetailsInfo struct {
|
||||
type BillingResourceListInput struct {
|
||||
// 计费类型,按需计费和预付费
|
||||
// pattern:prepaid|postpaid
|
||||
BillingType string `json:"billing_type"`
|
||||
BillingType TBillingType `json:"billing_type"`
|
||||
|
||||
// 计费过期时间的查询起始时间
|
||||
BillingExpireSince time.Time `json:"billing_expire_since"`
|
||||
|
||||
@@ -14,9 +14,41 @@
|
||||
|
||||
package billing
|
||||
|
||||
import "yunion.io/x/cloudmux/pkg/apis/billing"
|
||||
import (
|
||||
"yunion.io/x/cloudmux/pkg/apis/billing"
|
||||
"yunion.io/x/cloudmux/pkg/apis/compute"
|
||||
)
|
||||
|
||||
type TBillingType string
|
||||
|
||||
const (
|
||||
BILLING_TYPE_POSTPAID = billing.BILLING_TYPE_POSTPAID
|
||||
BILLING_TYPE_PREPAID = billing.BILLING_TYPE_PREPAID
|
||||
BILLING_TYPE_POSTPAID = TBillingType(billing.BILLING_TYPE_POSTPAID)
|
||||
BILLING_TYPE_PREPAID = TBillingType(billing.BILLING_TYPE_PREPAID)
|
||||
)
|
||||
|
||||
type TNetChargeType string
|
||||
|
||||
const (
|
||||
NET_CHARGE_TYPE_BY_TRAFFIC = TNetChargeType(compute.EIP_CHARGE_TYPE_BY_TRAFFIC)
|
||||
NET_CHARGE_TYPE_BY_BANDWIDTH = TNetChargeType(compute.EIP_CHARGE_TYPE_BY_BANDWIDTH)
|
||||
)
|
||||
|
||||
func ParseBillingType(s string) TBillingType {
|
||||
switch s {
|
||||
case string(BILLING_TYPE_POSTPAID):
|
||||
return BILLING_TYPE_POSTPAID
|
||||
case string(BILLING_TYPE_PREPAID):
|
||||
return BILLING_TYPE_PREPAID
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func ParseNetChargeType(s string) TNetChargeType {
|
||||
switch s {
|
||||
case string(NET_CHARGE_TYPE_BY_TRAFFIC):
|
||||
return NET_CHARGE_TYPE_BY_TRAFFIC
|
||||
case string(NET_CHARGE_TYPE_BY_BANDWIDTH):
|
||||
return NET_CHARGE_TYPE_BY_BANDWIDTH
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import (
|
||||
"yunion.io/x/jsonutils"
|
||||
|
||||
"yunion.io/x/onecloud/pkg/apis"
|
||||
billing_api "yunion.io/x/onecloud/pkg/apis/billing"
|
||||
)
|
||||
|
||||
type SchedtagConfig struct {
|
||||
@@ -121,7 +122,10 @@ type NetworkConfig struct {
|
||||
|
||||
PortMappings GuestPortMappings `json:"port_mappings"`
|
||||
|
||||
ChargeType string `json:"charge_type"`
|
||||
// 计费模式
|
||||
BillingType billing_api.TBillingType `json:"billing_type"`
|
||||
// 计量模式
|
||||
ChargeType billing_api.TNetChargeType `json:"charge_type"`
|
||||
|
||||
// swagger:ignore
|
||||
Project string `json:"project_id"`
|
||||
@@ -130,6 +134,9 @@ type NetworkConfig struct {
|
||||
Domain string `json:"domain_id"`
|
||||
Ifname string `json:"ifname"`
|
||||
Schedtags []*SchedtagConfig `json:"schedtags"`
|
||||
|
||||
// network secgroups
|
||||
Secgroups []string `json:"secgroups"`
|
||||
}
|
||||
|
||||
type AttachNetworkInput struct {
|
||||
@@ -190,6 +197,11 @@ type DiskConfig struct {
|
||||
// required: false
|
||||
AutoReset bool `json:"auto_reset"`
|
||||
|
||||
// 是否跟随主机删除而自动删除
|
||||
// 默认跟随主机创建的磁盘为 true
|
||||
// required: false
|
||||
AutoDelete *bool `json:"auto_delete,omitempty"`
|
||||
|
||||
// 磁盘存储格式
|
||||
// enum: ["qcow2", "raw", "docker", "iso", "vmdk", "vmdkflatver1", "vmdkflatver2", "vmdkflat", "vmdksparse", "vmdksparsever1", "vmdksparsever2", "vmdksepsparse", "vhd"]
|
||||
// requried: false
|
||||
@@ -466,6 +478,37 @@ type DeployConfig struct {
|
||||
Content string `json:"content"`
|
||||
}
|
||||
|
||||
// KickstartConfig Kickstart/Autoinstall自动化安装配置
|
||||
type KickstartConfig struct {
|
||||
// 配置文件内容 (当用户直接提供配置时使用)
|
||||
// required: false
|
||||
Config string `json:"config,omitempty"`
|
||||
|
||||
// 配置文件 URL (当配置文件位于外部服务器时使用)
|
||||
// required: false
|
||||
ConfigURL string `json:"config_url,omitempty"`
|
||||
|
||||
// 操作系统类型 (用于确定内核参数和文件路径)
|
||||
// enum: centos,rhel,fedora,openeuler,ubuntu
|
||||
// required: true
|
||||
OSType string `json:"os_type" validate:"required,oneof=centos rhel fedora openeuler ubuntu"`
|
||||
|
||||
// 是否启用 (用于临时禁用而不删除配置)
|
||||
// default: true
|
||||
// required: false
|
||||
Enabled *bool `json:"enabled,omitempty"`
|
||||
|
||||
// 最大重试次数
|
||||
// default: 3
|
||||
// required: false
|
||||
MaxRetries int `json:"max_retries,omitempty"`
|
||||
|
||||
// 安装超时时间 (分钟)
|
||||
// default: 60
|
||||
// required: false
|
||||
TimeoutMinutes int `json:"timeout_minutes,omitempty"`
|
||||
}
|
||||
|
||||
type ServerCreateInput struct {
|
||||
apis.VirtualResourceCreateInput
|
||||
DeletePreventableCreateInput
|
||||
@@ -604,7 +647,7 @@ type ServerCreateInput struct {
|
||||
// 弹性公网IP线路类型
|
||||
EipBgpType string `json:"eip_bgp_type,omitzero"`
|
||||
// 弹性公网IP计费类型
|
||||
EipChargeType string `json:"eip_charge_type,omitempty"`
|
||||
EipChargeType billing_api.TNetChargeType `json:"eip_charge_type,omitempty"`
|
||||
// 是否跟随主机删除而自动释放
|
||||
EipAutoDellocate bool `json:"eip_auto_dellocate,omitempty"`
|
||||
|
||||
@@ -630,7 +673,7 @@ type ServerCreateInput struct {
|
||||
// |---- |------- |
|
||||
// |traffic |按流量计费|
|
||||
// |bandwidth |按带宽计费|
|
||||
PublicIpChargeType string `json:"public_ip_charge_type,omitempty"`
|
||||
PublicIpChargeType billing_api.TNetChargeType `json:"public_ip_charge_type,omitempty"`
|
||||
|
||||
// 使用主机快照创建虚拟机, 主机快照不会重置密码及秘钥信息
|
||||
// 使用主机快照创建的虚拟机将沿用之前的密码秘钥及安全组信息
|
||||
@@ -656,7 +699,7 @@ type ServerCreateInput struct {
|
||||
// swagger:ignore
|
||||
OsProfile jsonutils.JSONObject `json:"__os_profile__"`
|
||||
// swagger:ignore
|
||||
BillingType string `json:"billing_type"`
|
||||
BillingType billing_api.TBillingType `json:"billing_type"`
|
||||
// swagger:ignore
|
||||
BillingCycle string `json:"billing_cycle"`
|
||||
// 到期释放时间
|
||||
@@ -677,9 +720,25 @@ type ServerCreateInput struct {
|
||||
// 指定用于新建主机的主机镜像ID
|
||||
GuestImageID string `json:"guest_image_id"`
|
||||
|
||||
// Kickstart/Autoinstall自动化安装配置
|
||||
// required: false
|
||||
KickstartConfig *KickstartConfig `json:"kickstart_config,omitempty"`
|
||||
|
||||
Pod *PodCreateInput `json:"pod"`
|
||||
}
|
||||
|
||||
// ServerUpdateKickstartStatusInput 更新虚拟机 kickstart 状态的输入
|
||||
type ServerUpdateKickstartStatusInput struct {
|
||||
// kickstart 状态
|
||||
// enum: kickstart_pending,kickstart_installing,kickstart_completed,kickstart_failed
|
||||
// required: true
|
||||
Status string `json:"status" validate:"required,oneof=kickstart_pending kickstart_installing kickstart_completed kickstart_failed"`
|
||||
|
||||
// 错误信息(可选)
|
||||
// required: false
|
||||
ErrorMessage string `json:"error_message,omitempty"`
|
||||
}
|
||||
|
||||
func (input *ServerCreateInput) AfterUnmarshal() {
|
||||
if input.Baremetal {
|
||||
input.Hypervisor = HYPERVISOR_BAREMETAL
|
||||
|
||||
@@ -100,6 +100,6 @@ type CachedimageListInput struct {
|
||||
// valid cachedimage
|
||||
Valid bool `json:"valid"`
|
||||
|
||||
// enum: [public, private]
|
||||
// enum: ["public", "private"]
|
||||
CloudEnv string `json:"cloud_env"`
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ import (
|
||||
"time"
|
||||
|
||||
"yunion.io/x/onecloud/pkg/apis"
|
||||
billing_api "yunion.io/x/onecloud/pkg/apis/billing"
|
||||
)
|
||||
|
||||
type DBInstanceCreateInput struct {
|
||||
@@ -87,7 +88,7 @@ type DBInstanceCreateInput struct {
|
||||
|
||||
// 计费方式
|
||||
// enum: ["postpaid", "prepaid"]
|
||||
BillingType string
|
||||
BillingType billing_api.TBillingType `json:"billing_type"`
|
||||
// swagger:ignore
|
||||
BillingCycle string
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@ import (
|
||||
|
||||
"yunion.io/x/onecloud/pkg/apis"
|
||||
"yunion.io/x/onecloud/pkg/apis/billing"
|
||||
billing_api "yunion.io/x/onecloud/pkg/apis/billing"
|
||||
"yunion.io/x/onecloud/pkg/httperrors"
|
||||
)
|
||||
|
||||
@@ -177,6 +178,8 @@ type DiskListInput struct {
|
||||
|
||||
// 根据是否绑定快照策略过滤
|
||||
BindingSnapshotpolicy *bool `json:"binding_snapshotpolicy"`
|
||||
// 根据是否磁盘所在虚拟机是否绑定主机快照策略
|
||||
BindingServerSnapshotpolicy *bool `json:"binding_server_snapshotpolicy"`
|
||||
}
|
||||
|
||||
type DiskResourceInput struct {
|
||||
@@ -221,13 +224,22 @@ type SimpleGuest struct {
|
||||
Bps int `json:"bps"`
|
||||
// 计费类型
|
||||
BillingType string `json:"billing_type"`
|
||||
|
||||
// 磁盘绑定的快照策略列表
|
||||
Snapshotpolicy []SimpleSnapshotPolicy `json:"snapshotpolicy"`
|
||||
}
|
||||
|
||||
type SimpleSnapshotPolicy struct {
|
||||
Id string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
RepeatWeekdays []int `json:"repeat_weekdays"`
|
||||
TimePoints []int `json:"time_points"`
|
||||
// 快照策略ID
|
||||
Id string `json:"id"`
|
||||
// 快照策略名称
|
||||
Name string `json:"name"`
|
||||
// 快照策略类型
|
||||
ResourceType string `json:"resource_type"`
|
||||
// 快照策略重复周期
|
||||
RepeatWeekdays []int `json:"repeat_weekdays"`
|
||||
// 快照策略时间点
|
||||
TimePoints []int `json:"time_points"`
|
||||
}
|
||||
|
||||
type DiskDetails struct {
|
||||
@@ -247,11 +259,11 @@ type DiskDetails struct {
|
||||
GuestStatus string `json:"guest_status"`
|
||||
// 所挂载虚拟机计费类型
|
||||
GuestBillingType string `json:"guest_billing_type"`
|
||||
// 磁盘所在虚拟机绑定的主机快照策略数量
|
||||
GuestSnapshotpolicyCount int `json:"guest_snapshotpolicy_count"`
|
||||
|
||||
// 自动清理时间
|
||||
AutoDeleteAt time.Time `json:"auto_delete_at"`
|
||||
// 自动快照策略状态
|
||||
SnapshotpolicyStatus string `json:"snapshotpolicy_status,allowempty"`
|
||||
|
||||
// 自动快照策略
|
||||
Snapshotpolicies []SimpleSnapshotPolicy `json:"snapshotpolicies"`
|
||||
@@ -281,6 +293,11 @@ type DiskUpdateInput struct {
|
||||
DiskType string `json:"disk_type"`
|
||||
// 关机自动重置
|
||||
AutoReset *bool `json:"auto_reset"`
|
||||
|
||||
// 是否跟随主机删除而自动删除
|
||||
// 默认跟随主机创建的磁盘为 true
|
||||
// required: false
|
||||
AutoDelete *bool `json:"auto_delete,omitempty"`
|
||||
}
|
||||
|
||||
type DiskSaveInput struct {
|
||||
@@ -363,6 +380,7 @@ type DiskChagneStorageTypeInput struct {
|
||||
}
|
||||
|
||||
type DiskSnapshotpolicyInput struct {
|
||||
// 快照策略ID
|
||||
SnapshotpolicyId string `json:"snapshotpolicy_id"`
|
||||
}
|
||||
|
||||
@@ -405,5 +423,5 @@ type DiskChangeBillingTypeInput struct {
|
||||
// 目前支持阿里云
|
||||
// enmu: [postpaid, prepaid]
|
||||
// required: true
|
||||
BillingType string `json:"billing_type"`
|
||||
BillingType billing_api.TBillingType `json:"billing_type"`
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ import (
|
||||
"time"
|
||||
|
||||
"yunion.io/x/onecloud/pkg/apis"
|
||||
billing_api "yunion.io/x/onecloud/pkg/apis/billing"
|
||||
)
|
||||
|
||||
type ElasticcacheDetails struct {
|
||||
@@ -255,7 +256,7 @@ type ElasticcacheCreateInput struct {
|
||||
|
||||
// 计费方式
|
||||
// enum: ["postpaid", "prepaid"]
|
||||
BillingType string
|
||||
BillingType billing_api.TBillingType `json:"billing_type"`
|
||||
// swagger:ignore
|
||||
BillingCycle string
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ package compute
|
||||
|
||||
import (
|
||||
"yunion.io/x/onecloud/pkg/apis"
|
||||
billing_api "yunion.io/x/onecloud/pkg/apis/billing"
|
||||
)
|
||||
|
||||
type SElasticipCreateInput struct {
|
||||
@@ -60,7 +61,7 @@ type SElasticipCreateInput struct {
|
||||
// |OpenStack | traffic |
|
||||
// default: traffic
|
||||
// enum: ["traffic", "bandwidth"]
|
||||
ChargeType string `json:"charge_type"`
|
||||
ChargeType billing_api.TNetChargeType `json:"charge_type"`
|
||||
|
||||
Mode string `json:"mode"`
|
||||
|
||||
|
||||
@@ -44,9 +44,6 @@ const (
|
||||
|
||||
EIP_STATUS_CHANGE_BANDWIDTH = "change_bandwidth"
|
||||
|
||||
EIP_CHARGE_TYPE_BY_TRAFFIC = compute.EIP_CHARGE_TYPE_BY_TRAFFIC
|
||||
EIP_CHARGE_TYPE_BY_BANDWIDTH = compute.EIP_CHARGE_TYPE_BY_BANDWIDTH
|
||||
|
||||
INSTANCE_ASSOCIATE_EIP = "associate_eip"
|
||||
INSTANCE_ASSOCIATE_EIP_FAILED = "associate_eip_failed"
|
||||
INSTANCE_DISSOCIATE_EIP = "dissociate_eip"
|
||||
|
||||
@@ -20,6 +20,7 @@ import (
|
||||
"yunion.io/x/cloudmux/pkg/apis/compute"
|
||||
|
||||
"yunion.io/x/onecloud/pkg/apis"
|
||||
billing_api "yunion.io/x/onecloud/pkg/apis/billing"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -92,7 +93,7 @@ type FileSystemCreateInput struct {
|
||||
|
||||
// 计费方式
|
||||
// enum: ["postpaid", "prepaid"]
|
||||
BillingType string `json:"billing_type"`
|
||||
BillingType billing_api.TBillingType `json:"billing_type"`
|
||||
// swagger:ignore
|
||||
BillingCycle string `json:"billing_cycle"`
|
||||
}
|
||||
|
||||
15
pkg/apis/compute/guest/doc.go
Normal file
15
pkg/apis/compute/guest/doc.go
Normal file
@@ -0,0 +1,15 @@
|
||||
// Copyright 2019 Yunion
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package guest // import "yunion.io/x/onecloud/pkg/apis/compute/guest"
|
||||
47
pkg/apis/compute/guest/guest_network_traffic_log.go
Normal file
47
pkg/apis/compute/guest/guest_network_traffic_log.go
Normal file
@@ -0,0 +1,47 @@
|
||||
// Copyright 2019 Yunion
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package guest
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"yunion.io/x/onecloud/pkg/apis"
|
||||
compute_api "yunion.io/x/onecloud/pkg/apis/compute"
|
||||
)
|
||||
|
||||
type GuestNetworkTrafficState string
|
||||
|
||||
const (
|
||||
GuestNetworkTrafficStateContinue GuestNetworkTrafficState = ""
|
||||
GuestNetworkTrafficStateStart GuestNetworkTrafficState = "start"
|
||||
)
|
||||
|
||||
type GuestNetworkTrafficLogListInput struct {
|
||||
apis.ProjectizedResourceListInput
|
||||
compute_api.ServerFilterListInput
|
||||
compute_api.NetworkFilterListInput
|
||||
|
||||
Since time.Time `json:"since"`
|
||||
Until time.Time `json:"until"`
|
||||
|
||||
IpAddr []string `json:"ip_addr"`
|
||||
Ip6Addr []string `json:"ip6_addr"`
|
||||
|
||||
State []GuestNetworkTrafficState `json:"state"`
|
||||
}
|
||||
|
||||
type GuestNetworkTrafficLogDetails struct {
|
||||
compute_api.SGuestNetworkTrafficLog
|
||||
}
|
||||
@@ -180,6 +180,12 @@ const (
|
||||
VM_QGA_SET_NETWORK = "qga_set_network"
|
||||
VM_QGA_SET_NETWORK_FAILED = "qga_set_network_failed"
|
||||
|
||||
// Kickstart自动安装相关状态
|
||||
VM_KICKSTART_PENDING = "kickstart_pending" // kickstart配置完成,等待VM启动
|
||||
VM_KICKSTART_INSTALLING = "kickstart_installing" // kickstart正在安装
|
||||
VM_KICKSTART_COMPLETED = "kickstart_completed" // kickstart安装完成,准备转为running
|
||||
VM_KICKSTART_FAILED = "kickstart_failed" // kickstart安装失败
|
||||
|
||||
SHUTDOWN_STOP = "stop"
|
||||
SHUTDOWN_TERMINATE = "terminate"
|
||||
SHUTDOWN_STOP_RELEASE_GPU = "stop_release_gpu"
|
||||
@@ -259,7 +265,7 @@ const (
|
||||
VM_MACHINE_TYPE_PC = "pc"
|
||||
VM_MACHINE_TYPE_Q35 = "q35"
|
||||
|
||||
VM_MACHINE_TYPE_ARM_VIRT = "virt"
|
||||
VM_MACHINE_TYPE_VIRT = "virt"
|
||||
|
||||
VM_VDI_PROTOCOL_VNC = "vnc"
|
||||
VM_VDI_PROTOCOL_SPICE = "spice"
|
||||
@@ -274,6 +280,7 @@ const (
|
||||
|
||||
var VM_RUNNING_STATUS = []string{VM_START_START, VM_STARTING, VM_RUNNING, VM_BLOCK_STREAM, VM_BLOCK_STREAM_FAIL}
|
||||
var VM_CREATING_STATUS = []string{VM_CREATE_NETWORK, VM_CREATE_DISK, VM_START_DEPLOY, VM_DEPLOYING}
|
||||
var VM_KICKSTART_STATUS = []string{VM_KICKSTART_PENDING, VM_KICKSTART_INSTALLING, VM_KICKSTART_COMPLETED, VM_KICKSTART_FAILED}
|
||||
|
||||
var HYPERVISORS = []string{
|
||||
HYPERVISOR_KVM,
|
||||
@@ -349,8 +356,31 @@ const (
|
||||
VM_METADATA_CPU_NUMA_PIN_TYPE = "__cpu_numa_pin_type"
|
||||
|
||||
VM_METADATA_VIRTUAL_ISOLATED_DEVICE_CONFIG = "__virtual_isolated_device_config"
|
||||
// Kickstart相关metadata常量
|
||||
VM_METADATA_KICKSTART_CONFIG = "kickstart_config"
|
||||
VM_METADATA_KICKSTART_TYPE = "kickstart_type"
|
||||
VM_METADATA_KICKSTART_ATTEMPT = "kickstart_attempt"
|
||||
VM_METADATA_KICKSTART_COMPLETED_FLAG = "kickstart_completed_flag"
|
||||
)
|
||||
|
||||
const (
|
||||
KICKSTART_TYPE_URL = "url"
|
||||
KICKSTART_TYPE_CONTENT = "content"
|
||||
)
|
||||
|
||||
var KICKSTART_VALID_TYPES = []string{
|
||||
KICKSTART_TYPE_URL,
|
||||
KICKSTART_TYPE_CONTENT,
|
||||
}
|
||||
|
||||
var KICKSTART_VALID_OS_TYPES = []string{
|
||||
"centos",
|
||||
"rhel",
|
||||
"fedora",
|
||||
"ubuntu",
|
||||
"openeuler",
|
||||
}
|
||||
|
||||
// windows allow a maximal length of 15
|
||||
// http://support.microsoft.com/kb/909264
|
||||
const MAX_WINDOWS_COMPUTER_NAME_LENGTH = 15
|
||||
|
||||
@@ -28,7 +28,7 @@ type SImagesInGuest struct {
|
||||
DataImages []SSubImage
|
||||
}
|
||||
|
||||
type SGuestScreenDump struct {
|
||||
type SGuestScreenDumpInfo struct {
|
||||
S3AccessKey string
|
||||
S3SecretKey string
|
||||
S3Endpoint string
|
||||
|
||||
@@ -16,10 +16,14 @@ package compute
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
"time"
|
||||
|
||||
"yunion.io/x/cloudmux/pkg/apis/compute"
|
||||
"yunion.io/x/jsonutils"
|
||||
billing_api "yunion.io/x/onecloud/pkg/apis/billing"
|
||||
"yunion.io/x/pkg/gotypes"
|
||||
|
||||
"yunion.io/x/onecloud/pkg/apis"
|
||||
)
|
||||
|
||||
type GuestnetworkDetails struct {
|
||||
@@ -76,12 +80,24 @@ type GuestnetworkShortDesc struct {
|
||||
Ifname string `json:"ifname"`
|
||||
// 是否为缺省路由网关
|
||||
IsDefault bool `json:"is_default"`
|
||||
// 线路类型
|
||||
BgpType string `json:"bgp_type"`
|
||||
|
||||
// 计费模式
|
||||
ChargeType string `json:"charge_type"`
|
||||
BillingType billing_api.TBillingType `json:"billing_type"`
|
||||
// 计量模式
|
||||
ChargeType billing_api.TNetChargeType `json:"charge_type"`
|
||||
|
||||
// 网卡序号
|
||||
Index int `json:"index"`
|
||||
}
|
||||
|
||||
type GuestnetworkSecgroupShortDesc struct {
|
||||
NetworkIndex int `json:"network_index"`
|
||||
Secgroups []apis.StandaloneShortDesc `json:"secgroups"`
|
||||
Mac string `json:"mac"`
|
||||
}
|
||||
|
||||
type GuestnetworkListInput struct {
|
||||
GuestJointsListInput
|
||||
|
||||
@@ -137,6 +153,9 @@ type GuestnetworkBaseDesc struct {
|
||||
TxTrafficLimit int64 `json:"tx_traffic_limit"`
|
||||
NicType compute.TNicType `json:"nic_type"`
|
||||
|
||||
BillingType billing_api.TBillingType `json:"billing_type"`
|
||||
ChargeType billing_api.TNetChargeType `json:"charge_type"`
|
||||
|
||||
Ip6 string `json:"ip6"`
|
||||
Gateway6 string `json:"gateway6"`
|
||||
Masklen6 uint8 `json:"masklen6"`
|
||||
@@ -148,6 +167,9 @@ type GuestnetworkBaseDesc struct {
|
||||
WireId string `json:"wire_id"`
|
||||
Interface string `json:"interface"`
|
||||
|
||||
Secgroups []*SecgroupJsonDesc `json:"secgroups"`
|
||||
SecurityRules string `json:"security_rules"`
|
||||
|
||||
Vpc struct {
|
||||
Id string `json:"id"`
|
||||
Provider string `json:"provider"`
|
||||
@@ -183,6 +205,14 @@ type GuestnetworkJsonDesc struct {
|
||||
LinkUp bool `json:"link_up"`
|
||||
}
|
||||
|
||||
type GuestnetworkSecgroupDesc struct {
|
||||
Secgroups []*SecgroupJsonDesc `json:"secgroups"`
|
||||
SecurityRules string `json:"security_rules"`
|
||||
|
||||
Index int `json:"index"`
|
||||
Mac string `json:"mac"`
|
||||
}
|
||||
|
||||
type SNicTrafficRecord struct {
|
||||
RxTraffic int64
|
||||
TxTraffic int64
|
||||
@@ -190,6 +220,24 @@ type SNicTrafficRecord struct {
|
||||
HasBeenSetDown bool
|
||||
}
|
||||
|
||||
type GuestNicTrafficSyncInput struct {
|
||||
// 同步时间
|
||||
SyncAt time.Time
|
||||
// 是否重置计数器
|
||||
IsReset bool `json:"is_reset"`
|
||||
// first key: guest_id
|
||||
// second key: nic_mac
|
||||
Traffic map[string]map[string]*SNicTrafficRecord
|
||||
}
|
||||
|
||||
func NewGuestNicTrafficSyncInput(syncAt time.Time, isReset bool) *GuestNicTrafficSyncInput {
|
||||
return &GuestNicTrafficSyncInput{
|
||||
SyncAt: syncAt,
|
||||
Traffic: make(map[string]map[string]*SNicTrafficRecord),
|
||||
IsReset: isReset,
|
||||
}
|
||||
}
|
||||
|
||||
type GuestPortMappingProtocol string
|
||||
|
||||
const (
|
||||
|
||||
@@ -23,6 +23,7 @@ import (
|
||||
|
||||
"yunion.io/x/onecloud/pkg/apis"
|
||||
"yunion.io/x/onecloud/pkg/apis/billing"
|
||||
billing_api "yunion.io/x/onecloud/pkg/apis/billing"
|
||||
"yunion.io/x/onecloud/pkg/apis/host"
|
||||
imageapi "yunion.io/x/onecloud/pkg/apis/image"
|
||||
"yunion.io/x/onecloud/pkg/httperrors"
|
||||
@@ -135,6 +136,14 @@ type ServerListInput struct {
|
||||
|
||||
// 根据是否绑定快照策略过滤
|
||||
BindingSnapshotpolicy *bool `json:"binding_snapshotpolicy"`
|
||||
// 根据虚机关联的磁盘是否绑定快照策略过滤
|
||||
BindingDisksSnapshotpolicy *bool `json:"binding_disks_snapshotpolicy"`
|
||||
}
|
||||
|
||||
// 主机快照策略绑定/设置接口入参
|
||||
type ServerSnapshotpolicyInput struct {
|
||||
// 快照策略ID
|
||||
SnapshotpolicyId string `json:"snapshotpolicy_id"`
|
||||
}
|
||||
|
||||
func (input *ServerListInput) AfterUnmarshal() {
|
||||
@@ -184,6 +193,11 @@ type ServerDetails struct {
|
||||
// 磁盘概要
|
||||
Disks string `json:"disks"`
|
||||
|
||||
// 主机快照策略数量
|
||||
SnapshotpolicyCount int `json:"snapshotpolicy_count"`
|
||||
// 磁盘快照策略数量
|
||||
DisksSnapshotpolicyCount int `json:"disks_snapshotpolicy_count"`
|
||||
|
||||
// 磁盘详情
|
||||
DisksInfo []GuestDiskInfo `json:"disks_info"`
|
||||
// 虚拟机Ip列表
|
||||
@@ -243,6 +257,9 @@ type ServerDetails struct {
|
||||
// 关联主安全组
|
||||
Secgroup string `json:"secgroup"`
|
||||
|
||||
// 网卡级别安全组
|
||||
NetworkSecgroups []GuestnetworkSecgroupShortDesc `json:"network_secgroups"`
|
||||
|
||||
// 浮动IP
|
||||
Eip string `json:"eip"`
|
||||
// 浮动IP类型
|
||||
@@ -558,12 +575,32 @@ type GuestSetSecgroupInput struct {
|
||||
SecgroupIds []string `json:"secgroup_ids"`
|
||||
}
|
||||
|
||||
type GuestSetNetworkSecgroupInput struct {
|
||||
// 安全组Id列表
|
||||
// 实例必须处于运行,休眠或者关机状态
|
||||
SecgroupIds []string `json:"secgroup_ids"`
|
||||
|
||||
// 虚机网卡 index 或者 mac 地址
|
||||
NetworkIndex *int `json:"network_index"`
|
||||
MacAddr string `json:"mac_addr"`
|
||||
}
|
||||
|
||||
type GuestRevokeSecgroupInput struct {
|
||||
// 安全组Id列表
|
||||
// 实例必须处于运行,休眠或者关机状态
|
||||
SecgroupIds []string `json:"secgroup_ids"`
|
||||
}
|
||||
|
||||
type GuestRevokeNetworkSecgroupInput struct {
|
||||
// 安全组Id列表
|
||||
// 实例必须处于运行,休眠或者关机状态
|
||||
SecgroupIds []string `json:"secgroup_ids"`
|
||||
|
||||
// 虚机网卡 index 或者 mac 地址
|
||||
NetworkIndex *int `json:"network_index"`
|
||||
MacAddr string `json:"mac_addr"`
|
||||
}
|
||||
|
||||
type GuestAssignSecgroupInput struct {
|
||||
// 安全组Id
|
||||
// 实例必须处于运行,休眠或者关机状态
|
||||
@@ -593,6 +630,12 @@ type GuestAddSecgroupInput struct {
|
||||
SecgroupIds []string `json:"secgroup_ids"`
|
||||
}
|
||||
|
||||
type GuestNetworkAddSecgroupInput struct {
|
||||
SecgroupIds []string `json:"secgroup_ids"`
|
||||
|
||||
NetworkIndex *int `json:"network_index"`
|
||||
}
|
||||
|
||||
type ServerRemoteUpdateInput struct {
|
||||
// 是否覆盖替换所有标签
|
||||
ReplaceTags *bool `json:"replace_tags" help:"replace all remote tags"`
|
||||
@@ -611,7 +654,7 @@ type ServerAssociateEipInput struct {
|
||||
|
||||
type ServerCreateEipInput struct {
|
||||
// 计费方式,traffic or bandwidth
|
||||
ChargeType string `json:"charge_type"`
|
||||
ChargeType billing_api.TNetChargeType `json:"charge_type"`
|
||||
|
||||
// Bandwidth
|
||||
Bandwidth int64 `json:"bandwidth"`
|
||||
@@ -728,6 +771,13 @@ func (input ServerDetachnetworkInput) IsForce() bool {
|
||||
return input.Force != nil && *input.Force
|
||||
}
|
||||
|
||||
type ServerSetNetworkNumQueuesInput struct {
|
||||
// 虚机网卡 mac addr
|
||||
MacAddr string `json:"mac_addr"`
|
||||
// 网卡队列数
|
||||
NumQueues int `json:"num_queues"`
|
||||
}
|
||||
|
||||
type ServerMigrateForecastInput struct {
|
||||
PreferHostId string `json:"prefer_host_id"`
|
||||
// Deprecated
|
||||
@@ -921,9 +971,10 @@ type GuestJsonDesc struct {
|
||||
|
||||
NetworkRoles []string `json:"network_roles"`
|
||||
|
||||
Secgroups []*SecgroupJsonDesc `json:"secgroups"`
|
||||
SecurityRules string `json:"security_rules"`
|
||||
AdminSecurityRules string `json:"admin_security_rules"`
|
||||
Secgroups []*SecgroupJsonDesc `json:"secgroups"`
|
||||
SecurityRules string `json:"security_rules"`
|
||||
AdminSecurityRules string `json:"admin_security_rules"`
|
||||
NicSecgroups []*GuestnetworkSecgroupDesc `json:"nic_secgroups"`
|
||||
|
||||
ExtraOptions jsonutils.JSONObject `json:"extra_options"`
|
||||
|
||||
@@ -1254,9 +1305,80 @@ type ServerSetLiveMigrateParamsInput struct {
|
||||
}
|
||||
|
||||
type ServerNicTrafficLimit struct {
|
||||
Mac string `json:"mac"`
|
||||
Mac string `json:"mac"`
|
||||
|
||||
RxTrafficLimit *int64 `json:"rx_traffic_limit"`
|
||||
TxTrafficLimit *int64 `json:"tx_traffic_limit"`
|
||||
|
||||
BillingType billing_api.TBillingType `json:"billing_type"`
|
||||
ChargeType billing_api.TNetChargeType `json:"charge_type"`
|
||||
}
|
||||
|
||||
func (input ServerNicTrafficLimit) Validate(billingType billing_api.TBillingType, chargeType billing_api.TNetChargeType, txLimit, rxLimit int64) (ServerNicTrafficLimit, bool, error) {
|
||||
var billingChange bool
|
||||
if len(input.BillingType) > 0 && input.BillingType != billingType {
|
||||
billingChange = true
|
||||
billingType = input.BillingType
|
||||
}
|
||||
if len(input.ChargeType) > 0 && input.ChargeType != chargeType {
|
||||
billingChange = true
|
||||
chargeType = input.ChargeType
|
||||
}
|
||||
|
||||
if billingChange {
|
||||
if len(input.BillingType) == 0 {
|
||||
input.BillingType = billingType
|
||||
}
|
||||
if len(input.ChargeType) == 0 {
|
||||
input.ChargeType = chargeType
|
||||
}
|
||||
}
|
||||
|
||||
if billingType == billing_api.BILLING_TYPE_POSTPAID && chargeType == billing_api.NET_CHARGE_TYPE_BY_TRAFFIC {
|
||||
if txLimit > 0 {
|
||||
txLimit = 0
|
||||
input.TxTrafficLimit = &txLimit
|
||||
} else {
|
||||
input.TxTrafficLimit = nil
|
||||
}
|
||||
if rxLimit > 0 {
|
||||
rxLimit = 0
|
||||
input.RxTrafficLimit = &rxLimit
|
||||
} else {
|
||||
input.RxTrafficLimit = nil
|
||||
}
|
||||
} else if billingType == billing_api.BILLING_TYPE_POSTPAID && chargeType == billing_api.NET_CHARGE_TYPE_BY_BANDWIDTH {
|
||||
return input, billingChange, errors.Wrapf(httperrors.ErrNotImplemented, "billing type %s and charge type %s are not supported", input.BillingType, input.ChargeType)
|
||||
} else if billingType == billing_api.BILLING_TYPE_PREPAID && chargeType == billing_api.NET_CHARGE_TYPE_BY_TRAFFIC {
|
||||
if txLimit == 0 && input.TxTrafficLimit == nil {
|
||||
return input, billingChange, errors.Wrapf(httperrors.ErrBadRequest, "tx traffic limit is required")
|
||||
}
|
||||
if rxLimit == 0 && input.RxTrafficLimit == nil {
|
||||
return input, billingChange, errors.Wrapf(httperrors.ErrBadRequest, "rx traffic limit is required")
|
||||
}
|
||||
if input.TxTrafficLimit != nil && *input.TxTrafficLimit <= 0 {
|
||||
return input, billingChange, errors.Wrapf(httperrors.ErrBadRequest, "tx traffic limit must be greater than 0")
|
||||
}
|
||||
if input.RxTrafficLimit != nil && *input.RxTrafficLimit <= 0 {
|
||||
return input, billingChange, errors.Wrapf(httperrors.ErrBadRequest, "rx traffic limit must be greater than 0")
|
||||
}
|
||||
} else if billingType == billing_api.BILLING_TYPE_PREPAID && chargeType == billing_api.NET_CHARGE_TYPE_BY_BANDWIDTH {
|
||||
if txLimit > 0 {
|
||||
txLimit = 0
|
||||
input.TxTrafficLimit = &txLimit
|
||||
} else {
|
||||
input.TxTrafficLimit = nil
|
||||
}
|
||||
if rxLimit > 0 {
|
||||
rxLimit = 0
|
||||
input.RxTrafficLimit = &rxLimit
|
||||
} else {
|
||||
input.RxTrafficLimit = nil
|
||||
}
|
||||
} else {
|
||||
return input, billingChange, errors.Wrapf(httperrors.ErrBadRequest, "invalid billing type %s and charge type %s", input.BillingType, input.ChargeType)
|
||||
}
|
||||
return input, billingChange, nil
|
||||
}
|
||||
|
||||
type GuestAddSubIpsInfo struct {
|
||||
@@ -1372,7 +1494,9 @@ type ServerChangeConfigSettings struct {
|
||||
AutoStart bool `json:"auto_start"`
|
||||
GuestOnline bool `json:"guest_online"`
|
||||
|
||||
SetTrafficLimits []ServerNicTrafficLimit `json:"set_traffic_limits"`
|
||||
// 设置虚拟网卡的流量上限
|
||||
SetTrafficLimits []ServerNicTrafficLimit `json:"set_traffic_limits"`
|
||||
// 重置虚拟网卡的流量上限,并且将网卡的流量归零
|
||||
ResetTrafficLimits []ServerNicTrafficLimit `json:"reset_traffic_limits"`
|
||||
|
||||
SchedDesc jsonutils.JSONObject `json:"sched_desc"`
|
||||
@@ -1438,7 +1562,7 @@ type ServerChangeBillingTypeInput struct {
|
||||
// 仅在虚拟机开机或关机状态下调用
|
||||
// enmu: [postpaid, prepaid]
|
||||
// required: true
|
||||
BillingType string `json:"billing_type"`
|
||||
BillingType billing_api.TBillingType `json:"billing_type"`
|
||||
}
|
||||
|
||||
type ServerPerformStatusInput struct {
|
||||
|
||||
@@ -18,6 +18,7 @@ import (
|
||||
"yunion.io/x/jsonutils"
|
||||
|
||||
"yunion.io/x/onecloud/pkg/apis"
|
||||
billing_api "yunion.io/x/onecloud/pkg/apis/billing"
|
||||
)
|
||||
|
||||
type GuestTemplateInput struct {
|
||||
@@ -34,7 +35,8 @@ type GuestTemplateInput struct {
|
||||
ImageType string `json:"image_type"`
|
||||
ImageId string `json:"image_id"`
|
||||
InstanceType string `json:"instance_type"`
|
||||
BillingType string `json:"billing_type"`
|
||||
|
||||
BillingType billing_api.TBillingType `json:"billing_type"`
|
||||
}
|
||||
|
||||
type GuestTemplateCreateInput struct {
|
||||
|
||||
@@ -21,6 +21,7 @@ import (
|
||||
"yunion.io/x/jsonutils"
|
||||
|
||||
"yunion.io/x/onecloud/pkg/apis"
|
||||
billing_api "yunion.io/x/onecloud/pkg/apis/billing"
|
||||
"yunion.io/x/onecloud/pkg/cloudcommon/types"
|
||||
)
|
||||
|
||||
@@ -370,7 +371,7 @@ type HostResourceInfo struct {
|
||||
HostResourceType string `json:"host_resource_type"`
|
||||
|
||||
// 宿主机计费类型
|
||||
HostBillingType string `json:"host_billing_type"`
|
||||
HostBillingType billing_api.TBillingType `json:"host_billing_type"`
|
||||
|
||||
// 宿主机服务状态`
|
||||
HostServiceStatus string `json:"host_service_status"`
|
||||
|
||||
@@ -15,8 +15,9 @@
|
||||
package compute
|
||||
|
||||
const (
|
||||
HostVpcBridge = "__vpc_bridge__"
|
||||
HostTapBridge = "__tap_bridge__"
|
||||
HostVpcBridge = "__vpc_bridge__"
|
||||
HostTapBridge = "__tap_bridge__"
|
||||
HostLocalBridge = "brlocal"
|
||||
)
|
||||
|
||||
type SMirrorConfig struct {
|
||||
|
||||
@@ -150,6 +150,8 @@ type SnapshotPolicyListInput struct {
|
||||
OrderBySnapshotCount string `json:"order_by_snapshot_count"`
|
||||
// 按类型过滤
|
||||
Type string `json:"type"`
|
||||
|
||||
ResourceId []string `json:"resource_id"`
|
||||
}
|
||||
|
||||
type HostnameInput struct {
|
||||
|
||||
@@ -31,8 +31,10 @@ type SimpleSnapshot struct {
|
||||
DiskType string `json:"disk_type"`
|
||||
// 区域Id
|
||||
CloudregionId string `json:"cloudregion_id"`
|
||||
// 快照大小
|
||||
// 快照大小, MiB
|
||||
Size int `json:"size"`
|
||||
// 磁盘大小, MiB
|
||||
VirtualSize int `json:"virtual_size"`
|
||||
// 快照状态
|
||||
Status string `json:"status"`
|
||||
// 存储类型
|
||||
@@ -61,8 +63,12 @@ type InstanceSnapshotDetails struct {
|
||||
Snapshots []SimpleSnapshot `json:"snapshots"`
|
||||
Properties map[string]string `json:"properties"`
|
||||
|
||||
// 主机快照大小
|
||||
// 主机快照大小, B
|
||||
Size int `json:"size"`
|
||||
// 主机快照大小, MiB
|
||||
SizeMb int `json:"size_mb"`
|
||||
// 主机磁盘大小, MiB
|
||||
VirtualSizeMb int `json:"virtual_size_mb"`
|
||||
}
|
||||
|
||||
type InstanceSnapshotListInput struct {
|
||||
|
||||
@@ -19,6 +19,7 @@ import (
|
||||
|
||||
"yunion.io/x/onecloud/pkg/apis"
|
||||
"yunion.io/x/onecloud/pkg/apis/billing"
|
||||
billing_api "yunion.io/x/onecloud/pkg/apis/billing"
|
||||
"yunion.io/x/onecloud/pkg/util/ansible"
|
||||
)
|
||||
|
||||
@@ -181,7 +182,7 @@ type LoadbalancerCreateInput struct {
|
||||
// 弹性公网IP线路类型
|
||||
EipBgpType string `json:"eip_bgp_type,omitzero"`
|
||||
// 弹性公网IP计费类型
|
||||
EipChargeType string `json:"eip_charge_type,omitempty"`
|
||||
EipChargeType billing_api.TNetChargeType `json:"eip_charge_type,omitempty"`
|
||||
// 是否跟随主机删除而自动释放
|
||||
EipAutoDellocate bool `json:"eip_auto_dellocate,omitempty"`
|
||||
|
||||
@@ -200,7 +201,7 @@ type LoadbalancerCreateInput struct {
|
||||
// 包年包月时长
|
||||
Duration string `json:"duration"`
|
||||
// swagger:ignore
|
||||
BillingType string `json:"billing_type"`
|
||||
BillingType billing_api.TBillingType `json:"billing_type"`
|
||||
// swagger:ignore
|
||||
BillingCycle string `json:"billing_cycle"`
|
||||
|
||||
@@ -234,7 +235,7 @@ type LoadbalancerAssociateEipInput struct {
|
||||
|
||||
type LoadbalancerCreateEipInput struct {
|
||||
// 计费方式,traffic or bandwidth
|
||||
ChargeType string `json:"charge_type"`
|
||||
ChargeType billing_api.TNetChargeType `json:"charge_type"`
|
||||
|
||||
// Bandwidth
|
||||
Bandwidth int64 `json:"bandwidth"`
|
||||
|
||||
@@ -21,6 +21,7 @@ import (
|
||||
"yunion.io/x/jsonutils"
|
||||
|
||||
"yunion.io/x/onecloud/pkg/apis"
|
||||
billing_api "yunion.io/x/onecloud/pkg/apis/billing"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -122,7 +123,7 @@ type NatgatewayCreateInput struct {
|
||||
|
||||
// 计费方式
|
||||
// enum: ["postpaid", "prepaid"]
|
||||
BillingType string `json:"billing_type"`
|
||||
BillingType billing_api.TBillingType `json:"billing_type"`
|
||||
// swagger:ignore
|
||||
BillingCycle string `json:"billing_cycle"`
|
||||
|
||||
@@ -140,7 +141,8 @@ type NatgatewayCreateInput struct {
|
||||
// 弹性公网IP计费类型
|
||||
// enum: ["bandwidth", "traffic"]
|
||||
// default: traffic
|
||||
EipChargeType string `json:"eip_charge_type,omitempty"`
|
||||
EipChargeType billing_api.TNetChargeType `json:"eip_charge_type,omitempty"`
|
||||
|
||||
EipBgpType string `json:"eip_bgp_type"`
|
||||
EipAutoDellocate bool `json:"eip_auto_dellocate"`
|
||||
}
|
||||
|
||||
@@ -272,6 +272,9 @@ type SecgroupDetails struct {
|
||||
// 关联云主机数量, 不包含回收站云主机
|
||||
GuestCnt int `json:"guest_cnt,allowempty"`
|
||||
|
||||
// 关联云主机网卡数量, 不包含回收站云主机
|
||||
GuestNicCnt int `json:"guest_nic_cnt,allowempty"`
|
||||
|
||||
// 关联此安全组的云主机is_system为true数量, , 不包含回收站云主机
|
||||
SystemGuestCnt int `json:"system_guest_cnt,allowempty"`
|
||||
|
||||
@@ -310,6 +313,16 @@ type GuestsecgroupListInput struct {
|
||||
SecgroupFilterListInput
|
||||
}
|
||||
|
||||
type GuestnetworksecgroupListInput struct {
|
||||
apis.ResourceBaseListInput
|
||||
ServerFilterListInput
|
||||
SecgroupFilterListInput
|
||||
|
||||
NetworkIndex *int `json:"network_index"`
|
||||
|
||||
IsAdmin bool `json:"is_admin"`
|
||||
}
|
||||
|
||||
type ElasticcachesecgroupListInput struct {
|
||||
ElasticcacheJointsListInput
|
||||
SecgroupFilterListInput
|
||||
@@ -324,6 +337,36 @@ type GuestsecgroupDetails struct {
|
||||
Secgroup string `json:"secgroup"`
|
||||
}
|
||||
|
||||
type GuestnetworksecgroupDetails struct {
|
||||
GuestResourceInfo
|
||||
|
||||
SGuestsecgroup
|
||||
|
||||
SecurityGroupResourceInfo
|
||||
|
||||
ProjectId string `json:"tenant_id"`
|
||||
|
||||
apis.ProjectizedResourceInfo
|
||||
|
||||
// 安全组状态
|
||||
SecgroupStatus string `json:"secgroup_status"`
|
||||
|
||||
// VPC ID
|
||||
VpcId string `json:"vpc_id"`
|
||||
Vpc string `json:"vpc"`
|
||||
|
||||
NetworkIndex int `json:"network_index"`
|
||||
GuestNetwork string `json:"guest_network"`
|
||||
MacAddr string `json:"mac_addr"`
|
||||
Ifname string `json:"ifname"`
|
||||
IpAddr string `json:"ip_addr"`
|
||||
Ip6Addr string `json:"ip_6_addr"`
|
||||
NetworkId string `json:"network_id"`
|
||||
NetworkName string `json:"network_name"`
|
||||
|
||||
Admin bool `json:"admin"`
|
||||
}
|
||||
|
||||
type ElasticcachesecgroupDetails struct {
|
||||
ElasticcacheJointResourceDetails
|
||||
|
||||
@@ -353,11 +396,12 @@ type SSecurityGroupRef struct {
|
||||
RdsCnt int `json:"rds_cnt"`
|
||||
RedisCnt int `json:"redis_cnt"`
|
||||
LoadbalancerCnt int `json:"loadbalancer_cnt"`
|
||||
GuestNicCnt int `json:"guest_nic_cnt"`
|
||||
TotalCnt int `json:"total_cnt"`
|
||||
}
|
||||
|
||||
func (self *SSecurityGroupRef) Sum() {
|
||||
self.TotalCnt = self.GuestCnt + self.AdminGuestCnt + self.RdsCnt + self.RedisCnt + self.LoadbalancerCnt
|
||||
self.TotalCnt = self.GuestCnt + self.AdminGuestCnt + self.RdsCnt + self.RedisCnt + self.LoadbalancerCnt + self.GuestNicCnt
|
||||
}
|
||||
|
||||
type SecurityGroupSyncstatusInput struct {
|
||||
|
||||
@@ -18,6 +18,12 @@ import (
|
||||
"yunion.io/x/onecloud/pkg/apis"
|
||||
)
|
||||
|
||||
const (
|
||||
SERVER_SKU_PROJECT_SRC_KEY = "project_src"
|
||||
|
||||
SERVER_SKU_PROJECT_SRC_VALUE_LOCAL = "local"
|
||||
)
|
||||
|
||||
type ServerSkuCreateInput struct {
|
||||
apis.EnabledStatusStandaloneResourceCreateInput
|
||||
|
||||
|
||||
@@ -36,6 +36,8 @@ type SnapshotCreateInput struct {
|
||||
Location string `json:"location"`
|
||||
// swagger:ignore
|
||||
Size int `json:"size"`
|
||||
// swagger:ingore
|
||||
VirtualSize int `json:"virtual_size"`
|
||||
// swagger:ignore
|
||||
DiskType string `json:"disk_type"`
|
||||
// swagger:ignore
|
||||
|
||||
@@ -21,4 +21,7 @@ const (
|
||||
WIRE_STATUS_READY_DEPRECATED = "ready"
|
||||
WIRE_STATUS_MERGE_NETWORK = "merge_network"
|
||||
WIRE_STATUS_MERGE_NETWORK_FAILED = "merge_network_failed"
|
||||
|
||||
DEFAULT_HOST_LOCAL_WIRE_NAME = "hostlocal"
|
||||
DEFAULT_HOST_LOCAL_WIRE_ID = "__host_local__"
|
||||
)
|
||||
|
||||
@@ -54,6 +54,20 @@ type SAccessGroupRule struct {
|
||||
UserAccessType string `json:"user_access_type"`
|
||||
}
|
||||
|
||||
// SAiGateway is an autogenerated struct via yunion.io/x/onecloud/pkg/compute/models.SAiGateway.
|
||||
type SAiGateway struct {
|
||||
apis.SVirtualResourceBase
|
||||
apis.SExternalizedResourceBase
|
||||
SManagedResourceBase
|
||||
Authentication bool `json:"authentication"`
|
||||
CacheInvalidateOnUpdate bool `json:"cache_invalidate_on_update"`
|
||||
CacheTTL int `json:"cache_ttl"`
|
||||
CollectLogs bool `json:"collect_logs"`
|
||||
RateLimitingInterval int `json:"rate_limiting_interval"`
|
||||
RateLimitingLimit int `json:"rate_limiting_limit"`
|
||||
RateLimitingTechnique string `json:"rate_limiting_technique"`
|
||||
}
|
||||
|
||||
// SApp is an autogenerated struct via yunion.io/x/onecloud/pkg/compute/models.SApp.
|
||||
type SApp struct {
|
||||
apis.SVirtualResourceBase
|
||||
@@ -105,13 +119,20 @@ type SBaremetalagent struct {
|
||||
DisableImageCache bool `json:"disable_image_cache"`
|
||||
}
|
||||
|
||||
// SBillingChargeTypeBase is an autogenerated struct via yunion.io/x/onecloud/pkg/compute/models.SBillingChargeTypeBase.
|
||||
type SBillingChargeTypeBase struct {
|
||||
// 计费类型: 流量、带宽
|
||||
// example: bandwidth
|
||||
ChargeType string `json:"charge_type"`
|
||||
}
|
||||
|
||||
// SBillingResourceBase is an autogenerated struct via yunion.io/x/onecloud/pkg/compute/models.SBillingResourceBase.
|
||||
type SBillingResourceBase struct {
|
||||
// 计费类型, 按量、包年包月
|
||||
// example: postpaid
|
||||
BillingType string `json:"billing_type"`
|
||||
// 过期时间
|
||||
SBillingTypeBase
|
||||
// 包年包月到期时间
|
||||
ExpiredAt time.Time `json:"expired_at"`
|
||||
// 到期释放时间
|
||||
ReleaseAt time.Time `json:"release_at"`
|
||||
// 计费周期
|
||||
BillingCycle string `json:"billing_cycle"`
|
||||
// 是否自动续费
|
||||
@@ -120,11 +141,16 @@ type SBillingResourceBase struct {
|
||||
|
||||
// SBillingResourceCheck is an autogenerated struct via yunion.io/x/onecloud/pkg/compute/models.SBillingResourceCheck.
|
||||
type SBillingResourceCheck struct {
|
||||
apis.SResourceBase
|
||||
ResourceId string `json:"resource_id"`
|
||||
apis.SVirtualResourceBase
|
||||
SBillingResourceBase
|
||||
ResourceType string `json:"resource_type"`
|
||||
AdvanceDays int `json:"advance_days"`
|
||||
NotifyNumber int `json:"notify_number"`
|
||||
}
|
||||
|
||||
// SBillingTypeBase is an autogenerated struct via yunion.io/x/onecloud/pkg/compute/models.SBillingTypeBase.
|
||||
type SBillingTypeBase struct {
|
||||
// 计费类型, 按量、包年包月
|
||||
// example: prepaid, postpaid
|
||||
BillingType string `json:"billing_type"`
|
||||
}
|
||||
|
||||
// SBucket is an autogenerated struct via yunion.io/x/onecloud/pkg/compute/models.SBucket.
|
||||
@@ -171,6 +197,16 @@ type SCDNDomain struct {
|
||||
Referer *cloudprovider.SCDNReferer `json:"referer"`
|
||||
// 浏览器缓存配置
|
||||
MaxAge *cloudprovider.SCDNMaxAge `json:"max_age"`
|
||||
// 是否启用DNSSEC
|
||||
DNSSECEnabled bool `json:"dnssec_enabled"`
|
||||
// SSL加密模式
|
||||
SSLSetting string `json:"ssl_setting"`
|
||||
// 是否启用HTTPS重写
|
||||
HTTPSRewrites bool `json:"https_rewrites"`
|
||||
// 缓存级别
|
||||
CacheLevel string `json:"cache_level"`
|
||||
// 浏览器缓存TTL
|
||||
BrowserCacheTTL int `json:"browser_cache_ttl"`
|
||||
}
|
||||
|
||||
// SCachedimage is an autogenerated struct via yunion.io/x/onecloud/pkg/compute/models.SCachedimage.
|
||||
@@ -345,6 +381,7 @@ type SCloudregionResourceBase struct {
|
||||
// SContainer is an autogenerated struct via yunion.io/x/onecloud/pkg/compute/models.SContainer.
|
||||
type SContainer struct {
|
||||
apis.SVirtualResourceBase
|
||||
apis.SExternalizedResourceBase
|
||||
// GuestId is also the pod id
|
||||
GuestId string `json:"guest_id"`
|
||||
// Spec stores all container running options
|
||||
@@ -550,6 +587,8 @@ type SDisk struct {
|
||||
SnapshotId string `json:"snapshot_id"`
|
||||
// 备份Id
|
||||
BackupId string `json:"backup_id"`
|
||||
// 设备名称
|
||||
Device string `json:"device"`
|
||||
// 文件系统
|
||||
FsFormat string `json:"fs_format"`
|
||||
// 文件系统特性
|
||||
@@ -625,8 +664,11 @@ type SDnsZone struct {
|
||||
apis.SEnabledResourceBase
|
||||
apis.SExternalizedResourceBase
|
||||
SManagedResourceBase
|
||||
ZoneType string `json:"zone_type"`
|
||||
ProductType string `json:"product_type"`
|
||||
NameServers *SNameServers `json:"name_servers"`
|
||||
OriginalNameServers *SNameServers `json:"original_name_servers"`
|
||||
ZoneType string `json:"zone_type"`
|
||||
Registrar string `json:"registrar"`
|
||||
ProductType string `json:"product_type"`
|
||||
}
|
||||
|
||||
// SDnsZoneResourceBase is an autogenerated struct via yunion.io/x/onecloud/pkg/compute/models.SDnsZoneResourceBase.
|
||||
@@ -890,9 +932,10 @@ type SElasticip struct {
|
||||
AssociateId string `json:"associate_id"`
|
||||
// 带宽大小
|
||||
Bandwidth int `json:"bandwidth"`
|
||||
SBillingChargeTypeBase
|
||||
// 计费类型: 流量、带宽
|
||||
// example: bandwidth
|
||||
ChargeType string `json:"charge_type"`
|
||||
// ChargeType billing_api.TNetChargeType `width:"64" name:"charge_type" list:"user" create:"required"`
|
||||
// 线路类型
|
||||
BgpType string `json:"bgp_type"`
|
||||
// 是否跟随主机删除而自动释放
|
||||
@@ -1061,10 +1104,14 @@ type SGuest struct {
|
||||
QgaStatus string `json:"qga_status"`
|
||||
// power_states limit in [on, off, unknown]
|
||||
PowerStates string `json:"power_states"`
|
||||
// 健康状态, 仅开机中火运行中有效, 目前只支持阿里云
|
||||
HealthStatus string `json:"health_status"`
|
||||
// Used for guest rescue
|
||||
RescueMode bool `json:"rescue_mode"`
|
||||
// 上次开机时间
|
||||
LastStartAt time.Time `json:"last_start_at"`
|
||||
// 资源池,仅vmware指定调度标签时内部使用
|
||||
ResourcePool string `json:"resource_pool"`
|
||||
}
|
||||
|
||||
// SGuestJointsBase is an autogenerated struct via yunion.io/x/onecloud/pkg/compute/models.SGuestJointsBase.
|
||||
@@ -1073,6 +1120,43 @@ type SGuestJointsBase struct {
|
||||
GuestId string `json:"guest_id"`
|
||||
}
|
||||
|
||||
// SGuestNetworkTrafficLog is an autogenerated struct via yunion.io/x/onecloud/pkg/compute/models.SGuestNetworkTrafficLog.
|
||||
type SGuestNetworkTrafficLog struct {
|
||||
apis.SLogBase
|
||||
apis.SProjectizedResourceBase
|
||||
SGuestResourceBase
|
||||
// IPv4地址
|
||||
IpAddr string `json:"ip_addr"`
|
||||
// IPv6地址
|
||||
Ip6Addr string `json:"ip6_addr"`
|
||||
RowId int64 `json:"row_id"`
|
||||
// 下行流量,单位 bytes
|
||||
RxBytes int64 `json:"rx_bytes"`
|
||||
// 上行流量,单位 bytes
|
||||
TxBytes int64 `json:"tx_bytes"`
|
||||
ReportAt time.Time `json:"report_at"`
|
||||
State string `json:"state"`
|
||||
}
|
||||
|
||||
// SGuestResourceBase is an autogenerated struct via yunion.io/x/onecloud/pkg/compute/models.SGuestResourceBase.
|
||||
type SGuestResourceBase struct {
|
||||
GuestId string `json:"guest_id"`
|
||||
}
|
||||
|
||||
// SGuestScreenDump is an autogenerated struct via yunion.io/x/onecloud/pkg/compute/models.SGuestScreenDump.
|
||||
/* type SGuestScreenDump struct {
|
||||
apis.SResourceBase
|
||||
RowId int64 `json:"row_id"`
|
||||
GuestId string `json:"guest_id"`
|
||||
Name string `json:"name"`
|
||||
// s3 config
|
||||
S3AccessKey string `json:"s3_access_key"`
|
||||
S3SecretKey string `json:"s3_secret_key"`
|
||||
S3Endpoint string `json:"s3_endpoint"`
|
||||
S3BucketName string `json:"s3_bucket_name"`
|
||||
S3UseSsl bool `json:"s3_use_ssl"`
|
||||
} */
|
||||
|
||||
// SGuestTemplate is an autogenerated struct via yunion.io/x/onecloud/pkg/compute/models.SGuestTemplate.
|
||||
type SGuestTemplate struct {
|
||||
apis.SSharableVirtualResourceBase
|
||||
@@ -1154,12 +1238,16 @@ type SGuestnetwork struct {
|
||||
TeamWith string `json:"team_with"`
|
||||
// IPv4映射地址,当子网属于私有云vpc的时候分配,用于访问外网
|
||||
MappedIpAddr string `json:"mapped_ip_addr"`
|
||||
// IPv6映射地址,当子网属于私有云vpc的时候分配,用于访问外网
|
||||
MappedIp6Addr string `json:"mapped_ip6_addr"`
|
||||
// 网卡关联的Eip实例
|
||||
EipId string `json:"eip_id"`
|
||||
// 是否为缺省路由
|
||||
IsDefault bool `json:"is_default"`
|
||||
// 端口映射
|
||||
PortMappings []*GuestPortMapping `json:"port_mappings"`
|
||||
SBillingTypeBase
|
||||
SBillingChargeTypeBase
|
||||
}
|
||||
|
||||
// SGuestsecgroup is an autogenerated struct via yunion.io/x/onecloud/pkg/compute/models.SGuestsecgroup.
|
||||
@@ -1208,6 +1296,8 @@ type SHost struct {
|
||||
CpuMicrocode string `json:"cpu_microcode"`
|
||||
// CPU架构
|
||||
CpuArchitecture string `json:"cpu_architecture"`
|
||||
// KVM CAP VCPU MAX
|
||||
KvmCapMaxVcpu int `json:"kvm_cap_max_vcpu"`
|
||||
// 内存大小,单位Mb
|
||||
MemSize int `json:"mem_size"`
|
||||
// 预留内存大小
|
||||
@@ -1215,7 +1305,8 @@ type SHost struct {
|
||||
// 内存超分比
|
||||
MemCmtbound float32 `json:"mem_cmtbound"`
|
||||
// 页大小
|
||||
PageSizeKB int `json:"page_size_kb"`
|
||||
PageSizeKB int `json:"page_size_kb"`
|
||||
// scheduler cpu-node/numa allocate
|
||||
EnableNumaAllocate bool `json:"enable_numa_allocate"`
|
||||
// 存储大小,单位Mb
|
||||
StorageSize int64 `json:"storage_size"`
|
||||
@@ -1224,7 +1315,10 @@ type SHost struct {
|
||||
// 存储驱动类型
|
||||
StorageDriver string `json:"storage_driver"`
|
||||
// 存储详情
|
||||
StorageInfo jsonutils.JSONObject `json:"storage_info"`
|
||||
StorageInfo jsonutils.JSONObject `json:"storage_info"`
|
||||
RootPartitionUsedCapacityMb int `json:"root_partition_used_capacity_mb"`
|
||||
MemoryUsedMb int `json:"memory_used_mb"`
|
||||
CpuUsagePercent float64 `json:"cpu_usage_percent"`
|
||||
// IPMI地址
|
||||
IpmiIp string `json:"ipmi_ip"`
|
||||
// IPMI详情
|
||||
@@ -1255,6 +1349,8 @@ type SHost struct {
|
||||
BootMode string `json:"boot_mode"`
|
||||
// IPv4地址,作为私有云vpc访问外网时的网关
|
||||
OvnMappedIpAddr string `json:"ovn_mapped_ip_addr"`
|
||||
// IPv6地址,作为私有云vpc访问外网时的网关
|
||||
OvnMappedIp6Addr string `json:"ovn_mapped_ip6_addr"`
|
||||
// UEFI详情
|
||||
UefiInfo jsonutils.JSONObject `json:"uefi_info"`
|
||||
// 公网Ip地址
|
||||
@@ -1270,6 +1366,12 @@ type SHostBackupstorage struct {
|
||||
BackupstorageId string `json:"backupstorage_id"`
|
||||
}
|
||||
|
||||
// SHostDmesgLog is an autogenerated struct via yunion.io/x/onecloud/pkg/compute/models.SHostDmesgLog.
|
||||
type SHostDmesgLog struct {
|
||||
apis.SOpsLog
|
||||
LogLevel string `json:"log_level"`
|
||||
}
|
||||
|
||||
// SHostFile is an autogenerated struct via yunion.io/x/onecloud/pkg/compute/models.SHostFile.
|
||||
type SHostFile struct {
|
||||
apis.SInfrasResourceBase
|
||||
@@ -1309,6 +1411,8 @@ type SHostnetwork struct {
|
||||
NetworkId string `json:"network_id"`
|
||||
// IP地址
|
||||
IpAddr string `json:"ip_addr"`
|
||||
// IPv6地址
|
||||
Ip6Addr string `json:"ip6_addr"`
|
||||
// MAC地址
|
||||
MacAddr string `json:"mac_addr"`
|
||||
// VLAN
|
||||
@@ -1425,7 +1529,7 @@ type SInstanceSnapshot struct {
|
||||
// 是否保存内存
|
||||
WithMemory bool `json:"with_memory"`
|
||||
// 内存文件大小
|
||||
MemorySizeMB int `json:"memory_size_mb"`
|
||||
MemorySizeKB int `json:"memory_size_kb"`
|
||||
// 内存文件所在宿主机
|
||||
MemoryFileHostId string `json:"memory_file_host_id"`
|
||||
// 内存文件路径
|
||||
@@ -1497,6 +1601,10 @@ type SIsolatedDevice struct {
|
||||
CardPath string `json:"card_path"`
|
||||
// GPU render path, like /dev/dri/renderDX
|
||||
RenderPath string `json:"render_path"`
|
||||
// Nvidia GPU index
|
||||
Index int `json:"index"`
|
||||
// Nvidia GPU minor number, parsing from /proc/driver/nvidia/gpus/*/information
|
||||
DeviceMinor int `json:"device_minor"`
|
||||
// Is vgpu physical funcion, That means it cannot be attached to guest
|
||||
// VGPUPhysicalFunction bool `nullable:"true" default:"false" list:"domain" create:"domain_optional"`
|
||||
// nvidia vgpu config
|
||||
@@ -1764,7 +1872,9 @@ type SLoadbalancerBackendGroup struct {
|
||||
apis.SStatusStandaloneResourceBase
|
||||
apis.SExternalizedResourceBase
|
||||
SLoadbalancerResourceBase
|
||||
Type string `json:"type"`
|
||||
LoadbalancerHealthCheckId string `json:"loadbalancer_health_check_id"`
|
||||
Scheduler string `json:"scheduler"`
|
||||
Type string `json:"type"`
|
||||
}
|
||||
|
||||
// SLoadbalancerBackendgroupResourceBase is an autogenerated struct via yunion.io/x/onecloud/pkg/compute/models.SLoadbalancerBackendgroupResourceBase.
|
||||
@@ -1813,35 +1923,39 @@ type SLoadbalancerClusterResourceBase struct {
|
||||
|
||||
// SLoadbalancerHTTPListener is an autogenerated struct via yunion.io/x/onecloud/pkg/compute/models.SLoadbalancerHTTPListener.
|
||||
type SLoadbalancerHTTPListener struct {
|
||||
StickySession string `json:"sticky_session"`
|
||||
// 会话保持开启状态 on|off
|
||||
StickySessionType string `json:"sticky_session_type"`
|
||||
StickySession string `json:"sticky_session"`
|
||||
// Cookie处理方式 insert(植入cookie)|server(重写cookie)
|
||||
StickySessionCookie string `json:"sticky_session_cookie"`
|
||||
StickySessionType string `json:"sticky_session_type"`
|
||||
// Cookie名称
|
||||
StickySessionCookieTimeout int `json:"sticky_session_cookie_timeout"`
|
||||
XForwardedFor bool `json:"xforwarded_for"`
|
||||
StickySessionCookie string `json:"sticky_session_cookie"`
|
||||
// 会话超时时间
|
||||
StickySessionCookieTimeout int `json:"sticky_session_cookie_timeout"`
|
||||
// 获取客户端真实IP
|
||||
XForwardedFor bool `json:"xforwarded_for"`
|
||||
// Gzip数据压缩
|
||||
Gzip bool `json:"gzip"`
|
||||
}
|
||||
|
||||
// SLoadbalancerHTTPRateLimiter is an autogenerated struct via yunion.io/x/onecloud/pkg/compute/models.SLoadbalancerHTTPRateLimiter.
|
||||
type SLoadbalancerHTTPRateLimiter struct {
|
||||
HTTPRequestRate int `json:"http_request_rate"`
|
||||
// 限定监听接收请示速率
|
||||
HTTPRequestRate int `json:"http_request_rate"`
|
||||
// 源IP监听请求最大速率
|
||||
HTTPRequestRatePerSrc int `json:"http_request_rate_per_src"`
|
||||
}
|
||||
|
||||
// SLoadbalancerHTTPRedirect is an autogenerated struct via yunion.io/x/onecloud/pkg/compute/models.SLoadbalancerHTTPRedirect.
|
||||
type SLoadbalancerHTTPRedirect struct {
|
||||
Redirect string `json:"redirect"`
|
||||
// 跳转类型
|
||||
RedirectCode int `json:"redirect_code"`
|
||||
Redirect string `json:"redirect"`
|
||||
// 跳转HTTP code
|
||||
RedirectScheme string `json:"redirect_scheme"`
|
||||
RedirectCode int `json:"redirect_code"`
|
||||
// 跳转uri scheme
|
||||
RedirectHost string `json:"redirect_host"`
|
||||
RedirectScheme string `json:"redirect_scheme"`
|
||||
// 跳转时变更Host
|
||||
RedirectHost string `json:"redirect_host"`
|
||||
// 跳转时变更Path
|
||||
RedirectPath string `json:"redirect_path"`
|
||||
}
|
||||
|
||||
@@ -1854,23 +1968,40 @@ type SLoadbalancerHTTPSListener struct {
|
||||
|
||||
// SLoadbalancerHealthCheck is an autogenerated struct via yunion.io/x/onecloud/pkg/compute/models.SLoadbalancerHealthCheck.
|
||||
type SLoadbalancerHealthCheck struct {
|
||||
HealthCheck string `json:"health_check"`
|
||||
apis.SVirtualResourceBase
|
||||
apis.SExternalizedResourceBase
|
||||
SManagedResourceBase
|
||||
SCloudregionResourceBase
|
||||
SLoadbalancerHealthChecker
|
||||
}
|
||||
|
||||
// SLoadbalancerHealthChecker is an autogenerated struct via yunion.io/x/onecloud/pkg/compute/models.SLoadbalancerHealthChecker.
|
||||
type SLoadbalancerHealthChecker struct {
|
||||
// 健康检查开启状态 on|off
|
||||
HealthCheckType string `json:"health_check_type"`
|
||||
HealthCheckDomain string `json:"health_check_domain"`
|
||||
HealthCheck string `json:"health_check"`
|
||||
// 健康检查协议 HTTP|TCP
|
||||
HealthCheckType string `json:"health_check_type"`
|
||||
// 健康检查域名 yunion.cn
|
||||
HealthCheckURI string `json:"health_check_uri"`
|
||||
HealthCheckDomain string `json:"health_check_domain"`
|
||||
// 健康检查路径 /
|
||||
HealthCheckURI string `json:"health_check_uri"`
|
||||
// HTTP正常状态码 http_2xx,http_3xx
|
||||
HealthCheckHttpCode string `json:"health_check_http_code"`
|
||||
HealthCheckRise int `json:"health_check_rise"`
|
||||
// 健康检查方法 GET|POST|HEAD
|
||||
HealthCheckMethod string `json:"health_check_method"`
|
||||
// 健康检查端口 80
|
||||
HealthCheckPort int `json:"health_check_port"`
|
||||
// 健康检查健康阈值 3秒
|
||||
HealthCheckFall int `json:"health_check_fall"`
|
||||
HealthCheckRise int `json:"health_check_rise"`
|
||||
// 健康检查不健康阈值 15秒
|
||||
HealthCheckTimeout int `json:"health_check_timeout"`
|
||||
HealthCheckFall int `json:"health_check_fall"`
|
||||
// 健康检查超时时间 10秒
|
||||
HealthCheckInterval int `json:"health_check_interval"`
|
||||
HealthCheckReq string `json:"health_check_req"`
|
||||
HealthCheckTimeout int `json:"health_check_timeout"`
|
||||
// 健康检查间隔时间 5秒
|
||||
HealthCheckInterval int `json:"health_check_interval"`
|
||||
// UDP监听健康检查的请求串
|
||||
HealthCheckReq string `json:"health_check_req"`
|
||||
// UDP监听健康检查的响应串
|
||||
HealthCheckExp string `json:"health_check_exp"`
|
||||
}
|
||||
|
||||
@@ -1879,18 +2010,19 @@ type SLoadbalancerListener struct {
|
||||
apis.SStatusStandaloneResourceBase
|
||||
apis.SExternalizedResourceBase
|
||||
SLoadbalancerResourceBase
|
||||
ListenerType string `json:"listener_type"`
|
||||
ListenerPort int `json:"listener_port"`
|
||||
BackendGroupId string `json:"backend_group_id"`
|
||||
BackendServerPort int `json:"backend_server_port"`
|
||||
Scheduler string `json:"scheduler"`
|
||||
SendProxy string `json:"send_proxy"`
|
||||
ClientRequestTimeout int `json:"client_request_timeout"`
|
||||
ListenerType string `json:"listener_type"`
|
||||
ListenerPort int `json:"listener_port"`
|
||||
BackendGroupId string `json:"backend_group_id"`
|
||||
BackendServerPort int `json:"backend_server_port"`
|
||||
Scheduler string `json:"scheduler"`
|
||||
SendProxy string `json:"send_proxy"`
|
||||
// 连接请求超时时间
|
||||
ClientIdleTimeout int `json:"client_idle_timeout"`
|
||||
ClientRequestTimeout int `json:"client_request_timeout"`
|
||||
// 连接空闲超时时间
|
||||
BackendConnectTimeout int `json:"backend_connect_timeout"`
|
||||
ClientIdleTimeout int `json:"client_idle_timeout"`
|
||||
// 后端连接超时时间
|
||||
BackendConnectTimeout int `json:"backend_connect_timeout"`
|
||||
// 后端连接空闲时间
|
||||
BackendIdleTimeout int `json:"backend_idle_timeout"`
|
||||
AclStatus string `json:"acl_status"`
|
||||
AclType string `json:"acl_type"`
|
||||
@@ -1900,7 +2032,7 @@ type SLoadbalancerListener struct {
|
||||
SLoadbalancerUDPListener
|
||||
SLoadbalancerHTTPListener
|
||||
SLoadbalancerHTTPSListener
|
||||
SLoadbalancerHealthCheck
|
||||
SLoadbalancerHealthChecker
|
||||
SLoadbalancerHTTPRateLimiter
|
||||
SLoadbalancerHTTPRedirect
|
||||
}
|
||||
@@ -1915,14 +2047,20 @@ type SLoadbalancerListenerResourceBase struct {
|
||||
type SLoadbalancerListenerRule struct {
|
||||
apis.SStatusStandaloneResourceBase
|
||||
apis.SExternalizedResourceBase
|
||||
SLoadbalancerCertificateResourceBase
|
||||
SLoadbalancerListenerResourceBase
|
||||
// 默认转发策略,目前只有aws用到其它云都是false
|
||||
IsDefault bool `json:"is_default"`
|
||||
IsDefault bool `json:"is_default"`
|
||||
// 默认后端服务器组
|
||||
BackendGroupId string `json:"backend_group_id"`
|
||||
Domain string `json:"domain"`
|
||||
Path string `json:"path"`
|
||||
Condition string `json:"condition"`
|
||||
SLoadbalancerHealthCheck
|
||||
// 后端服务器组列表
|
||||
BackendGroups *ListenerRuleBackendGroups `json:"backend_groups"`
|
||||
// 域名
|
||||
Domain string `json:"domain"`
|
||||
Path string `json:"path"`
|
||||
Condition string `json:"condition"`
|
||||
RedirectPool *ListenerRuleRedirectPool `json:"redirect_pool"`
|
||||
SLoadbalancerHealthChecker
|
||||
// 目前只有腾讯云HTTP、HTTPS类型的健康检查是和规则绑定的。
|
||||
SLoadbalancerHTTPRateLimiter
|
||||
SLoadbalancerHTTPRedirect
|
||||
@@ -2215,10 +2353,7 @@ type SNetwork struct {
|
||||
GuestIp6Mask byte `json:"guest_ip6_mask"`
|
||||
// IPv6网关
|
||||
GuestGateway6 string `json:"guest_gateway6"`
|
||||
// IPv6域名服务器
|
||||
GuestDns6 string `json:"guest_dns6"`
|
||||
GuestDomain6 string `json:"guest_domain6"`
|
||||
VlanId int `json:"vlan_id"`
|
||||
VlanId int `json:"vlan_id"`
|
||||
// 服务器类型
|
||||
// example: server
|
||||
ServerType string `json:"server_type"`
|
||||
@@ -2392,6 +2527,7 @@ type SSSLCertificate struct {
|
||||
apis.SVirtualResourceBase
|
||||
apis.SExternalizedResourceBase
|
||||
SManagedResourceBase
|
||||
SDnsZoneResourceBase
|
||||
SDeletePreventableResourceBase
|
||||
Sans string `json:"sans"`
|
||||
StartDate time.Time `json:"start_date"`
|
||||
@@ -2399,7 +2535,6 @@ type SSSLCertificate struct {
|
||||
Common string `json:"common"`
|
||||
Country string `json:"country"`
|
||||
Issuer string `json:"issuer"`
|
||||
Expired bool `json:"expired"`
|
||||
IsUpload bool `json:"is_upload"`
|
||||
EndDate time.Time `json:"end_date"`
|
||||
Fingerprint string `json:"fingerprint"`
|
||||
@@ -2664,10 +2799,18 @@ type SSnapshotPolicy struct {
|
||||
apis.SExternalizedResourceBase
|
||||
SManagedResourceBase
|
||||
SCloudregionResourceBase
|
||||
// 快照保留天数, -1: 表示永久保留
|
||||
RetentionDays int `json:"retention_days"`
|
||||
// 1~7, 1 is Monday
|
||||
// 快照保留数量, 优先级高于 RetentionDays, 且仅对本地IDC资源有效
|
||||
RetentionCount int `json:"retention_count"`
|
||||
// 快照类型, 目前支持 disk, server
|
||||
// disk: 自动磁盘快照策略, 只能关联磁盘
|
||||
// server: 自动主机快照策略, 只能关联主机
|
||||
Type string `json:"type"`
|
||||
// 1~7, 1 is Monday, 7 is Sunday
|
||||
RepeatWeekdays []int `json:"repeat_weekdays"`
|
||||
// 0~23
|
||||
// 0~23, 每小时
|
||||
// 创建自动快照策略的时间必须与 RepeatWeekdays 对应的创建周期相一致
|
||||
TimePoints []int `json:"time_points"`
|
||||
}
|
||||
|
||||
@@ -2678,6 +2821,14 @@ type SSnapshotPolicyDisk struct {
|
||||
SDiskResourceBase
|
||||
}
|
||||
|
||||
// SSnapshotPolicyResource is an autogenerated struct via yunion.io/x/onecloud/pkg/compute/models.SSnapshotPolicyResource.
|
||||
type SSnapshotPolicyResource struct {
|
||||
apis.SResourceBase
|
||||
SnapshotpolicyId string `json:"snapshotpolicy_id"`
|
||||
ResourceId string `json:"resource_id"`
|
||||
ResourceType string `json:"resource_type"`
|
||||
}
|
||||
|
||||
// SStorage is an autogenerated struct via yunion.io/x/onecloud/pkg/compute/models.SStorage.
|
||||
type SStorage struct {
|
||||
apis.SEnabledStatusInfrasResourceBase
|
||||
@@ -2876,7 +3027,7 @@ type SWafRegexSet struct {
|
||||
|
||||
// SWafRule is an autogenerated struct via yunion.io/x/onecloud/pkg/compute/models.SWafRule.
|
||||
type SWafRule struct {
|
||||
apis.SStatusStandaloneResourceBase
|
||||
apis.SEnabledStatusStandaloneResourceBase
|
||||
apis.SExternalizedResourceBase
|
||||
// 规则优先级
|
||||
Priority int `json:"priority"`
|
||||
@@ -2884,6 +3035,12 @@ type SWafRule struct {
|
||||
Action *cloudprovider.DefaultAction `json:"action"`
|
||||
// 条件
|
||||
StatementConditon string `json:"statement_conditon"`
|
||||
// 条件表达式
|
||||
Expression string `json:"expression"`
|
||||
// 规则类型
|
||||
Type string `json:"type"`
|
||||
// 规则配置
|
||||
Config jsonutils.JSONObject `json:"config"`
|
||||
// 规则组的id
|
||||
WafRuleGroupId string `json:"waf_rule_group_id"`
|
||||
// 所属waf实例id
|
||||
|
||||
@@ -151,14 +151,16 @@ const (
|
||||
const (
|
||||
OS_ARCH_ALL = "all"
|
||||
|
||||
OS_ARCH_X86 = "x86"
|
||||
OS_ARCH_ARM = "arm"
|
||||
OS_ARCH_X86 = "x86"
|
||||
OS_ARCH_ARM = "arm"
|
||||
OS_ARCH_RISCV = "riscv"
|
||||
|
||||
OS_ARCH_I386 = "i386"
|
||||
OS_ARCH_X86_32 = "x86_32"
|
||||
OS_ARCH_X86_64 = "x86_64"
|
||||
OS_ARCH_AARCH32 = "aarch32"
|
||||
OS_ARCH_AARCH64 = "aarch64"
|
||||
OS_ARCH_RISCV32 = "riscv32"
|
||||
OS_ARCH_RISCV64 = "riscv64"
|
||||
)
|
||||
|
||||
@@ -174,6 +176,11 @@ var (
|
||||
OS_ARCH_AARCH32,
|
||||
OS_ARCH_AARCH64,
|
||||
}
|
||||
ARCH_RISCV = []string{
|
||||
OS_ARCH_RISCV,
|
||||
OS_ARCH_RISCV32,
|
||||
OS_ARCH_RISCV64,
|
||||
}
|
||||
)
|
||||
|
||||
func IsARM(osArch string) bool {
|
||||
@@ -184,6 +191,10 @@ func IsX86(osArch string) bool {
|
||||
return utils.IsInStringArray(osArch, ARCH_X86)
|
||||
}
|
||||
|
||||
func IsRISCV(osArch string) bool {
|
||||
return utils.IsInStringArray(osArch, ARCH_RISCV)
|
||||
}
|
||||
|
||||
func IsIllegalSearchDomain(domain string) bool {
|
||||
switch domain {
|
||||
case "cloud.onecloud.io":
|
||||
@@ -202,5 +213,8 @@ func IsSameArch(arch1, arch2 string) bool {
|
||||
if IsX86(arch1) && IsX86(arch2) {
|
||||
return true
|
||||
}
|
||||
if IsRISCV(arch1) && IsRISCV(arch2) {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
@@ -22,8 +22,18 @@ import (
|
||||
)
|
||||
|
||||
type ContainerKeyValue struct {
|
||||
Key string `json:"key"`
|
||||
Value string `json:"value"`
|
||||
Key string `json:"key"`
|
||||
Value string `json:"value"`
|
||||
ValueFrom *ContainerValueSource `json:"value_from"`
|
||||
}
|
||||
|
||||
type ContainerValueSource struct {
|
||||
Credential *ContainerValueSourceCredential `json:"credential"`
|
||||
}
|
||||
|
||||
type ContainerValueSourceCredential struct {
|
||||
Id string `json:"id"`
|
||||
Key string `json:"key"`
|
||||
}
|
||||
|
||||
type ContainerLifecyleHandlerType string
|
||||
@@ -272,6 +282,22 @@ type ContainerVolumeMountDiskPostImageOverlay struct {
|
||||
PathMap map[string]string `json:"path_map"`
|
||||
// 宿主机底层目录映射, key 为 PathMap 的 key,value 为 overlay lower 格式,多目录以 ":" 分隔
|
||||
HostLowerMap map[string]*HostLowerPath `json:"host_lower_map"`
|
||||
UpperConfig *PostOverlayUpperConfig `json:"upper_config"`
|
||||
}
|
||||
|
||||
type PostOverlayUpperConfigType string
|
||||
|
||||
const (
|
||||
PostOverlayUpperConfigTypeDisk PostOverlayUpperConfigType = "disk"
|
||||
)
|
||||
|
||||
type PostOverlayUpperConfigDisk struct {
|
||||
SubPath string `json:"sub_path"`
|
||||
}
|
||||
|
||||
type PostOverlayUpperConfig struct {
|
||||
Type PostOverlayUpperConfigType `json:"type"`
|
||||
Disk *PostOverlayUpperConfigDisk `json:"disk"`
|
||||
}
|
||||
|
||||
type ContainerVolumeMountDiskPostImageOverlayUnpacker ContainerVolumeMountDiskPostImageOverlay
|
||||
@@ -285,6 +311,7 @@ func (ov *ContainerVolumeMountDiskPostImageOverlay) UnmarshalJSON(data []byte) e
|
||||
// 防止 PathMap 被合并,总是用 Unarmshal data 里面的 path_map
|
||||
ov.PathMap = nov.PathMap
|
||||
ov.HostLowerMap = nov.HostLowerMap
|
||||
ov.UpperConfig = nov.UpperConfig
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -298,6 +325,8 @@ const (
|
||||
type ContainerVolumeMountDiskPostOverlay struct {
|
||||
// 宿主机底层目录
|
||||
HostLowerDir []string `json:"host_lower_dir"`
|
||||
// 宿主机上层目录
|
||||
HostUpperDir string `json:"host_upper_dir"`
|
||||
// 合并后要挂载到容器的目录
|
||||
ContainerTargetDir string `json:"container_target_dir"`
|
||||
Image *ContainerVolumeMountDiskPostImageOverlay `json:"image"`
|
||||
|
||||
@@ -73,6 +73,7 @@ type ContainerVolumeMount struct {
|
||||
type ContainerSpec struct {
|
||||
apis.ContainerSpec
|
||||
ImageCredentialToken string `json:"image_credential_token"`
|
||||
SecretCredentials map[string]string `json:"secret_credentials"`
|
||||
Rootfs *ContainerRootfs `json:"rootfs"`
|
||||
VolumeMounts []*ContainerVolumeMount `json:"volume_mounts"`
|
||||
Devices []*ContainerDevice `json:"devices"`
|
||||
|
||||
@@ -19,9 +19,17 @@ type GuestMemorySnapshotRequest struct {
|
||||
}
|
||||
|
||||
type GuestMemorySnapshotResponse struct {
|
||||
// 内存快照文件路径
|
||||
MemorySnapshotPath string `json:"memory_snapshot_path"`
|
||||
SizeMB int64 `json:"size_mb"`
|
||||
Checksum string `json:"checksum"`
|
||||
|
||||
// @deprecated
|
||||
// swagger:ignore
|
||||
SizeMB int64 `json:"size_mb" yunion-deprecated-by:"size_kb"`
|
||||
// 内存快照文件大小, KB
|
||||
SizeKB int64 `json:"size_kb"`
|
||||
|
||||
// 内存快照文件校验和
|
||||
Checksum string `json:"checksum"`
|
||||
}
|
||||
|
||||
type GuestMemorySnapshotDeleteRequest struct {
|
||||
|
||||
@@ -27,6 +27,7 @@ const (
|
||||
OIDC_CREDENTIAL_TYPE = "oidc"
|
||||
ENCRYPT_KEY_TYPE = "enc_key"
|
||||
CONTAINER_IMAGE_TYPE = "container_image"
|
||||
CONTAINER_SECRET_TYPE = "container_secret"
|
||||
)
|
||||
|
||||
type SAccessKeySecretBlob struct {
|
||||
|
||||
@@ -31,6 +31,13 @@ type CredentialUpdateInput struct {
|
||||
|
||||
// enabled
|
||||
Enabled *bool `json:"enabled"`
|
||||
|
||||
// 更新 blob 内容(明文,服务端加密后写入 encrypted_blob)
|
||||
Blob string `json:"blob"`
|
||||
|
||||
// 由 ValidateUpdateData 在提供 blob 时填充,不允许客户端直接传入
|
||||
EncryptedBlob string `json:"encrypted_blob"`
|
||||
KeyHash string `json:"key_hash"`
|
||||
}
|
||||
|
||||
type CredentialCreateInput struct {
|
||||
|
||||
@@ -355,10 +355,16 @@ type SUser struct {
|
||||
// 显示名称,用户登录后显示在右上角菜单入口
|
||||
Displayname string `json:"displayname"`
|
||||
// 上次登录时间
|
||||
// deprecated
|
||||
// swagger:ignore
|
||||
LastActiveAt time.Time `json:"last_active_at"`
|
||||
// 上次用户登录IP
|
||||
// deprecated
|
||||
// swagger:ignore
|
||||
LastLoginIp string `json:"last_login_ip"`
|
||||
// 上次用户登录方式,可能值有:web(web控制台),cli(命令行climc),API(api)
|
||||
// deprecated
|
||||
// swagger:ignore
|
||||
LastLoginSource string `json:"last_login_source"`
|
||||
// 是否为系统账号,系统账号不会检查密码复杂度,默认不在列表显示
|
||||
IsSystemAccount *bool `json:"is_system_account,omitempty"`
|
||||
@@ -370,6 +376,8 @@ type SUser struct {
|
||||
EnableMfa *bool `json:"enable_mfa,omitempty"`
|
||||
// 用户的默认语言设置,默认是zh_CN
|
||||
Lang string `json:"lang"`
|
||||
// 过期时间
|
||||
ExpiredAt time.Time `json:"expired_at"`
|
||||
}
|
||||
|
||||
// SUserOption is an autogenerated struct via yunion.io/x/onecloud/pkg/keystone/models.SUserOption.
|
||||
|
||||
@@ -60,6 +60,8 @@ const (
|
||||
IMAGE_OS_DISTRO = "os_distribution"
|
||||
IMAGE_OS_TYPE = "os_type"
|
||||
IMAGE_OS_VERSION = "os_version"
|
||||
IMAGE_OS_LANGUAGE = "os_language"
|
||||
IMAGE_OS_CURRENT_VERSION = "os_current_version"
|
||||
IMAGE_DISK_FORMAT = "disk_format"
|
||||
IMAGE_UEFI_SUPPORT = "uefi_support"
|
||||
IMAGE_BIOS_SUPPORT = "bios_support"
|
||||
|
||||
@@ -9,14 +9,20 @@ import (
|
||||
type LLMImageType string
|
||||
|
||||
const (
|
||||
LLM_IMAGE_TYPE_OLLAMA LLMImageType = "ollama"
|
||||
LLM_IMAGE_TYPE_DIFY LLMImageType = "dify"
|
||||
LLM_IMAGE_TYPE_OLLAMA LLMImageType = "ollama"
|
||||
LLM_IMAGE_TYPE_VLLM LLMImageType = "vllm"
|
||||
LLM_IMAGE_TYPE_DIFY LLMImageType = "dify"
|
||||
LLM_IMAGE_TYPE_COMFYUI LLMImageType = "comfyui"
|
||||
LLM_IMAGE_TYPE_OPENCLAW LLMImageType = "openclaw"
|
||||
)
|
||||
|
||||
var (
|
||||
LLM_IMAGE_TYPES = sets.NewString(
|
||||
string(LLM_IMAGE_TYPE_OLLAMA),
|
||||
string(LLM_IMAGE_TYPE_VLLM),
|
||||
string(LLM_IMAGE_TYPE_DIFY),
|
||||
string(LLM_IMAGE_TYPE_COMFYUI),
|
||||
string(LLM_IMAGE_TYPE_OPENCLAW),
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ import (
|
||||
"time"
|
||||
|
||||
"yunion.io/x/onecloud/pkg/apis"
|
||||
computeapi "yunion.io/x/onecloud/pkg/apis/compute"
|
||||
"yunion.io/x/onecloud/pkg/cloudcommon/db/taskman"
|
||||
)
|
||||
|
||||
@@ -47,15 +48,17 @@ type LLMBaseListDetails struct {
|
||||
|
||||
type MountedModelInfo struct {
|
||||
FullName string `json:"fullname"` // 模型全名,如: qwen3:8b
|
||||
Id string `json:"id"` // 模型ID,如: 500a1f067a9f
|
||||
ModelId string `json:"model_id"` // 模型ID,如: 500a1f067a9f
|
||||
Id string `json:"id"` // 秒装包的 ID 主键
|
||||
}
|
||||
|
||||
type LLMListDetails struct {
|
||||
LLMBaseListDetails
|
||||
|
||||
LLMSku string
|
||||
LLMSku string `json:"llm_sku"`
|
||||
LLMType string `json:"llm_type"`
|
||||
|
||||
MountedModels []MountedModelInfo
|
||||
MountedModels []MountedModelInfo `json:"mounted_models"`
|
||||
}
|
||||
|
||||
type LLMBaseCreateInput struct {
|
||||
@@ -64,8 +67,7 @@ type LLMBaseCreateInput struct {
|
||||
PreferHost string `json:"prefer_host"`
|
||||
AutoStart bool `json:"auto_start"`
|
||||
|
||||
NetworkType string `json:"network_type"`
|
||||
NetworkId string `json:"network_id"`
|
||||
Nets []*computeapi.NetworkConfig `json:"nets"`
|
||||
|
||||
BandwidthMB int `json:"bandwidth_mb"`
|
||||
DebugMode bool `json:"debug_mode"`
|
||||
@@ -75,8 +77,17 @@ type LLMBaseCreateInput struct {
|
||||
type LLMCreateInput struct {
|
||||
LLMBaseCreateInput
|
||||
|
||||
LLMSkuId string
|
||||
LLMImageId string
|
||||
LLMSkuId string `json:"llm_sku_id"`
|
||||
LLMImageId string `json:"llm_image_id"`
|
||||
LLMSpec *LLMSpec `json:"llm_spec,omitempty"`
|
||||
}
|
||||
|
||||
// LLMUpdateInput is the request body for updating an LLM (including llm_spec overrides).
|
||||
type LLMUpdateInput struct {
|
||||
apis.VirtualResourceBaseUpdateInput
|
||||
|
||||
InstantModelQuotaGb *int `json:"instant_model_quota_gb,omitempty"`
|
||||
LLMSpec *LLMSpec `json:"llm_spec,omitempty"`
|
||||
}
|
||||
|
||||
type LLMBaseListInput struct {
|
||||
@@ -99,8 +110,10 @@ type LLMBaseListInput struct {
|
||||
type LLMListInput struct {
|
||||
LLMBaseListInput
|
||||
|
||||
LLMSku string `json:"llm_sku"`
|
||||
LLMImage string `json:"llm_image"`
|
||||
LLMSku string `json:"llm_sku"`
|
||||
LLMImage string `json:"llm_image"`
|
||||
LLMTypes []string `json:"llm_types"` // filter by linked SKU's llm_types (e.g. [dify, openclaw])
|
||||
LLMType string `json:"llm_type"` // filter by linked SKU's llm_type (e.g. dify)
|
||||
}
|
||||
|
||||
type ModelInfo struct {
|
||||
@@ -171,3 +184,45 @@ func (info LLMMountDirInfo) ToOverlay() apis.ContainerVolumeMountDiskPostOverlay
|
||||
|
||||
type LLMSyncStatusInput struct {
|
||||
}
|
||||
|
||||
type LLMRestartInput struct {
|
||||
}
|
||||
|
||||
type LLMRestartTaskInput struct {
|
||||
LLMId string
|
||||
ResetDataDisk bool
|
||||
LLMStatus string
|
||||
SkuId string
|
||||
ImageId string
|
||||
BackupName string
|
||||
Property []string
|
||||
|
||||
RebindVolumeId string
|
||||
OnlyStop bool
|
||||
}
|
||||
|
||||
type LLMChangeNetworkInput struct {
|
||||
BandwidthMb int `json:"bandwidth_mb"`
|
||||
WhitePrefxies []string `json:"white_prefxies"`
|
||||
}
|
||||
|
||||
type LLMVolumeInput struct {
|
||||
LLMId string `json:"llm_id"`
|
||||
VolumeId string `json:"volume_id"`
|
||||
AutoStart bool `json:"auto_start"`
|
||||
}
|
||||
|
||||
type LLMAccessUrlInfo struct {
|
||||
LoginUrl string `json:"login_url"`
|
||||
PublicUrl string `json:"public_url"`
|
||||
InternalUrl string `json:"internal_url"`
|
||||
}
|
||||
|
||||
// LLMAccessInfo is the response for GET /llms/<id>/login-info: login URL and credentials.
|
||||
type LLMAccessInfo struct {
|
||||
LLMAccessUrlInfo
|
||||
|
||||
Username string `json:"username,omitempty"`
|
||||
Password string `json:"password,omitempty"`
|
||||
Extra map[string]string `json:"extra,omitempty"`
|
||||
}
|
||||
|
||||
@@ -33,15 +33,39 @@ const (
|
||||
/* 运行 */
|
||||
LLM_STATUS_RUNNING = "running"
|
||||
|
||||
/* 开始解绑磁盘 */
|
||||
LLM_STATUS_START_UNBIND = "start_unbind"
|
||||
/* 正在解绑磁盘 */
|
||||
LLM_STATUS_UNBINDING = "unbinding"
|
||||
/* 解绑磁盘失败 */
|
||||
LLM_STATUS_UNBIND_FAIL = "unbind_fail"
|
||||
|
||||
/* 开始挂载磁盘 */
|
||||
LLM_STATUS_START_BIND = "start_bind"
|
||||
/* 正在挂载磁盘 */
|
||||
LLM_STATUS_BINDING = "binding"
|
||||
/* 挂载磁盘失败 */
|
||||
LLM_STATUS_BIND_FAIL = "bind_fail"
|
||||
|
||||
/* 开始重启 */
|
||||
LLM_STATUS_START_RESTART = "start_restart"
|
||||
/* 正在重启 */
|
||||
LLM_STATUS_RESTARTING = "restarting"
|
||||
/* 重启失败 */
|
||||
LLM_STATUS_RESTART_FAILED = "restart_fail"
|
||||
|
||||
/* 开始删除 */
|
||||
LLM_STATUS_START_DELETE = "start_delete"
|
||||
/* 正在删除 */
|
||||
LLM_STATUS_DELETING = "deleting"
|
||||
/* 删除失败 */
|
||||
LLM_STATUS_DELETE_FAILED = "delete_fail"
|
||||
|
||||
/* 删除 */
|
||||
LLM_STATUS_DELETED = "deleted"
|
||||
|
||||
LLM_LLM_STATUS_NO_SERVER = "no_server"
|
||||
LLM_LLM_STATUS_NO_CONTAINER = "no_container"
|
||||
|
||||
LLM_STATUS_START_DELETE = "start_delete"
|
||||
LLM_STATUS_DELETING = "deleting"
|
||||
LLM_STATUS_DELETE_FAILED = "delete_fail"
|
||||
)
|
||||
|
||||
type TQuickModelMethod string
|
||||
@@ -55,3 +79,5 @@ const (
|
||||
const (
|
||||
LLM_PROBE_INSTANT_MODEl_INTERVAL_SECOND = 120 // 2 minute
|
||||
)
|
||||
|
||||
type LLMEnvKey string
|
||||
|
||||
@@ -9,12 +9,20 @@ import (
|
||||
type LLMContainerType string
|
||||
|
||||
const (
|
||||
LLM_CONTAINER_OLLAMA LLMContainerType = "ollama"
|
||||
LLM_CONTAINER_OLLAMA LLMContainerType = "ollama"
|
||||
LLM_CONTAINER_VLLM LLMContainerType = "vllm"
|
||||
LLM_CONTAINER_DIFY LLMContainerType = "dify"
|
||||
LLM_CONTAINER_COMFYUI LLMContainerType = "comfyui"
|
||||
LLM_CONTAINER_OPENCLAW LLMContainerType = "openclaw"
|
||||
)
|
||||
|
||||
var (
|
||||
LLM_CONTAINER_TYPES = sets.NewString(
|
||||
string(LLM_CONTAINER_OLLAMA),
|
||||
string(LLM_CONTAINER_VLLM),
|
||||
string(LLM_CONTAINER_DIFY),
|
||||
string(LLM_CONTAINER_COMFYUI),
|
||||
string(LLM_CONTAINER_OPENCLAW),
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
148
pkg/apis/llm/llm_spec.go
Normal file
148
pkg/apis/llm/llm_spec.go
Normal file
@@ -0,0 +1,148 @@
|
||||
// Copyright 2019 Yunion
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package llm
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/pkg/gotypes"
|
||||
)
|
||||
|
||||
// LLMSpec is the flat spec for LLM SKU: optional ollama/vllm/dify payload. Type is on LLMSku.LLMType.
|
||||
type LLMSpec struct {
|
||||
Ollama *LLMSpecOllama `json:"ollama,omitempty"`
|
||||
Vllm *LLMSpecVllm `json:"vllm,omitempty"`
|
||||
Dify *LLMSpecDify `json:"dify,omitempty"`
|
||||
ComfyUI *LLMSpecComfyUI `json:"comfyui,omitempty"`
|
||||
OpenClaw *LLMSpecOpenClaw `json:"openclaw,omitempty"`
|
||||
}
|
||||
|
||||
func (s *LLMSpec) String() string {
|
||||
return jsonutils.Marshal(s).String()
|
||||
}
|
||||
|
||||
func (s *LLMSpec) IsZero() bool {
|
||||
if s == nil {
|
||||
return true
|
||||
}
|
||||
return s.Ollama == nil && s.Vllm == nil && s.Dify == nil && s.ComfyUI == nil && s.OpenClaw == nil
|
||||
}
|
||||
|
||||
// LLMSpecOllama holds type-specific fields for ollama SKUs.
|
||||
type LLMSpecOllama struct {
|
||||
}
|
||||
|
||||
func (s *LLMSpecOllama) String() string {
|
||||
return jsonutils.Marshal(s).String()
|
||||
}
|
||||
|
||||
func (s *LLMSpecOllama) IsZero() bool {
|
||||
if s == nil {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// LLMSpecVllm holds type-specific fields for vllm SKUs (includes PreferredModel).
|
||||
type LLMSpecVllm struct {
|
||||
PreferredModel string `json:"preferred_model"`
|
||||
}
|
||||
|
||||
func (s *LLMSpecVllm) String() string {
|
||||
return jsonutils.Marshal(s).String()
|
||||
}
|
||||
|
||||
func (s *LLMSpecVllm) IsZero() bool {
|
||||
if s == nil {
|
||||
return true
|
||||
}
|
||||
return s.PreferredModel == ""
|
||||
}
|
||||
|
||||
// LLMSpecDify holds type-specific fields for Dify SKUs (multiple image ids + customized envs).
|
||||
type LLMSpecDify struct {
|
||||
PostgresImageId string `json:"postgres_image_id"`
|
||||
RedisImageId string `json:"redis_image_id"`
|
||||
NginxImageId string `json:"nginx_image_id"`
|
||||
DifyApiImageId string `json:"dify_api_image_id"`
|
||||
DifyPluginImageId string `json:"dify_plugin_image_id"`
|
||||
DifyWebImageId string `json:"dify_web_image_id"`
|
||||
DifySandboxImageId string `json:"dify_sandbox_image_id"`
|
||||
DifySSRFImageId string `json:"dify_ssrf_image_id"`
|
||||
DifyWeaviateImageId string `json:"dify_weaviate_image_id"`
|
||||
CustomizedEnvs []*DifyCustomizedEnv `json:"customized_envs,omitempty"`
|
||||
}
|
||||
|
||||
func (s *LLMSpecDify) String() string {
|
||||
return jsonutils.Marshal(s).String()
|
||||
}
|
||||
|
||||
func (s *LLMSpecDify) IsZero() bool {
|
||||
if s == nil {
|
||||
return true
|
||||
}
|
||||
return s.PostgresImageId == "" && s.RedisImageId == "" && s.NginxImageId == "" &&
|
||||
s.DifyApiImageId == "" && s.DifyPluginImageId == "" && s.DifyWebImageId == "" &&
|
||||
s.DifySandboxImageId == "" && s.DifySSRFImageId == "" && s.DifyWeaviateImageId == "" &&
|
||||
len(s.CustomizedEnvs) == 0
|
||||
}
|
||||
|
||||
type LLMSpecComfyUI struct {
|
||||
}
|
||||
|
||||
func (s *LLMSpecComfyUI) String() string {
|
||||
return jsonutils.Marshal(s).String()
|
||||
}
|
||||
|
||||
func (s *LLMSpecComfyUI) IsZero() bool {
|
||||
if s == nil {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
type LLMSpecCredential struct {
|
||||
Id string `json:"id"`
|
||||
ExportKeys []string `json:"export_keys"`
|
||||
}
|
||||
|
||||
type LLMSpecOpenClawProvider struct {
|
||||
Name string `json:"name"`
|
||||
Credential *LLMSpecCredential `json:"credential"`
|
||||
}
|
||||
|
||||
type LLMSpecOpenClawChannel struct {
|
||||
Name string `json:"name"`
|
||||
Credential *LLMSpecCredential `json:"credential"`
|
||||
}
|
||||
|
||||
type LLMSpecOpenClaw struct {
|
||||
Providers []*LLMSpecOpenClawProvider `json:"providers"`
|
||||
Channels []*LLMSpecOpenClawChannel `json:"channels"`
|
||||
WorkspaceTemplates *LLMSpecOpenClawWorkspaceTemplates `json:"workspace_templates"`
|
||||
}
|
||||
|
||||
type LLMSpecOpenClawWorkspaceTemplates struct {
|
||||
AgentsMD string `json:"agents_md"`
|
||||
SoulMD string `json:"soul_md"`
|
||||
UserMD string `json:"user_md"`
|
||||
}
|
||||
|
||||
func init() {
|
||||
gotypes.RegisterSerializable(reflect.TypeOf(new(LLMSpec)), func() gotypes.ISerializable {
|
||||
return new(LLMSpec)
|
||||
})
|
||||
}
|
||||
@@ -60,36 +60,40 @@ func IsLLMClientType(t string) bool {
|
||||
type MCPAgentListInput struct {
|
||||
apis.SharableVirtualResourceListInput
|
||||
|
||||
LLMDriver string `json:"llm_driver"`
|
||||
LLMDriver string `json:"llm_driver"`
|
||||
DefaultAgent *bool `json:"default_agent,omitempty" help:"filter by default agent (true to get the default one)"`
|
||||
}
|
||||
|
||||
type MCPAgentCreateInput struct {
|
||||
apis.SharableVirtualResourceCreateInput
|
||||
|
||||
LLMId string `json:"llm_id" help:"LLM 实例 ID,如果提供则自动获取 llm_url"`
|
||||
LLMUrl string `json:"llm_url" help:"后端大模型的 base 请求地址"`
|
||||
LLMDriver string `json:"llm_driver" help:"使用的大模型驱动,可以是 ollama 或 openai"`
|
||||
Model string `json:"model" help:"使用的模型名称"`
|
||||
ApiKey string `json:"api_key" help:"在 llm_driver 中需要用到的认证"`
|
||||
McpServer string `json:"mcp_server" help:"mcp 服务器的后端地址"`
|
||||
LLMId string `json:"llm_id" help:"LLM 实例 ID,如果提供则自动获取 llm_url"`
|
||||
LLMUrl string `json:"llm_url" help:"后端大模型的 base 请求地址"`
|
||||
LLMDriver string `json:"llm_driver" help:"使用的大模型驱动,可以是 ollama 或 openai"`
|
||||
Model string `json:"model" help:"使用的模型名称"`
|
||||
ApiKey string `json:"api_key" help:"在 llm_driver 中需要用到的认证"`
|
||||
McpServer string `json:"mcp_server" help:"mcp 服务器的后端地址"`
|
||||
DefaultAgent *bool `json:"default_agent,omitempty" help:"set as default MCP agent (only one can be true globally)"`
|
||||
}
|
||||
|
||||
type MCPAgentUpdateInput struct {
|
||||
apis.SharableVirtualResourceCreateInput
|
||||
|
||||
LLMId *string `json:"llm_id,omitempty" help:"LLM 实例 ID,如果提供则自动获取 llm_url"`
|
||||
LLMUrl *string `json:"llm_url,omitempty" help:"后端大模型的 base 请求地址"`
|
||||
LLMDriver *string `json:"llm_driver,omitempty" help:"使用的大模型驱动,可以是 ollama 或 openai"`
|
||||
Model *string `json:"model,omitempty" help:"使用的模型名称"`
|
||||
ApiKey *string `json:"api_key,omitempty" help:"在 llm_driver 中需要用到的认证"`
|
||||
McpServer *string `json:"mcp_server,omitempty" help:"mcp 服务器的后端地址"`
|
||||
LLMId *string `json:"llm_id,omitempty" help:"LLM 实例 ID,如果提供则自动获取 llm_url"`
|
||||
LLMUrl *string `json:"llm_url,omitempty" help:"后端大模型的 base 请求地址"`
|
||||
LLMDriver *string `json:"llm_driver,omitempty" help:"使用的大模型驱动,可以是 ollama 或 openai"`
|
||||
Model *string `json:"model,omitempty" help:"使用的模型名称"`
|
||||
ApiKey *string `json:"api_key,omitempty" help:"在 llm_driver 中需要用到的认证"`
|
||||
McpServer *string `json:"mcp_server,omitempty" help:"mcp 服务器的后端地址"`
|
||||
DefaultAgent *bool `json:"default_agent,omitempty" help:"set as default MCP agent (only one can be true globally)"`
|
||||
}
|
||||
|
||||
type MCPAgentDetails struct {
|
||||
apis.SharableVirtualResourceDetails
|
||||
|
||||
LLMId string `json:"llm_id"`
|
||||
LLMName string `json:"llm_name"`
|
||||
LLMId string `json:"llm_id"`
|
||||
LLMName string `json:"llm_name"`
|
||||
DefaultAgent bool `json:"default_agent"`
|
||||
}
|
||||
|
||||
type LLMToolRequestInput struct {
|
||||
@@ -98,7 +102,14 @@ type LLMToolRequestInput struct {
|
||||
}
|
||||
|
||||
type LLMMCPAgentRequestInput struct {
|
||||
Message string `json:"message" help:"message to send to MCP agent"`
|
||||
Message string `json:"message" help:"message to send to MCP agent"`
|
||||
History []MCPAgentChatMessage `json:"history" help:"chat history"`
|
||||
}
|
||||
|
||||
type MCPAgentChatMessage struct {
|
||||
Role string `json:"role"`
|
||||
Content string `json:"content"`
|
||||
// ToolCalls []MCPAgentToolCallRecord `json:"tool_calls,omitempty"`
|
||||
}
|
||||
|
||||
// MCPAgentResponse 表示 Agent 响应
|
||||
@@ -115,6 +126,7 @@ type MCPAgentResponse struct {
|
||||
|
||||
// MCPAgentToolCallRecord 记录工具调用
|
||||
type MCPAgentToolCallRecord struct {
|
||||
Id string `json:"id,omitempty"`
|
||||
ToolName string `json:"tool_name"`
|
||||
Arguments map[string]interface{} `json:"arguments"`
|
||||
Result string `json:"result"`
|
||||
|
||||
@@ -17,10 +17,10 @@ const (
|
||||
LLM_OLLAMA_HOST_MANIFESTS_DIR = "/manifests"
|
||||
LLM_OLLAMA_CACHE_DIR = "/.llm_ollama_cache"
|
||||
LLM_OLLAMA_CACHE_MOUNT_PATH = "/usr/local"
|
||||
LLM_OLLAMA_LIBRARY_BASE_URL = `https://registry.ollama.ai/v2/library/%s`
|
||||
LLM_OLLAMA_LIBRARY_BASE_URL = `https://registry.ollama.ai/v2/%s`
|
||||
LLM_OLLAMA_BASE_PATH = "/root/.ollama/models"
|
||||
LLM_OLLAMA_BLOBS_DIR = "/blobs"
|
||||
LLM_OLLAMA_MANIFESTS_BASE_PATH = "/manifests/registry.ollama.ai/library"
|
||||
LLM_OLLAMA_MANIFESTS_BASE_PATH = "/manifests/registry.ollama.ai"
|
||||
)
|
||||
|
||||
const (
|
||||
|
||||
46
pkg/apis/llm/openclaw.go
Normal file
46
pkg/apis/llm/openclaw.go
Normal file
@@ -0,0 +1,46 @@
|
||||
package llm
|
||||
|
||||
const (
|
||||
LLM_OPENCLAW_GATEWAY_TOKEN = LLMEnvKey("OPENCLAW_GATEWAY_TOKEN")
|
||||
LLM_OPENCLAW_AUTH_USERNAME = LLMEnvKey("AUTH_USERNAME")
|
||||
LLM_OPENCLAW_CUSTOM_USER = LLMEnvKey("CUSTOM_USER")
|
||||
LLM_OPENCLAW_AUTH_PASSWORD = LLMEnvKey("AUTH_PASSWORD")
|
||||
LLM_OPENCLAW_PASSWORD = LLMEnvKey("PASSWORD")
|
||||
LLM_OPENCLAW_CUSTOM_CONFIG = LLMEnvKey("OPENCLAW_CUSTOM_CONFIG")
|
||||
LLM_OPENCLAW_CUSTOM_CONFIG_FILE = "/opt/openclaw_base_config.json"
|
||||
|
||||
// templates
|
||||
LLM_OPENCLAW_TEMPLATE_AGENTS_MD_B64 = LLMEnvKey("OPENCLAW_TEMPLATE_AGENTS_MD_B64")
|
||||
LLM_OPENCLAW_TEMPLATE_SOUL_MD_B64 = LLMEnvKey("OPENCLAW_TEMPLATE_SOUL_MD_B64")
|
||||
LLM_OPENCLAW_TEMPLATE_USER_MD_B64 = LLMEnvKey("OPENCLAW_TEMPLATE_USER_MD_B64")
|
||||
)
|
||||
|
||||
const (
|
||||
LLM_OPENCLAW_DEFAULT_PORT = 3001
|
||||
)
|
||||
|
||||
type OpenClawConfig struct {
|
||||
Browser *OpenClawConfigBrowser `json:"browser"`
|
||||
Agents *OpenClawConfigAgents `json:"agents"`
|
||||
}
|
||||
|
||||
type OpenClawConfigAgents map[string]*OpenClawConfigAgent
|
||||
|
||||
type OpenClawConfigAgent struct {
|
||||
Model *OpenClawConfigAgentModel `json:"model"`
|
||||
ImageModel *OpenClawConfigAgentModel `json:"imageModel"`
|
||||
Workspace string `json:"workspace"`
|
||||
}
|
||||
|
||||
type OpenClawConfigAgentModel struct {
|
||||
Primary string `json:"primary"`
|
||||
}
|
||||
|
||||
// ref: https://docs.openclaw.ai/tools/browser#configuration
|
||||
type OpenClawConfigBrowser struct {
|
||||
Enabled bool `json:"enabled"`
|
||||
SSRFPolicy map[string]interface{} `json:"ssrfPolicy"`
|
||||
DefaultProfile string `json:"defaultProfile"`
|
||||
Headless bool `json:"headless"`
|
||||
NoSandbox bool `json:"noSandbox"`
|
||||
}
|
||||
@@ -116,7 +116,14 @@ type LLMSkuDetails struct {
|
||||
ImageLabel string
|
||||
ImageName string
|
||||
|
||||
MountedModelDetails []MountedModelInfo `json:"mounted_model_details"`
|
||||
|
||||
Template string `json:"template"`
|
||||
|
||||
// LLMType 为 SKU 类型(ollama/vllm/dify),与 llm_spec 一起带出
|
||||
LLMType string `json:"llm_type"`
|
||||
// LLMSpec 从 SKU 持久化字段带出,保证 list/show 与 create 一致
|
||||
LLMSpec *LLMSpec `json:"llm_spec,omitempty"`
|
||||
}
|
||||
|
||||
type MountedAppResourceDetails struct {
|
||||
@@ -161,23 +168,33 @@ type LLMSkuListInput struct {
|
||||
apis.SharableVirtualResourceListInput
|
||||
MountedModelResourceListInput
|
||||
|
||||
LLMType string `json:"llm_type"`
|
||||
LLMType string `json:"llm_type"`
|
||||
LLMTypes []string `json:"llm_types"`
|
||||
}
|
||||
|
||||
type LLMSkuCreateInput struct {
|
||||
LLMSKuBaseCreateInput
|
||||
MountedModelResourceCreateInput
|
||||
|
||||
LLMImageId string `json:"llm_image_id"`
|
||||
LLMType string `json:"llm_type"`
|
||||
LLMModelName string `json:"llm_model_name"`
|
||||
LLMImageId string `json:"llm_image_id"`
|
||||
LLMType string `json:"llm_type"`
|
||||
|
||||
// LLMSpec:
|
||||
// - ollama/vllm: backend builds llm_spec from llm_image_id + mounted_models; for vllm preferred model should be set in llm_spec.vllm.preferred_model.
|
||||
// - dify: client must send llm_spec with type "dify" and dify payload.
|
||||
LLMSpec *LLMSpec `json:"llm_spec,omitempty"`
|
||||
}
|
||||
|
||||
type LLMSkuUpdateInput struct {
|
||||
LLMSkuBaseUpdateInput
|
||||
MountedModelResourceUpdateInput
|
||||
|
||||
LLMImageId string `json:"llm_image_id"`
|
||||
LLMModelName string `json:"llm_model_name"`
|
||||
LLMImageId string `json:"llm_image_id"`
|
||||
|
||||
// LLMSpec:
|
||||
// - dify: send full spec to update image ids.
|
||||
// - ollama/vllm: backend may build from llm_image_id/mounted_models; for vllm preferred model should be set in llm_spec.vllm.preferred_model.
|
||||
LLMSpec *LLMSpec `json:"llm_spec,omitempty"`
|
||||
}
|
||||
|
||||
// type LLMModelCloneInput struct {
|
||||
@@ -188,35 +205,35 @@ type LLMSkuUpdateInput struct {
|
||||
// Request bool `json:"request"`
|
||||
// }
|
||||
|
||||
type DifySkulListInput struct {
|
||||
apis.SharableVirtualResourceListInput
|
||||
MountedModelResourceListInput
|
||||
}
|
||||
// type DifySkulListInput struct {
|
||||
// apis.SharableVirtualResourceListInput
|
||||
// MountedModelResourceListInput
|
||||
// }
|
||||
|
||||
type DifySkuCreateInput struct {
|
||||
LLMSKuBaseCreateInput
|
||||
// type DifySkuCreateInput struct {
|
||||
// LLMSKuBaseCreateInput
|
||||
|
||||
PostgresImageId string `json:"postgres_image_id"`
|
||||
RedisImageId string `json:"redis_image_id"`
|
||||
NginxImageId string `json:"nginx_image_id"`
|
||||
DifyApiImageId string `json:"dify_api_image_id"`
|
||||
DifyPluginImageId string `json:"dify_plugin_image_id"`
|
||||
DifyWebImageId string `json:"dify_web_image_id"`
|
||||
DifySandboxImageId string `json:"dify_sandbox_image_id"`
|
||||
DifySSRFImageId string `json:"dify_ssrf_image_id"`
|
||||
DifyWeaviateImageId string `json:"dify_weaviate_image_id"`
|
||||
}
|
||||
// PostgresImageId string `json:"postgres_image_id"`
|
||||
// RedisImageId string `json:"redis_image_id"`
|
||||
// NginxImageId string `json:"nginx_image_id"`
|
||||
// DifyApiImageId string `json:"dify_api_image_id"`
|
||||
// DifyPluginImageId string `json:"dify_plugin_image_id"`
|
||||
// DifyWebImageId string `json:"dify_web_image_id"`
|
||||
// DifySandboxImageId string `json:"dify_sandbox_image_id"`
|
||||
// DifySSRFImageId string `json:"dify_ssrf_image_id"`
|
||||
// DifyWeaviateImageId string `json:"dify_weaviate_image_id"`
|
||||
// }
|
||||
|
||||
type DifySkuUpdateInput struct {
|
||||
LLMSkuBaseUpdateInput
|
||||
// type DifySkuUpdateInput struct {
|
||||
// LLMSkuBaseUpdateInput
|
||||
|
||||
PostgresImageId string `json:"postgres_image_id"`
|
||||
RedisImageId string `json:"redis_image_id"`
|
||||
NginxImageId string `json:"nginx_image_id"`
|
||||
DifyApiImageId string `json:"dify_api_image_id"`
|
||||
DifyPluginImageId string `json:"dify_plugin_image_id"`
|
||||
DifyWebImageId string `json:"dify_web_image_id"`
|
||||
DifySandboxImageId string `json:"dify_sandbox_image_id"`
|
||||
DifySSRFImageId string `json:"dify_ssrf_image_id"`
|
||||
DifyWeaviateImageId string `json:"dify_weaviate_image_id"`
|
||||
}
|
||||
// PostgresImageId string `json:"postgres_image_id"`
|
||||
// RedisImageId string `json:"redis_image_id"`
|
||||
// NginxImageId string `json:"nginx_image_id"`
|
||||
// DifyApiImageId string `json:"dify_api_image_id"`
|
||||
// DifyPluginImageId string `json:"dify_plugin_image_id"`
|
||||
// DifyWebImageId string `json:"dify_web_image_id"`
|
||||
// DifySandboxImageId string `json:"dify_sandbox_image_id"`
|
||||
// DifySSRFImageId string `json:"dify_ssrf_image_id"`
|
||||
// DifyWeaviateImageId string `json:"dify_weaviate_image_id"`
|
||||
// }
|
||||
|
||||
88
pkg/apis/llm/vllm_const.go
Normal file
88
pkg/apis/llm/vllm_const.go
Normal file
@@ -0,0 +1,88 @@
|
||||
package llm
|
||||
|
||||
import "time"
|
||||
|
||||
const (
|
||||
LLM_VLLM = "vllm"
|
||||
LLM_VLLM_DEFAULT_PORT = 8000
|
||||
LLM_VLLM_EXEC_PATH = "python3 -m vllm.entrypoints.openai.api_server"
|
||||
|
||||
LLM_VLLM_HF_ENDPOINT = "https://hf-mirror.com"
|
||||
|
||||
// Directory constants
|
||||
LLM_VLLM_CACHE_DIR = "/root/.cache/huggingface"
|
||||
LLM_VLLM_BASE_PATH = "/data/models"
|
||||
LLM_VLLM_MODELS_PATH = "/data/models/huggingface"
|
||||
|
||||
// Health check
|
||||
LLM_VLLM_HEALTH_CHECK_TIMEOUT = 120 * time.Second // 2 minutes
|
||||
LLM_VLLM_HEALTH_CHECK_INTERVAL = 10 * time.Second // 10 seconds
|
||||
|
||||
// Default vLLM memory params when Python estimation fails (conservative to avoid OOM)
|
||||
LLM_VLLM_DEFAULT_GPU_MEMORY_UTIL = 0.9
|
||||
LLM_VLLM_DEFAULT_MAX_MODEL_LEN = 2048
|
||||
LLM_VLLM_DEFAULT_MAX_NUM_SEQS = 1
|
||||
|
||||
// Prefixes for parsing resolveModelAndParams output line (KEY=value)
|
||||
LLM_VLLM_RESOLVE_OUTPUT_PREFIX_GPU_UTIL = "GPU_MEMORY_UTIL="
|
||||
LLM_VLLM_RESOLVE_OUTPUT_PREFIX_MAX_LEN = "MAX_MODEL_LEN="
|
||||
LLM_VLLM_RESOLVE_OUTPUT_PREFIX_MAX_NUM_SEQ = "MAX_NUM_SEQS="
|
||||
)
|
||||
|
||||
const (
|
||||
|
||||
// vllmEstimateParamsScript is a Python script run inside the container to estimate
|
||||
// --gpu-memory-utilization, --max-model-len, and --max-num-seqs from GPU memory and model config.
|
||||
// Args: sys.argv[1]=model path, sys.argv[2]=tensor_parallel_size.
|
||||
// Prints one line: GPU_MEMORY_UTIL=0.9 MAX_MODEL_LEN=2624 MAX_NUM_SEQS=1 (eval-safe).
|
||||
LLM_VLLM_ESTIMATE_PARAMS_SCRIPT = `
|
||||
import sys, json, os
|
||||
model_path = sys.argv[1] if len(sys.argv) > 1 else ""
|
||||
tp = int(sys.argv[2]) if len(sys.argv) > 2 else 1
|
||||
if not model_path or not os.path.isdir(model_path):
|
||||
sys.exit(1)
|
||||
config_path = os.path.join(model_path, "config.json")
|
||||
if not os.path.isfile(config_path):
|
||||
sys.exit(1)
|
||||
with open(config_path) as f:
|
||||
config = json.load(f)
|
||||
def get_nested(d, *keys):
|
||||
for k in keys:
|
||||
d = d.get(k) if isinstance(d, dict) else None
|
||||
if d is None:
|
||||
return None
|
||||
return d
|
||||
num_layers = config.get("num_hidden_layers") or config.get("n_layer") or get_nested(config, "text_config", "num_hidden_layers") or 0
|
||||
num_heads = config.get("num_attention_heads") or config.get("n_head") or get_nested(config, "text_config", "num_attention_heads") or 0
|
||||
num_kv_heads = config.get("num_key_value_heads") or get_nested(config, "text_config", "num_key_value_heads") or num_heads
|
||||
hidden_size = config.get("hidden_size") or config.get("n_embd") or get_nested(config, "text_config", "hidden_size") or 0
|
||||
head_dim = hidden_size // num_heads if num_heads else (hidden_size // 64)
|
||||
max_pos = config.get("max_position_embeddings") or config.get("n_positions") or get_nested(config, "text_config", "max_position_embeddings") or 4096
|
||||
if not num_layers or not num_kv_heads or not head_dim:
|
||||
sys.exit(1)
|
||||
try:
|
||||
import torch
|
||||
total_mem = sum(torch.cuda.get_device_properties(i).total_memory for i in range(torch.cuda.device_count()))
|
||||
except Exception:
|
||||
sys.exit(1)
|
||||
gpu_util = 0.9
|
||||
activation_overhead = 2 * (1024**3)
|
||||
num_params = config.get("num_parameters") or config.get("num_params") or get_nested(config, "text_config", "num_parameters")
|
||||
if num_params is not None:
|
||||
model_bytes = num_params * 2
|
||||
else:
|
||||
model_bytes = 12 * (1024**3)
|
||||
available_kv = total_mem * gpu_util - model_bytes - activation_overhead
|
||||
if available_kv <= 0:
|
||||
available_kv = total_mem * 0.5
|
||||
kv_per_token = num_layers * 2 * num_kv_heads * head_dim * 2
|
||||
max_num_seqs = 4
|
||||
max_model_len = int(available_kv / (kv_per_token * max_num_seqs))
|
||||
max_model_len = max(1, min(max_model_len, max_pos))
|
||||
if max_model_len < 256:
|
||||
max_num_seqs = 1
|
||||
max_model_len = int(available_kv / (kv_per_token * max_num_seqs))
|
||||
max_model_len = max(1, min(max_model_len, max_pos))
|
||||
print("GPU_MEMORY_UTIL=%s MAX_MODEL_LEN=%d MAX_NUM_SEQS=%d" % (gpu_util, max_model_len, max_num_seqs))
|
||||
`
|
||||
)
|
||||
@@ -141,6 +141,7 @@ type AlertCreateInput struct {
|
||||
UsedBy string `json:"used_by"`
|
||||
// customize info
|
||||
CustomizeConfig jsonutils.JSONObject `json:"customize_config"`
|
||||
Reason string `json:"reason"`
|
||||
}
|
||||
|
||||
type MeterCustomizeConfig struct {
|
||||
@@ -168,6 +169,8 @@ type AlertUpdateInput struct {
|
||||
NoDataState string `json:"no_data_state"`
|
||||
// 报警执行错误将当前报警状态设置为对应的状态
|
||||
ExecutionErrorState string `json:"execution_error_state"`
|
||||
// 报警原因
|
||||
Reason string `json:"reason"`
|
||||
}
|
||||
|
||||
type AlertListInput struct {
|
||||
|
||||
@@ -70,6 +70,9 @@ type CommonAlertCreateBaseInput struct {
|
||||
// 角色 id 或者 name
|
||||
Roles []string `json:"roles"`
|
||||
|
||||
// 为 true 时不发送恢复通知(OK)
|
||||
DisableNotifyRecovery *bool `json:"disable_notify_recovery"`
|
||||
|
||||
// 静默期
|
||||
SilentPeriod string `json:"silent_period"`
|
||||
// 报警类型
|
||||
@@ -155,6 +158,8 @@ type CommonAlertUpdateInput struct {
|
||||
Channel []string `json:"channel"`
|
||||
// 通知接受者
|
||||
Recipients []string `json:"recipients"`
|
||||
// 为 true 时不发送恢复通知(OK)
|
||||
DisableNotifyRecovery *bool `json:"disable_notify_recovery"`
|
||||
// 静默期
|
||||
SilentPeriod string `json:"silent_period"`
|
||||
// systemalert policy may need update through operator
|
||||
@@ -167,13 +172,14 @@ type CommonAlertDetails struct {
|
||||
AlertDetails
|
||||
Period string `json:"period"`
|
||||
// 报警连续持续周期数
|
||||
AlertDuration int64 `json:"alert_duration"`
|
||||
Level string `json:"level"`
|
||||
NotifierId string `json:"notifier_id"`
|
||||
Channel []string `json:"channel"`
|
||||
Recipients []string `json:"recipients"`
|
||||
RobotIds []string `json:"robot_ids"`
|
||||
RoleIds []string `json:"role_ids"`
|
||||
AlertDuration int64 `json:"alert_duration"`
|
||||
Level string `json:"level"`
|
||||
NotifierId string `json:"notifier_id"`
|
||||
Channel []string `json:"channel"`
|
||||
Recipients []string `json:"recipients"`
|
||||
RobotIds []string `json:"robot_ids"`
|
||||
RoleIds []string `json:"role_ids"`
|
||||
DisableNotifyRecovery bool `json:"disable_notify_recovery"`
|
||||
// 静默期
|
||||
SilentPeriod string `json:"silent_period"`
|
||||
Status string `json:"status"`
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
package monitor
|
||||
|
||||
import (
|
||||
"yunion.io/x/jsonutils"
|
||||
|
||||
"yunion.io/x/onecloud/pkg/apis"
|
||||
"yunion.io/x/onecloud/pkg/apis/compute"
|
||||
)
|
||||
@@ -59,3 +61,8 @@ type MonitorResourceDetails struct {
|
||||
AttachAlertCount int64 `json:"attach_alert_count"`
|
||||
Hypervisor string `json:"hypervisor"`
|
||||
}
|
||||
|
||||
type MonitorResourceDoActionInput struct {
|
||||
Action string `json:"action"`
|
||||
Data jsonutils.JSONObject `json:"data"`
|
||||
}
|
||||
|
||||
@@ -55,14 +55,15 @@ type MonitorResourceJointCreateInput struct {
|
||||
}
|
||||
|
||||
type MonitorResourceJointDetails struct {
|
||||
ResName string `json:"res_name"`
|
||||
ResId string `json:"res_id"`
|
||||
ResType string `json:"res_type"`
|
||||
AlertName string `json:"alert_name"`
|
||||
AlertRule jsonutils.JSONObject `json:"alert_rule"`
|
||||
Level string `json:"level"`
|
||||
SendState string `json:"send_state"`
|
||||
State string `json:"state"`
|
||||
IsSetShield bool `json:"is_set_shield"`
|
||||
AlertCount int `json:"alert_count"`
|
||||
MonitorResourceObjectId string `json:"monitor_resource_object_id"`
|
||||
ResName string `json:"res_name"`
|
||||
ResId string `json:"res_id"`
|
||||
ResType string `json:"res_type"`
|
||||
AlertName string `json:"alert_name"`
|
||||
AlertRule jsonutils.JSONObject `json:"alert_rule"`
|
||||
Level string `json:"level"`
|
||||
SendState string `json:"send_state"`
|
||||
State string `json:"state"`
|
||||
IsSetShield bool `json:"is_set_shield"`
|
||||
AlertCount int `json:"alert_count"`
|
||||
}
|
||||
|
||||
@@ -31,6 +31,7 @@ type NotificationTemplateConfig struct {
|
||||
StartTime string `json:"start_time"`
|
||||
EndTime string `json:"end_time"`
|
||||
Description string `json:"description"`
|
||||
Reason string `json:"reason"`
|
||||
Priority string `json:"priority"`
|
||||
Level string `json:"level"`
|
||||
IsRecovery bool `json:"is_recovery"`
|
||||
|
||||
@@ -60,14 +60,6 @@ type SAlertDashBoard struct {
|
||||
Refresh string `json:"refresh"`
|
||||
}
|
||||
|
||||
// SAlertDashboardPanel is an autogenerated struct via yunion.io/x/onecloud/pkg/monitor/models.SAlertDashboardPanel.
|
||||
type SAlertDashboardPanel struct {
|
||||
apis.SVirtualJointResourceBase
|
||||
DashboardId string `json:"dashboard_id"`
|
||||
PanelId string `json:"panel_id"`
|
||||
Index int `json:"index"`
|
||||
}
|
||||
|
||||
// SAlertPanel is an autogenerated struct via yunion.io/x/onecloud/pkg/monitor/models.SAlertPanel.
|
||||
type SAlertPanel struct {
|
||||
apis.SStatusStandaloneResourceBase
|
||||
@@ -127,11 +119,6 @@ type SDataSource struct {
|
||||
IsDefault *bool `json:"is_default,omitempty"`
|
||||
}
|
||||
|
||||
// SMeterAlert is an autogenerated struct via yunion.io/x/onecloud/pkg/monitor/models.SMeterAlert.
|
||||
type SMeterAlert struct {
|
||||
SV1Alert
|
||||
}
|
||||
|
||||
// SMetric is an autogenerated struct via yunion.io/x/onecloud/pkg/monitor/models.SMetric.
|
||||
type SMetric struct {
|
||||
apis.SVirtualJointResourceBase
|
||||
@@ -215,8 +202,3 @@ type SNotification struct {
|
||||
Settings jsonutils.JSONObject `json:"settings"`
|
||||
LastSendNotification time.Time `json:"last_send_notification"`
|
||||
}
|
||||
|
||||
// SV1Alert is an autogenerated struct via yunion.io/x/onecloud/pkg/monitor/models.SV1Alert.
|
||||
type SV1Alert struct {
|
||||
SAlert
|
||||
}
|
||||
|
||||
@@ -162,6 +162,7 @@ type SendParams struct {
|
||||
Header jsonutils.JSONObject
|
||||
Body jsonutils.JSONObject
|
||||
MsgKey string
|
||||
SecretKey string `json:"secret_key"`
|
||||
DomainId string
|
||||
RemoteTemplateParam SRemoteTemplateParam
|
||||
GroupKey string
|
||||
|
||||
@@ -139,6 +139,7 @@ const (
|
||||
TOPIC_RESOURCE_VM_INTEGRITY_CHECK = "vm_integrity"
|
||||
TOPIC_RESOURCE_PROJECT = "project"
|
||||
TOPIC_RESOURCE_CLOUDPHONE = "cloudphone"
|
||||
TOPIC_RESOURCE_LLM = "llm"
|
||||
|
||||
SUBSCRIBER_TYPE_ROLE = "role"
|
||||
SUBSCRIBER_TYPE_ROBOT = "robot"
|
||||
|
||||
@@ -93,6 +93,10 @@ var (
|
||||
ActionAttach SAction = "attach"
|
||||
// 卸载
|
||||
ActionDetach SAction = "detach"
|
||||
// 宿主机宕机
|
||||
ActionHostDown SAction = "host_down"
|
||||
// 宕机自动迁移
|
||||
ActionHostDownAutoMigrate SAction = "host_down_auto_migrate"
|
||||
// 透传设备创建
|
||||
ActionIsolatedDeviceCreate SAction = "isolated_device_create"
|
||||
// 透传设备更新
|
||||
|
||||
@@ -21,6 +21,10 @@ import (
|
||||
"yunion.io/x/onecloud/pkg/apis"
|
||||
)
|
||||
|
||||
const (
|
||||
WEBHOOK_SIGNATURE_HEADER = "X-Auth-Token"
|
||||
)
|
||||
|
||||
type RobotCreateInput struct {
|
||||
apis.SharableVirtualResourceCreateInput
|
||||
apis.EnabledBaseResourceCreateInput
|
||||
@@ -37,6 +41,7 @@ type RobotCreateInput struct {
|
||||
Header jsonutils.JSONObject `json:"header"`
|
||||
Body jsonutils.JSONObject `json:"body"`
|
||||
MsgKey string `json:"msg_key"`
|
||||
SecretKey string `json:"secret_key"`
|
||||
UseTemplate tristate.TriState `json:"use_template"`
|
||||
}
|
||||
|
||||
@@ -63,8 +68,9 @@ type RobotUpdateInput struct {
|
||||
Address string `json:"address"`
|
||||
// description: Language preference
|
||||
// example: en
|
||||
Lang string `json:"lang"`
|
||||
Header jsonutils.JSONObject `json:"header"`
|
||||
Body jsonutils.JSONObject `json:"body"`
|
||||
MsgKey string `json:"msg_key"`
|
||||
Lang string `json:"lang"`
|
||||
Header jsonutils.JSONObject `json:"header"`
|
||||
Body jsonutils.JSONObject `json:"body"`
|
||||
MsgKey string `json:"msg_key"`
|
||||
SecretKey string `json:"secret_key"`
|
||||
}
|
||||
|
||||
@@ -42,4 +42,5 @@ const (
|
||||
SANGFOR = "sangfor"
|
||||
CNWARE = "cnware"
|
||||
KSYUN = "ksyun"
|
||||
ECLOUD = "ecloud"
|
||||
)
|
||||
|
||||
@@ -17,7 +17,8 @@ package yunionconf
|
||||
import "yunion.io/x/onecloud/pkg/apis"
|
||||
|
||||
const (
|
||||
SERVICE_TYPE = apis.SERVICE_TYPE_YUNIONCONF
|
||||
SERVICE_TYPE = apis.SERVICE_TYPE_YUNIONCONF
|
||||
SERVICE_VERSION = ""
|
||||
)
|
||||
|
||||
const (
|
||||
|
||||
31
pkg/apis/yunionconf/tags.go
Normal file
31
pkg/apis/yunionconf/tags.go
Normal file
@@ -0,0 +1,31 @@
|
||||
// Copyright 2019 Yunion
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package yunionconf
|
||||
|
||||
import "yunion.io/x/onecloud/pkg/apis"
|
||||
|
||||
type TagListInput struct {
|
||||
apis.InfrasResourceBaseListInput
|
||||
}
|
||||
|
||||
type TagDetails struct {
|
||||
apis.InfrasResourceBaseDetails
|
||||
}
|
||||
|
||||
type TagCreateInput struct {
|
||||
apis.InfrasResourceBaseCreateInput
|
||||
|
||||
Values []string `json:"values"`
|
||||
}
|
||||
@@ -295,6 +295,8 @@ type SStandaloneAnonResourceBase struct {
|
||||
// 是否是模拟资源, 部分从公有云上同步的资源并不真实存在, 例如宿主机
|
||||
// list 接口默认不会返回这类资源,除非显示指定 is_emulate=true 过滤参数
|
||||
IsEmulated bool `json:"is_emulated"`
|
||||
// 用以组织架构变更通知其他服务权限变更
|
||||
OrgNodeMd5 string `json:"org_node_md5"`
|
||||
}
|
||||
|
||||
// SStandaloneResourceBase is an autogenerated struct via yunion.io/x/onecloud/pkg/cloudcommon/db.SStandaloneResourceBase.
|
||||
|
||||
@@ -111,13 +111,6 @@ func SendXmlWithIndent(w http.ResponseWriter, hdr http.Header, obj interface{},
|
||||
|
||||
func SendStream(w http.ResponseWriter, isPartial bool, hdr http.Header, stream io.ReadCloser, sizeBytes int64) error {
|
||||
defer stream.Close()
|
||||
if isPartial {
|
||||
log.Debugf("send partial 206")
|
||||
w.WriteHeader(206)
|
||||
} else {
|
||||
log.Debugf("send full 200")
|
||||
w.WriteHeader(200)
|
||||
}
|
||||
for k, v := range hdr {
|
||||
if k != "Content-Length" {
|
||||
log.Debugf("send %s %s", k, v)
|
||||
@@ -128,6 +121,13 @@ func SendStream(w http.ResponseWriter, isPartial bool, hdr http.Header, stream i
|
||||
log.Debugf("send content-length %d", sizeBytes)
|
||||
w.Header().Set("Content-Length", strconv.FormatInt(sizeBytes, 10))
|
||||
}
|
||||
if isPartial {
|
||||
log.Debugf("send partial 206")
|
||||
w.WriteHeader(206)
|
||||
} else {
|
||||
log.Debugf("send full 200")
|
||||
w.WriteHeader(200)
|
||||
}
|
||||
offset := 0
|
||||
buf := make([]byte, 4096)
|
||||
for sizeBytes <= 0 || int64(offset) < sizeBytes {
|
||||
|
||||
@@ -381,28 +381,18 @@ func (task *sBaremetalPrepareTask) findAdminNic(cli *ssh.Client, nicsInfo []*typ
|
||||
return -1, nil, errors.Error("admin nic not found???")
|
||||
}
|
||||
|
||||
func (task *sBaremetalPrepareTask) updateBmInfo(ctx context.Context, cli *ssh.Client, i *baremetalPrepareInfo) error {
|
||||
adminNic := task.baremetal.GetAdminNic()
|
||||
if adminNic == nil || (adminNic != nil && !adminNic.LinkUp) {
|
||||
adminIdx, adminNicDev, err := task.findAdminNic(cli, i.nicsInfo)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "task.findAdminNic")
|
||||
}
|
||||
accessIp := cli.GetConfig().Host
|
||||
err = task.sendNicInfo(ctx, adminNicDev, adminIdx, api.NIC_TYPE_ADMIN, false, accessIp, true)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "send Admin Nic Info")
|
||||
}
|
||||
adminNic = task.baremetal.GetNicByMac(adminNicDev.Mac)
|
||||
}
|
||||
// collect params
|
||||
func (task *sBaremetalPrepareTask) doUpdateBmInfo(
|
||||
ctx context.Context, cli *ssh.Client, i *baremetalPrepareInfo,
|
||||
bmName, accessIp, accessMac string,
|
||||
) error {
|
||||
updateInfo := make(map[string]interface{})
|
||||
oname := fmt.Sprintf("BM%s", strings.Replace(adminNic.Mac, ":", "", -1))
|
||||
if task.baremetal.GetName() == oname {
|
||||
updateInfo["name"] = fmt.Sprintf("BM-%s", strings.Replace(i.ipmiInfo.IpAddr, ".", "-", -1))
|
||||
if bmName != "" {
|
||||
updateInfo["name"] = bmName
|
||||
}
|
||||
updateInfo["access_ip"] = accessIp
|
||||
if accessMac != "" {
|
||||
updateInfo["access_mac"] = accessMac
|
||||
}
|
||||
updateInfo["access_ip"] = adminNic.IpAddr
|
||||
updateInfo["access_mac"] = adminNic.Mac
|
||||
updateInfo["cpu_architecture"] = i.architecture
|
||||
updateInfo["cpu_count"] = i.cpuInfo.Count
|
||||
updateInfo["node_count"] = i.dmiCpuInfo.Nodes
|
||||
@@ -436,19 +426,6 @@ func (task *sBaremetalPrepareTask) updateBmInfo(ctx context.Context, cli *ssh.Cl
|
||||
return errors.Wrap(err, "send isolated devices info")
|
||||
}
|
||||
}
|
||||
// XXX do not change nic order anymore
|
||||
// for i := range nicsInfo {
|
||||
// if nicsInfo[i].Mac.String() == adminNic.GetMac().String() {
|
||||
// if i != 0 {
|
||||
// nicsInfo = append(nicsInfo[i:], nicsInfo[0:i]...)
|
||||
// }
|
||||
// break
|
||||
// }
|
||||
// }
|
||||
// err = task.removeAllNics()
|
||||
// if err != nil {
|
||||
// return err
|
||||
// }
|
||||
removedMacs := task.removeObsoleteNics(i)
|
||||
for idx := range removedMacs {
|
||||
err = task.removeNicInfo(ctx, removedMacs[idx])
|
||||
@@ -464,6 +441,31 @@ func (task *sBaremetalPrepareTask) updateBmInfo(ctx context.Context, cli *ssh.Cl
|
||||
return errors.Wrap(err, "task.sendNicInfo")
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (task *sBaremetalPrepareTask) updateBmInfo(ctx context.Context, cli *ssh.Client, i *baremetalPrepareInfo) error {
|
||||
adminNic := task.baremetal.GetAdminNic()
|
||||
if adminNic == nil || (adminNic != nil && !adminNic.LinkUp) {
|
||||
adminIdx, adminNicDev, err := task.findAdminNic(cli, i.nicsInfo)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "task.findAdminNic")
|
||||
}
|
||||
accessIp := cli.GetConfig().Host
|
||||
err = task.sendNicInfo(ctx, adminNicDev, adminIdx, api.NIC_TYPE_ADMIN, false, accessIp, true)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "send Admin Nic Info")
|
||||
}
|
||||
adminNic = task.baremetal.GetNicByMac(adminNicDev.Mac)
|
||||
}
|
||||
oname := fmt.Sprintf("BM%s", strings.Replace(adminNic.Mac, ":", "", -1))
|
||||
if task.baremetal.GetName() != oname {
|
||||
oname = ""
|
||||
}
|
||||
err := task.doUpdateBmInfo(ctx, cli, i, oname, adminNic.IpAddr, adminNic.Mac)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if o.Options.EnablePxeBoot && task.baremetal.EnablePxeBoot() {
|
||||
for _, nicInfo := range i.nicsInfo {
|
||||
if nicInfo.Mac.String() != adminNic.GetMac().String() && nicInfo.Up != nil && *nicInfo.Up {
|
||||
|
||||
@@ -287,36 +287,15 @@ func (s *sBaremetalRegisterTask) updateIpmiInfo(ctx context.Context, cli *ssh.Cl
|
||||
}
|
||||
|
||||
func (s *sBaremetalRegisterTask) updateBmInfo(ctx context.Context, cli *ssh.Client, i *baremetalPrepareInfo, registered bool) error {
|
||||
updateInfo := make(map[string]interface{})
|
||||
updateInfo["access_ip"] = s.RemoteIp
|
||||
updateInfo["cpu_count"] = i.cpuInfo.Count
|
||||
updateInfo["node_count"] = i.dmiCpuInfo.Nodes
|
||||
updateInfo["cpu_desc"] = i.cpuInfo.Model
|
||||
updateInfo["cpu_mhz"] = i.cpuInfo.Freq
|
||||
updateInfo["cpu_cache"] = i.cpuInfo.Cache
|
||||
updateInfo["mem_size"] = i.memInfo.Total
|
||||
updateInfo["storage_driver"] = i.storageDriver
|
||||
updateInfo["storage_info"] = i.diskInfo
|
||||
updateInfo["sys_info"] = i.sysInfo
|
||||
updateInfo["sn"] = i.sysInfo.SN
|
||||
size, diskType := s.collectDiskInfo(i.diskInfo)
|
||||
updateInfo["storage_size"] = size
|
||||
updateInfo["storage_type"] = diskType
|
||||
updateData := jsonutils.Marshal(updateInfo)
|
||||
updateData.(*jsonutils.JSONDict).Update(i.ipmiInfo.ToPrepareParams())
|
||||
_, err := modules.Hosts.Update(s.getClientSession(), s.baremetal.GetId(), updateData)
|
||||
accessMac := ""
|
||||
if s.accessNic != nil {
|
||||
accessMac = s.accessNic.Mac.String()
|
||||
}
|
||||
err := s.doUpdateBmInfo(ctx, cli, i, "", s.RemoteIp, accessMac)
|
||||
if err != nil {
|
||||
log.Errorf("Update baremetal info error: %v", err)
|
||||
}
|
||||
if err := s.sendStorageInfo(size); err != nil {
|
||||
log.Errorf("sendStorageInfo error: %v", err)
|
||||
}
|
||||
for idx := range i.nicsInfo {
|
||||
err = s.sendNicInfo(ctx, i.nicsInfo[idx], idx, "", false, "", false)
|
||||
if err != nil {
|
||||
log.Errorf("Send nicinfo idx: %d, %#v error: %v", idx, i.nicsInfo[idx], err)
|
||||
}
|
||||
log.Errorf("failed do update bminfo %s", err)
|
||||
}
|
||||
|
||||
if registered {
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ import (
|
||||
"yunion.io/x/pkg/util/sets"
|
||||
"yunion.io/x/pkg/utils"
|
||||
|
||||
billing_api "yunion.io/x/onecloud/pkg/apis/billing"
|
||||
"yunion.io/x/onecloud/pkg/apis/compute"
|
||||
"yunion.io/x/onecloud/pkg/httperrors"
|
||||
)
|
||||
@@ -247,6 +248,12 @@ func ParseDiskConfig(diskStr string, idx int) (*compute.DiskConfig, error) {
|
||||
return nil, errors.Errorf("invalid preallocation %s, allow choices: %s", str, compute.DISK_PREALLOCATIONS)
|
||||
}
|
||||
diskConfig.Preallocation = str
|
||||
case "auto_delete":
|
||||
v, err := strconv.ParseBool(str)
|
||||
if err != nil {
|
||||
return nil, errors.Wrapf(err, "parse disk auto_delete %s", str)
|
||||
}
|
||||
diskConfig.AutoDelete = &v
|
||||
default:
|
||||
return nil, errors.Errorf("invalid disk description %s", p)
|
||||
}
|
||||
@@ -328,6 +335,8 @@ func ParseNetworkConfig(desc string, idx int) (*compute.NetworkConfig, error) {
|
||||
}
|
||||
netConfig.Addresses6[i] = addr6.String()
|
||||
}
|
||||
} else if strings.HasPrefix(p, "secgroups=") {
|
||||
netConfig.Secgroups = strings.Split(p[len("secgroups="):], ",")
|
||||
} else if p == "require_designated_ip" {
|
||||
netConfig.RequireDesignatedIP = true
|
||||
} else if p == "random_exit" {
|
||||
@@ -357,8 +366,10 @@ func ParseNetworkConfig(desc string, idx int) (*compute.NetworkConfig, error) {
|
||||
netConfig.Driver = p
|
||||
} else if strings.HasPrefix(p, "num-queues=") {
|
||||
netConfig.NumQueues, _ = strconv.Atoi(p[len("num-queues="):])
|
||||
} else if strings.HasPrefix(p, "billing-type=") {
|
||||
netConfig.BillingType = billing_api.ParseBillingType(p[len("billing-type="):])
|
||||
} else if strings.HasPrefix(p, "charge-type=") {
|
||||
netConfig.ChargeType = p[len("charge-type="):]
|
||||
netConfig.ChargeType = billing_api.ParseNetChargeType(p[len("charge-type="):])
|
||||
} else if regutils.MatchSize(p) {
|
||||
bw, err := fileutils.GetSizeMb(p, 'M', 1000)
|
||||
if err != nil {
|
||||
|
||||
@@ -62,6 +62,12 @@ func ListQueryByArchitecture(q *sqlchemy.SQuery, fieldKey string, archs []string
|
||||
sqlchemy.Equals(q.Field(fieldKey), apis.OS_ARCH_AARCH32),
|
||||
sqlchemy.Equals(q.Field(fieldKey), apis.OS_ARCH_AARCH64),
|
||||
))
|
||||
} else if arch == apis.OS_ARCH_RISCV {
|
||||
conditions = append(conditions, sqlchemy.OR(
|
||||
sqlchemy.Startswith(q.Field(fieldKey), arch),
|
||||
sqlchemy.Equals(q.Field(fieldKey), apis.OS_ARCH_RISCV32),
|
||||
sqlchemy.Equals(q.Field(fieldKey), apis.OS_ARCH_RISCV64),
|
||||
))
|
||||
} else {
|
||||
conditions = append(conditions, sqlchemy.Startswith(q.Field(fieldKey), arch))
|
||||
}
|
||||
|
||||
@@ -271,6 +271,7 @@ const (
|
||||
ACT_GUEST_SCREEN_DUMP = "guest_screen_dump"
|
||||
ACT_HOST_MAINTENANCE = "host_maintenance"
|
||||
ACT_HOST_DOWN = "host_down"
|
||||
ACT_HOST_DOWN_AUTO_MIGRATE = "host_down_auto_migrate"
|
||||
|
||||
ACT_UPLOAD_OBJECT = "upload_obj"
|
||||
ACT_DELETE_OBJECT = "delete_obj"
|
||||
|
||||
@@ -48,6 +48,10 @@ type SResourceBaseManager struct {
|
||||
SModelBaseManager
|
||||
}
|
||||
|
||||
func (model *SResourceBase) GetCreatedAt() time.Time {
|
||||
return model.CreatedAt
|
||||
}
|
||||
|
||||
func NewResourceBaseManager(dt interface{}, tableName string, keyword string, keywordPlural string) SResourceBaseManager {
|
||||
return SResourceBaseManager{NewModelBaseManager(dt, tableName, keyword, keywordPlural)}
|
||||
}
|
||||
|
||||
@@ -74,7 +74,7 @@ func newTableSpec(model interface{}, tableName string, indexField string, dateFi
|
||||
log.Errorf("NewSplitTableSpec %s %s", tableName, err)
|
||||
return nil
|
||||
} else {
|
||||
log.Debugf("table %s maxDuration %d hour maxSegements %d", tableName, maxDuration/time.Hour, maxSegments)
|
||||
log.Infof("new split table %s maxDuration %d hour maxSegements %d", tableName, maxDuration/time.Hour, maxSegments)
|
||||
}
|
||||
} else if len(dbName) > 0 {
|
||||
itbl = sqlchemy.NewTableSpecFromStructWithDBName(model, tableName, dbName)
|
||||
|
||||
@@ -689,6 +689,9 @@ func (task *STask) GetRequestContext() appctx.AppContextData {
|
||||
ctxJson.Unmarshal(&ctxData)
|
||||
}
|
||||
}
|
||||
// clear parentTaskId
|
||||
ctxData.TaskId = ""
|
||||
ctxData.TaskNotifyUrl = ""
|
||||
return ctxData
|
||||
}
|
||||
|
||||
|
||||
@@ -62,6 +62,9 @@ var (
|
||||
ActionServiceAbnormal = api.ActionServiceAbnormal
|
||||
ActionServerPanicked = api.ActionServerPanicked
|
||||
|
||||
ActionHostDown = api.ActionHostDown
|
||||
ActionHostDownAutoMigrate = api.ActionHostDownAutoMigrate
|
||||
|
||||
ActionPendingDelete = api.ActionPendingDelete
|
||||
|
||||
ActionSyncCreate = api.ActionSyncCreate
|
||||
|
||||
@@ -182,7 +182,7 @@ type S3CommonOptions struct {
|
||||
S3SecretKey string `help:"s3 secret key"`
|
||||
S3Endpoint string `help:"s3 endpoint"`
|
||||
S3UseSSL bool `help:"s3 access use ssl"`
|
||||
S3BucketName string `help:"s3 bucket name" default:"onecloud-screendump"`
|
||||
S3BucketName string `help:"s3 bucket name"`
|
||||
S3BucketLifecycleKeepDay int `help:"s3 bucket lifecycle keep day" default:"180"`
|
||||
}
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user